Posso ospitare il mio sito Web tramite gitlab come puoi con le pagine github?


20

Mi piacerebbe usare git per ospitare il mio sito Web e mi piacerebbe una piattaforma su cui posso accedere online per seguirla (qualcosa come Github). Penseresti in tal caso che le pagine di Github sarebbero la strada perfetta per me, anche se non voglio usare le pagine di Github. Vorrei ospitare tutto questo sui miei server come fai tu con Github enterprise (ma gratuitamente).

Ho trovato Gitlab e mi chiedevo se ci fosse comunque modo di usare Gitlab come le pagine di Github. È possibile?


Con gitlab-like intendi il markdown di GitLab e la possibilità di aggiornare il sito Web semplicemente spingendo a un repository git?
phoops,

Voglio dire che il mio sito Web si aggiorna automaticamente quando apporto una modifica a un repository gitlab, quindi sì.
Ben Watkins,

1
GitHub Pages utilizza solo Jekyll . Quindi installa quel + un server web che serve pagine statiche e magari aggiungi alcuni git hook per distribuzioni automatizzate di contenuti inviati e il gioco è fatto.
Ajedi32,

Hey @ Ajedi32 il problema con questo approccio è che per ogni nuovo progetto hai il repository git e la configurazione del web server. Con le pagine GitHub è solo un altro ramo che spingi.
fiorix,

@fiorix Sì, se vuoi automatizzare le cose a quel livello probabilmente avrai bisogno di una soluzione un po 'più complessa. Comunque fattibile, devi solo collegarti al sistema di creazione del progetto GitLab in qualche modo (anche se non so esattamente come, la mia ipotesi è che il modo più semplice implicherebbe probabilmente la visione del filesystem, o forse alcune chiamate all'API GitLab).
Ajedi32,

Risposte:



5

Non sono proprio sicuro di quello che stai chiedendo. Dici di voler ospitare sul tuo server ma la tua domanda dice che vuoi ospitare come pagine gitlab che non sono il tuo server.

In ogni caso forse questo ti aiuterà

Questo è ciò che faccio

sul pc locale

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

Ora ho un repository locale. Copia sul server

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

Ora ce l'ho sul server remoto.

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

Ora sul sito Web sono presenti sia una sede principale sia una sede attiva. Faccio questo dal momento che AFAICT non è possibile passare al ramo corrente. Quindi ora abbiamo un ramo "live" che è corrente sul telecomando e un ramo "master" che non lo è

Infine aggiungi un telecomando al mio repository locale

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

Ora, ogni volta che voglio aggiornare il sito Web, controllo le cose nel mio ramo principale locale e quindi eseguo questo script

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

La git pushspinge le mie modifiche al ramo non corrente sul server web. I sshceppi poi nel server web e in rapida in avanti i cambiamenti nel "master" per il ramo corrente. In questo caso il ramo "live".

--ff-only dice di fallire se ci sono cambiamenti sul server.

Se ci sono cambiamenti sul server, posso inserirli nel mio master locale con

git pull web live

Per di più. Prima di eseguire qualsiasi operazione, ho impostato le chiavi SSH sul server remoto, quindi non devo digitare alcuna password

Questo non ha assolutamente alcuna connessione con github o gitlab. Potrei inserire anche qui le mie modifiche ma non sono collegate.



2

Con una piccola ricerca di varie domande su Google, ho trovato un modo. Potrebbe non essere il modo migliore e potrebbe essere troppo complicato, ma dovrebbe funzionare e questa è la cosa principale. Tuttavia, se conosci un modo migliore o riesci a trovarne uno, per favore fatemelo sapere!

Ho scoperto che è possibile distribuire il codice sui server tramite hook Git. Tutto quello che devi fare è SSH nel tuo server, creare un repository git e quindi impostare un hook per farti eseguire il commit di questo repository. Ciò ti consentirà di inviare i tuoi commit ai tuoi server, ma a questo punto non ha nulla a che fare con gitlab.

Il prossimo passo è aggiungere l'URL push per gitlab allo stesso telecomando. In questo modo, spingerai ogni volta sia su gitlab che sul sito stesso. Di conseguenza, sia il repository gitlab che il sito reale saranno entrambi sincronizzati. Anche se questo è un trucco e sicuramente non è efficiente.

Ho scoperto come distribuire il tuo codice sui tuoi server tramite git da questo post del blog: http://sebduggan.com/blog/deploy-your-website-changes-using-git/

Ho scoperto che potresti aggiungere due URL push ai tuoi telecomandi in git da questa domanda su stackoverflow: /programming/14290113/git-pushing-code-to-two-remotes

Come ho detto, se riesci a trovare un modo migliore, per favore fatemelo sapere. Funzionerà, ma significa avere due versioni dello stesso codice. Naturalmente, questo è molto disordinato ed è un grande spreco di memoria del tuo server.


1

Attualmente, il meglio che puoi fare è GitLab CI per eseguire il push su un server statico come Amazon S3.

Se è possibile distribuire con Git, la seguente domanda (non risolta) è specifica su come farlo con gitlab: /programming/14288288/gitlab-repository-mirroring

C'è una richiesta specifica per questo nel tracker delle funzionalità: http://feedback.gitlab.com/forums/176466-general/suggestions/5599145-preview-render-static-html-pages-pushed-to-repos

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.