Skip to content
VDS Panel
VDS Panel
Server Management
deployment 08 Şubat 2026 · 8 dk okuma

Automatic Deploy with Git Push: Cloud Experience on Your Own Server

How do you set up the 'git push → live' experience that we are accustomed to with modern cloud deployment services on your own server? Webhook, CI/CD, atomic deploy, complete guide.

#git push deploy #ci cd #webhook #otomatik deploy
VDS Panel
VDS Panel Ekibi
Ürünü geliştiren ekip

git push origin main” and a few seconds later your site is live, the experience that modern cloud platforms have made standard. This convenience has now become our expectation. However, setting up the same experience on our own server is often more complicated than we think: webhook secrets, build runners, artifact management, atomic swap…

In this article, we will explain what lies behind the automatic deploy with git push mechanism and how you can set up this system on your own VPS.

How does “git push = deploy” work?

There are three basic components:

  1. 01
    webhook
    Git repository sends HTTP POST on every push. It contains information about which branch, which commit, and by whom.
  2. 02
    Receiver
    The endpoint on your server that listens to the webhook. It verifies the HMAC-SHA256 signature of the incoming request and checks that it is a legitimate push.
  3. 03
    pipeline
    After the signature is verified, it pulls the code, builds it, replaces the existing service with a new artifact (atomic swap), performs a health check, and notifies the result.

It is not technically difficult to code each of these 3 components by hand, but it takes a long time to make them production-grade: rollback, concurrent deploy protection, build cache, log streaming, secret management…

Webhook setup, manual

An example webhook receiver (Node.js + Express):

P0

And P0:

P1

Problems of this naive implementation
  • Race condition: If two pushes come one after the other, two pipelines will conflict.
  • No rollback: if the deployment fails, the app remains inoperable.
  • Secret management is weak: Should the P0 file be deleted or protected every time it is deployed?
  • No build cache: P1 takes 2-3 minutes for each deploy.
  • No log stream: if the deploy fails, you will have to look at the server via SSH.

Production-grade solution: git push deploy with VDS Panel

VDS Panel offers built-in webhook integration. Installation is a 1 minute job:

  1. 01
    Link your GitHub account
    The repository list is pulled with GitHub OAuth in the panel settings.
  2. 02
    Create the project
    Select Repository. The panel installs the webhook automatically, you do not need to create a secret in GitHub settings.
  3. 03
    Start pushing
    On each subsequent git push, the panel captures the webhook, verifies the signature, and starts the pipeline.

As soon as you set P0, the panel:

  1. Shallow clone the code (fast)
  2. Framework detection (package.json/pom.xml/go.mod/Dockerfile)
  3. Dependency cache check (skip if npm/maven/go cache is the same)
  4. Build (parallel: image + DB migration + SSL control)
  5. Atomic swap to Artifact production (old version is kept for 5 minutes, rollback is fast)
  6. Health check (readiness probe for 30 seconds)
  7. Success → nginx reload. Fail → automatic rollback.
~90sec
push to live
It drops below 30 seconds when the cache is hot and for small commits.

The process flows live in the panel interface: build log, test outputs, deploy status, all in real-time.

Advanced scenarios

Branch-based deploy

The panel can deploy production for P0 branch and staging for P1. Each branch gets separate subdomains: P2 and P3. DNS + SSL is automatically established.

Manual approval (approval gate)

You can activate the “manual approval” mode for security-critical production environments. When the push comes, the panel builds but puts the deploy on hold; It does not go live without a user who approves it.

###Rollback

Click “Revert to previous version” on the Deploy screen. The panel stores the artifact of the last 10 successful deployments; It makes instant swaps to whatever you want. It also integrates with tools such as Flyway/Liquibase to reverse database migrations.

Multi-env secret

Separate env variables for testing, staging, production. Secrets specific to each environment are stored in the secret vault and injected at runtime.

Risk of leaking secrets to Git

It does not write panel env variables to git, it pulls them from the panel DB, not from the repo. Production secrets are preserved even if developers accidentally commit P0 files.

Build arguments

Passing build arg to Dockerfile, calling a custom task to Gradle, and running a pre-deploy script are all managed from the panel interface.

Conclusion

The “git push = deploy” experience is indispensable for a modern developer. It is possible to set up the same experience on your own server without paying cloud fees for modern cloud deployment services, it is just a question of how much time you can spare.

Installing it yourself is a 2-3 week job; With VDS Panel, webhook integration is completed automatically when creating the first project. For details, you can check our features page or request a demo.

Want to try it on your own server?

Reach out via the contact form and let's prepare a license and install plan tailored to your scenario.

Here when you're ready

Modern deploy experience on your own server, one contact message away.

Tell us about your usage scenario and we'll prepare the right license and install plan. Average response time is under 24 hours.