Maybe GitLab 15.4 (September 2022) will help:

Getting started with GitLab Pages just got easier

We’ve made it much easier to get started with GitLab Pages. Instead of creating configuration files by hand, build them interactively using the GitLab UI.
Just answer a few basic questions on how your app is built, and we’ll build the .gitlab-ci.yml file to get you started.

This is the first time we’re using our new Pipeline Wizard, a tool that makes it easy to create .gitlab-ci.yml files by building them in the GitLab UI.
You can look forward to more simplified onboarding helpers like this one.

See Documentation and Issue.

Plus, GitLab 17.8 (January 2025) adds:

Primary domain redirect for GitLab Pages

You can now set a primary domain in GitLab Pages to automatically redirect all requests from custom domains to your primary domain. This helps maintain SEO rankings and provides a consistent brand experience by directing visitors to your preferred domain, regardless of which URL they initially use to access your site.

See Documentation and Epic.

Answer from VonC on Stack Overflow
🌐
GitLab
docs.gitlab.com › gitlab docs › use gitlab › deploy and release your application › gitlab pages › settings
GitLab Pages settings | GitLab Docs
Configure URL redirects through _redirects files. Deploy pages from any branch using CI/CD rules. Serve pre-compressed assets for faster page loads. Customize the folder from which your site is published. Generate and manage unique domains for your sites. For an introduction to Pages, see GitLab Pages.
🌐
GitLab
docs.gitlab.com › gitlab docs › use gitlab › deploy and release your application › gitlab pages
GitLab Pages | GitLab Docs
In the left sidebar, select Deploy > Pages. From the Primary domain dropdown list, select the domain to redirect to. Select Save changes. ... Introduced in GitLab 17.4. Support for variables introduced in GitLab 17.11. You can configure your Pages deployments to be automatically deleted after ...
Discussions

Configuring GitLab Pages Help!
Hey I need some help with configuring pages. I can't get it working at all and not sure what I am doing wrong. I don't know much about gitlab, but… More on reddit.com
🌐 r/gitlab
1
1
January 8, 2025
How to activate Gitlab Pages Properly? - Stack Overflow
I am currently setting up gitlab pages for our internal network. Now I have completed my project and the CI pipeline is working. Now I have gone through all the steps in the gitlab.rb configuration... More on stackoverflow.com
🌐 stackoverflow.com
GItlab Pages configuration
Ports 22,80,443,5050 are open and gitlab data, logs and configuration folders are configured in distinct volumes. It is served by a haproxy that handles SSL encryption on a let’s encrypt basis. Pages are to be served on gitlab-doc.corp.domain.com while the gitlab server is hosted at ... More on forum.gitlab.com
🌐 forum.gitlab.com
2
0
September 29, 2023
How to configure gitlab page - General - GitLab Forum
Some issues with GitLab Pages configuration (Specific domains are replaced with example.com) My GitLab domain is git.example.com, and my page domain is page.example.com. I configured the /etc/gitlab/gitlab.rb file with pages_external_url “http://page.example.com/”, gitlab_pages[‘enable’] ... More on forum.gitlab.com
🌐 forum.gitlab.com
0
October 23, 2025
🌐
GitLab
docs.gitlab.com › gitlab docs › administer › update your settings › gitlab pages
GitLab Pages administration | GitLab Docs
If you use TLS termination (HTTPS load balancing), pages cannot be served with user-provided certificates. For HTTP, either HTTP or TCP load balancing is acceptable. The following sections assume the first option. If you are not supporting custom domains, a secondary IP is not needed. This section describes the prerequisites for configuring GitLab ...
🌐
GitLab
docs.gitlab.com › gitlab docs › administer › update your settings › gitlab pages › gitlab pages for source installations
GitLab Pages administration for self-compiled installations | GitLab Docs
In this configuration, the Pages daemon is running and NGINX proxies requests to it, but the daemon can also receive requests from the public internet. Custom domains are supported without TLS. ... cd /home/git sudo -u git -H git clone https://gitlab.com/gitlab-org/gitlab-pages.git cd gitlab-pages ...
🌐
Reddit
reddit.com › r/gitlab › configuring gitlab pages help!
r/gitlab on Reddit: Configuring GitLab Pages Help!
January 8, 2025 - Take the wildcard .CSR and .KEY and put them in the path that you set in the GitLab.rb earlier. Go ahead and then reconfigure GitLab. - Lastly, to actually make the Pages work, you will want to ask you Domain Admin to create a new wildcard DNS entry for your GitLab instance (It will need to be *FQDN).
🌐
OneUptime
oneuptime.com › home › blog › how to set up pages deployment in gitlab ci
How to Set Up Pages Deployment in GitLab CI
December 21, 2025 - GitLab Pages automatically provisions Let's Encrypt certificates for custom domains. # No special CI configuration needed for HTTPS # Enable in Deploy > Pages > Force HTTPS deploy_pages: stage: deploy script: - mv dist public pages: true artifacts: paths: - public rules: - if: '$CI_COMMIT_BRANCH == "main"'
🌐
GitLab
docs.gitlab.com › gitlab docs › use gitlab › deploy and release your application › gitlab pages › tutorial: create website from scratch
Tutorial: Create a GitLab Pages website from scratch | GitLab Docs
Then configure the pipeline to ... public directory rules: - if: $CI_COMMIT_BRANCH == "main" The three default stages for GitLab CI/CD are build, test, and deploy....
Find elsewhere
🌐
GitLab
docs.gitlab.com › gitlab docs › install › installation methods › helm chart › configure › gitlab subcharts › gitlab pages chart
Using the GitLab Pages chart | GitLab Docs
gitlab: gitlab-pages: rateLimitSubnetsAllowList: - "1.2.3.4/24" - "2001:db8::1/32" This keda section enables the installation of KEDA ScaledObjects instead of regular HorizontalPodAutoscalers. This configuration is optional and can be used when there is a need for autoscaling based on custom or external metrics.
🌐
GitLab
about.gitlab.com › blog › engineering › hosting on gitlab.com with gitlab pages
Hosting on GitLab.com with GitLab Pages
April 7, 2016 - All pages are created after the build completes successfully and the artifacts for the pages job are uploaded to GitLab. Jekyll is so far the most popular Static Site Generator (SSG) available, that's why we'll use it as a first example for configuring our GitLab CI.
🌐
Creoline
help.creoline.com › en › doc › gitlab-pages-ZZtvphZJyN
GitLab Pages
To set up GitLab Pages, log in to the creoline Customer Center and navigate to the GitLab server for which you want to set up GitLab Pages. Select the Configuration Files tab and then click Edit.
Address: Bergstr. 9a, 49341 Altenberge, Germany
(4.9)
🌐
GitHub
github.com › diffblue › gitlab › blob › master › doc › administration › pages › index.md
gitlab/doc/administration/pages/index.md at master · diffblue/gitlab
Where example.io is the domain GitLab Pages is served from, 192.0.2.1 is the IPv4 address of your GitLab instance, and 2001:db8::1 is the IPv6 address. If you don't have IPv6, you can omit the AAAA record. If support for custom domains is needed, all subdomains of the Pages root domain should point to the secondary IP (which is dedicated for the Pages daemon). Without this configuration, users can't use CNAME records to point their custom domains to their GitLab Pages.
Author: diffblue
🌐
GitLab
forum.gitlab.com › how to use gitlab
GItlab Pages configuration - How to Use GitLab - GitLab Forum
September 29, 2023 - Ports 22,80,443,5050 are open and gitlab data, logs and configuration folders are configured in distinct volumes. It is served by a haproxy that handles SSL encryption on a let’s encrypt basis. Pages are to be served on gitlab-doc.corp.domain.com ...
🌐
GitLab
git.impa.br › help › help
Source · Pages · Administration · Help · GitLab
Depending on your needs, you can set up GitLab Pages in 4 different ways. The following options are listed from the easiest setup to the most advanced one. The absolute minimum requirement is to set up the wildcard DNS because that is needed in all configurations.
🌐
GitLab
resafety.com › gitlab › help › administration › pages › index.md
Index · Pages · Administration · Help · GitLab
Set the external URL for GitLab Pages in /etc/gitlab/gitlab.rb: ... Watch the video tutorial for this configuration.
🌐
GitLab
docs.gitlab.com › charts › advanced › external-gitlab-pages
Configure the GitLab chart with external GitLab Pages | GitLab Docs
global: pages: path: '/srv/gitlab/shared/pages' host: <Pages root domain> port: '80' # Set to 443 if Pages is served over HTTPS https: false # Set to true if Pages is served over HTTPS artifactsServer: true objectStore: enabled: true bucket: 'gitlab-pages' apiSecret: secret: gitlab-pages-api-key ...
🌐
GitLab
docs.gitlab.com › gitlab docs › use gitlab › deploy and release your application › gitlab pages › create deployment for static site
Create a GitLab Pages deployment for a static site | GitLab Docs
Create a GitLab Pages deployment to convert your static site or framework into a website hosted on GitLab. Through a step-by-step form, GitLab: Generates a custom CI/CD configuration based on your project setup.
🌐
PRACE
repository.prace-ri.eu › help
Index · Pages · Project · User · Help · GitLab
pages: stage: deploy script: - echo "Pages accessible through ${CI_PAGES_URL}/${PAGES_PREFIX}" variables: PAGES_PREFIX: "" # no prefix by default (master) pages: path_prefix: "$PAGES_PREFIX" environment: name: "Pages ${PAGES_PREFIX}" url: "${CI_PAGES_URL}/${PAGES_PREFIX}" artifacts: paths: - public rules: - if: $CI_COMMIT_BRANCH == "staging" # ensure to run on master (with default PAGES_PREFIX) variables: PAGES_PREFIX: '_stg' # prefix with _stg for the staging branch - if: $CI_PIPELINE_SOURCE == "merge_request_event" # conditionally change the prefix on Merge Requests when: manual # run pages manually on Merge Requests variables: PAGES_PREFIX: 'mr$CI_MERGE_REQUEST_IID' # prefix with the mr<iid>, like `mr123` With this configuration, users will have the access to each GitLab Pages deployment through the UI.
🌐
GitLab
forum.gitlab.com › general
How to configure gitlab page - General - GitLab Forum
October 23, 2025 - Some issues with GitLab Pages configuration (Specific domains are replaced with example.com) My GitLab domain is git.example.com, and my page domain is page.example.com. I configured the /etc/gitlab/gitlab.rb file with pages_external_url “http://page.example.com/”, gitlab_pages[‘enable’] = true, and reconfigured GitLab.