> ## Documentation Index
> Fetch the complete documentation index at: https://developer.upsun.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Setup

export const GuidesRequirements = ({name}) => {
  const isSymfony = name === "Symfony";
  return <>
      <h2>Before you begin</h2>
      <p>You need:</p>
      <ul>
        <li>
          <a href="https://git-scm.com/downloads">Git</a>.{' '}
          Git is the primary tool to manage everything your app needs to run.
          Push commits to deploy changes and control configuration through YAML files.
          These files describe your infrastructure, making it transparent and version-controlled.
        </li>
        <li>
          An Upsun account.{' '}
          If you don't already have one, <a href="https://auth.upsun.com/register">register for a trial account</a>.{' '}
          You can sign up with an email address or an existing GitHub, Bitbucket, or Google account.
          If you choose one of these accounts, you can set a password for your Upsun account later.
        </li>
        <li>
          The {isSymfony ? <a href="https://symfony.com/download">Symfony CLI</a> : <a href="/cli">Upsun CLI</a>}.{' '}
          This lets you interact with your project from the command line.
          You can also do most things through the <a href="/docs/administration/web">Web Console</a>.
        </li>
      </ul>
    </>;
};

<Info>
  <h4>Got code?</h4>
  In order to follow along with this guide, you need a local project.
  While the guide has been written to accommodate the following stacks, it is not limited to just those listed and are here only as examples.

  {/* Examples:
    - [Express installation guide](https://expressjs.com/en/starter/installing.html)
    - [Next.js installation guide](https://nextjs.org/docs/getting-started/installation)
    - [Strapi installation guide](https://docs.strapi.io/dev-docs/installation) */}

  <AccordionGroup>
    <Accordion title="JavaScript/Node.js">
      * [Express installation guide](https://expressjs.com/en/starter/installing.html)
      * [Next.js installation guide](https://nextjs.org/docs/getting-started/installation)
      * [Strapi installation guide](https://docs.strapi.io/dev-docs/installation)
    </Accordion>

    <Accordion title="PHP">
      * [Laravel installation guide](https://laravel.com/docs/10.x#creating-a-laravel-project)
      * [Symfony installation guide](/docs/get-started/stacks/symfony)
    </Accordion>

    <Accordion title="Python">
      * [Flask installation guide](https://flask.palletsprojects.com/en/2.3.x/installation)
      * [Django installation guide](https://docs.djangoproject.com/en/5.0/intro/tutorial01/)
    </Accordion>
  </AccordionGroup>
</Info>

<GuidesRequirements />

<Info>
  <h4>Trials</h4>
  When you create your first organization on Upsun, you are also activating your trial for that organization.
  Get [more information on trials](/docs/glossary#trial).
</Info>

## Initialize your Git repository

A Git repository is required for Upsun projects.
If you haven't already done so, initialize a Git repository for your codebase, and commit your files:

```bash Terminal theme={null}
git init
git add .
git commit -m "Initial commit."
```

This guide assumes that your repository's default branch is `main`.
Your Git configuration may result in different default branches (like `master`), so please run `git branch -M main` before proceeding.

<Info>
  <h4>Don't commit dependencies</h4>
  Whether you're migrating your own project, or testing Upsun with a starter project, **never commit your app's dependencies**.
  Make sure you ignore directories containing dependencies by updating your `.gitignore` file.

  ```bash theme={null}
  # JavaScript/Node.js
  echo "node_modules" >> .gitignore

  # PHP
  echo "vendor" >> .gitignore

  # Python
  echo "env" >> .gitignore

  git add .gitignore && git commit -m "Update .gitignore to ignore deps."
  ```
</Info>
