| 1 |
1 |
|
# mnw-cli TODO
|
| 2 |
2 |
|
|
| 3 |
3 |
|
## Status
|
| 4 |
|
- |
Done: Phases 1-8, Git proxy A-C. Active: None. Next: Deploy.
|
|
4 |
+ |
Done: Phases 1-8, Git proxy A-D (except D5). Active: None. Next: D5 DNS, PoM health check.
|
| 5 |
5 |
|
|
| 6 |
6 |
|
---
|
| 7 |
7 |
|
|
| 9 |
9 |
|
|
| 10 |
10 |
|
- [x] D1: Move sshd to port 2200, `ListenAddress 100.120.174.96` (Tailscale only) — done 2026-04-22
|
| 11 |
11 |
|
- [x] D2: Update mnw-cli .env (`SSH_PORT=22`, `GIT_SUDO_USER=git`) — done 2026-04-22
|
| 12 |
|
- |
- [x] D3: Sudoers rule (`/etc/sudoers.d/mnw-cli-git` — git-upload-pack, git-receive-pack, git-upload-archive) — done 2026-04-22
|
|
12 |
+ |
- [x] D3: Sudoers rule (`/etc/sudoers.d/mnw-cli-git` — git-upload-pack, git-receive-pack, git-upload-archive, git, tee, chmod) — done 2026-04-22, extended 2026-05-03
|
| 13 |
13 |
|
- [x] D4: Firewall — removed 2222/tcp, added 2200/tcp — done 2026-04-22
|
| 14 |
14 |
|
- [ ] D5: DNS — `cli.makenot.work` A record -> `5.78.144.244`, proxy OFF (needs Cloudflare dashboard)
|
| 15 |
15 |
|
- [x] D6: Restart sequence verified — admin SSH on 2200, mnw-cli on 22, both running — done 2026-04-22
|
| 20 |
20 |
|
- [x] Verified: SSH auth, TUI launch, git ls-remote, git clone all working — 2026-04-22
|
| 21 |
21 |
|
- [x] Fixed: NoNewPrivileges blocking sudo for git ops — 2026-04-22
|
| 22 |
22 |
|
- [x] Fixed: Tailscale SSH intercepting port 22 — disabled on hetzner — 2026-04-22
|
|
23 |
+ |
- [x] Fixed: Git repo auto-create on first push — 2026-05-03
|
|
24 |
+ |
- Repo creation delegated from server to mnw-cli (server only registers in DB)
|
|
25 |
+ |
- mnw-cli runs `git init --bare --shared=group` directly (in git group, setgid parent dir)
|
|
26 |
+ |
- `safe.directory=*` set for git service user
|
|
27 |
+ |
- Post-receive hook installed by mnw-cli after init
|
|
28 |
+ |
- Sudoers extended with git, tee, chmod
|
| 23 |
29 |
|
- [ ] Add PoM health check for mnw-cli (port 22 SSH banner check)
|
| 24 |
30 |
|
|
| 25 |
31 |
|
## Remaining Features (from design doc)
|