| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Previously, deployStatic() checked for .ship/Caddyfile in the current
working directory instead of the project directory (opts.Dir). This
caused stale Caddyfiles from previous deployments to be reused when
deploying multiple static sites from the same working directory.
Now .ship/ is created inside the project directory, so each site
maintains its own configuration.
|
| |
|
|
|
|
| |
Check if .ship files exist before reading them. If they don't exist,
generate them even on updates. This provides automatic migration for
deployments created before the .ship/ directory change.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
For binary and static deployments, .ship/service and .ship/Caddyfile are
now written to the local working directory (similar to git deployments)
instead of being regenerated on every deployment.
- On initial deployment, create local .ship/ directory with generated configs
- On subsequent deployments, upload from local .ship/ files
- Caddyfile is never regenerated, preserving custom routes
- Systemd service is regenerated only when --memory, --cpu, or --args change
This prevents custom Caddyfile routes from being overwritten and makes
binary deployment workflow consistent with git deployment workflow.
|
| |
|
|
|
|
|
|
|
|
| |
- 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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
New deployment model where projects start with a git remote on the VPS.
Pushing to the remote triggers automatic docker build and deploy via
post-receive hooks. The base domain serves Go vanity imports and git
HTTPS cloning via Caddy + fcgiwrap.
- Add `ship init <name>` command to create bare repos and .ship/ config
- Add `ship deploy <name>` command for manual rebuilds
- Extend `ship host init --base-domain` to set up Docker, git user,
fcgiwrap, sudoers, and vanity import infrastructure
- Add git-app and git-static types alongside existing app and static
- Update remove, status, logs, restart, list, and config-update to
handle new types
|
|
|
Restructure CLI files to follow idiomatic cobra layout:
- main.go: minimal entry point
- root.go: command definition, flags, and subcommand wiring
- deploy.go: all deploy implementation
|