Эта статья направлена на
рука(Требуется небольшая основа 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Официальный аккаунт получил обновление в кратчайшие сроки.
Есть больше представлений о проектах с открытым исходным кодом и ценных проектов, которые ждут вас.