Gitlab 与 Github 都有提供静态空间页面给我们放上静态的 html, css, js 档案,可以变成一个静态页面供网友存取,但 Github pages 的空间如果要变成私密的方式,不想要让其他人可以直接下载你整包的网站 html 的话,只能 付费
才能够有这个功能,Gitlab pages 则是免费就可以使用私密的方式架设你的网站,不需要额外付费
建立 Gitlab Pages 目录
在你的专案中建立 public
目录,并将你要部署到 GitLab Pages 的档案全部放在这个 public
目录中,这个目录的 index.html
是网站的进入点
设定 Gitlab Pages 部署方式
建立 .gitlab-ci.yml
档案,在 artifacts
设定 Gitlab pages 的目录,并设定只有在 main
的分支才会部署
# .gitlab-ci.yml
image: alpine:latest
pages:
stage: deploy
script:
- echo 'Do nothing'
# gitlab page 目录
artifacts:
paths:
- public
# 只有在 main 分支的 public 目录才会被部署
only:
- main
部署 Gitlab Pages
将建立的网站 public
目录及 .gitlab-ci.yml
档案 push 到 Gitlab,然后到 Repo 的 CI/CD > Piplines
可以看到会立即执行部署的指令,看到状态变更为 passed
就表示执行成功了
检视部署的 Gitlab Pages
在 Repo 的 Settings > Pages
那边可以看到你的 Gitlab Pages 的网址,预设是 https://<帐号>.gitlab.io/<专案位置>
,从这裡就可以看到你部署上去的页面了
设定 Gitlab Pages 存取权限
Gitlab Pages 可以做存取的限制
- Repo 的成员才可以看到此页面
- 每个人都可以看到此页面
GitLab Pages 预设是「Repo 的成员才可以看到此页面」,若你想要设定 Gitlab 存取权限的话,可以到 Setting
> General
页面,然后在页面下方的 Visibility, project features, permissions
区块点选 Expand
展开权限设定
在 Visibility, project features, permissions
下方找到 Pages
区块,选择存取的权限按下储存即可
- Only Project Members
- Everyone
这样就可以公开您的 Gitlab Pages 在网路上给大家存取了
自订网址 & SSL 凭证
如果你要自订你网站的网址,可以点选右上方的 New Domain
按钮,建立页面网址,在页面中输入你要的网址,并请 Gitlab 帮您申请免费的 Let’s Encrypt SSL 凭证
建立完成后将 DNS 设定至您的设定内,并做验证即可,验证完成后就可以看到您的页面可以透过自己的网址去连线了
Cloudflare DNS SSL 凭证
若你使用 Cloudflare 做你的 DNS 管理,必须要在 SSL 设定设定为 full
才能够正确的取得 Gitlab Pages 的免费自订网址 SSL 网址凭证
参考资料
- GitLab Pages | GitLab
- Tutorial: Create a GitLab Pages website from scratch | GitLab
- Exploring GitLab Pages | GitLab
Donate KJ 贊助作者喝咖啡
如果這篇文章對你有幫助的話,可以透過下面支付方式贊助作者喝咖啡,如果有什麼建議或想說的話可以贊助並留言給我
If this article has been helpful to you, you can support the author by treating them to a coffee through the payment options below. If you have any suggestions or comments, feel free to sponsor and leave a message for me!
方式 Method | 贊助 Donate |
PayPal | https://paypal.me/kejyun |
綠界 ECPay | https://p.ecpay.com.tw/AC218F1 |
歐付寶 OPay | https://payment.opay.tw/Broadcaster/Donate/BD2BD896029F2155041C8C8FAED3A6F8 |