Установить ArchMap на сервер
Примечание
Для установки на Linux-сервер достаточно одного архива поставки. Python и Node.js на сервере не нужны, потому что в архиве уже есть переносной Python со всеми зависимостями, бэкенд и собранный интерфейс. Установщик настраивает службу systemd и сайт в nginx.
Примечание
Что понадобится:
- сервер Linux x86_64 с systemd и glibc 2.17 или новее (подходит любой дистрибутив последних лет);
- права root или sudo на время установки;
- nginx из репозитория дистрибутива;
- 1–2 ГБ памяти и около 1 ГБ на диске (установщик хранит три последних релиза);
pg_dumpтой же или более новой версии, что сервер PostgreSQL (пакетpostgresql-client) для копии базы перед обновлениями;- отдельное DNS-имя для ArchMap и сертификат TLS для него (работа по подпути не поддерживается).
Подготовить базу PostgreSQL#
Примечание
ArchMap хранит все данные в PostgreSQL версии 15 или новее. Базу готовит администратор PostgreSQL, а таблицы ArchMap создаст сам при первом запуске. Расширения не нужны.
Чтобы подготовить базу, выполните следующие действия:
-
Создайте пользователя и базу в кодировке UTF-8, владельцем которой будет этот пользователь:
CREATE ROLE archmap LOGIN PASSWORD 'ПАРОЛЬ'; CREATE DATABASE archmap OWNER archmap ENCODING 'UTF8' TEMPLATE template0; -
В файле
pg_hba.confразрешите пользователюarchmapподключаться к базеarchmapс адресов, с которых работает ArchMap. -
Перечитайте настройки PostgreSQL:
SELECT pg_reload_conf(); -
Составьте адрес базы для ArchMap (например,
postgresql://archmap:ПАРОЛЬ@pg.example.com:5432/archmap).
Примечание
Спецсимволы пароля в адресе базы нужно закодировать: @ → %40, : → %3A, / → %2F, % → %25, # → %23, ? → %3F. Если PostgreSQL требует TLS, допишите к адресу ?sslmode=require.
Собрать архив поставки#
Чтобы собрать архив поставки, выполните следующие действия:
-
На машине с доступом в интернет (Linux x86_64 с git, Node.js 22 или новее и curl) скачайте исходный код ArchMap:
git clone https://github.com/eidunyushkinhse/archmap.git cd archmap -
Соберите поставку:
deploy/build-bundle.shВ папке
dist-bundleпоявятся архивarchmap-<дата>-<коммит>-linux-x86_64.tar.gz(около 55 МБ) и файл с его контрольной суммой.sha256.
Установить ArchMap#
Чтобы установить ArchMap на сервер, выполните следующие действия:
-
Перенесите архив и файл
.sha256на сервер. -
Проверьте целостность архива и распакуйте его:
sha256sum -c archmap-*.tar.gz.sha256 tar -xzf archmap-*.tar.gz && cd archmap-*-linux-x86_64 -
Запустите установщик, указав имя сервера и сертификат:
sudo ./deploy/install.sh --server-name archmap.example.com \ --tls-cert /etc/ssl/archmap.crt --tls-key /etc/ssl/archmap.keyПри первом запуске установщик создаст файл настроек
/etc/archmap/archmap.envсо случайным ключом подписи и остановится. -
Впишите в файл
/etc/archmap/archmap.envадрес базы:DATABASE_URL=postgresql://archmap:ПАРОЛЬ@pg.example.com:5432/archmap -
Запустите ту же команду установщика ещё раз. Установщик проверит базу, применит миграции, разложит релиз в
/opt/archmap, запустит службуarchmapи настроит nginx. -
Создайте первого администратора. Команда дважды спросит пароль:
sudo archmap-admin create-admin admin -
Откройте адрес ArchMap (например,
https://archmap.example.com) и войдите под учётной записью администратора. -
Заведите учётные записи для коллег (см. Создать учётные записи и назначить роли).
Примечание
Без параметров --tls-cert и --tls-key ArchMap будет работать по HTTP без шифрования. Так можно делать только в доверенном тестовом сегменте сети, потому что пароли и токены пойдут открытым текстом.
Примечание
Если установщик остановился на проверке базы, сообщение назовёт, что поправить: подключение, версию PostgreSQL, кодировку базы или права пользователя.
Примечание
Что где лежит после установки:
/opt/archmap/releases/<версия>: релизы (хранятся три последних);/opt/archmap/current: ссылка на работающий релиз;/etc/archmap/archmap.env: настройки (см. Справочник переменных окружения);/etc/systemd/system/archmap.service: служба, работает от пользователяarchmap;/etc/nginx/conf.d/archmap.conf: сайт в nginx;/usr/local/bin/archmap-admin: команды администрирования.
Выпустить сертификат Let’s Encrypt#
Примечание
Если сервер открыт в интернет, сертификат можно бесплатно получить в Let’s Encrypt. Для этого сначала установите ArchMap по HTTP, а затем запустите установщик ещё раз уже с сертификатом.
Чтобы установить ArchMap с сертификатом Let’s Encrypt, выполните следующие действия:
-
Установите ArchMap без сертификата (см. Установить ArchMap):
sudo ./deploy/install.sh --server-name archmap.example.com -
Выпустите сертификат с помощью certbot:
sudo certbot certonly --nginx -d archmap.example.com --deploy-hook "systemctl reload nginx" -
Запустите установщик ещё раз с выпущенным сертификатом:
sudo ./deploy/install.sh --server-name archmap.example.com \ --tls-cert /etc/letsencrypt/live/archmap.example.com/fullchain.pem \ --tls-key /etc/letsencrypt/live/archmap.example.com/privkey.pem -
В файле
/etc/archmap/archmap.envисправьте в переменнойCORS_ORIGINSадрес сhttp://наhttps://. -
Перезапустите службу:
sudo systemctl restart archmap
Примечание
Сертификат продлевает служба certbot.timer, а после продления nginx перечитывает его сам.
Установить без nginx#
Примечание
Если перед сервером уже стоит свой обратный прокси, nginx не нужен. Установщик с параметром --no-nginx ставит только службу ArchMap, а прокси нужно настроить самостоятельно.
Чтобы установить ArchMap без nginx, выполните следующие действия:
-
Запустите установщик с параметром
--no-nginx:sudo ./deploy/install.sh --no-nginx -
Настройте свой обратный прокси:
- отдавать файлы интерфейса из папки
/opt/archmap/current/frontend, а на неизвестные пути отвечать файломindex.html; - передавать на
127.0.0.1:8000пути/api/,/mcpи/.well-known/oauth-; - ждать ответа на
/mcpи/api/до 300 секунд; - принимать запросы до 64 МБ.
- отдавать файлы интерфейса из папки
Примечание
За образец возьмите конфигурацию nginx, которую пишет установщик (функция render_nginx в файле deploy/install.sh).