From 5861e465a2ccf31d87ea25ac145770786f9cc96e Mon Sep 17 00:00:00 2001 From: bndw Date: Sat, 24 Jan 2026 09:48:34 -0800 Subject: Rename project from deploy to ship - Rename module to github.com/bdw/ship - Rename cmd/deploy to cmd/ship - Update all import paths - Update config path from ~/.config/deploy to ~/.config/ship - Update VPS env path from /etc/deploy to /etc/ship - Update README, Makefile, and docs --- DESIGN_SPEC.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'DESIGN_SPEC.md') diff --git a/DESIGN_SPEC.md b/DESIGN_SPEC.md index e8bb197..51342d4 100644 --- a/DESIGN_SPEC.md +++ b/DESIGN_SPEC.md @@ -20,7 +20,7 @@ deploy init --host user@your-vps-ip # - Detect OS (Ubuntu/Debian supported) # - Install Caddy from official repository # - Configure Caddy to import `/etc/caddy/sites-enabled/*` -# - Create `/etc/deploy/env/` directory for env files +# - Create `/etc/ship/env/` directory for env files # - Create `/etc/caddy/sites-enabled/` directory # - Enable and start Caddy service # - Verify installation @@ -40,7 +40,7 @@ deploy init --host user@your-vps-ip # This will SSH to the VPS and: # - Install Caddy # - Configure Caddy to use sites-enabled pattern -# - Create /etc/deploy/env/ directory for env files +# - Create /etc/ship/env/ directory for env files # - Enable and start Caddy # # State is stored locally at ~/.config/deploy/state.json @@ -273,9 +273,9 @@ All deployment state stored locally at `~/.config/deploy/state.json`: ``` ### Environment Files (VPS) -Environment variables written to `/etc/deploy/env/{appname}.env` on VPS for systemd to read: +Environment variables written to `/etc/ship/env/{appname}.env` on VPS for systemd to read: ```bash -# /etc/deploy/env/myapi.env (generated from state.json) +# /etc/ship/env/myapi.env (generated from state.json) PORT=8001 DB_HOST=localhost DB_PORT=5432 @@ -297,7 +297,7 @@ ENVIRONMENT=production - Checks if Caddy is already installed (skip if present) - Installs Caddy via official APT repository - Creates `/etc/caddy/Caddyfile` with `import /etc/caddy/sites-enabled/*` -- Creates directory structure: `/etc/deploy/env/`, `/etc/caddy/sites-enabled/` +- Creates directory structure: `/etc/ship/env/`, `/etc/caddy/sites-enabled/` - Enables and starts Caddy - Runs health check (verify Caddy is running) - Initializes local state file at `~/.config/deploy/state.json` if not present @@ -343,7 +343,7 @@ All steps executed remotely on VPS via SSH: 4. Create system user (e.g., `myapp`) 5. Create working directory (`/var/lib/myapp`) 6. Copy binary to `/usr/local/bin/myapp` -7. Create env file at `/etc/deploy/env/myapp.env` with PORT and any user-provided vars +7. Create env file at `/etc/ship/env/myapp.env` with PORT and any user-provided vars 8. Set env file permissions (0600, owned by app user) 9. Generate systemd unit at `/etc/systemd/system/myapp.service` with EnvironmentFile 10. Generate Caddy config at `/etc/caddy/sites-enabled/myapp.caddy` pointing to localhost:port @@ -376,7 +376,7 @@ All steps executed remotely on VPS via SSH: /var/lib/myapp/ # Working directory /etc/systemd/system/myapp.service # Systemd unit /etc/caddy/sites-enabled/myapp.caddy # Caddy config -/etc/deploy/env/myapp.env # Environment variables (0600 permissions) +/etc/ship/env/myapp.env # Environment variables (0600 permissions) /var/www/mysite/ # Static site files /etc/caddy/sites-enabled/mysite.caddy # Caddy config @@ -550,7 +550,7 @@ deploy list - Use systemd security hardening (NoNewPrivileges, PrivateTmp, ProtectSystem) - Static sites served as www-data - Caddy automatically handles TLS cert management -- Environment files stored at `/etc/deploy/env/{app}.env` with 0600 permissions +- Environment files stored at `/etc/ship/env/{app}.env` with 0600 permissions - Env files owned by the app's system user - `deploy env` command masks sensitive values when displaying (shows `API_KEY=***`) - Consider using external secret management for production (out of scope for v1) -- cgit v1.2.3