No estoy realmente seguro de lo que estás preguntando. Dices que quieres alojar en tu propio servidor, pero tu pregunta dice que quieres alojar como páginas de gitlab que no es tu propio servidor.
En cualquier caso, tal vez esto ayude
Esto es lo que hago
en la PC local
mkdir folderforwebsite
cd folderforwebsite
git init
echo "hello world" > index.html
git add index.html
git commit -m "initial commit"
Ahora tengo un repositorio local. Cópialo al servidor
scp -r ../folderforwebsite username@mydomain.com:/path/from/root/to/webfolder
Ahora lo tengo en el servidor remoto.
ssh name@mydomain.com 'cd path/to/webfolder; git checkout -b live`
Ahora hay una rama maestra y otra en vivo en el sitio web. Hago esto desde AFAICT, no puedes pasar a la rama actual. Así que ahora tenemos una rama "en vivo" que es actual en el control remoto y una rama "maestra" que no es
Finalmente agregue un control remoto a mi repositorio local
git remote add web ssh://name@mydomain.com/path/from/root/to/webfolder
Ahora, cada vez que quiero actualizar el sitio web, verifico cosas en mi rama maestra local y luego ejecuto este script
#!/bin/sh
set -e
set -v
git push web master
ssh username@mydomain.com git merge --ff-only master
El git push
empuja mis cambios a la rama no actual en el servidor web. Los ssh
registros de continuación en el servidor web y el avance rápido de los cambios en el "maestro" a la rama actual. En este caso la rama "en vivo".
--ff-only
dice que falle si hay cambios en el servidor.
Si hay cambios en el servidor, puedo colocarlos en mi maestro local con
git pull web live
Sobre más cosas. Antes de hacer nada de esto, configuro las claves SSH en el servidor remoto para no tener que escribir ninguna contraseña
Esto no tiene absolutamente ninguna conexión con github o gitlab. También podría impulsar mis cambios allí, pero no están conectados.