Конфигурация и артефакты для сервисов экосистемы OneScript. Прод — две ноды (A — публичный edge, B — MinIO, Grafana, hostmetrics), каталог стека /opt/oscript, оркестрация — Docker Compose v2 через ops/dc.sh.
Краткая справка для агентов — AGENTS.md.
| Домен | Сервис |
|---|---|
| oscript.io | Основной сайт |
| hub.oscript.io | OpenHub |
| build.oscript.io | Jenkins |
| s3.oscript.io | MinIO (после сплита — данные на B) |
| grafana.oscript.io | Grafana, метрики, логи, трассы |
compose/ — модульный стек (node_a, node_b, overrides)
env/ — образцы .env (node_a, node_b)
ops/dc.sh — единая команда compose на нодах
ansible/ — роли и site.yml (inventory и vault — на B, вне git)
web/nginx/ — reverse proxy и TLS
monitoring/ — observability
minio/ jenkins/ S3/ bot/
Секреты — в .env (не в git) и Ansible vault. Образцы: env/node_a.env.example, openhub.env.example, minio/.env.example.
# .env: COMPOSE_PROJECT_NAME=os и COMPOSE_FILE=… (см. env/*.env.example)
./ops/dc.sh config
./ops/dc.sh up -dПервые сертификаты: ./init-letsencrypt.sh. Новый домен: конфиг в web/nginx/sites-enabled/, затем ./add-letsencrypt-domain.sh <домен>.
cd /opt/oscript
ansible-playbook ansible/site.yml \
-e @/opt/oscript-secrets/vault.yml \
--vault-password-file /opt/oscript-secrets/vault_pass \
--tags common --limit node_bПроверка каркаса без хостов: ./ansible/test/run.sh.
./web/nginx/test/run.sh
./monitoring/test/run.sh
./ansible/test/run.sh- OpenHub с нуля —
openhub.env.example, первый админ через/setupна hub.oscript.io