Files
AWatch-rus/docs/deployment.md
T

4.0 KiB
Executable File

Deployment

0. Ansible full-stack вариант (рекомендуется)

cd <PROJECT_ROOT>/ansible
ansible-playbook -i inventory.ini provision_proxmox_ct_and_deploy_aw.yml

Этот playbook создаёт CT в Proxmox и полностью разворачивает ActivityWatch внутри контейнера.

Массовый вариант по матрице CT:

cd <PROJECT_ROOT>/ansible
ansible-playbook -i inventory.ini provision_proxmox_ct_matrix_and_deploy_aw.yml

1. Подготовить env-файлы

На рабочей машине оператора:

cp proxmox/ct-vars.example.env <PRIVATE_CONFIG_DIR>/activitywatch-ct.env
cp aw-server/aw-server.env.example <PRIVATE_CONFIG_DIR>/activitywatch-aw.env

Заполнить оба файла реальными значениями вне git.

2. Создать CT на Proxmox

На узле Proxmox:

cd /path/to/ActivityWatch-Russian
./proxmox/create-ct.sh <PRIVATE_CONFIG_DIR>/activitywatch-ct.env

Скрипт:

  • валидирует обязательные переменные;
  • создаёт Debian 12 CT;
  • запускает контейнер;
  • выполняет минимальный bootstrap пакетов;
  • готовит <CT_BOOTSTRAP_DIR> для дальнейшей загрузки артефактов.

3. Загрузить артефакты в CT

На узле Proxmox:

./proxmox/push-aw-artifacts.sh <PRIVATE_CONFIG_DIR>/activitywatch-ct.env
pct push <CT_ID> <PRIVATE_CONFIG_DIR>/activitywatch-aw.env /etc/activitywatch/aw-server.env

В CT будут загружены:

  • install_aw_server.sh
  • apply_webui_ru_patch.sh
  • activitywatch-server.service
  • aw-ru-patch.js
  • aw-sw-cleanup.js

4. Установить ActivityWatch Server

Внутри CT:

pct enter <CT_ID>
bash <CT_BOOTSTRAP_DIR>/install_aw_server.sh

Скрипт установки:

  • ставит curl, unzip, jq, ca-certificates;
  • создаёт пользователя activitywatch;
  • скачивает release aw-server-rust;
  • раскладывает бинарник по версиям;
  • создаёт активный symlink;
  • копирует systemd unit;
  • включает и запускает сервис.

5. Применить RU patch для Web UI

Внутри CT:

bash <CT_BOOTSTRAP_DIR>/apply_webui_ru_patch.sh
systemctl restart activitywatch-server.service

Патч:

  • копирует aw-ru-patch.js и aw-sw-cleanup.js;
  • делает backup index.html;
  • добавляет include в index.html;
  • заменяет service-worker.js cleanup-версией для сброса старого cache;
  • включает DLP Web UI override: верхнее меню DLP, центр DLP review и правила, buckets aw-dlp-review_<HOST> и aw-dlp-rules_<HOST>.

6. Проверить сервис

systemctl status activitywatch-server.service --no-pager
curl -fsS http://127.0.0.1:5600/api/0/info
ss -ltnp | grep 5600
grep -n 'aw-ru-patch\|aw-sw-cleanup' /opt/activitywatch/webui-ru/index.html

Ожидаемо:

  • сервис active (running);
  • API отвечает;
  • порт слушается;
  • в index.html есть оба include.

7. После публикации

Проверить извне:

  • открывается /;
  • API доступен по ожидаемому URL;
  • после hard refresh видна русификация;
  • в верхнем меню доступен DLP и он открывает #/buckets/aw-dlp-endpoint-signals_<HOST>;
  • на DLP bucket-странице доступны секции DLP review и правила, DLP Rules, DLP Review;
  • reverse proxy не кэширует старую статику.

8. Что зафиксировать после ввода

  • дата ввода;
  • узел Proxmox;
  • CT_ID;
  • IP/FQDN;
  • версия aw-server-rust;
  • место хранения backup;
  • фактическая схема публикации.