Files
AWatch-rus/docs/deployment.md
T

3.5 KiB
Executable File

Deployment

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

cd /home/igor/tmp/AWatch-rus/ansible
ansible-playbook -i inventory.ini provision_proxmox_ct_and_deploy_aw.yml

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

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

cd /home/igor/tmp/AWatch-rus/ansible
ansible-playbook -i inventory.ini provision_proxmox_ct_matrix_and_deploy_aw.yml

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

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

cp proxmox/ct-vars.example.env /root/activitywatch-ct.env
cp aw-server/aw-server.env.example /root/activitywatch-aw.env

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

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

На узле Proxmox:

cd /path/to/ActivityWatch-Russian
./proxmox/create-ct.sh /root/activitywatch-ct.env

Скрипт:

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

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

На узле Proxmox:

./proxmox/push-aw-artifacts.sh /root/activitywatch-ct.env
pct push <CT_ID> /root/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 /root/bootstrap/install_aw_server.sh

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

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

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

Внутри CT:

bash /root/bootstrap/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.

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 видна русификация;
  • reverse proxy не кэширует старую статику.

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

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