# Ship TODO ## Known Limitations ### Docker Container Port Assumption **Current behavior:** Ship assumes Docker containers listen on port 80 internally. **In:** `internal/templates/templates.go`: ``` -p 127.0.0.1:{{.Port}}:80 ``` **Problem:** Containers that expose other ports (e.g., 8080, 3000) will not work. **Workaround:** Ensure your Docker container listens on port 80, or manually edit the systemd unit after deployment. **Potential fixes:** 1. Add `--container-port` flag to specify internal port 2. Auto-detect from Dockerfile `EXPOSE` directive 3. Support `PORT` env var in Docker containers (like binary deploys) --- ## Other TODOs ### ship host init doesn't create local state.json **Problem:** After `ship host init`, the local `~/.config/ship/state.json` isn't created with the base_domain. Deploys fail with "HOST_NOT_CONFIGURED". **Workaround:** Manually create `~/.config/ship/state.json`: ```json { "default_host": "alaskav6", "hosts": { "alaskav6": { "next_port": 8001, "base_domain": "northwest.io", "apps": {} } } } ```