Files
archy/docs/canary-deploy.md
Dorian f07ce10b1a refactor: update dependencies and remove unused code
- Added new dependencies: `adler2`, `crc32fast`, `flate2`, `miniz_oxide`, and `libredox`.
- Updated existing dependencies: `tokio-rustls` to version 0.26.4 and `filetime` to version 0.2.27.
- Removed the `backup.rs` file as it is no longer needed.
- Introduced tests for configuration and credential management.
- Enhanced the `identity` module to generate W3C compliant DID documents.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 00:19:30 +00:00

1.7 KiB

Canary Deploy Process

Overview

Deploy changes to the secondary server first (192.168.1.198), verify health, then deploy to the primary server (192.168.1.228). This reduces risk by catching issues before they affect the main system.

Steps

1. Deploy to Secondary (Canary)

# Deploy to secondary server only
TARGET_HOST=archipelago@192.168.1.198 ./scripts/deploy-to-target.sh --live

2. Verify Health

# Check health endpoint
curl -s http://192.168.1.198/health

# Check backend service
ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.198 "sudo systemctl status archipelago"

# Spot-check the UI
# Open http://192.168.1.198 in browser, verify pages load

3. Deploy to Primary

Once the secondary is healthy and verified:

./scripts/deploy-to-target.sh --live

4. Verify Primary

curl -s http://192.168.1.228/health

Quick Deploy to Both (Non-Canary)

If you're confident and want to deploy to both at once:

./scripts/deploy-to-target.sh --both

This deploys to 228 first, then copies the built artifacts to 198. Not a true canary — use the step-by-step process above for safer rollouts.

Rollback

If the canary (198) shows issues, do NOT deploy to primary. Fix the issue first.

If primary (228) shows issues after deploy:

# Check logs
ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228 "sudo journalctl -u archipelago -n 50"

# Restart services
ssh -i ~/.ssh/archipelago-deploy archipelago@192.168.1.228 "sudo systemctl restart archipelago && sudo systemctl restart nginx"

Post-Deploy Health Check

The deploy script automatically waits up to 60 seconds for the health endpoint to return 200 after deploying. If it fails, check the backend logs for errors.