क्या मैं आपकी वेबसाइट को gitlab के माध्यम से होस्ट कर सकता हूं जैसे आप github पृष्ठों के साथ कर सकते हैं?


20

मैं अपनी वेबसाइट को होस्ट करने के लिए git का उपयोग करना पसंद करूंगा, और एक प्लेटफ़ॉर्म पसंद करूँगा जिसे मैं इसके साथ जाने के लिए ऑनलाइन में लॉग इन कर सकता हूं (Github जैसा कुछ)। आप सोचेंगे कि किस स्थिति में, मेरे लिए गितुब पृष्ठ सही मार्ग होगा, हालांकि मैं गितुब पृष्ठों का उपयोग नहीं करना चाहता। मैं अपने सर्वर पर यह सब होस्ट करना चाहूंगा जैसे कि आप जीथब एंटरप्राइज (लेकिन मुफ्त में) के साथ करते हैं।

मैंने गितलब को ढूंढ लिया है और सोच रहा था कि क्या वैसे भी मैं गितलब की तरह गितलब पन्नों का उपयोग कर सकता हूं। क्या यह संभव है?


Gitlab-like से आपका मतलब है GitLab के मार्कडाउन और वेबसाइट को अपडेट करने की क्षमता सिर्फ एक git रेपो को धकेल कर?
फूप्स

मेरा मतलब है कि जब मैं एक gitlab रेपो में बदलाव करता हूं तो मेरी वेबसाइट स्वचालित रूप से अपडेट हो जाती है, इसलिए हां।
बेन वाटकिंस

1
GitHub Pages सिर्फ Jekyll का उपयोग करता है । तो उस + वेब सर्वर को स्थापित करें जो स्थैतिक पृष्ठों को कार्य करता है, और शायद धक्का दिए गए सामग्री के स्वचालित चित्र के लिए कुछ गिट हुक में फेंक सकता है, और आप मूल रूप से काम कर रहे हैं।
Ajedi32

अरे @ Ajedi32 इस दृष्टिकोण के साथ समस्या यह है कि हर नए प्रोजेक्ट के लिए आपके पास git रेपो और वेब सर्वर सेटअप है। GitHub पृष्ठों के साथ यह सिर्फ एक और शाखा है जिसे आप धक्का देते हैं।
फिओरिक्स

@fiorix हाँ, अगर आप चीजों को उस हद तक स्वचालित करना चाहते हैं तो आपको शायद कुछ अधिक जटिल समाधान की आवश्यकता होगी। फिर भी संभव है, आपको बस किसी तरह से गिटलैब प्रोजेक्ट निर्माण प्रणाली को हुक करने की आवश्यकता है (हालांकि मुझे नहीं पता कि वास्तव में, मेरा अनुमान सबसे सरल तरीका है, जिसमें शायद फाइलसिस्टम को देखना शामिल होगा, या शायद गिटलब एपीआई को कुछ कॉल)।
Ajedi32

जवाबों:


18

खुशखबरी!

8.3 के बाद से (दिसंबर 2015) GitLab में "GitLab Pages" है। https://about.gitlab.com/2015/12/22/gitlab-8-3-released/

यह सुविधा GitLab.com (जो ईई चलाता है) पर उपलब्ध है जहां आप मुफ्त, असीमित रिपॉजिटरी, सार्वजनिक / निजी कर सकते हैं।

यहां GitLab पेज के लिए प्रलेखन है, यह समझाते हुए कि आप GitLab पर अपनी स्थिर वेबसाइटों को कैसे मुफ्त में होस्ट कर सकते हैं। http://doc.gitlab.com/ee/pages/README.html


5

मुझे यकीन नहीं है कि आप क्या पूछ रहे हैं। आप कहते हैं कि आप अपने स्वयं के सर्वर पर होस्ट करना चाहते हैं, लेकिन आपका प्रश्न कहता है कि आप गिटलैब पृष्ठों की तरह होस्ट करना चाहते हैं जो आपका स्वयं का सर्वर नहीं है।

किसी भी मामले में शायद यह मदद करेगा

मैं यह करता हूं

स्थानीय पीसी पर

mkdir folderforwebsite
cd folderforwebsite
git init
echo "hello world" > index.html
git add index.html
git commit -m "initial commit"

अब मेरे पास स्थानीय स्तर पर रेपो है। इसे सर्वर पर कॉपी करें

scp -r ../folderforwebsite username@mydomain.com:/path/from/root/to/webfolder

अब मेरे पास रिमोट सर्वर पर है।

ssh name@mydomain.com 'cd path/to/webfolder; git checkout -b live`

अब वेबसाइट पर एक मास्टर और लाइव शाखा दोनों हैं। मैं यह कर रहा हूँ क्योंकि AFAICT आप वर्तमान शाखा को धक्का नहीं दे सकते। तो अब हमारे पास एक "लाइव" शाखा है जो रिमोट पर चालू है और एक "मास्टर" शाखा है जो नहीं है

अंत में मेरे स्थानीय रेपो में एक रिमोट जोड़ें

git remote add web ssh://name@mydomain.com/path/from/root/to/webfolder

अब, कभी भी मैं वेबसाइट को अपडेट करना चाहता हूं जो मैं अपने स्थानीय मास्टर शाखा में सामान की जांच करता हूं और फिर इस स्क्रिप्ट को चलाता हूं

#!/bin/sh
set -e
set -v
git push web master
ssh username@mydomain.com git merge --ff-only master

git pushवेबसर्वर पर गैर वर्तमान शाखा को अपने परिवर्तनों को धक्का। sshवर्तमान शाखा को "मास्टर" में परिवर्तन वेब सर्वर में और तेजी से आगे तो लॉग। इस मामले में "लाइव" शाखा।

--ff-only सर्वर पर परिवर्तन होने पर विफल होने के लिए कहते हैं।

अगर सर्वर पर बदलाव होते हैं तो मैं उन्हें अपने स्थानीय मास्टर के साथ खींच सकता हूं

git pull web live

और बात पर। इससे पहले कि मैं इनमें से कोई भी SSH कुंजी को दूरस्थ सर्वर पर सेट करता हूं, ताकि मुझे कोई पासवर्ड टाइप न करना पड़े

इसका जीथूब या गिटलैब से कोई संबंध नहीं है। मैं अपने परिवर्तनों को वहाँ भी धकेल सकता हूँ लेकिन वे जुड़े नहीं हैं।



2

Google पर विभिन्न प्रश्नों की थोड़ी खोज के साथ, मुझे एक रास्ता मिल गया। यह सबसे अच्छा तरीका नहीं हो सकता है और यह जटिल हो सकता है, लेकिन यह काम करना चाहिए और यही मुख्य बात है। हालांकि, अगर आप एक बेहतर तरीका जानते हैं या एक पा सकते हैं, तो कृपया मुझे बताएं!

मैंने पाया कि आप अपने कोड को Git हुक के माध्यम से अपने सर्वर पर तैनात कर सकते हैं। आपको बस इतना करना है कि अपने सर्वर में SSH करें, एक git रेपो बनाएं और फिर इस रेपो में आने के लिए पुश अप सेट करें। यह आपको अपने सर्वर पर अपने कमिट्स को आगे बढ़ाने की अनुमति देगा, लेकिन इस बिंदु पर गिटलैब से कोई लेना-देना नहीं है।

अगला कदम गिट्टैब के लिए पुश यूआरएल को उसी रिमोट से जोड़ना है। इस तरह, आप प्रत्येक बार गिटलैब और साइट दोनों पर जोर देंगे। नतीजतन, गिटलैब रेपो और वास्तविक साइट दोनों सिंक में होंगे। हालांकि यह एक हैक है और निश्चित रूप से कुशल नहीं है।

मैंने पाया कि इस ब्लॉग पोस्ट से git के माध्यम से अपने सर्वर पर अपने कोड को कैसे तैनात किया जाए: http://sebduggan.com/blog/deploy-your-website-changes-use-git/

मैंने पाया कि स्टैकओवरफ्लो पर इस सवाल से आपके रिमूव में दो पुश यूट्रल जोड़ सकते हैं: /programming/14290113/git-pushing-code-to-two-remotes

जैसा कि मैंने कहा, यदि आप एक बेहतर तरीका पा सकते हैं, तो कृपया मुझे बताएं। यह काम करेगा, लेकिन इसका मतलब एक ही कोड के दो संस्करण हैं। बेशक, यह बहुत गड़बड़ है और आपके सर्वर के भंडारण का एक बड़ा बेकार है।


1

वर्तमान में, आप जो सबसे अच्छा कर सकते हैं, वह GitLab CI को Amazon S3 जैसे स्थिर सर्वर पर धकेलना है।

यदि आप Git के साथ तैनाती कर सकते हैं, तो निम्नलिखित (अनसुलझा) सवाल यह है कि इसे gitlab के साथ कैसे किया जाए: /programming/14288288/gitlab-repository-mirroring

फ़ीचर ट्रैकर में इसके लिए एक विशिष्ट अनुरोध है: http://feedback.gitlab.com/forums/176466-general/suggestions/5599145-preview-render-static-html-pages.pushed-to-repos

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.