Files
the-door/deploy/README.md
2026-04-13 04:11:42 +00:00

1.8 KiB

The Door — Deployment Guide

The crisis front door infrastructure.

VPS Details

  • Host: alexanderwhitestone.com
  • Domain: alexanderwhitestone.com
  • RAM: 1.9GB (with 2GB swap)
  • OS: Ubuntu/Debian

Quick Deploy

cd deploy
ansible-playbook -i inventory.ini playbook.yml

Or from repo root:

make deploy

Option 2: Bash script (SSH into VPS)

ssh root@alexanderwhitestone.com
cd /opt/the-door
bash deploy/deploy.sh

Option 3: Fast site update only

make push

What Gets Provisioned

  1. Swap — 2GB swap file (RAM is tight at 1.9GB)
  2. nginx — Static files + reverse proxy /api/* → localhost:8644
  3. SSL — Let's Encrypt via certbot (requires DNS pointed first)
  4. Firewall — UFW allows 22, 80, 443 only
  5. Site files — index.html, manifest.json, sw.js, etc.

Architecture

Browser → nginx (SSL, port 443)
           ├── /var/www/the-door (static HTML)
           └── /api/* → localhost:8644 (Hermes Gateway)

SSL Setup

SSL requires DNS to be pointed first:

# Check if DNS resolves
dig +short alexanderwhitestone.com @8.8.8.8

# If it points to alexanderwhitestone.com on the target VPS, run:
certbot --nginx -d alexanderwhitestone.com -d www.alexanderwhitestone.com

Health Check

make check
# or
ssh root@alexanderwhitestone.com "bash /opt/the-door/deploy/deploy.sh --check"

Files

  • playbook.yml — Ansible playbook (full VPS provisioning)
  • inventory.ini — VPS host configuration
  • ansible.cfg — Ansible settings
  • deploy.sh — Bash deploy script (alternative to Ansible)
  • nginx.conf — nginx site config
  • rate-limit.conf — Rate limiting zone definition