Чи можу я розмістити свій веб-сайт через gitlab, як ви можете, зі сторінками github?


20

Я хотів би використовувати git для розміщення свого веб-сайту, і я хотів би, щоб платформа, на яку я можу увійти в Інтернет, щоб разом з ним (як-то Github). Ви б подумали, в якому випадку сторінки Github були б ідеальним маршрутом для мене, хоча я не хочу використовувати сторінки Github. Я хотів би розмістити все це на своїх власних серверах, як ви робите з підприємством Github (але безкоштовно).

Я знайшов Gitlab і мені було цікаво, чи все-таки я можу використовувати Gitlab, як сторінки Github. Це можливо?


Під подібними до gitlab ви маєте на увазі розмітку та можливість оновлення веб-сайту GitLab, просто натиснувши на репоту git?
foops

Я маю на увазі, що мій веб-сайт автоматично оновлюється, коли я вношу зміни в репортажі gitlab, так що так.
Бен Уоткінс

1
GitHub Pages просто використовує Jekyll . Тож встановіть цей + веб-сервер, який обслуговує статичні сторінки, і, можливо, киньте кілька гачок для git для автоматизованих розгортань надісланого вмісту, і ви в основному все зробили.
Ajedi32

Привіт @ Ajedi32, проблема такого підходу полягає в тому, що для кожного нового проекту ви маєте git repo та налаштування веб-сервера. Зі сторінками GitHub це просто ще одна гілка, яку ви натискаєте.
fiorix

@fiorix Так, якщо ви хочете автоматизувати речі до такої міри, можливо, вам знадобиться дещо складніше рішення. Все-таки це можливо, просто потрібно якось підключитися до системи створення проектів GitLab (хоча я не знаю, як саме, я думаю, найпростіший спосіб, мабуть, передбачає перегляд файлової системи або, можливо, деякі дзвінки до API GitLab).
Ajedi32

Відповіді:


18

Гарні новини!

З 8.3 (грудень 2015 року) у GitLab є "Сторінки GitLab". https://about.gitlab.com/2015/12/22/gitlab-8-3-released/

Ця функція доступна на GitLab.com (на якому працює EE), де ви можете мати безкоштовні, необмежені сховища, державні / приватні.

Ось документація для GitLab Pages, що пояснює, як можна безкоштовно розміщувати статичні веб-сайти на GitLab. http://doc.gitlab.com/ee/pages/README.html


5

Я не дуже впевнений, про що ви питаєте. Ви кажете, що хочете розмістити хост на своєму власному сервері, але у вашому запитанні йдеться про те, що ви хочете розміщувати як сторінки gitlab, які не є вашим власним сервером.

У будь-якому випадку, можливо, це допоможе

Це я і роблю

на місцевому ПК

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

Зараз у мене є місцеве репо на місцевому рівні. Скопіюйте його на сервер

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

Тепер я маю це на віддаленому сервері.

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

Зараз на веб-сайті є і головний, і живий відділення. Я роблю це, оскільки AFAICT ви не можете натиснути на поточну гілку. Отже, зараз у нас є "жива" гілка, яка є поточною на віддаленій, і "головна" гілка, яка ні

Нарешті додайте пульт до мого місцевого репо

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

Тепер, коли я хочу оновити веб-сайт, я перевіряю речі у своїй місцевій головній гілці, а потім запускаю цей сценарій

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

git pushШтовхає мої зміни в непоточний гілки на веб - сервері. В sshтой реєструється на веб - сервер і швидко пересилає зміни в «майстер» до поточної гілки. У цьому випадку "жива" гілка.

--ff-only говорить про помилку, якщо на сервері є зміни.

Якщо є зміни на сервері, я можу занести їх до свого місцевого майстра

git pull web live

З іншого боку. Перш ніж робити щось із цього, я встановлюю SSH-ключі на віддалений сервер, тому мені не потрібно вводити паролі

Це абсолютно не має зв'язку з github або gitlab. Я можу також натиснути свої зміни там, але вони не пов'язані.



2

Трохи шукаючи різні запитання в Google, я знайшов спосіб. Це може бути не найкращим способом, і це може бути надто складним, але це має працювати, і це головне. Хоча, якщо ви знаєте кращий спосіб або можете його знайти, будь ласка, повідомте мене!

Я виявив, що ви можете розгорнути свій код на своїх серверах через гачки Git. Все, що вам потрібно зробити, це SSH на ваш сервер, створити git repo, а потім встановити гачок, щоб ви підштовхували коміти до цього репо. Це дозволить вам перенести свої зобов’язання на ваші сервери, але це не має нічого спільного з gitlab.

Наступним кроком є ​​додавання URL-адреси push для gitlab до цього ж пульта. Таким чином, ви будете щоразу підштовхуватися до gitlab і до самого сайту. Як результат, і gitlab repo, і власне сайт будуть синхронізовані. Хоча це злом і, безумовно, не ефективно.

З цієї публікації я дізнався, як розгорнути код на ваших серверах за допомогою git: http://sebduggan.com/blog/deploy-your-website-changes-using-git/

Я встановив, що ви можете додати два push-адреси до своїх віддалених програм у git із цього питання в stackoverflow: /programming/14290113/git-pushing-code-to-two-remotes

Як я вже сказав, якщо ви зможете знайти кращий шлях, будь ласка, повідомте мене про це. Це буде працювати, але це означає, що є дві версії одного і того ж коду. Звичайно, це дуже безладно і є великою витратою пам’яті вашого сервера.


1

Наразі найкраще, що ви можете зробити, - це GitLab CI для переходу на статичний сервер, як Amazon S3.

Якщо ви можете розгорнути за допомогою Git, наступне (невирішене) питання стосується того, як це зробити за допомогою gitlab: /programming/14288288/gitlab-repository-mirroring

Існує конкретний запит на це у трекері функцій: http://feedback.gitlab.com/forums/176466-general/suggestions/5599145-preview-render-static-html-pages-pushed-to-repos

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.