Web sitemi github sayfalarında olduğu gibi gitlab aracılığıyla barındırabilir miyim?


20

Git'i web sitemi barındırmak için kullanmak isterdim ve onunla birlikte gitmek için çevrimiçi olarak giriş yapabileceğim bir platform isterdim (Github gibi bir şey). Bu durumda Github sayfalarını kullanmak istemememe rağmen Github sayfalarının benim için mükemmel bir yol olacağını düşünürdünüz. Bunu Github girişimiyle yaptığınız gibi kendi sunucularımda barındırmak istiyorum (ancak ücretsiz).

Gitlab'ı buldum ve Gitlab'ı Github sayfaları gibi kullanabileceğimi merak ediyordum. Mümkün mü?


Gitlab gibi, GitLab'ın işaretlemesi ve sadece bir git repo'suna basarak web sitesini güncelleme yeteneğini mi kastediyorsunuz?
Mayıs'ın askerleri

Bir gitlab deposunda değişiklik yaptığımda web sitemin otomatik olarak güncellenmesi demek, yani evet.
Ben Watkins

1
GitHub Pages sadece Jekyll kullanır . Bu yüzden + statik sayfalar sunan bir web sunucusu yükleyin ve itilen içeriğin otomatik olarak dağıtılması için birkaç git kancaya atın ve temelde işiniz bitti.
Ajedi32

Hey @ Ajedi32 bu yaklaşım ile sorun her yeni proje için git repo ve web sunucusu kurulum olmasıdır. GitHub sayfalarında, ittiğiniz başka bir daldır.
fiorix

@fiorix Evet, işleri o dereceye kadar otomatikleştirmek istiyorsanız, muhtemelen biraz daha karmaşık bir çözüme ihtiyacınız olacak. Yine de yapılabilir, sadece bir şekilde GitLab proje oluşturma sistemine bağlanmanız gerekiyor (tam olarak nasıl olduğunu bilmiyorum, tahminim muhtemelen en basit yol dosya sistemini izlemeyi veya belki de GitLab API'sına bazı çağrıları içermektir).
Ajedi32

Yanıtlar:



5

Ne istediğini tam olarak bilmiyorum. Kendi sunucunuzda barındırmak istediğinizi söylüyorsunuz, ancak sorunuz kendi sunucunuz olmayan gitlab sayfaları gibi barındırmak istediğinizi söylüyor.

Her durumda belki bu yardımcı olacaktır

Bu benim işim

yerel bilgisayarda

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

Şimdi yerel bir repo var. Sunucuya kopyalayın

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

Şimdi uzak sunucuda var.

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

Artık web sitesinde hem usta hem de canlı bir şube var. Bunu AFAICT'ten beri şu anki şubeye itemezsiniz. Şimdi uzaktan kumandada güncel olan bir "canlı" dalımız ve olmayan bir "ana" dalımız var.

Son olarak yerel repoma uzaktan kumanda ekle

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

Şimdi, web sitesini güncellemek istediğimde, yerel ana şubeme bir şeyler kontrol ediyorum ve sonra bu komut dosyasını çalıştırıyorum

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

git pushWeb sunucusu üzerinde duran dalına benim değişiklikleri iter. Daha sshsonra web sunucusunda oturum açar ve "master" deki değişiklikleri geçerli şubeye hızlı bir şekilde iletir. Bu durumda "canlı" dal.

--ff-only sunucuda değişiklikler varsa başarısız olduğunu söylüyor.

Sunucuda değişiklikler varsa bunları yerel yöneticime çekebilirim

git pull web live

Daha çok şey. Bunlardan herhangi birini yapmadan önce, uzak sunucuda SSH anahtarları ayarlıyorum, bu yüzden herhangi bir şifre yazmam gerekmiyor

Bunun kesinlikle github veya gitlab ile bağlantısı yoktur. Değişikliklerimi oraya da itebilirim ama bağlı değiller.



2

Google'da çeşitli soruları biraz arayarak bir yol buldum. En iyi yol olmayabilir ve aşırı karmaşık olabilir, ancak işe yaramalıdır ve ana şey budur. Yine de, daha iyi bir yol biliyorsanız veya bulabilirseniz, lütfen bana bildirin!

Kodunuzu Git kancaları aracılığıyla sunucularınıza dağıtabileceğinizi buldum. Yapmanız gereken tek şey sunucunuza SSH, bir git repo oluşturmak ve daha sonra bu repo taahhütleri itmek için bir kanca kurmak. Bu, taahhütlerinizi sunucularınıza aktarmanıza izin verecektir, ancak bu noktada gitlab ile ilgisi yoktur.

Bir sonraki adım, aynı uzaktan kumandaya gitlab için push url'yi eklemektir. Bu şekilde, her zaman gitlab ve sitenin kendisine doğru iteceksiniz. Sonuç olarak, hem gitlab repo hem de gerçek site senkronize olacaktır. Rağmen bu bir kesmek ve kesinlikle verimli değildir.

Kodunuzu şu blog yayınından git yoluyla sunucularınıza nasıl dağıtacağınızı buldum: http://sebduggan.com/blog/deploy-your-website-changes-using-git/

Stackoverflow'daki bu sorudan git'te uzaktan kumandalarınıza iki push url ekleyebileceğinizi buldum: /programming/14290113/git-pushing-code-to-two-remotes

Dediğim gibi, daha iyi bir yol bulabilirseniz, lütfen bana bildirin. Bu işe yarayacaktır, ancak aynı kodun iki sürümüne sahip olmak anlamına gelir. Tabii ki, bu çok dağınık ve sunucunuzun depolamasında büyük bir israf.


1

Şu anda yapabileceğiniz en iyi şey, Amazon S3 gibi statik bir sunucuya geçmek için GitLab CI'ye gitmektir.

Git ile dağıtabiliyorsanız, aşağıdaki (çözülmemiş) soru gitlab ile nasıl yapılacağına özgüdür: /programming/14288288/gitlab-repository-mirroring

Özellik izleyicide bunun için özel bir istek var: http://feedback.gitlab.com/forums/176466-general/suggestions/5599145-preview-render-static-html-pages-pushed-to-repos

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.