/home/compose/pro-4gain-semaphore//mnt/compose/pro-4gain-semaphore/data/{config,db}/ (BoltDB)sm2c-cloud-semaphoreservice-semaphore-bootstrap.ymlsemaphoreui/semaphore:latestBoltDB single-file. Конфиг — data/config/config.json (генерится автоматически при первом старте). БД — data/db/database.boltdb.
При росте нагрузки можно мигрировать на MySQL/Postgres — добавить services.db в compose, поменять SEMAPHORE_DB_DIALECT.
10.19.1.150:5083:3000 (host LAN IP firefly)./mnt/swarm/traefik_data/custom/pro-4gain-semaphore.yml → http://10.19.1.150:5083.letsEncrypt resolver (HTTP-01).maxonnetinventory/group_vars/all.yml или defaults/main.yml :: semaphore.admin_passwordviktor@tatarnikov.orgКонтейнер монтирует с хоста (read-only):
/root/forGain/ansible:/tmp/ansible:ro — playbooks из локального репо./root/.ssh:/root/.ssh:ro — SSH-ключи для коннекта к managed-хостам.Если пароль из ENV не подхватился (config.json уже создан до первого запуска):
ssh firefly
docker stop pro-4gain-semaphore
docker run --rm \
-v /mnt/compose/pro-4gain-semaphore/data/config:/etc/semaphore \
-v /mnt/compose/pro-4gain-semaphore/data/db:/var/lib/semaphore \
semaphoreui/semaphore:latest \
semaphore user change-by-login --login maxonnet --password "<new-password>" \
--config /etc/semaphore/config.json
docker start pro-4gain-semaphore
CLI требует exclusive access к BoltDB → server должен быть остановлен.
cd ansible/playbooks
ansible-playbook -c ssh service-semaphore-bootstrap.yml
# Удалить:
ansible-playbook -c ssh service-semaphore-bootstrap.yml -e sm2c_cloud_semaphore_remove_stack=true
Changelog