Skip to content

feat: add deployment automation for production#441

Merged
its-me-abhishek merged 2 commits intomainfrom
feature/deployment-automation
Jan 31, 2026
Merged

feat: add deployment automation for production#441
its-me-abhishek merged 2 commits intomainfrom
feature/deployment-automation

Conversation

@cfsmp3
Copy link
Copy Markdown
Collaborator

@cfsmp3 cfsmp3 commented Jan 31, 2026

Summary

  • Remove obsolete VITE_* build-args from docker.yml (frontend now uses relative URLs after feat: use relative URLs for frontend API calls #439)
  • Add deploy.yml workflow for manual production deployments via SSH
  • Add deployment/ directory with production docker-compose.yml and deploy.sh script
  • Add comprehensive README with VPS setup instructions

How It Works

  1. Push to main triggers existing docker.yml → builds images, pushes to GHCR
  2. Manually trigger "Deploy to Production" workflow with image tag
  3. Workflow SSHs to VPS and runs /opt/ccsync/scripts/deploy.sh <tag>
  4. Script pulls images, starts containers, verifies health, rolls back on failure

VPS Requirements

Before using this, the VPS needs:

  • deploy user with docker access
  • /opt/ccsync/ directory structure
  • SSH key for GitHub Actions
  • GitHub environment "production" with SSH credentials

See deployment/README.md for full setup instructions.

Test plan

  • Review workflow files for correctness
  • Set up VPS infrastructure (separate task)
  • Configure GitHub environment with SSH credentials
  • Test manual deployment trigger

🤖 Generated with Claude Code

- Remove obsolete VITE_* build-args from docker.yml (frontend now uses
  relative URLs)
- Add deploy.yml workflow for manual production deployments via SSH
- Add deployment/ directory with production docker-compose.yml and
  deploy.sh script
- Add comprehensive README with VPS setup instructions

The deployment system:
- Pulls images from GHCR by tag (commit SHA or "latest")
- Runs health checks before marking deployment successful
- Automatically rolls back on failure
- Records deployment history for audit trail

Requires GitHub environment "production" with SSH credentials.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown

Thank you for opening this PR!

Before a maintainer takes a look, it would be really helpful if you could walk through your changes using GitHub's review tools.

Please take a moment to:

  • Check the "Files changed" tab
  • Leave comments on any lines for functions, comments, etc. that are important, non-obvious, or may need attention
  • Clarify decisions you made or areas you might be unsure about and/or any future updates being considered.
  • Finally, submit all the comments!

More information on how to conduct a self review:
https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/reviewing-proposed-changes-in-a-pull-request

This helps make the review process smoother and gives us a clearer understanding of your thought process.

Once you've added your self-review, we'll continue from our side. Thank you!

Replace server IP with placeholder <your-server-ip> to avoid
exposing infrastructure details in the repository.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@its-me-abhishek its-me-abhishek merged commit acf2062 into main Jan 31, 2026
5 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