summaryrefslogtreecommitdiffstats
path: root/TODO.md
blob: 5406485a8233abb8d197ae9742452ed80c8efd87 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# Ship TODO

## Open

### ~~Support custom Caddyfile~~ ✅ FIXED
**Fixed in:** commit b976b14

- Caddyfile is only generated on first deploy
- Redeploys preserve existing Caddyfile (manual edits survive)
- SSH in and customize as needed, future deploys won't overwrite

---

### ~~ship list should show custom domains~~ ✅ FIXED
**Fixed in:** commit c1b0bb8

- Reads actual domain from Caddyfile instead of assuming subdomain
- Works for both apps and static sites

---

## Fixed

### ~~Port allocation collision bug~~ ✅ FIXED
**Fixed in:** commit d97bb6f

- Port allocation now uses atomic flock on `/etc/ship/next_port`
- Prevents race conditions when multiple deploys run concurrently
- Each app still gets its port stored in `/etc/ship/ports/<name>`

### ~~Docker container port assumption~~ ✅ FIXED
**Fixed in:** commit d97bb6f

- Added `--container-port` flag (default 80)
- Template now uses `{{.ContainerPort}}` instead of hardcoded 80
- Supports containers that listen on 8080, 3000, etc.

### ~~ship host init doesn't create local state.json~~ ✅ FIXED
**Fixed in:** commit 6b2c047

- Removed all v1 code (-2837 lines)
- Simplified `internal/state/state.go` to just `default_host` + `base_domain`
- `host init` now creates minimal state.json
- Ports/deploys tracked on server at `/etc/ship/ports/`