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 --- README.md | 56 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index a2253c1..4394e35 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Deploy - VPS Deployment CLI +# Ship - VPS Deployment CLI Simple CLI tool for deploying Go apps and static sites to a VPS with automatic HTTPS via Caddy. @@ -17,10 +17,10 @@ Simple CLI tool for deploying Go apps and static sites to a VPS with automatic H ```bash # Build the CLI -go build -o ~/bin/deploy ./cmd/deploy +go build -o ~/bin/ship ./cmd/ship # Or install to GOPATH -go install ./cmd/deploy +go install ./cmd/ship ``` ## Quick Start @@ -29,7 +29,7 @@ go install ./cmd/deploy ```bash # Initialize a fresh VPS (this sets it as the default host) -deploy host init user@your-vps-ip +ship host init user@your-vps-ip ``` This will: @@ -45,15 +45,15 @@ This will: GOOS=linux GOARCH=amd64 go build -o myapp # Deploy it -deploy --binary ./myapp --domain api.example.com +ship --binary ./myapp --domain api.example.com # With environment variables -deploy --binary ./myapp --domain api.example.com \ +ship --binary ./myapp --domain api.example.com \ --env DB_HOST=localhost \ --env API_KEY=secret # Or from an env file -deploy --binary ./myapp --domain api.example.com \ +ship --binary ./myapp --domain api.example.com \ --env-file .env.production ``` @@ -64,7 +64,7 @@ deploy --binary ./myapp --domain api.example.com \ npm run build # Deploy it -deploy --static --dir ./dist --domain example.com +ship --static --dir ./dist --domain example.com ``` ## App Requirements @@ -110,72 +110,72 @@ func main() { ```bash # Initialize a fresh VPS (one-time setup, sets as default) -deploy host init user@vps-ip +ship host init user@vps-ip # Update system packages (apt update && apt upgrade) -deploy host update +ship host update # Check host status -deploy host status +ship host status # SSH into the host -deploy host ssh +ship host ssh ``` ### Deploy App/Site ```bash # Go app -deploy --binary ./myapp --domain api.example.com +ship --binary ./myapp --domain api.example.com # Static site -deploy --static --dir ./dist --domain example.com +ship --static --dir ./dist --domain example.com # Custom name (defaults to binary/directory name) -deploy --name myapi --binary ./myapp --domain api.example.com +ship --name myapi --binary ./myapp --domain api.example.com ``` ### List Deployments ```bash -deploy list +ship list ``` ### Manage Deployments ```bash # View logs -deploy logs myapp +ship logs myapp # View status -deploy status myapp +ship status myapp # Restart app -deploy restart myapp +ship restart myapp # Remove deployment -deploy remove myapp +ship remove myapp ``` ### Environment Variables ```bash # View current env vars (secrets are masked) -deploy env list myapi +ship env list myapi # Set env vars -deploy env set myapi DB_HOST=localhost API_KEY=secret +ship env set myapi DB_HOST=localhost API_KEY=secret # Load from file -deploy env set myapi -f .env.production +ship env set myapi -f .env.production # Unset env var -deploy env unset myapi API_KEY +ship env unset myapi API_KEY ``` ## Configuration -The host you initialize becomes the default, so you don't need to specify `--host` for every command. The default host is stored in `~/.config/deploy/state.json`. +The host you initialize becomes the default, so you don't need to specify `--host` for every command. The default host is stored in `~/.config/ship/state.json`. ## How It Works -1. **State on Laptop**: All deployment state lives at `~/.config/deploy/state.json` on your laptop +1. **State on Laptop**: All deployment state lives at `~/.config/ship/state.json` on your laptop 2. **SSH Orchestration**: The CLI uses SSH to run commands on your VPS 3. **File Transfer**: Binaries transferred via SCP, static sites via rsync 4. **Caddy for HTTPS**: Caddy automatically handles HTTPS certificates @@ -186,7 +186,7 @@ The host you initialize becomes the default, so you don't need to specify `--hos ### On Laptop ``` -~/.config/deploy/state.json # All deployment state (including default host) +~/.config/ship/state.json # All deployment state (including default host) ``` ### On VPS @@ -195,7 +195,7 @@ The host you initialize becomes the default, so you don't need to specify `--hos /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 +/etc/ship/env/myapp.env # Environment variables /var/www/mysite/ # Static site files /etc/caddy/sites-enabled/mysite.caddy # Caddy config -- cgit v1.2.3