it-swarm.com.de

Kann ich meine Website über gitlab hosten, wie Sie es mit github-Seiten können?

Ich würde gerne git zum Hosten meiner Website verwenden und würde eine Plattform lieben, auf der ich mich online einloggen kann, um mitzumachen (etwas wie Github). Sie würden in diesem Fall denken, dass Github-Seiten die perfekte Route für mich sind, obwohl ich Github-Seiten nicht verwenden möchte. Ich möchte dies alles auf meinen eigenen Servern hosten, wie Sie es bei Github Enterprise tun (aber kostenlos).

Ich habe Gitlab gefunden und mich gefragt, ob ich Gitlab-ähnliche Github-Seiten verwenden kann. Ist es möglich?

20
Ben Watkins

Gute Nachrichten!

Seit 8.3 (Dez 2015) hat GitLab "GitLab Pages". https://about.gitlab.com/2015/12/22/gitlab-8-3-released/

Diese Funktion ist auf GitLab.com (auf dem EE ausgeführt wird) verfügbar, wo Sie kostenlose, unbegrenzte öffentliche/private Repositorys haben können.

In der folgenden Dokumentation zu GitLab Pages wird erläutert, wie Sie Ihre statischen Websites auf GitLab kostenlos hosten können. http://doc.gitlab.com/ee/pages/README.html

18
Heather

Ich bin mir nicht sicher, was Sie fragen. Sie sagen, dass Sie auf Ihrem eigenen Server hosten möchten, aber Ihre Frage besagt, dass Sie wie Gitlab-Seiten hosten möchten, die nicht Ihr eigener Server sind.

In jedem Fall hilft das vielleicht

Das ist was ich mache

auf lokalem PC

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

Ich habe jetzt ein Repo vor Ort. Kopieren Sie es auf den Server

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

Jetzt habe ich es auf dem Remote-Server.

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

Jetzt gibt es auf der Website sowohl einen Master- als auch einen Live-Zweig. Ich mache das seit AFAICT. Du kannst nicht in den aktuellen Zweig pushen. Jetzt haben wir also einen "Live" -Zweig, der auf der Fernbedienung aktuell ist, und einen "Master" -Zweig, der es nicht ist

Schließlich füge eine Fernbedienung zu meinem lokalen Repo hinzu

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

Jetzt checke ich jedes Mal, wenn ich die Website aktualisieren möchte, Material in meine lokale Hauptniederlassung ein und führe dann dieses Skript aus

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

Der git Push überträgt meine Änderungen in den nicht aktuellen Zweig auf dem Webserver. Das ssh meldet sich dann beim Webserver an und leitet die Änderungen in "master" schnell an den aktuellen Zweig weiter. In diesem Fall der Zweig "live".

--ff-only schlägt fehl, wenn Änderungen auf dem Server vorgenommen wurden.

Wenn es Änderungen auf dem Server gibt, kann ich sie mit in meinen lokalen Master ziehen

git pull web live

Auf mehr Sache. Bevor ich dies tue, richte ich SSH-Schlüssel auf dem Remote-Server ein, damit ich keine Passwörter eingeben muss

Dies hat absolut keine Verbindung zu Github oder Gitlab. Ich könnte meine Änderungen auch dort pushen, aber sie sind nicht verbunden.

5
gman

Es gibt ein nodejs-Projekt, das dies implementiert: https://github.com/Glavin001/GitLab-Pages

4

Mit ein wenig Suche nach verschiedenen Fragen bei Google habe ich einen Weg gefunden. Es ist vielleicht nicht der beste Weg und es ist vielleicht zu kompliziert, aber es sollte funktionieren und das ist die Hauptsache. Wenn Sie einen besseren Weg kennen oder einen finden können, lassen Sie es mich bitte wissen!

Ich habe festgestellt, dass Sie Ihren Code über Git-Hooks auf Ihren Servern bereitstellen können. Alles, was Sie tun müssen, ist SSH auf Ihrem Server, erstellen Sie ein Git-Repo und richten Sie dann einen Hook für Push-Commits für dieses Repo ein. Auf diese Weise können Sie Ihre Commits auf Ihre Server übertragen, haben jedoch an dieser Stelle nichts mit gitlab zu tun.

Der nächste Schritt ist das Hinzufügen der Push-URL für Gitlab zur selben Fernbedienung. Auf diese Weise werden Sie jedes Mal sowohl zu gitlab als auch zur Site selbst weitergeleitet. Infolgedessen sind sowohl das Gitlab-Repo als auch die eigentliche Site synchron. Obwohl dies ein Hack ist und definitiv nicht effizient ist.

In diesem Blog-Beitrag habe ich herausgefunden, wie Sie Ihren Code per Git auf Ihren Servern bereitstellen können: http://sebduggan.com/blog/deploy-your-website-changes-using-git/

Ich habe festgestellt, dass Sie aus dieser Frage zu stackoverflow zwei Push-URLs zu Ihren Remotes in git hinzufügen können: https://stackoverflow.com/questions/14290113/git-pushing-code-to-two-remotes

Wie gesagt, wenn Sie einen besseren Weg finden, lassen Sie es mich bitte wissen. Dies wird funktionieren, aber es bedeutet, dass zwei Versionen desselben Codes vorhanden sind. Dies ist natürlich sehr chaotisch und stellt eine große Verschwendung des Speichers Ihres Servers dar.

2
Ben Watkins

Derzeit können Sie GitLab CI am besten auf einen statischen Server wie Amazon S3 pushen.

Wenn Sie mit Git bereitstellen können, ist die folgende (ungelöste) Frage spezifisch für die Vorgehensweise mit gitlab: https://stackoverflow.com/questions/14288288/gitlab-repository-mirroring

Im Feature-Tracker gibt es dafür eine spezielle Anfrage: http://feedback.gitlab.com/forums/176466-general/suggestions/5599145-preview-render-static-html-pages-pushed-to- Repos