Auto Deploy
अपने server पर हमेशा-चालू webhook worker के ज़रिए, अपनी tracked GitHub branch पर हर push को deploy करें।
Auto Deploy कैसे काम करता है
जब भी GitHub उस branch के लिए push event भेजता है जिसे app track करता है, Auto Deploy उस GitHub app को redeploy करता है। Server Compass आपके server पर एक हमेशा-चालू gateway और एक private deployment worker install करता है, repository का webhook बनाता है, GitHub की signed test delivery verify करता है, और deployment के लिए ठीक वही commit queue में डाल देता है।
Setup के बाद Server Compass desktop app को खुला रखने की ज़रूरत नहीं है। Server-side runtime, Docker के साथ फिर से शुरू होता है और webhook प्राप्त करना, app build करना और deployment history रिकॉर्ड करना जारी रखता है। आपका SSH port private रह सकता है; केवल webhook का hostname ही GitHub से HTTPS के ज़रिए पहुँच योग्य होना चाहिए।
आवश्यकताएं
शुरू करने से पहले, पुष्टि करें कि आपके पास यह है:
- एक Docker app जो किसी GitHub repository से पहले ही deploy किया जा चुका हो
- build location के रूप में Build on VPS चुना गया हो; GitHub Actions builds को webhook Auto Deploy v1 support नहीं करता
- app की Server Compass directory के अंदर एक managed Git checkout
- एक linked GitHub account जिसे repository webhooks बनाने की अनुमति हो
- server पर Docker Engine और Docker Compose
- एक समर्पित public HTTPS hostname जैसे
deploy.example.com - उस hostname से webhook gateway तक एक route
Auto Deploy, deploy किए गए app पर save की गई branch का अनुसरण करता है। उसी सटीक branch पर हर push, GitHub event में शामिल commit को queue में डालता है; अन्य branches पर किए गए push नज़रअंदाज़ कर दिए जाते हैं।
App सेटअप करें
- Server Compass में, repository को एक GitHub app के रूप में deploy करें।
- Deployment के दौरान Build on VPS चुनें।
- Deploy किया गया app खोलें और Deployments पर जाएं।
- Auto Deploy कार्ड ढूँढें और Set up Auto Deploy पर click करें।
- एक public webhook hostname डालें। केवल hostname या HTTPS origin का उपयोग करें, उदाहरण के लिए
deploy.example.comयाhttps://deploy.example.com। कोई path, query string या custom port न जोड़ें।
Hostname, GitHub के लिए सार्वजनिक प्रवेश द्वार है। अकेला एक domain पर्याप्त नहीं है: DNS, TLS, firewall या NAT नियम, और आपका proxy या tunnel मिलकर server पर gateway तक एक पूरा route बनाना चाहिए।
चुनें कि GitHub server तक कैसे पहुँचे
तीनों route विकल्प एक ही signed webhook और private deployment worker का उपयोग करते हैं। केवल public route अलग होता है।
Server Compass-managed Traefik
इसका उपयोग तब करें जब Server Compass-managed Traefik पहले से ही server पर public reverse proxy हो। hostname का DNS record server की ओर point करें और सुनिश्चित करें कि inbound port 80 और 443 उस तक पहुँचते हैं। Server Compass, webhook gateway को मौजूदा traefik-public Docker network से जोड़ता है और HTTPS host route configure करता है।
एक public VPS के लिए यह आमतौर पर सबसे आसान विकल्प है। यह एक LAN server के लिए भी काम कर सकता है जब router, port 80 और 443 को उस server तक forward करे और hostname, router के public IP पर resolve हो।
Existing reverse proxy
इसका उपयोग तब करें जब Nginx, Caddy, Traefik, HAProxy या कोई अन्य proxy पहले से ही hostname handle कर रहा हो। generated loopback target पाने के लिए Check server पर click करें, फिर webhook hostname को दिखाए गए address पर route करें, उदाहरण के लिए http://127.0.0.1:42315।
Proxy को raw request body और GitHub webhook headers को बरकरार रखना चाहिए ताकि gateway, HMAC signature verify कर सके। इस route के आगे login middleware, Cloudflare Access या कोई अन्य interactive authentication page न रखें।
यदि proxy, Docker में चलता है, तो याद रखें कि proxy container के अंदर 127.0.0.1 उसी container को refer करता है। इसके बजाय host networking, एक host-gateway address, या एक उपयुक्त shared Docker network का उपयोग करें।
Stable tunnel
इसका उपयोग किसी LAN server, private VPS, CGNAT connection, या किसी भी ऐसे server के लिए करें जहाँ आप inbound ports नहीं खोलना चाहते। एक persistent named Cloudflare Tunnel या समकक्ष tunnel बनाएं, उसके connector को server पर चलाएं, और public hostname को Check server द्वारा दिखाए गए loopback target पर map करें, जैसे http://127.0.0.1:42315।
Tunnel स्थिर होना चाहिए और reboot के बाद स्वतः शुरू होना चाहिए। एक अस्थायी Quick Tunnel या ऐसा ngrok URL जो restart पर बदल जाए, उपयुक्त नहीं है क्योंकि GitHub, webhook का URL store करता है। यदि connector, Docker में चलता है, तो उसे host networking या कोई अन्य route दें जो वास्तव में host पर gateway तक पहुँच सके।
Server जाँचें और activate करें
- Check server पर click करें।
- पुष्टि करें कि Docker Engine, Docker Compose, और सुझाया गया gateway port readiness check पास करते हैं।
- यदि आपने managed Traefik चुना है, तो पुष्टि करें कि
traefik-publicnetwork भी पास करता है। - यदि आपने existing proxy या stable tunnel चुना है, तो result में दिखाए गए सटीक loopback port तक external route पूरा करें।
- Activate Auto Deploy पर click करें।
Server Compass, gateway और worker install करता है, एक private webhook URL बनाता है, signing secret को server पर store करता है, GitHub में webhook बनाता है, एक GitHub ping भेजता है, और एक सफल signed delivery की प्रतीक्षा करता है। Status, Installed, Routed, Hooked, Verified, और Active से होकर आगे बढ़ता है।
यदि setup, Awaiting route पर रुक जाए, तो runtime पहले ही install हो चुका है लेकिन GitHub अभी उस तक नहीं पहुँच सकता। DNS, TLS, firewall/NAT, proxy, या tunnel route को पूरा या ठीक करें, फिर Continue setup पर click करें। आपको app दोबारा install करने की ज़रूरत नहीं है।
Auto Deploy verify करें
पहले पुष्टि करें कि public health endpoint, Server Compass gateway तक पहुँचता है:
curl -fsS https://deploy.example.com/healthz
फिर पूरे deployment flow को verify करें:
- GitHub में, repository खोलें और Settings > Webhooks पर जाएं।
- Server Compass द्वारा बनाया गया webhook खोलें और पुष्टि करें कि उसकी latest delivery ने
2xxresponse लौटाया। - tracked branch पर एक छोटा commit push करें।
- Server Compass में, app की deployment history खोलें और पुष्टि करें कि webhook job ने push किए गए commit का उपयोग किया।
- पुष्टि करें कि deploy किए गए application में वह change मौजूद है।
अंतिम test के लिए, Server Compass को पूरी तरह quit करें, tracked branch पर एक और commit push करें, और application को फिर से verify करें। Deploy फिर भी पूरा होना चाहिए क्योंकि gateway, queue, और worker server पर चलते हैं।
सक्रिय webhook प्रबंधित करें
Auto Deploy कार्ड ये actions प्रदान करता है:
- Test webhook एक और GitHub test delivery भेजता है और उसका status refresh करता है।
- Rotate secret, server और GitHub webhook दोनों पर signing secret को बदल देता है।
- Pause, target और history को बनाए रखता है लेकिन automatic deployments रोक देता है; Resume उन्हें फिर से सक्षम कर देता है।
- Remove, GitHub webhook और उसकी remote target policy को हटा देता है जबकि deployment history बनाए रखता है।
tracked repository या branch बदलने के लिए, पहले Auto Deploy को Remove करें, नई repository या branch के साथ app को update और redeploy करें, फिर Auto Deploy दोबारा set up करें।
समस्या-निवारण और सुरक्षा
- Health endpoint विफल हो या 502/404 लौटाए: DNS और TLS verify करें, पुष्टि करें कि proxy या tunnel वर्तमान loopback port की ओर point करता है, और सुनिश्चित करें कि gateway container चल रहा है।
- GitHub delivery,
2xxन हो: webhook की हाल की delivery की जाँच करें, पुष्टि करें कि कोई authentication layer GitHub को block नहीं कर रही, और सुनिश्चित करें कि proxy ने raw body नहीं बदला या GitHub headers नहीं हटाए। - Push से deploy न हो: पुष्टि करें कि Auto Deploy, Paused नहीं बल्कि Active है, और push ठीक उसी tracked branch पर किया गया था।
- Tunnel, reboot तक काम करता रहा: named tunnel connector को एक system service या restart-योग्य container के रूप में configure करें। अस्थायी URL का उपयोग न करें।
- Desktop बंद है और deployment विफल हो रहा है: जाँचें कि server online है और Server Compass के gateway और worker containers चल रहे हैं।
Webhook URL में एक private route token होता है और इसे publish नहीं करना चाहिए। GitHub deliveries को एक HMAC signing secret से authenticate किया जाता है जो server पर generate और store किया जाता है और UI में कभी नहीं दिखाया जाता। आपको SSH, Docker socket, या private worker को internet पर expose करने की ज़रूरत नहीं है।
Screenshots







Ready to try Server Compass?
Download the app and deploy your first application in under 5 minutes.
Download Server Compass