License renewal
- Set `LICENSE_VALID_UNTIL` to new date (UTC).
- Optional: adjust `LICENSE_MODE` / `LICENSE_GRACE_*`.
- Deploy: `git pull && docker-compose up -d --build`.
- Verify logs for `license_status=valid`.
License revocation
- `LICENSE_MODE=enforce`, `LICENSE_VALID_UNTIL` in past.
- Deploy.
- Confirm API returns `license_expired`.
Token rotation
- Set `NEXT_API_TOKEN` and deploy.
- Update clients.
- Promote value to `API_TOKEN`, clear NEXT, deploy again.
- Rollback by restoring previous ENV values.
Block-all
Set `LICENSE_MODE=enforce`, `LICENSE_VALID_UNTIL` in past, remove tokens if needed, deploy.
Backups
pg_dump "$DATABASE_URL" > /var/backups/precion/$(date +%F).sql
Restore
pg_restore -d "$DATABASE_URL" /var/backups/precion/<file>.sql
docker-compose up -d --build