# Gitlab PagesYou can use GitLab Pages to host a Thulite site for your GitLab projects, groups, or user account.
Use [GitLab Pages](https://docs.gitlab.com/user/project/pages/) to host a Thulite site for your [GitLab](https://about.gitlab.com/) projects, groups, or user account.

{{< callout context="tip" icon="bulb" >}}
Looking for an example? Check out the [GitLab Pages Doks example project](https://gitlab.com/h-enk/doks-gitlab-pages)!
{{< /callout >}}

## How to deploy

Follow these steps to deploy your Thulite site to GitLab Pages.

{{< steps >}}
{{< step >}}

Create `.gitlab-ci.yml` in the root of your project with the content below. This pipeline builds and deploys your site when you push changes:

```yaml {title=".gitlab-ci.yml"}
# The Docker image that will be used to build your app
image: node:lts
# Functions that should be executed before the build script is run
before_script:
  - npm ci
pages:
  script:
    - npm run build
  artifacts:
    paths:
      # The folder that contains the files to be exposed at the Page URL
      - public
  rules:
    # This ensures that only pushes to the default branch will trigger
    # a pages deploy
    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
```

{{< /step >}}
{{< step >}}

In GitLab, open your repository's Deploy tab and go to Pages.
{{< /step >}}
{{< step >}}

Copy the Access pages URL and set it as `baseurl` in `./config/production/hugo.toml`.
{{< /step >}}
{{< step >}}

Push the changes to GitLab.
{{< /step >}}
{{< /steps >}}

That's it. After about a minute, your site is available at the Access pages URL.
