summaryrefslogtreecommitdiff
path: root/doc/user/project/pages/getting_started/pages_ui.md
blob: 984c8e5c619cec6d4f57154fe008335a0ee77ce1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
---
stage: Create
group: Incubation
info: To determine the technical writer assigned to the Stage/Group associated with this page, see https://about.gitlab.com/handbook/product/ux/technical-writing/#assignments
---

# Create a Pages deployment for your static site **(FREE)**

If you already have a GitLab project that contains your static site or framework,
you can generate a GitLab Pages website from it.

When you provide basic information in the UI, a `.gitlab-ci.yml` file is created
and a merge request opened. When you commit the merge request,
a pipeline deploys your Pages website.

## Prerequisites

- Your app must [output files to the `public` folder](../public_folder.md). If you create
  this folder during the build pipeline, you do not need to commit it to Git.

  WARNING:
  This step is important. Ensure your files are in a root-level `public` folder.

- You must have a project that either:
  - Generates static sites or a client-rendered single-page application (SPA),
    like [Eleventy](https://www.11ty.dev), [Astro](https://astro.build), or [Jekyll](https://jekyllrb.com).
  - Contains a framework configured for static output, such as [Next.js](https://nextjs.org),
    [Nuxt.js](https://nuxtjs.org), or [SvelteKit](https://kit.svelte.dev).
- GitLab Pages must be enabled for the project. (To enable, go to **Settings > General**,
  expand **Visibility, project features, permissions**, and turn on the **Pages** toggle.)

## Create the Pages deployment

To complete the setup and generate a GitLab Pages deployment:

1. On the top bar, select **Main menu > Projects** and find your project.
1. On the left sidebar, select **Settings > Pages** (Note: this may also be
   located at **Deployments > Pages**, [more information](../index.md#menu-position-test)).
   A **Get Started with Pages** form appears. If this form is not available,
   see [Troubleshooting](#if-the-get-started-with-pages-form-is-not-available).
1. For **Step 1**, enter an image name and verify that your files are in a `public` folder.
1. Select **Next**.
1. For **Step 2**, enter your installation steps. If your framework's build process does not
   need one of the provided build commands, you can either:
   - Skip the step by selecting **Next**.
   - Enter `:` (the bash "do nothing" command) if you still want to incorporate that
     step's boilerplate into your `.gitlab-ci.yml` file.
1. Select **Next**.
1. For **Step 3**, enter scripts that indicate how to build your application.
1. Select **Next**.
1. Optional. Edit the generated `.gitlab-ci.yml` file as needed.
1. For **Step 4**, add a commit message and select **Commit**. This commit triggers your first
   GitLab Pages deployment.

To view the running pipeline, go to **CI/CD > Pipelines**.

To view the artifacts that were created during the deployment, view the job,
and on the right side, select **Download artifacts**.

## Troubleshooting

### If the `Get Started with Pages` form is not available

When you go to **Settings > Pages**, the form is not available if you:

- Deployed a GitLab Pages site before.
- Committed a `.gitlab-ci.yml` through the forms at least one time.

To fix this issue:

- If the message **Waiting for the Pages Pipeline to complete** appears, select
  **Start over** to start the form again.
- If your project has previously deployed GitLab Pages successfully,
  [manually update](pages_from_scratch.md) your `.gitlab-ci.yml` file.