48b06f4594
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 10s
CI / integration (pull_request) Successful in 16s
CI / ui (pull_request) Successful in 57s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m21s
The project is live in production, so the staged-development scaffolding is removed. - Delete the staged trackers PLAN.md and PRERELEASE.md. - Rewrite CLAUDE.md: drop the per-stage workflow; codify the ongoing development principles (How we work) and the production model (Branching, CI & production): manual prod-deploy / prod-rollback, semver release tags, Ansible provisioning, expand-contract migrations. - De-stage the living docs (README, ARCHITECTURE, TESTING, deploy/ansible, loadtest, platform/telegram READMEs) and the docker-compose tuning comments: drop the Stage N / R1-R7 / pre-release labels, keep every number and rationale, and fix the now-dangling PLAN.md / PRERELEASE.md references to describe the current state. - Reword stale 'later stage' Go doc comments for subsystems that have shipped.
32 lines
848 B
YAML
32 lines
848 B
YAML
---
|
|
# Production host provisioning. Idempotent: safe to re-run after a host resize.
|
|
# Prepares hosts only (docker, hardening, service account, firewall); the
|
|
# application is deployed separately by .gitea/workflows/prod-deploy.yaml.
|
|
|
|
- name: Common baseline (both hosts)
|
|
hosts: prod
|
|
become: true
|
|
pre_tasks:
|
|
- name: Require a well-formed CI deploy public key
|
|
ansible.builtin.assert:
|
|
that:
|
|
- deploy_ci_pubkey | length > 0
|
|
- deploy_ci_pubkey is search('^(ssh|ecdsa)-')
|
|
fail_msg: >-
|
|
deploy_ci_pubkey is empty or malformed. Generate the key first
|
|
(see deploy/ansible/README.md) or override deploy_ci_pubkey_path.
|
|
roles:
|
|
- common
|
|
|
|
- name: Main stack host
|
|
hosts: main
|
|
become: true
|
|
roles:
|
|
- main
|
|
|
|
- name: Telegram bot host
|
|
hosts: tg
|
|
become: true
|
|
roles:
|
|
- tg
|