1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/dl88250-solo

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

💡 Введение

Solo — это небольшая и красивая система блогов с открытым исходным кодом, разработанная специально для программистов. Solo имеет очень активное сообщество (https://ld246.com), где вы можете публиковать свои статьи в виде сообщений и получать ответы от сообщества в виде комментариев к блогу (подробнее см. B3log Concept — Distributed Community Network (https://ld246.com/article/1546941897596)).

Это новый опыт работы в сообществе, который позволит вам больше не чувствовать себя одиноким!

Добро пожаловать в официальный дискуссионный форум Solo (https://ld246.com/tag/solo). Также приглашаем вас подписаться на официальный аккаунт B3log в WeChat: «B3log Open Source».

b3logos.jpg

🗃 Примеры использования

https://ld246.com/top/solo

Функции

  • [Markdown] Редактор Vditor поддерживает три режима редактирования:
  • «Что видишь, то и получаешь»;
  • мгновенный рендеринг;
  • предварительный просмотр в отдельном окне.

Возможности редактора:

  • теги для классификации статей;
  • настраиваемые навигационные ссылки;
  • случайные статьи, связанные статьи, статьи с высоким приоритетом, уведомления об обновлениях;
  • постоянные ссылки на статьи и возможность добавлять подписи;
  • настройка SEO-параметров сайта, объявлений и футера;
  • подсветка кода, математические формулы, блок-схемы, нотные партитуры;
  • несколько тем оформления и поддержка разных платформ;
  • многоязычность и интернационализация;
  • управление дружественными ссылками;
  • возможность писать нескольким пользователям одновременно, вести блог для команды;
  • импорт из Hexo, Jekyll и Markdown;
  • экспорт в форматы SQL, JSON и Markdown;
  • Atom, RSS и карта сайта;
  • статические ресурсы, которые можно отделить от кода и настроить их распространение через сервис jsDelivr CDN;
  • загрузка данных из репозитория GitHub и автоматическое резервное копирование;
  • встроенное хранилище файлов с HTTPS и CDN;
  • генерация статических сайтов для публикации на GitHub Pages.

Интерфейс

Начало работы

На изображении start.png представлен стартовый экран редактора.

Главная страница администратора

Изображение console.png показывает главную страницу администратора.

Редактирование статьи

Рисунок post.png демонстрирует процесс редактирования статьи.

Выбор темы оформления

Рисунок skins.png представляет собой изображение окна выбора темы оформления.

Внешний вид сайта

Изображения pinghsu.png, Bubble.png, nijigen.png, timeline.png, Casper.png и Jane.png демонстрируют внешний вид сайта при использовании различных тем оформления.

Темы оформления

В настоящее время доступны следующие темы оформления: Bubble, Casper, Pinghsu, Jane, nijigen, Medium, 9IPHP, Andrea, Bruce, Community, favourite, Finding, i-nove, metro-hot, NeoEase, next, owmx-3.0, timeline, tree-house, yilia.

Вы можете предложить свои варианты тем оформления на странице https://github.com/88250/solo/issues/2.

Установка

Solo может работать как динамический или статический блог:

  • Динамический блог работает на сервере и доступен онлайн.
  • Статический блог создаётся после завершения работы над статьями и может быть размещён на любом хостинге.

Видеоинструкции

Видеоинструкции по установке Solo:

Локальная работа

Локальная работа используется для тестирования или создания статического сайта. Процесс создания статического сайта описан в статье https://ld246.com/article/1579053576274.

Загрузка

Скачайте последнюю версию Solo с сайта https://github.com/88250/solo/releases, распакуйте архив и перейдите в папку с программой. Запустите программу, выполнив команду:

Windows: java -cp "lib/*;." org.b3log.solo.Server Unix-like: java -cp "lib/*:." org.b3log.solo.Server.

Если у вас есть среда разработки Java, вы можете собрать и запустить программу из исходного кода (видеоинструкция доступна по ссылке https://www.bilibili.com/video/BV1jD4y1S7Ez).

Работа с Docker

Docker используется для запуска динамического блога на сервере.

Получение образа

Выполните команду:

docker pull b3log/solo

Запуск контейнера

Обратите внимание: если вы не уверены, как использовать символ \ для переноса строки, не переносите строку, а напишите всю команду в одной строке.

Для работы с MySQL необходимо выполнить следующие шаги:

  1. Создать базу данных solo с кодировкой utf8mb4 и сортировкой utf8mb4_general_ci:
create database solo default character set utf8mb4 collate utf8mb4_general_ci;
create user 'root'@'127.0.0.1' identified by '123456';
grant all privileges on *.* to 'root'@'127.0.0.1';
flush privileges;
  1. Запустить контейнер:
docker run --detach --name solo --network=host \
    --env RUNTIME_DB="MYSQL" \
    --env JDBC_USERNAME="root" \
    ...
``` **JDBC_PASSWORD="123456"**  
**--env JDBC_DRIVER="com.mysql.cj.jdbc.Driver"**  
**--env JDBC_URL="jdbc:mysql://127.0.0.1:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true"**  
b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=  

Для упрощения было использовано подключение к MySQL на хост-компьютере.  

```shell
docker run --detach --name solo --volume ~/solo_h2/:/opt/solo/h2/ --publish 8080:8080  
**--env RUNTIME_DB="H2"**  
**--env JDBC_USERNAME="root"**  
**--env JDBC_PASSWORD="123456"**  
**--env JDBC_DRIVER="org.h2.Driver"**  
**--env JDBC_URL="jdbc:h2:/opt/solo/h2/db;MODE=MYSQL"**  
b3log/solo --listen_port=8080 --server_scheme=http --server_host=localhost --server_port=
  • --listen_port — порт, который слушает процесс.
  • --server_scheme — конечный протокол доступа, если реверсивный сервис использует HTTPS, здесь также необходимо изменить на https.
  • --server_host — конечное доменное имя или публичный IP, не включая порт.
  • --server_port — конечный порт доступа, можно оставить пустым, если используется браузер по умолчанию (80 или 443).

Полное описание параметров запуска можно получить с помощью -h.

Конфигурация журнала

По умолчанию через log4j2 журнал выводится в стандартный поток вывода, его можно просмотреть с помощью команды docker logs solo. Если требуется переопределить конфигурацию log4j, это можно сделать путём монтирования файла:

--volume ~/log4j2.xml:/opt/solo/log4j2.xml

Монтирование сторонних скинов

Если требуется использовать сторонние скины, можно смонтировать каталог skins, структура каталогов должна соответствовать оригинальному каталогу skins:

--volume ~/skins/:/opt/solo/skins/

Обновление версии

  1. Получить последнее изображение.
  2. Перезапустить контейнер.

Можно обратиться к скрипту перезапуска, написанному для crontab, чтобы ежедневно в полночь выполнять автоматическое обновление.

Docker Compose

Пожалуйста, обратитесь к здесь, спасибо @liumapp за предоставление.

NGINX как обратный прокси

upstream backend {  
    server localhost:8080; # Solo слушает порт  
}  

server {  
    listen       80;  
    server_name  88250.b3log.org; # Домен блога  

    access_log off;  

    location / {  
        proxy_pass http://backend$request_uri;  
        proxy_set_header Host $http_host;  
        proxy_set_header X-Real-IP $remote_addr;  
        client_max_body_size 10m;  
    }  
}  

Обязательно настройте:

proxy_set_header Host $http_host;  
proxy_set_header X-Real-IP $remote_addr;  

В противном случае при посещении страницы может появиться сообщение «Ошибка конфигурации Latke» или аномалия стиля; статистика онлайн-посетителей будет работать неправильно.

Документация

Сообщество

Разрешение

Solo использует лицензию Mulan PSL v2 с открытым исходным кодом.

Благодарность

Многопользовательский режим

Несколько пользователей могут одновременно использовать один блог для публикации статей. В основном это используется в сценариях командных блогов. С точки зрения разрешений была реализована простая изоляция: пользователи, не являющиеся администраторами, могут видеть списки блогов и комментариев других пользователей, но не могут выполнять операции.

RSS/Atom/Sitemap

Предоставляются два типа подписок: Atom 1.0 и RSS 2.0:

  • Atom: /rss.xml;
  • RSS: /atom.xml.

Не рекомендуется открывать их непосредственно в браузере, лучше просматривать через программу чтения. Кроме того, Solo также может генерировать sitemap.xml для всех статей.

Переключение тем оформления (скинов)

Выбор темы оформления осуществляется с помощью параметра URL (например, http://88250.b3log.org/?skin=Finding).

Примеры использования:

  • Без установки Solo можно удобно предварительно просмотреть различные скины (на демо-версии);
  • Удобно интегрировать переключение скинов во время вторичной разработки;
  • Автор блога может позволить посетителям испытать разные эффекты, например: этот скин хорош? Или этот лучше?
  1. Только на главной странице (/ ) будет использоваться параметр skin=xxx.
  2. Если он присутствует, то значение сохраняется в Cookie, если оно равно skin=default или скин не существует, то Cookie очищается.
  3. Если вы хотите переключиться на скин по умолчанию для бэкэнда, используйте skin=default на главной странице.

Статьи, связанные с внешними сайтами

«Статьи, связанные с внешними сайтами» — это статьи, опубликованные другими пользователями с использованием Solo, которые имеют те же теги, что и ваши статьи. Эта функция в первую очередь предназначена для усиления взаимодействия между различными блогами Solo и предоставления посетителям блогов более эффективного доступа к соответствующему контенту.

Это часть реализации концепции B3log (https://ld246.com/b3log), и мы приглашаем всех принять активное участие в ней 🙏

FAQ

Почему необходимо «связывать» учётные записи с сообществами Pipe и Log?

Solo и Pipe позиционируются как узлы блогов в распределённом сообществе B3log, а не как независимые блоги, поэтому требуется единая система учётных записей, иначе возникнет множество проблем, и это результат исследований и экспериментов, подробности см. здесь (https://ld246.com/article/1576294445994).

До Solo v3 существовала отдельная система учётных данных, но после длительного тестирования она оказалась не идеальной:

  • Неудобно: пользователям необходимо настраивать связь между учётными записями в сообществе и блоге.
  • Небезопасно: связь учётных записей требует двусторонней проверки, в противном случае возможны поддельные учётные данные.

Эти две проблемы противоречат друг другу, поэтому для их решения необходимо сделать учётные записи уникальными в сети B3log. Первоначальный план состоял в том, чтобы использовать пары открытого и закрытого ключей (аналогично принципу кошелька блокчейна), но этот план слишком сложен на данном этапе, и порог входа для пользователей немного высок, поэтому от него временно отказались. План с открытым и закрытым ключами был протестирован и проверен в проекте «Звезда», и технически проблем нет, возможно, он будет принят в будущем проекте «Рыба».

Поэтому ещё раз подчёркиваем, что Solo и Pipe являются узлами блогов в распределённой сети сообщества B3log. Проще говоря, это похоже на некоторые программы некоторых производителей, без учётной записи которых невозможно использовать продукт. Подключение к другим сетям на уровне блога или сообщества заключается в подключении других учётных записей в сети, в настоящее время уже подключена учётная запись GitHub в сообществе Chaindrop (можно связать в настройках учётной записи здесь), и Solo может синхронизировать статьи с собственным репозиторием через токен GitHub (https://ld246.com/article/1589995001682), избегая чрезмерной изоляции всей сети B3log.

Наконец, надеемся, что пользователи, присоединившиеся к B3log в настоящее время, согласятся с этим дизайном, и если они не согласны, то нет необходимости присоединяться, это сэкономит время и защитит B3log. Конечно, нельзя исключать возможность будущих изменений в дизайне, приветствуем участие в обсуждениях и размышлениях, спасибо.

Память сервера слишком мала?

Можно рассмотреть использование статического сайта Solo для написания контента и последующей публикации на GitHub Pages и других сервисах.

Если вы всё ещё хотите использовать динамический блог, вы можете использовать встроенную базу данных H2 вместо MySQL. Однако рекомендуется обновить память, а затем использовать Docker и MySQL для развёртывания, чтобы можно было плавно обновлять с помощью обновления образов и использовать инструменты MySQL для более удобного управления базой данных.

Как создать jar-файл для развёртывания?

Настройте maven-assembly-plugin в файле pom.xml. Обратите внимание: jar не поддерживает:

  • создание статических сайтов;
  • могут быть другие неизвестные проблемы.

Рекомендуется избегать создания jar для развёртывания и использовать Docker для развёртывания на сервере.

Получение ошибки при получении сертификата для хранения файлов в сообществе?

См. здесь для настройки (https://ld246.com/article/1550393688505).

Как включить пользовательские статические ресурсы, такие как .mp3?

Используйте NGINX для обратного прокси статических ресурсов.

Как получить лучший рендеринг Markdown?

По умолчанию Solo использует встроенный flexmark (https://github.com/vsch/flexmark-java) для рендеринга md, который может не подходить для некоторых сценариев. Если вам нужен лучший рендеринг md, см. здесь (https://ld246.com/article/1569240189601).

Онлайн-счётчик посещений всегда равен 1?

Счётчик онлайн-посещений основан на IP посетителя и обновляется каждые 10 минут. Если используется обратный прокси, добавьте заголовок адреса клиента в конфигурацию прокси. Например, NGINX необходимо добавить следующую конфигурацию:

proxy_set_header  X-Real-IP  $remote_addr;

Как вставить рекламные блоки?

Вы можете вставить HTML и код JavaScript в подпись или раздел объявлений.

Где разместить информацию о регистрации?

Добавьте HTML и JavaScript в нижний колонтитул конфигурации.

Как использовать CDN jsDelivr для ускорения?

Запустите с параметрами командной строки:

--static_server_scheme=https
--static_server_host=cdn.jsdelivr.net
--static_server_port=
--static_path=/gh/88250/solo/src/main/resources

Обратите внимание:

  • Вышеуказанная конфигурация поддерживает только встроенные скины, при использовании сторонних скинов её необходимо настроить соответствующим образом.
  • Пользователи из материкового Китая могут не иметь доступа к CDN jsDelivr.

Будет ли Solo продолжать развиваться?

Solo был выпущен в 2010 году и постоянно обновляется.

Solo поддерживает плавное обновление с первого выпуска и поддерживает обновление версий с версии 3.0.0. Мы проделали большую работу в области обновления программ и миграции данных. Кроме того, Solo поддерживает экспорт данных в различных форматах, и все эти усилия направлены на то, чтобы избавить вас от беспокойства и сосредоточиться на творчестве и обмене.

Заключение

Если у вас возникнут проблемы при использовании Solo или у вас есть какие-либо требования, пожалуйста, оставьте комментарий, и мы ответим вам в ближайшее время; если вы заинтересованы в разработке Solo, обратитесь к статье «Разработка и реализация Solo» (https://ld246.com/article/1537690756242).

Введение

Б3лог, распределённая система узлов для блогов сообщества Java, приглашает присоединиться к сети сообществ следующего поколения. Развернуть Свернуть
MulanPSL-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/dl88250-solo.git
git@api.gitlife.ru:oschina-mirror/dl88250-solo.git
oschina-mirror
dl88250-solo
dl88250-solo
master