summaryrefslogtreecommitdiffstats
path: root/cmd/ship/deploy.go
Commit message (Collapse)AuthorAgeFilesLines
* fix: use project directory for static site .ship/ foldermainClawd37 hours1-4/+7
| | | | | | | | | | 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.
* Add backwards compatibility for existing binary deploymentsbndw3 days1-7/+11
| | | | | | 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.
* Store deployment configs locally for binary deploymentsbndw3 days1-36/+88
| | | | | | | | | | | | | | 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.
* Harden security: name validation, scoped sudoers, safe.directorybndw6 days1-0/+3
| | | | | | | | | | - 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
* Add git-centric deployment with Docker builds and vanity importsbndw9 days1-26/+30
| | | | | | | | | | | | | | | 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
* Move deploy implementation to deploy.gobndw2026-01-251-0/+598
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