Установка и настройка Докидо на VDS сервер

Докидо - это обычный веб-сервер, который слушает определенный порт и имеет API, через которое происходит общение с пользователем в браузере. Таким образом, если у вас имеется VPS/VDS хостинг, то вы можете скачать серверную версию Докидо и установить её на ваш сервер. Рассмотрим вариант установки Докидо на Ubuntu сервер с работающим сайтом под Nginx. Предположим, есть сайт www.dokido.ru, и хочется установить Докидо так, чтобы можно было обращаться к нему по пути www.dokido.ru/demo/.

Шаг 1. Готовим место

Заходим на сервер и создаём директорию, куда будет скопировано приложение. В этой же самой директории будут хранится база данных и все служебные файлы. Например, создаём папку /home/app/demo. Так как на сервере установлена Ubuntu, то следует скачать и распаковать туда серверную версию для Linux - dokido-server-linux-x64.tar.gz. Архив содержит единственный файл dokido-app. Можете распаковать программу на локальной машине, а потом скопировать приложение на сервер.

Шаг 2. Первый запуск

Сейчас пришла очередь открыть терминал сервера и запустить dokido-app. В нашем случае, это /home/app/demo/dokido-app. При первом запуске сервер создаст необходимые файлы и остаётся в рабочем состоянии. Прервите его работу в терминале нажав Ctrl-C.

Шаг 3. Редактируем настройки

Пришла очередь открыть в редакторе созданный файл config.yaml. Он имеет примерно такой вид:

1port: 4896
2host: localhost
3hostpath:
4jwt: "1W6W2395WH4P"
  • host - доменное имя;
  • port - порт, который будет слушать программа;
  • hotspath - путь;
  • jwt - случайная строка для создания JWT ключей.

Вы можете изменить любые параметры. В поле host укажите доменное имя, а в параметре hostpath - путь к Докидо после доменного имени. Например:

1port: 4896
2host: www.dokido.ru
3hostpath: /demo
4jwt: "KW6W1295WH4P"

В целях безопасности, рекомендуется определить список "белых" ip-адресов и подсетей. В этом случае, все запросы с других ip-адресов будут игнорироваться. Вы можете указать подсети принадлежащие вашему провайдеру. Также, обязательно добавьте локальные подсети ::1/128 и 127.0.0.0/31. "Белый" список ip-адресов и подсетей указывается в параметре whitelist. Например,

1whitelist:
2   - ::1/128
3   - 127.0.0.0/31
4   - 92.140.108.0/24
5   - 92.140.109.0/24

Шаг 4. Создание systemd сервиса

Зарегистрируем программу Докидо в качестве сервиса. Для этого создадим файл с расширением .service в соответствующей директории - например, /lib/systemd/system (Ubuntu). Имя файлу можно дать такое же, как имя директории. Ниже приведен самый простой вариант файла demo.service, хотя .service файл может иметь гораздо больше параметров. Самое главное - указать путь к программе ExecStart.

1[Unit]
2Description=Dokido Service
3
4[Service]
5ExecStart=/home/app/demo/dokido-app
6WorkingDirectory=/home/app/demo
7
8[Install]
9WantedBy=multi-user.target

Запускаем и подключаем наш сервис. Он будет автоматически запускаться после перезагрузки системы.

1# укажите вместо `demo` выбранное вами имя
2systemctl enable demo.service
3systemctl start demo.service

Если вы измените файл .service, то необходимо выполнить systemctl daemon-reload для обновления настроек. Для получения статуса сервиса используйте systemctl status yourname.service или service yourname status.

 1root@novostrim:/home/app/demo# service demo status
 2● demo.service - Dokido Service
 3     Loaded: loaded (/lib/systemd/system/demo.service; enabled; vendor preset: enabled)
 4     Active: active (running) since Sat 2024-01-13 15:25:11 MSK; 7s ago
 5   Main PID: 174827 (dokido-app)
 6      Tasks: 6 (limit: 2221)
 7     Memory: 2.5M
 8        CPU: 13ms
 9     CGroup: /system.slice/demo.service
10             └─174827 /home/app/demo/dokido-app

В будущем, после обновления версии Докидо следует вызвать service yourname restart.

Шаг 5. Настройка Nginx

Осталось внести изменения в файл конфигурации сайта для nginx, чтобы он перенаправлял все запросы www.dokido.ru/demo на работающий Докидо сервер. Для этого откроем в редакторе файл /etc/nginx/conf.d/yourdomain.conf. В нашем случае это будет /etc/nginx/conf.d/dokido.ru.conf. Находим там секцию

1server {
2      listen 443 ssl;
3
4      server_name www.dokido.ru;
5      ...

и добавляем в конец

1      location /demo/ {
2            access_log off;
3            proxy_pass http://127.0.0.1:4896;
4            proxy_set_header Host $host;
5            proxy_set_header X-Real-IP $remote_addr;
6            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
7            proxy_redirect off;
8     }

Вместо /demo укажите hostpath из config.yaml. Также проверьте, чтобы порт в proxy_pass http://127.0.0.1:4896; совпадал с полем port из файла настроек.

Осталось сохранить .conf файл и перезапустить nginx - service nginx restart.

Шаг 6. Завершение установки

Так как Докидо сервер и Nginx уже работают, то попробуем открыть нужную страницу в браузере. Если всё сделано правильно, то должна отобразиться форма создания администратора, где вы должны придумать логин и пароль.

После этого можно считать, что серверная версия Докидо успешно установлена и готова к работе. При этом, она не влияет на функционирование остального сайта.

Не забывайте, что бесплатный период ознакомления составляет только 30 дней. Если вы решите удалить Докидо, то откатите все сделанные изменения и удалите директорию, где расположена программа.