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

Prerequisites

  • Docker and Docker Compose installed
  • At least 2GB of available RAM
  • Port 80 available (or modify the port mapping)

Installation with Docker Compose

1

Create Docker Compose Configuration

Create a new directory for Snipe-IT and add a docker-compose.yml file:
mkdir snipe-it && cd snipe-it
Create docker-compose.yml:
docker-compose.yml
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:
2

Configure Environment Variables

Create a .env file in the same directory:
.env
# 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=[email protected]
MAIL_PASSWORD=your-password
MAIL_FROM_ADDR=[email protected]
MAIL_FROM_NAME='Snipe-IT'
The APP_KEY will be generated automatically on first run. Never share this key or commit it to version control.
3

Start Snipe-IT

Launch the containers:
docker-compose up -d
Check that containers are running:
docker-compose ps
You should see both snipe-it and snipe-mysql containers with status “Up”.
4

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
The initial setup may take 2-3 minutes while the database schema is created and sample data is seeded.
5

Add Your First Asset

After setup, you’ll be redirected to the dashboard. To add your first asset:
  1. Go to AssetsCreate 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
Congratulations! You’ve added your first asset to Snipe-IT.

Managing Docker Containers

View Logs

# View Snipe-IT logs
docker-compose logs -f snipeit

# View database logs
docker-compose logs -f mysql

Stop Snipe-IT

docker-compose stop

Start Again

docker-compose start

Update to Latest Version

docker-compose pull
docker-compose up -d

Backup Your Data

# 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

Full Installation Guide

Explore other installation methods and production setup

Configuration

Configure email, backups, and advanced settings

Asset Management

Learn about check-in/check-out workflows

API Access

Set up API access for integrations

Troubleshooting

Change the port mapping in docker-compose.yml:
ports:
  - "8080:80"  # Use port 8080 instead
Then access Snipe-IT at http://localhost:8080
Ensure the MySQL container is running:
docker-compose ps mysql
Check the database credentials in .env match those in docker-compose.yml.
Update APP_URL in .env to your server’s IP address:
APP_URL=http://192.168.1.100
Restart the container:
docker-compose restart snipeit
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 SettingsTest Email.

Community Support

Need help? Join the Snipe-IT community:

Build docs developers (and LLMs) love