<feed xmlns='http://www.w3.org/2005/Atom'>
<title>ship.git/cmd/ship/env, branch main</title>
<subtitle>Deploy to your VPS in one command</subtitle>
<id>https://code.northwest.io/ship.git/atom?h=main</id>
<link rel='self' href='https://code.northwest.io/ship.git/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://code.northwest.io/ship.git/'/>
<updated>2026-02-17T15:54:26+00:00</updated>
<entry>
<title>Remove v1 code, simplify state to just base_domain</title>
<updated>2026-02-17T15:54:26+00:00</updated>
<author>
<name>Clawd</name>
<email>ai@clawd.bot</email>
</author>
<published>2026-02-17T15:54:26+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/ship.git/commit/?id=6b2c04728cd914f27ae62c1df0bf5df24ac9a628'/>
<id>urn:sha1:6b2c04728cd914f27ae62c1df0bf5df24ac9a628</id>
<content type='text'>
- Delete all v1 commands (deploy, init, list, status, remove, etc.)
- Delete v1 env/ and host/ subcommand directories
- Simplify state.go: remove NextPort, Apps, AllocatePort, etc.
- Local state now only tracks default_host + base_domain per host
- Ports and deploys are tracked on the server (/etc/ship/ports/)
- host init now creates minimal state.json
</content>
</entry>
<entry>
<title>Harden security: name validation, scoped sudoers, safe.directory</title>
<updated>2026-02-11T05:29:08+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-02-11T05:29:08+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/ship.git/commit/?id=47d4b3b6e4d68660e6e1e05fe2e1c0839f86e40e'/>
<id>urn:sha1:47d4b3b6e4d68660e6e1e05fe2e1c0839f86e40e</id>
<content type='text'>
- Add ValidateName() enforcing ^[a-z][a-z0-9-]{0,62}$ on all entry points
- Tighten sudoers to restrict cp sources/destinations and chown targets
- Scope git safe.directory to www-data user only (preserves CVE-2022-24765)
- Add www-data to git group and caddy to www-data group for fcgiwrap
- Fix vanity import template to use orig_uri placeholder
- Restart (not reload) services after group changes
- Add name validation to env subcommands and deploy_cmd
</content>
</entry>
<entry>
<title>Rename project from deploy to ship</title>
<updated>2026-01-24T17:48:34+00:00</updated>
<author>
<name>bndw</name>
<email>ben@bdw.to</email>
</author>
<published>2026-01-24T17:48:34+00:00</published>
<link rel='alternate' type='text/html' href='https://code.northwest.io/ship.git/commit/?id=5861e465a2ccf31d87ea25ac145770786f9cc96e'/>
<id>urn:sha1:5861e465a2ccf31d87ea25ac145770786f9cc96e</id>
<content type='text'>
- Rename module to github.com/bdw/ship
- Rename cmd/deploy to cmd/ship
- Update all import paths
- Update config path from ~/.config/deploy to ~/.config/ship
- Update VPS env path from /etc/deploy to /etc/ship
- Update README, Makefile, and docs
</content>
</entry>
</feed>
