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

# Quick Start

> Get Snipe-IT running in 5 minutes with Docker

Get your Snipe-IT instance up and running quickly using Docker. This guide will have you managing assets in minutes.

## Prerequisites

* [Docker](https://docs.docker.com/get-docker/) and [Docker Compose](https://docs.docker.com/compose/install/) installed
* At least 2GB of available RAM
* Port 80 available (or modify the port mapping)

## Installation with Docker Compose

<Steps>
  <Step title="Create Docker Compose Configuration">
    Create a new directory for Snipe-IT and add a `docker-compose.yml` file:

    ```bash theme={null}
    mkdir snipe-it && cd snipe-it
    ```

    Create `docker-compose.yml`:

    ```yaml docker-compose.yml theme={null}
    version: '3'

    services:
      mysql:
        image: mariadb:11.4.7
        container_name: snipe-mysql
        restart: always
        volumes:
          - snipe-mysql-data:/var/lib/mysql
        environment:
          MYSQL_ROOT_PASSWORD: changeme
          MYSQL_DATABASE: snipeit
          MYSQL_USER: snipeit
          MYSQL_PASSWORD: changeme

      snipeit:
        image: snipe/snipe-it:latest
        container_name: snipe-it
        restart: always
        depends_on:
          - mysql
        ports:
          - "80:80"
        volumes:
          - snipe-data:/var/lib/snipeit
        env_file:
          - .env

    volumes:
      snipe-mysql-data:
      snipe-data:
    ```
  </Step>

  <Step title="Configure Environment Variables">
    Create a `.env` file in the same directory:

    ```bash .env theme={null}
    # Application settings
    APP_ENV=production
    APP_DEBUG=false
    APP_KEY=
    APP_URL=http://localhost
    APP_TIMEZONE=UTC
    APP_LOCALE=en-US

    # Database connection
    DB_CONNECTION=mysql
    DB_HOST=mysql
    DB_PORT=3306
    DB_DATABASE=snipeit
    DB_USERNAME=snipeit
    DB_PASSWORD=changeme

    # Mail settings (update with your SMTP details)
    MAIL_MAILER=smtp
    MAIL_HOST=smtp.gmail.com
    MAIL_PORT=587
    MAIL_USERNAME=your-email@gmail.com
    MAIL_PASSWORD=your-password
    MAIL_FROM_ADDR=your-email@gmail.com
    MAIL_FROM_NAME='Snipe-IT'
    ```

    <Warning>
      The `APP_KEY` will be generated automatically on first run. Never share this key or commit it to version control.
    </Warning>
  </Step>

  <Step title="Start Snipe-IT">
    Launch the containers:

    ```bash theme={null}
    docker-compose up -d
    ```

    Check that containers are running:

    ```bash theme={null}
    docker-compose ps
    ```

    You should see both `snipe-it` and `snipe-mysql` containers with status "Up".
  </Step>

  <Step title="Complete Web Setup">
    Open your browser and navigate to `http://localhost`.

    The Snipe-IT setup wizard will guide you through:

    1. **Database Setup** - Click "Next" (already configured via environment)
    2. **Create Admin Account** - Set username, email, and password
    3. **Site Settings** - Configure site name and URL
    4. **Email Testing** - Optionally test your email configuration

    <Note>
      The initial setup may take 2-3 minutes while the database schema is created and sample data is seeded.
    </Note>
  </Step>

  <Step title="Add Your First Asset">
    After setup, you'll be redirected to the dashboard. To add your first asset:

    1. Go to **Assets** → **Create New**
    2. Fill in the asset details:
       * **Asset Tag**: Unique identifier (e.g., "LAP-001")
       * **Model**: Click "Create New" to add a model
         * Name: "Dell Latitude 5420"
         * Category: "Laptops" (create if needed)
         * Manufacturer: "Dell" (create if needed)
       * **Status**: Deployable
       * **Location**: Your office location
       * **Purchase Date**: Today's date
       * **Purchase Cost**: Asset value
    3. Click **Save**

    <Check>
      Congratulations! You've added your first asset to Snipe-IT.
    </Check>
  </Step>
</Steps>

## Managing Docker Containers

### View Logs

```bash theme={null}
# View Snipe-IT logs
docker-compose logs -f snipeit

# View database logs
docker-compose logs -f mysql
```

### Stop Snipe-IT

```bash theme={null}
docker-compose stop
```

### Start Again

```bash theme={null}
docker-compose start
```

### Update to Latest Version

```bash theme={null}
docker-compose pull
docker-compose up -d
```

### Backup Your Data

```bash theme={null}
# Backup database
docker exec snipe-mysql mysqldump -u snipeit -pchangeme snipeit > backup.sql

# Backup uploads
docker cp snipe-it:/var/lib/snipeit ./snipeit-backup
```

## Next Steps

<CardGroup cols={2}>
  <Card title="Full Installation Guide" icon="server" href="/installation">
    Explore other installation methods and production setup
  </Card>

  <Card title="Configuration" icon="gear" href="/admin/configuration">
    Configure email, backups, and advanced settings
  </Card>

  <Card title="Asset Management" icon="laptop" href="/features/assets">
    Learn about check-in/check-out workflows
  </Card>

  <Card title="API Access" icon="code" href="/api/authentication">
    Set up API access for integrations
  </Card>
</CardGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="Port 80 is already in use">
    Change the port mapping in `docker-compose.yml`:

    ```yaml theme={null}
    ports:
      - "8080:80"  # Use port 8080 instead
    ```

    Then access Snipe-IT at `http://localhost:8080`
  </Accordion>

  <Accordion title="Database connection failed">
    Ensure the MySQL container is running:

    ```bash theme={null}
    docker-compose ps mysql
    ```

    Check the database credentials in `.env` match those in `docker-compose.yml`.
  </Accordion>

  <Accordion title="Cannot access from other devices">
    Update `APP_URL` in `.env` to your server's IP address:

    ```bash theme={null}
    APP_URL=http://192.168.1.100
    ```

    Restart the container:

    ```bash theme={null}
    docker-compose restart snipeit
    ```
  </Accordion>

  <Accordion title="Email not sending">
    Verify SMTP settings in `.env`. For Gmail, you may need to:

    * Enable 2-factor authentication
    * Generate an app-specific password
    * Allow less secure apps (not recommended)

    Test email from **Settings** → **Test Email**.
  </Accordion>
</AccordionGroup>

## Community Support

Need help? Join the Snipe-IT community:

* **Discord**: [Join the Discord server](https://discord.gg/yZFtShAcKk)
* **GitHub Issues**: [Report bugs or request features](https://github.com/grokability/snipe-it/issues)
* **Documentation**: Explore the rest of this documentation site
