Deployment
The app can be deployed to a remote device (e.g., Raspberry Pi) using Docker.
Local deployment
Section titled “Local deployment”To build and run locally:
make docker_runTo rebuild and restart:
make docker_restartRemote deployment
Section titled “Remote deployment”The deployment system supports multiple developers deploying to the same
Tailscale device. The SSH host is auto-detected from your local username (e.g.
mooch → mooch@baltimore).
Basic usage:
# First-time setup: Generate SSH key and add to agentmake setup_ssh_agent# (Add the displayed public key to your GitHub account)
# Deploy using auto-detected SSH hostmake deployManual override:
# Override SSH hostDEPLOY_HOST=user@hostname make deploy
# Override both host and pathDEPLOY_HOST=user@hostname DEPLOY_PATH=~/custom/path make deploy
# Or using the script directly./scripts/deploy.sh user@hostname ~/p/cts/apps/todoThe deployment script will:
- Auto-detect your username and map to the appropriate SSH host
- SSH into the remote device with agent forwarding enabled (
ssh -A) - Pull the latest changes from git (using your forwarded SSH key)
- Stop any existing container
- Build and start a new Docker container
Note: Deployment uses SSH agent forwarding with a project-local SSH key
(e.g. .ssh/deploy_key). Run make setup_ssh_agent on first use to generate
the key and add it to your SSH agent.