Posso hospedar meu site através do gitlab como você pode nas páginas do github?

20

Eu adoraria usar o git para hospedar meu site e adoraria uma plataforma na qual eu possa fazer login online para acompanhá-lo (algo como o Github). Nesse caso, você pensaria que as páginas do Github seriam a rota perfeita para mim, embora eu não queira usar as páginas do Github. Gostaria de hospedar tudo isso em meus próprios servidores, como você faz com o Github enterprise (mas de graça).

Eu encontrei o Gitlab e queria saber se existe alguma maneira de usar o Gitlab como nas páginas do Github. É possível?

Ben Watkins
fonte
Por gitlab-like você quer dizer a remarcação e a capacidade do GitLab de atualizar o site apenas pressionando para um repositório git?
phoops 25/05
Quero dizer, meu site é atualizado automaticamente quando faço uma alteração em um repositório do gitlab, então sim.
Ben Watkins
11
As páginas do GitHub usam o Jekyll . Portanto, instale esse + um servidor Web que atenda a páginas estáticas e talvez instale alguns ganchos git para implantações automatizadas de conteúdo enviado, e você está basicamente pronto.
Ajedi32
Hey @ Ajedi32, o problema com esta abordagem é que, para cada novo projeto, você tem o repositório git e a configuração do servidor web. Com as páginas do GitHub, é apenas mais um ramo que você envia.
Fiorix 26/04/2015
@ fiorix Sim, se você quiser automatizar as coisas nesse nível, provavelmente precisará de uma solução um pouco mais complexa. Ainda possível, você só precisa se conectar ao sistema de criação de projetos do GitLab de alguma forma (embora eu não saiba exatamente, meu palpite é que a maneira mais simples provavelmente envolveria a observação do sistema de arquivos ou talvez algumas chamadas para a API do GitLab).
precisa saber é o seguinte

Respostas:

5

Não tenho muita certeza do que você está perguntando. Você diz que deseja hospedar em seu próprio servidor, mas sua pergunta diz que deseja hospedar como páginas do gitlab, que não é seu próprio servidor.

De qualquer forma, talvez isso ajude

Isto é o que eu faço

no pc local

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

Agora tenho um repo localmente. Copie-o para o servidor

scp -r ../folderforwebsite [email protected]:/path/from/root/to/webfolder

Agora eu tenho no servidor remoto.

ssh [email protected] 'cd path/to/webfolder; git checkout -b live`

Agora há um ramo mestre e ao vivo no site. Faço isso desde AFAICT, você não pode enviar para o ramo atual. Portanto, agora temos uma ramificação "ativa", atual no controle remoto, e uma ramificação "principal", que não é

Por fim, adicione um controle remoto ao meu repositório local

git remote add web ssh://[email protected]/path/from/root/to/webfolder

Agora, sempre que eu quiser atualizar o site, verifico as coisas no meu ramo principal local e, em seguida, corro esse script

#!/bin/sh
set -e
set -v
git push web master
ssh [email protected] git merge --ff-only master

O git pushempurra minhas alterações no ramo não-corrente no servidor web. Em sshseguida, efetua login no servidor da web e avança rapidamente as alterações em "master" para a ramificação atual. Nesse caso, a ramificação "ao vivo".

--ff-only diz falhar se houver alterações no servidor.

Se houver alterações no servidor, posso trazê-las para o meu mestre local com

git pull web live

Em mais coisas. Antes de fazer isso, configuro as chaves SSH no servidor remoto para não precisar digitar senhas

Isso não tem absolutamente nenhuma conexão com o github ou o gitlab. Também posso enviar minhas alterações para lá, mas elas não estão conectadas.

gman
fonte
2

Com uma pequena pesquisa de várias perguntas no Google, encontrei uma maneira. Pode não ser o melhor caminho e pode ser muito complicado, mas deve funcionar e isso é o principal. No entanto, se você conhece uma maneira melhor ou pode encontrar uma, informe-me!

Descobri que você pode implantar seu código em seus servidores por meio de ganchos Git. Tudo o que você precisa fazer é SSH no servidor, criar um repositório git e configurar um gancho para você enviar confirmações para esse repositório. Isso permitirá que você envie seus commits para seus servidores, mas não tem nada a ver com o gitlab neste momento.

O próximo passo é adicionar o URL de envio do gitlab ao mesmo controle remoto. Dessa forma, você estará pressionando o gitlab e o próprio site a cada vez. Como resultado, o repositório gitlab e o site real estarão sincronizados. Embora isso seja um hack e definitivamente não seja eficiente.

Eu descobri como implantar seu código nos servidores via git nesta postagem do blog: http://sebduggan.com/blog/deploy-your-website-changes-using-git/

Descobri que você poderia adicionar dois URLs de envio aos seus controles remotos no git a partir desta pergunta no stackoverflow: /programming/14290113/git-pushing-code-to-two-remotes

Como eu disse, se você puder encontrar uma maneira melhor, informe-me. Isso funcionará, mas significa ter duas versões do mesmo código. Obviamente, isso é muito confuso e é um grande desperdício de armazenamento do servidor.

Ben Watkins
fonte
1

Atualmente, o melhor que você pode fazer é usar o GitLab CI para enviar para um servidor estático como o Amazon S3.

Se você pode implantar com o Git, a seguinte pergunta (não resolvida) é específica de como fazê-lo com o gitlab: /programming/14288288/gitlab-repository-mirroring

Há uma solicitação específica para isso no rastreador de recursos: http://feedback.gitlab.com/forums/176466-general/suggestions/5599145-preview-render-static-html-pages-pushed-to-repos

Ciro Santilli adicionou uma nova foto
fonte