githubページでできるように、gitlabで私のウェブサイトをホストできますか?


20

私はgitを使用して自分のWebサイトをホストしたいと考えています。また、オンラインでログインできるプラットフォーム(Githubなど)が必要です。Githubページは使いたくありませんが、どちらの場合でも、Githubページは私にとって完璧なルートになると思います。あなたがGithubエンタープライズで行うのと同じように、これをすべて自分のサーバーでホストしたいと思います(ただし無料です)。

私はGitlabを見つけましたが、とにかくGitlabをGithubページのように使用できるかどうか疑問に思っていました。出来ますか?


gitlabのように、GitLabのマークダウンと、gitリポジトリにプッシュするだけでWebサイトを更新する機能を意味しますか?
フープ

gitlabリポジトリに変更を加えると、Webサイトが自動的に更新されるので、はい。
ベンワトキンス

1
GitHub PagesはJekyllを使用するだけです。そのため、静的ページを提供するWebサーバーをインストールし、プッシュされたコンテンツの自動展開用にいくつかのgitフックを追加するだけで、基本的には完了です。
Ajedi32

ちょっと@ Ajedi32このアプローチの問題は、新しいプロジェクトごとにgitリポジトリとWebサーバーのセットアップがあることです。GitHubページでは、プッシュするのは別のブランチにすぎません。
フィオリックス

@fiorixええ、その程度まで物事を自動化したいなら、おそらくもっと複雑な解決策が必要でしょう。それでも実行可能ですが、何らかの方法でGitLabプロジェクト作成システムに接続する必要があります(正確にはわかりませんが、私の推測では、おそらくファイルシステムを監視するか、GitLab APIを呼び出す必要があるでしょう)。
Ajedi32

回答:


18

良いニュースです!

8.3(2015年12月)以降、GitLabには「GitLab Pages」があります。 https://about.gitlab.com/2015/12/22/gitlab-8-3-released/

この機能はGitLab.com(EEを実行)で利用でき、無料で無制限のリポジトリ、パブリック/プライベートを使用できます。

GitLab Pagesのドキュメントは、GitLabで静的Webサイトを無料でホストする方法を説明しています。 http://doc.gitlab.com/ee/pages/README.html


5

あなたが何を求めているのか本当に分かりません。自分のサーバーでホストしたいが、自分のサーバーではないgitlabページのようにホストしたいという質問があります。

いずれにせよ、おそらくこれは役立ちます

これが私がすることです

ローカルPC上

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`

これで、Webサイトにマスターブランチとライブブランチの両方があります。あなたが現在のブランチにプッシュできないので、私はこれを行います。これで、リモートで現在の「ライブ」ブランチと、そうでない「マスター」ブランチができました。

最後に、ローカルリポジトリにリモートを追加します

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

これで、Webサイトを更新したいときはいつでも、ローカルマスターブランチにチェックインして、このスクリプトを実行

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

これgit pushにより、Webサーバー上の現在でないブランチに変更がプッシュされます。sshその後、ウェブサーバにログインし、現在のブランチに「マスター」で早送り変更。この場合、「ライブ」ブランチ。

--ff-only サーバーに変更があると失敗するように指示します。

サーバーに変更がある場合、ローカルマスターに変更を加えることができます

git pull web live

もっと。これを行う前に、リモートサーバーにSSHキーをセットアップして、パスワードを入力する必要がないようにします

これはgithubまたはgitlabにはまったく接続していません。そこに変更をプッシュすることもできますが、それらは接続されていません。



2

Googleでさまざまな質問を少し検索して、方法を見つけました。それは最良の方法ではないかもしれませんし、複雑すぎるかもしれませんが、それはうまくいくはずであり、それが主なことです。しかし、あなたがより良い方法を知っているか、それを見つけることができるなら、私に知らせてください!

Gitフックを介してサーバーにコードをデプロイできることがわかりました。必要なことは、サーバーにSSHで接続し、gitリポジトリを作成してから、このリポジトリにコミットをプッシュするためのフックを設定することだけです。これにより、コミットをサーバーにプッシュできますが、現時点ではgitlabとは関係ありません。

次のステップは、gitlabのプッシュURLを同じリモートに追加することです。この方法では、毎回gitlabとサイト自体の両方にプッシュします。その結果、gitlabリポジトリと実際のサイトの両方が同期されます。これはハックですが、間違いなく効率的ではありません。

次のブログ投稿から、gitを使用してコードをサーバーにデプロイする方法を見つけました:http : //sebduggan.com/blog/deploy-your-website-changes-using-git/

stackoverflowのこの質問から、gitのリモートに2つのプッシュURLを追加できることがわかりました:https : //stackoverflow.com/questions/14290113/git-pushing-code-to-two-remotes

私が言ったように、より良い方法を見つけることができれば、私に知らせてください。これは機能しますが、同じコードの2つのバージョンがあることを意味します。もちろん、これは非常に面倒で、サーバーのストレージの大きな無駄です。


1

現在、できる最善の方法は、GitLab CIを使用してAmazon S3などの静的サーバーにプッシュすることです。

Gitを使用してデプロイできる場合、次の(未解決の)質問はgitlabでそれを行う方法に固有です:https ://stackoverflow.com/questions/14288288/gitlab-repository-mirroring

機能トラッカーでそのための特定の要求があります:http : //feedback.gitlab.com/forums/176466-general/suggestions/5599145-preview-render-static-html-pages-pushed-to-repos

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.