summaryrefslogtreecommitdiffstats
path: root/cmd/ship/deploy_v2.go
diff options
context:
space:
mode:
authorClawd <ai@clawd.bot>2026-02-15 18:50:54 -0800
committerClawd <ai@clawd.bot>2026-02-15 18:50:54 -0800
commit146393527c20df3717711eced83fb9f58f96c884 (patch)
tree7359b8324b1e4fa7fbe88bcd42e255853bd0f09b /cmd/ship/deploy_v2.go
parent8094639aa2d5095af512d4e943fcb4af801aef07 (diff)
feat(v2): implement deploy flows
- deploy_impl_v2.go: full implementations for static, docker, binary deploys - Static: rsync + Caddyfile generation + reload - Docker: rsync + build + systemd unit + env file + Caddyfile - Binary: scp + systemd unit + service user + env file + Caddyfile - Port allocation: server-side in /etc/ship/ports/ - TTL: server-side in /etc/ship/ttl/ - Health checks: HTTP GET with 30s retry loop All deploy types now functional (pending Go compilation test)
Diffstat (limited to 'cmd/ship/deploy_v2.go')
-rw-r--r--cmd/ship/deploy_v2.go46
1 files changed, 1 insertions, 45 deletions
diff --git a/cmd/ship/deploy_v2.go b/cmd/ship/deploy_v2.go
index 7642b38..16e12db 100644
--- a/cmd/ship/deploy_v2.go
+++ b/cmd/ship/deploy_v2.go
@@ -200,48 +200,4 @@ func parseTTL(s string) (time.Duration, error) {
200 return d, nil 200 return d, nil
201} 201}
202 202
203// Placeholder implementations - to be filled in 203// Deploy implementations are in deploy_impl_v2.go
204
205func deployStaticV2(ctx *deployContext) *output.ErrorResponse {
206 // TODO: implement
207 // 1. rsync ctx.Path to /var/www/<name>/
208 // 2. Generate and upload Caddyfile
209 // 3. Reload Caddy
210 return nil
211}
212
213func deployDockerV2(ctx *deployContext) *output.ErrorResponse {
214 // TODO: implement
215 // 1. rsync ctx.Path to /var/lib/<name>/src/
216 // 2. docker build
217 // 3. Generate systemd unit and Caddyfile
218 // 4. Start service, reload Caddy
219 return nil
220}
221
222func deployBinaryV2(ctx *deployContext) *output.ErrorResponse {
223 // TODO: implement
224 // 1. scp binary to /usr/local/bin/<name>
225 // 2. Generate systemd unit and Caddyfile
226 // 3. Start service, reload Caddy
227 return nil
228}
229
230func setTTLV2(ctx *deployContext, ttl time.Duration) error {
231 // TODO: implement
232 // Write Unix timestamp to /etc/ship/ttl/<name>
233 return nil
234}
235
236func runHealthCheck(url, endpoint string) (*output.HealthResult, *output.ErrorResponse) {
237 // TODO: implement
238 // 1. Wait 2s
239 // 2. GET url+endpoint
240 // 3. Retry up to 15 times (30s total)
241 // 4. Return result or error
242 return &output.HealthResult{
243 Endpoint: endpoint,
244 Status: 200,
245 LatencyMs: 50,
246 }, nil
247}