All Projects → pauldotknopf → gitlab-page-server

pauldotknopf / gitlab-page-server

Licence: MIT License
A GitLab page server. Similar to the built-in page server, but with some additional features.

Programming Languages

C#
18002 projects
shell
77523 projects

Projects that are alternatives of or similar to gitlab-page-server

node-gitlab-webhook
Gitlab Webhooks handler based on Node.js. Support multiple handlers.
Stars: ✭ 48 (+300%)
Mutual labels:  gitlab, gitlab-webhook
gitlab-ldap-group-sync
Manage your gitlab groups with ldap / active directory
Stars: ✭ 21 (+75%)
Mutual labels:  gitlab, gitlab-webhook
pipelines-as-code
Pipelines as Code
Stars: ✭ 37 (+208.33%)
Mutual labels:  gitlab
gitlabctl
Cross platform Gitlab management cli written in Go. Download the executable with no dependencies!
Stars: ✭ 41 (+241.67%)
Mutual labels:  gitlab
docker-dev-arduino
Arduino development environment in a container
Stars: ✭ 18 (+50%)
Mutual labels:  gitlab
ganttlab
A live Gantt chart for GitLab and GitHub
Stars: ✭ 30 (+150%)
Mutual labels:  gitlab
plugin-gitlab-webhook
[NOT MAINTAINED] Gitlab Webhook Plugin for Kanboard
Stars: ✭ 31 (+158.33%)
Mutual labels:  gitlab
obsidian
A WordPress starter kit for the modern web.
Stars: ✭ 20 (+66.67%)
Mutual labels:  gitlab
Discord-GitLab-Webhook
A Discord bot for using webhooks with GitLab (and extendable for other custom webhooks not yet built into Discord).
Stars: ✭ 35 (+191.67%)
Mutual labels:  gitlab
control-repo
An opinionated control repository and steps for setting it up in PE
Stars: ✭ 34 (+183.33%)
Mutual labels:  gitlab
myyearwithgit
代码仓库年终总结报告。
Stars: ✭ 176 (+1366.67%)
Mutual labels:  gitlab
ynest
ynest, 是一個幫助項目開始的腳手架,目前包含了 nest.js、flutter 項目,內置 CI/CD 等自動化腳本設定。
Stars: ✭ 17 (+41.67%)
Mutual labels:  gitlab
gitlab-setup
A Packer / Terraform / Ansible configuration to install Gitlab and Gitlab-CI
Stars: ✭ 53 (+341.67%)
Mutual labels:  gitlab
gitlab-merger-bot
GitLab Merger Bot
Stars: ✭ 23 (+91.67%)
Mutual labels:  gitlab
gitlab-mattermost-backup
A simple backup script for mattermost in gitlab omnibus package
Stars: ✭ 23 (+91.67%)
Mutual labels:  gitlab
multi-gitter
CLI to update multiple repositories in bulk
Stars: ✭ 99 (+725%)
Mutual labels:  gitlab
gitlab task manager
Microsoft Todo inspired task manager leveraging Gitlab's Issue Tracker as the backend
Stars: ✭ 22 (+83.33%)
Mutual labels:  gitlab
StGitlab
Sublime text Gitlab manager
Stars: ✭ 13 (+8.33%)
Mutual labels:  gitlab
VSCode-ShareCode
Share Code is an Extension for Visual Studio Code. You can find it on marketplace.
Stars: ✭ 30 (+150%)
Mutual labels:  gitlab
centos-script
🎉centos下工具安装脚本,包含基础环境配置,Gitlab、Docker、LDAP、MongoDB、MySQL、RabbitMQ、Supervisor、Node、Python、zsh、rar、zabbix、k8s、prometheus、grafana等🎉
Stars: ✭ 121 (+908.33%)
Mutual labels:  gitlab

gitlab-page-server

A GitLab page server. Similar to the built-in page server, but with some additional features.

Build Status

Details

Installation

  1. Run the server. Example docker-compose.yml file here. Configurable options here.
    • At a bare minimum, you should have the following configured for things to work properly.
    {
      "Pages": {
        "ServerUrl": "http://192.168.0.6",
        "AuthToken": "AdNAuSLZxGvU1cHycNxU"
      }
    }
    
    This configuration should go in a config.json file in the working directory of the running server.
  2. On GitLab under Project > Settings > Integrations, add a web hook that points to https://your-page-server-instance.com/hook and tick the following:
    • Job events
    • Pipeline events

That's it. Visit your-domain.com/group/project to serve your static pages.

Endpoints

  • your-domain.com/ - Serves content from your configured "RootProject".
  • your-domain.com/project/group/ - Serve content from default branch/job for the repository.
  • your-domain.com/project/group/-/pipeline/1/ - Serve content from a specific pipeline. This is great for generating previews for merge requests.
  • your-domain.com/project/group/-/job/1/ - Serve content from a single job, typically your "BuildJobName", which is pages by default.

More options

Logging

Defaults:

{
  "Logging": {
    "MinimumLevel": "Information"
  }
}

Pages

Defaults:

{
  "Pages": {
    "ServerUrl": null,
    "AuthToken": null,
    "HookToken": null,
    "AdditionalParentGroups": 0,
    "ArtifactsCacheDirectory": "artifacts",
    "JobArtifactsBasePath": "public",
    "RepositoryBranch": "master",
    "BuildJobName": "pages",
    "RootProject": null,
    "CacheProjectType": "Sliding",
    "CacheProjectSeconds": 60,
    "CachePipelineType": "Sliding",
    "CachePipelineSeconds": 60,
    "CacheJobType": "Sliding",
    "CacheJobSeconds": 60
  }
}

Details:

  • "ServerUrl": You can point this to gitlab.com or your own hosted GitLab instance.
  • "AuthToken": Generate this from your account settings.
  • "HookToken": The secret token, configured in GitLab, for the web hook. This ensures that only GitLab can post to your hook.
  • "AdditionalParentGroups": By default, all requests will attempt to match one parent group. Add more using this property. This allows you to have deep pages (your-domain.com/parent-group/sub-group/another-sub-group/project).
  • "ArtifactsCacheDirectory": The location where the artifacts will be cached on disk. This path is relative to the working directory.
  • "JobArtifactsBasePath": The directory within the download artifacts that content will be served from.
  • "RepositoryBranch": The branch that the url your-domain.com/group/project will serve from.
  • "BuildJobName": The name of the job that artifacts will be downloaded from, within a pipeline.
  • "RootProject": The project that will be served when visiting your-domain.com/. This is great for giving your domain a landing page at the root.
  • "Cache*": Various knobs for tuning caching. You likely won't need to change this. The web hooks will invalidate the cache when new artifacts are available.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].