Порекомендуйте онлайн-документ с открытым исходным кодом, чтобы помочь коллегам-даосам понять «Дао» Джанго.

Python Открытый исходный код
Порекомендуйте онлайн-документ с открытым исходным кодом, чтобы помочь коллегам-даосам понять «Дао» Джанго.

Эта статья направлена ​​нарука(Требуется небольшая основа Python Django) друзья, которым срочно нужны менеджеры документов, чтобы съесть лучшее.

Автор: HelloGitHub-Squeak (впервые опубликовано в общедоступной учетной записи HelloGitHub)

Сяобай, который ждет, когда его накормят: «Сегодня еще один день, когда я предаюсь модным блогам. Я хочу заархивировать какие-то знания или сериализовать некоторые уроки, но блоги разбросаны, не связаны, и опыт чтения не очень хорош, что мне делать??"

HelloGitHub: «Тогда вы спросили нужного человека, этот вопрос«Объяснение проектов с открытым исходным кодом»Новый проект из серии: MrDoc решит ваши проблемы. "

Xiaobai: «Что это за волшебный инструмент с открытым исходным кодом».

HelloGitHub: «Это система онлайн-документации на основе Django, подходящая дляОтдельные лица и небольшие командычастные облачные документы, облачные заметки и инструменты управления знаниями. Вы можете видеть, что он имеет простой интерфейс, полные функции и простое развертывание. Без лишних слов, давайте начнем проверять истину на практике! "

Простой тест

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

Вы можете запустить этот проект с нуля всего за 6 шагов!

1. Наша локальная экспериментальная среда:

  • 64-разрядная операционная система Windows 10
  • Python 3.7, пункт 21.0.1

2. Нам нужно клонировать проект с открытым исходным кодом локально и использовать следующую команду:

git clone https://github.com/zmister2016/MrDoc

3. Установите необходимые сторонние библиотеки для MrDoc: введитеMrdoc/каталог, выполните следующую команду:

4. Инициализируйте базу данных, по умолчанию в проекте используется база данных sqlite. Выполнить в командной строке:

5. Создайте учетную запись администратора для управления всем приложением MrDoc. Обратите внимание, что имена пользователей и адреса электронной почты используются во всем приложении MrDoc.Толькоиз.

6. Локальный онлайн-тест: в тестовой среде вы можете использовать сервер, поставляемый с Django, для запуска MrDoc.

2. Съедобные инструкции

Сяобай потер руки, ожидая: «Я также успешно протестировал локально, могу ли я исследовать пасхальные яйца внутри?»

HelloGitHub: «Хорошо, основные ключевые слова проекта: совместная работа в личной команде и управление документами, позвольте мне сейчас показать вам всесторонний MrDoc».

2.1 Зарегистрируйтесь и авторизуйтесь

HelloGitHub: «Когда мы посещаем веб-сайт,туристыличность. Если нам нужно зарегистрироватьобычный пользовательучетной записи, вам необходимо заполнить соответствующую информацию формы, после завершения регистрации она автоматически перейдет к интерфейсу входа в систему. "

Сяобай: ​​«Дополнительно: на самом деле, если туристы хотят нажать新建新建文档, также требуется операция входа в систему. "

2.2 Документация Антологии

HelloGitHub: «Когда мы входим в систему, мы можем新建新建文集Создайте коллекцию в формате . "

Сяобай: ​​«Я нашел это, вы можете нажать на антологию на главной странице, чтобы перейти на страницу просмотра и чтения антологии, и вы также можете использовать添加Создайте новый документ. При входе на страницу редактора документов мы можем点击文档树Выберите родителя, соответствующего текущему документу, или取消上级, и введя文档排序值, чтобы отсортировать различные документы. "

HelloGitHub: «Ну, теперь нам не нужно беспокоиться о прерывистости учебных статей, потому что они распределены в нашем корпусе в иерархическом порядке. Однако, поскольку MrDoc в настоящее время поддерживает документы до 3 уровней, не позволяйте своим собственным Дерево документов слишком велико."

HelloGitHub: «Очень важным моментом является обмен и сотрудничество команды. Наши обычные пользователи могут управлять своими коллекциями, нажмите个人中心我的文集文集管理文集成员куда协作管理Маленькие значки, которые можно добавитьсотрудник. И в文集管理操作文集设置Маленькие значки можно изменить基础信息,权限配置а также管理控制. Когда разрешения установлены наобщественный, коллекцию можно увидеть при посещении веб-страницы в качестве посетителя, когда установлено разрешениечастный, это видно только вам. Конечно, это также можно показать фиксированным людям, которые также могут реализовать совместное использование небольших команд. "

2.3 Редактирование документа

HelloGitHub: «Теперь мы обращаем наше внимание на модуль редактирования и модификации документов MrDoc, который поддерживает написание документов в формате Markdown и форматированном тексте и предоставляет нам 3 редактора для использования. Он поддерживает вставку математических формул, блок-схем, диаграмм последовательности, карт мозга, Echarts графические диаграммы и временные шкалы, может добавлять аудио- и видеоссылки и вложения изображений и т. д., может создавать шаблоны документов, короче, сводке нет конца, и карта не завершена, и ею нужно пользоваться медленно».

Сяо Бай: «Теперь я тоже понимаю.个人中心我的文档文档管理Все созданные документы могут управляться единообразно в , и вы также можете видеть历史版本管理Информация удобна для пользователей, чтобы сравнивать и управлять совместной работой команды. "

2.4 Фоновое управление [Администратор]

HelloGitHub: «Авторитет большого босса должен быть очень высоким, и все должно быть видно, включая коллекции пользователя, документы, модули документов, а также управление пользователями и настройки сайта».

Сяобай: ​​«Тогда я буду сам себе хозяин».

3. Онлайн-развертывание

HelloGitHub: «Я понял некоторые функции, но не будет ли слишком сложно работать только локально? Вам нужно рассмотреть возможность развертывания этого проекта на нашем облачном сервере, чтобы ваша небольшая команда могла достичь высокого уровня управления совместной работой над знаниями?»

Сяобай: ​​«У меня может быть дополнительный инструмент для рыбалки с моими друзьями в группе, я очень рад думать об этом~»

HelloGitHub: «Сначала разверните, кто знает, что в процессе будет много подводных камней. Чтобы все прошло гладко, наш метод на этот раз использует относительно полное руководство, предоставленное официальным лицом: используйтеNginx + uWSGIразвертыватьMrDoc. "

1. Среда нашего облачного хоста:

  • Ubuntu 18.04.4 LTS
  • Python 3.6.9, пункт 21.0.1
  • существует~каталог, готовый к использованиюpwdКоманда выглядит так:/home/purple, друзья переходят в соответствующий каталог

2. Установите uWSGI и Nginx:

sudo apt-get install uwsgi
sudo apt install uwsgi-plugin-python3
sudo apt-get install nginx

3. Вытаскиваем исходники MrDoc на локалку (используя предыдущую команду), но чтобы не затрагивать существующее окружение на сервере, нам нужно использоватьвиртуальная среда:

4. Перейдите в папку MrDoc и повторитепростой тестШаги 3, 4 и 5 из , соответственно, осуществляют установку зависимых библиотек, инициализацию базы данных и создание учетной записи администратора (опущено).

5. Мы~Создайте новую папку с именем mrdoc_deploy в каталоге.Команда выглядит следующим образом, которая используется для хранения файлов, связанных с развертыванием.

mkdir /home/purple/mrdoc_deploy

(1) uWSGIКонфигурационный файл:

существуетmrdoc_deployСоздайте новый каталог с именемuwsgi_paramsфайл, сvim uwsgi_paramsкоманду написать:

uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;
uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  REQUEST_SCHEME     $scheme;
uwsgi_param  HTTPS              $https if_not_empty;
uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;

существуетmrdoc_deployСоздайте новый каталог с именемmrdoc_uwsgi.iniфайл, используйте тот жеvim mrdoc_uwsgi.iniнаписать:

[uwsgi]

# Django-related settings
socket = :8008
# the base directory (full path)
chdir           = /home/purple/MrDoc
virtualenv = /home/purple/mrdoc_env
# Django s wsgi file
module          = MrDoc.wsgi:application
wsgi-file       = MrDoc/wsgi.py
# process-related settings
# master
master          = true

# maximum number of worker processes
processes       = 1
threads = 2
# ... with appropriate permissions - may be needed
# chmod-socket    = 664
# clear environment on exit
plugins = python3
vacuum = true
python-autoreload = 1

# buffer size
buffer-size = 65536

Примечание. Если при последующем запуске службы возникают следующие проблемы, необходимо настроитьmrdoc_uwsgi.iniвнизbuffer-sizeпараметр.

spawned uWSGI master process (pid: 21172)
spawned uWSGI worker 1 (pid: 21173, cores: 2)
invalid request block size: 21573 (max 4096)...skip
invalid request block size: 21573 (max 4096)...skip

(2) Nginxконфигурационный файл

существуетmrdoc_deployСоздайте новый каталог с именемmrdoc_nginx.confфайл, используйте командуvim mrdoc_nginx.confНапишите следующее:

server {
    listen         80;
    server_name    此处填入域名;
    charset UTF-8;
    access_log      /var/log/nginx/mrdoc_access.log;
    error_log       /var/log/nginx/mrdoc_error.log;

    client_max_body_size 75M;

    location / {
        include /home/purple/mrdoc_deploy/uwsgi_params;
        uwsgi_pass 127.0.0.1:8008;
        uwsgi_read_timeout 60;
    }

    location /static {
        expires 30d;
        autoindex on;
        add_header Cache-Control private;
        alias /home/purple/MrDoc/static;
    }
    location /media  {
        alias /home/purple/MrDoc/media;
    }
}

обрати внимание наserver_nameВ параметре нужно указать собственное доменное имя. Здесь я заполняю общедоступный IP-адрес облачного хоста, а затем вам нужно ввести IP-адрес для доступа к веб-сайту.

(3) Чтобы приложение MrDoc работало в соответствии с нашими требованиями, используйтеsystemctlИнструменты для управления услугами.

существуетmrdoc_deployСоздайте новый каталог с именемmrdoc.serviceфайл с помощью командыvim mrdoc.serviceНапишите в файл следующее:

[Unit]
Description = MrdocApp
After = syslog.target

[Install]
WantedBy = multi-user.target

[Service]
WorkingDirectory = /home/purple/MrDoc
ExecStart = /usr/bin/uwsgi --ini /home/purple/mrdoc_deploy/mrdoc_uwsgi.ini
User = purple
Restart = always
StandardError = syslog~

6. Добавьте управление процессами

sudo systemctl enable /home/zmister/mrdoc_deploy/mrdoc.service

7. Создайте мягкую ссылку на сайт Nginx

sudo ln -s /home/zmister/mrdoc_deploy/mrdoc_nginx.conf /etc/nginx/sites-enabled/mrdoc_nginx.conf

8. Запустите службу MrDoc

sudo systemctl start mrdoc.service

Примечание. При попытке запуска возникает следующая ошибка. Причина: в конфигурацииmrdoc.serviceкогдаExecStartЕсли параметр написан согласно официальному документу, онuwsgi, но на самом деле он должен быть записан как абсолютный путь (вы можете проверить свой собственный путь), мой/usr/bin/uwsgi.

(mrdoc_env) purple@VM-Purplezi-Ubuntu ~ % sudo systemctl start mrdoc.service
Failed to start mrdoc.service: Unit mrdoc.service is not loaded properly: Exec format error.
See system logs and 'systemctl status mrdoc.service' for details.

Четвертый, последний

Сяобай: ​​«Представитель класса здесь. Подводя итог в одном предложении, нам нужно всего лишь приложить некоторые усилия для развертывания, и тогда мы сможем ощутить удобство и скорость, обеспечиваемые этим проектом, пока он у нас есть».

HelloGitHub: «В официальных документах на самом деле есть некоторые функции, которые не освещены. Например, автор также предоставляет расширение для браузера MrDoc. Не забудьте проверить его, когда у вас будет время. Не забудьте обратить на нас внимание как можно скорее. , и мы будем работать бесперебойно и в обычном режиме. Запуск приносит вам интересные проекты с открытым исходным кодом, которыми вы можете поделиться».


обрати внимание наHelloGitHubОфициальный аккаунт получил обновление в кратчайшие сроки.

Есть больше представлений о проектах с открытым исходным кодом и ценных проектов, которые ждут вас.