# Step-by-Step Setup Guide

This guide walks you through the initial account setup, token generation, and connecting your first project to Seal Security.

## Account Creation & Token Generation

Follow these steps to access the platform and prepare your environment. If you already have a token, you can skip to the next section.

1. **Access the Invite:** Click on the **Sign in >** button in the Seal Security invite email you received.
2. **Log In:** Log in to the platform using your password or social login credentials.
3. **Start Onboarding:** We're starting the onboarding flow. Click **Next >** to begin.
4. **Generate Token:** First, you must generate a token to Seal's artifact server. This allows you to download our sealed versions.\
   ![Generate Token](/files/PavZ4q5NrXJse1vkrR0Y)
   1. **Generate:** Click on **Generate token**.
   2. **Copy:** Copy the newly generated token using the copy icon at the right of the text box.

      > **Important:** You will need this token later. While it should eventually be saved in a secure location (like a password manager or secret store), copy it now for immediate use in the next steps.
   3. **Continue:** Click **Next >**.
5. Click **Next >** and then click on **GitHub**.
6. **Grant Access and Install Bot:** You need to give the Seal Security Bot access to the relevant repositories:
   1. Connect to your GitHub account.
   2. Install the Seal Security Bot. In this screen, you will be asked to select the relevant GitHub organization, and then decide whether to give the Seal app access to **all its repositories** or to **select specific ones**.
   3. After you've selected which repositories you're giving access to, you'll return to the onboarding flow.

      ![Grant Access and Install Bot](/files/1gNTjzEVTiWlGaDV5A6b)
7. Choose your import method: **Automatic (Bulk)** or **Manual (One-by-one)**.

   **Path A1: Manual Import**

   ![Manual Import](/files/wfWTxqudZfLVRQe2tHnl)

   1. Paste the path to your repository. You can add up to 3 repositories at once.
   2. Give each repository a name.
   3. Click **Import**.

   **Path A2: Automatic (Bulk) Import**

   ![Automatic Import](/files/d2d12BSCNCmCEIRuTS6r)

   1. Review the list of dependency files detected in your repository.
   2. Select the specific dependency files you wish to scan.
   3. Click **Import**.
8. **View Protection page:** You will land on the Protection screen.
   * **Status:** Since no projects are connected yet, we are not showing any results.
   * **Next Step:** We are now going to populate this data using the CLI. ![Empty Protection page](/files/Fgf0cjrcjNzbEzFu4thb)

## Integrate the Seal CLI

To start fixing vulnerabilities (and populate the Protection page), you must integrate the CLI into your build pipeline.

**The Golden Rule:** In all cases, the CLI step must be added **immediately after** dependencies are pulled/installed (from standard registries or your artifact server) but before the final build/compilation.

**Important Configuration:** For all integration methods, you must ensure the following environment variables are set:

* `SEAL_TOKEN`: The token you generated earlier.
* `SEAL_PROJECT`: The ID of your project on the Seal platform (e.g., "my-first-project").

Identify the location of your build pipeline. Typically, this is a `Dockerfile` in your repository.

In the pipeline, identify the step where dependencies are installed (e.g., `composer install`).

Identify the location of the `composer.json` file.

Add the seal fix command:

```bash
RUN composer install
ENV SEAL_TOKEN=${SEAL_TOKEN} # Notice, that for a secure setup we advice using Build secrets - https://docs.gitlab.com/ee/ci/build_secret/
ADD --chmod=755 https://github.com/seal-community/cli/releases/download/latest/seal-linux-amd64-latest seal
ENV SEAL_PROJECT="my-first-project"
ENV SEAL_USE_SEALED_NAMES=1
# Snyk integration
ENV SEAL_SNYK_URL="https://api.snyk.io"
ENV SEAL_SNYK_TOKEN=${SNYK_TOKEN}
ENV SEAL_SNYK_ORG_ID=${SNYK_ORG_ID}
ENV SEAL_SNYK_PROJECT_ID=${SNYK_PROJECT_ID}
RUN ./seal fix --mode all composer.json
```

## Sealing a package

Once you have integrated the CLI into your pipeline, follow these steps to see the results.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sealsecurity.io/step-by-step-onboarding-guides/php-github-snyk-container-cli_all-renamed.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
