Skip to content

feat(deploy): replace Watchtower with GH Actions pipeline deploy#72

Merged
max-tet merged 1 commit into
mainfrom
worktree-fix+remove-watchtower-pipeline-deploy
May 17, 2026
Merged

feat(deploy): replace Watchtower with GH Actions pipeline deploy#72
max-tet merged 1 commit into
mainfrom
worktree-fix+remove-watchtower-pipeline-deploy

Conversation

@ClaydeCode
Copy link
Copy Markdown
Owner

Summary

  • Remove Watchtower service and its labels from docker-compose.yml
  • Add deploy job to CI: SCPs docker-compose.yml to host, then SSHes in to docker compose pull && docker compose up -d
  • Deploy runs only on push to main, after build succeeds

Manual one-time setup (before merging)

ssh-keygen -t ed25519 -f deploy_key -N ""
ssh-copy-id -i deploy_key.pub ubuntu@clayde.net
# add deploy_key contents as GH secret DEPLOY_SSH_KEY
rm deploy_key deploy_key.pub

Add three secrets in repo Settings → Secrets → Actions:

Secret Value
DEPLOY_HOST clayde.net
DEPLOY_USER ubuntu
DEPLOY_SSH_KEY Ed25519 private key PEM

Test Plan

  • Secrets added to GH repo
  • Merge to main → all three jobs pass (testbuilddeploy)
  • SSH into host: docker ps shows updated image, no watchtower container

🤖 Generated with Claude Code

Remove Watchtower auto-update container and its labels from traefik/clayde.
Add deploy job to CI that SCPs docker-compose.yml to the host and restarts
all services via SSH on every push to main.

Requires three GH secrets: DEPLOY_HOST, DEPLOY_USER, DEPLOY_SSH_KEY.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@max-tet max-tet merged commit 91137af into main May 17, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants