← All articles
A black and white photo of a window in the dark

Snipe-IT: Self-Hosted IT Asset Management That Actually Scales

Business 2026-03-29 · 4 min read snipe-it asset-management inventory docker IT-management
By Selfhosted Guides Editorial TeamSelf-hosting practitioners covering open source software, home lab infrastructure, and data sovereignty.

If you've ever lost track of which Raspberry Pi is running what, which drive went into which NAS, or how many spare SSDs you actually have left, you already know the pain that Snipe-IT solves. It's an open-source IT asset management platform that tracks hardware, software licenses, consumables, and accessories — all from a polished web interface that puts most commercial alternatives to shame.

Photo by Declan Sun on Unsplash

What Snipe-IT Does

Snipe-IT is a full lifecycle asset tracker. You create asset models (like "Dell Optiplex 7090" or "Samsung 870 EVO 1TB"), then track individual units through check-out, check-in, maintenance, and retirement. Every action gets an audit log entry. Every asset gets a history.

Beyond hardware, it handles:

For a homelab, this might sound like overkill. It isn't. Once you have more than a dozen devices, the "I'll just remember" approach falls apart. Snipe-IT replaces the spreadsheet you keep meaning to update.

Deploying with Docker Compose

The official Docker image makes deployment straightforward:

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

  mysql:
    image: mysql:8.0
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_DATABASE: snipeit
      MYSQL_USER: snipeit
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  snipeit-data:
  mysql-data:

Your .env file needs these at minimum:

APP_URL=https://assets.yourdomain.com
APP_KEY=base64:YOUR_GENERATED_KEY
DB_CONNECTION=mysql
DB_HOST=mysql
DB_DATABASE=snipeit
DB_USERNAME=snipeit
DB_PASSWORD=your_secure_password
MYSQL_ROOT_PASSWORD=your_root_password
MYSQL_PASSWORD=your_secure_password

Generate the APP_KEY with:

docker run --rm snipe/snipe-it php artisan key:generate --show

After docker compose up -d, hit port 8080 and walk through the setup wizard. It takes about two minutes — set your admin account, company name, and default currency.

Setting Up Your Asset Structure

Before importing anything, plan your hierarchy:

  1. Categories — broad types like "Servers," "Networking," "Storage," "Workstations"
  2. Manufacturers — Dell, Ubiquiti, Synology, Raspberry Pi Foundation
  3. Models — specific products tied to a manufacturer and category
  4. Locations — "Server Rack," "Office Desk," "Closet Shelf"
  5. Fieldsets — custom fields grouped together (add "IP Address" and "MAC Address" for network gear)

Custom fields are where Snipe-IT pulls ahead of a spreadsheet. Define a "Network Device" fieldset with IP, MAC, firmware version, and management URL fields. Every switch, AP, and router you add with that fieldset gets those fields automatically. Click a device, see its management URL, click through. No more hunting through your router's DHCP table.

Like what you're reading? Subscribe to Self-Hosted Weekly — free weekly guides in your inbox.

Labels and Asset Tags

Snipe-IT generates printable asset labels with barcodes or QR codes. You can use a DYMO or Brother label printer to tag physical equipment. Scan a barcode with the mobile-friendly web UI to pull up that asset's full history instantly.

For a homelab, QR code labels on the back of each device are genuinely useful. Scan the code on a Raspberry Pi, see its hostname, OS, purpose, last maintenance date, and any notes you've attached. It beats the masking tape and Sharpie approach.

LDAP and SSO Integration

If you're running Authentik, Keycloak, or any LDAP/SAML provider, Snipe-IT integrates natively. Users sync from your directory, and asset check-outs tie to real identities. For a home setup, the built-in user management is fine. For a small business or shared lab, SSO means one less password for everyone.

API and Automation

Snipe-IT has a comprehensive REST API. Every action you can do in the UI, you can do via API. Practical uses:

# Check in all assets assigned to a user who left
curl -s -H "Authorization: Bearer $TOKEN" \
  "https://assets.example.com/api/v1/users/42/assets" | \
  jq -r '.rows[].id' | while read id; do
    curl -X POST -H "Authorization: Bearer $TOKEN" \
      "https://assets.example.com/api/v1/hardware/$id/checkin"
  done

# Bulk import from a CSV
curl -X POST -H "Authorization: Bearer $TOKEN" \
  -F "[email protected]" \
  "https://assets.example.com/api/v1/imports"

You can also hook it into Ansible or Terraform — provision a VM, register it as an asset automatically.

Reporting and Audits

The built-in reports cover depreciation schedules, assets due for audit, license compliance, and activity logs. Schedule periodic audits where Snipe-IT generates a list of assets to physically verify. Mark each as confirmed or flag discrepancies. For businesses, this is compliance gold. For homelabbers, it's the annual "does this thing still work" check you keep skipping.

Backup Strategy

Back up two things: the MySQL database and the /var/lib/snipeit volume (which holds uploaded files and generated reports):

docker exec snipeit-mysql-1 mysqldump -u root -p snipeit > snipeit-backup.sql
docker run --rm -v snipeit-data:/data -v $(pwd):/backup alpine \
  tar czf /backup/snipeit-files.tar.gz /data

Add these to your existing backup rotation. The database is small — even with thousands of assets, dumps are typically under 50MB.

When Snipe-IT Makes Sense

Snipe-IT is worth deploying when you hit any of these:

It's overkill for a three-device setup. It's essential once your homelab becomes something you'd struggle to rebuild from memory. The thirty minutes you spend entering your existing gear pays back the first time you need to find a serial number, verify a warranty date, or figure out which machine has that spare RAM slot.

Get free weekly tips in your inbox. Subscribe to Self-Hosted Weekly