Установка и настройка системы на VDS сервер

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

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

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

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

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

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

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

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

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

1port: 4996
2host: admin.avto-uchet.ru
3hostpath: /avto
4jwt: "1W6W2395WH4P"

В целях безопасности, рекомендуется определить список "белых" 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). Имя файлу можно дать такое же, как имя директории. Ниже приведен самый простой вариант файла avto.service, хотя .service файл может иметь гораздо больше параметров. Самое главное - указать путь к программе ExecStart.

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

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

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

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

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

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

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

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

1server {
2      listen 443 ssl;
3
4      server_name admin.avto-uchet.ru;
5      ...

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

1      location /avto/ {
2            access_log off;
3            proxy_pass http://127.0.0.1:4996;
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     }

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

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

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

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

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

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