Quickstart
Assumes you’ve installed outpost on your host and can ssh -A dev-box.
1. Set up your projects directory
Section titled “1. Set up your projects directory”Your project configs live in your own directory and git repo (default
~/outpost-projects), separate from the tool:
This creates the dir, runs git init, sets the remote, and drops a starter example
project. (--remote is optional — add one later or never.)
2. Create a project
Section titled “2. Create a project”outpost projects new web -t node # scaffold web/ from the node templateoutpost projects edit web # tweak the Dockerfile (EXPOSE ports, extra packages)A project is just a directory with a Dockerfile (FROM outpost-base:latest) and optional
tunnels.json, compose.yaml, ports.pin. Templates: flutter, go, minimal, node,
python, rust, static (outpost projects templates).
3. Build the base image (once)
Section titled “3. Build the base image (once)”outpost base # builds outpost-base: your tools + default dotfiles4. Set up and enter the project
Section titled “4. Set up and enter the project”outpost setup web # build the image, start an EMPTY-workspace containeroutpost sh web # drop into a tmux session inside the containeroutpost clones nothing — inside the box you do the rest:
git clone <your repo> /workspace && cd /workspacefnm install && fnm use # Node from your repo's .node-versionpnpm install && pnpm dev5. Reach your dev server
Section titled “5. Reach your dev server”outpost ports web # prints the host port + a ready-to-paste ssh -L# from your laptop:ssh -A -L 3000:localhost:49xxx dev-box # then open http://localhost:30006. Back up your configs
Section titled “6. Back up your configs”outpost projects sync # pull --rebase, commit (auto message), pushThe everyday loop after that
Section titled “The everyday loop after that”ssh -A dev-boxoutpost sh web # reattach the same tmux session (agents still running)# … work …outpost update web # rebuild on the latest base, keep your volumesMore: the daily loop, services, tunnels, git & ssh.