How to Use Snipe-IT: The Beginner's Guide
CodexFuse Team · 2026-11-01T07:59:17.862Z · 13 min read
This beginner's guide to Snipe-IT runs the full arc: Docker deploy, the companies-categories-models rule, first user, first asset, the checkout workflow, CSV import, LDAP sync, and the backup rule.
Snipe-IT is not a screenshot tool — despite what the top search result for "how to use snipe-it" sometimes claims. It is the most widely used open source asset management system in the world: AGPL-3.0 licensed, with about 15,136 stars on GitHub, and in continuous development since 2013. This guide shows you how to use Snipe-IT from a blank server to your first checked-out laptop — the full deploy-to-daily-workflow arc, without the spreadsheet chaos you are replacing. If you can follow a Docker beginner guide, you already have the one skill this deploy needs.
This is the Snipe-IT for beginners guide — a complete Snipe-IT tutorial, written for IT admins, MSP techs, and homelabbers who need one system of record for their hardware. It runs the complete arc in one page: first deploy, the companies-categories-models rule (the #1 beginner confusion), first user, first asset, the checkout workflow, the five record types, CSV import, LDAP sync, and the backup rule. For anyone new to Snipe-IT, this is the whole map — nothing you need is scattered across a dozen decade-old install threads.
What Is Snipe-IT?
Snipe-IT is a free, open-source IT asset management system built with Laravel and PHP. It tracks which person has which laptop, which software licenses belong to whom, and where every accessory, consumable, and component lives — the full lifecycle from purchase to retirement. It is free to self-host with unlimited users and assets under the AGPL-3.0 license, and a hosted version exists for teams that would rather not run servers themselves.
The project lives at github.com/grokability/snipe-it (it moved from the old snipe/snipe-it name — the GitHub redirect exists but has been flaky, so use the new address). As of this writing it is on v8.8.3, released October 22, 2026 — a security patch for the critical PHP2SHELL exploit, which is also why you should keep PHP current on your server. It needs PHP 8.2 or newer (8.4 recommended), runs on Laravel 12, and has a live demo at snipeitapp.com/demo you can click through before you install anything.
How to Use Snipe-IT: The 10-Step Beginner Arc
Here is the entire beginner journey, from bare metal to a working checkout system:
- Provision a server for the install — a what is VPS hosting instance you control works perfectly.
- Deploy with the official Docker compose flow — the only Docker image Snipe-IT supports is
snipe/snipe-it. - Generate your APP_KEY once and keep it safe — Snipe-IT will not run without it.
- Run the setup wizard: pre-flight check, create the database tables, create your admin user.
- Set up your company structure (enable Full Multiple Company Support if you segment by company).
- Create your categories first — the EULA and notification decisions live here.
- Create your asset models under those categories.
- Create your users — manually, by CSV import, or synced from LDAP / Active Directory.
- Create your first asset with a "Ready to Deploy" status.
- Check the asset out to a user, and learn the checkin side of the workflow.
Step 1: Deploy Snipe-IT With Docker
The Snipe-IT Docker path is the beginner choice: the official docs publish a compose flow, and it keeps PHP, MySQL, and the app in one reproducible stack. The official steps are refreshingly short:
mkdir snipeit && cd snipeit
curl https://raw.githubusercontent.com/snipe/snipe-it/master/docker-compose.yml --output docker-compose.yml
curl https://raw.githubusercontent.com/snipe/snipe-it/master/.env.docker --output .env
# Now edit .env: change every password, set APP_URL, pin APP_VERSION
docker compose run --rm app php artisan key:generate --show
# Paste the base64:... output into APP_KEY= in your .env
docker compose up -d
Four rules the official docs and the community guides agree on. First, snipe/snipe-it is the only supported image — third-party images will leave you stranded when something breaks. Second, pin APP_VERSION to a release tag; the docs explicitly say never to use :latest, because a restorable upgrade needs to know which version you were on. Third, the app publishes on port 8000 by default (APP_PORT=8000) with two named volumes — snipesql-vol for MySQL data and snipe-vol holding the app state — so never run docker compose down -v unless you truly mean to delete everything. Fourth, changing values in .env later does not take effect with docker compose restart — you must run docker compose up -d again so the container is recreated. If hand-writing compose files makes you nervous, a Docker Compose generator will scaffold the boilerplate for you.
One more step for a real server: put Snipe-IT behind HTTPS before you let anyone log in. Docker beginner guide veterans know the pattern — a Caddy beginner guide reverse proxy in front of port 8000 gives you automatic certificates with almost no config.
Step 2: Run the Setup Wizard
The setup wizard is where a fresh Snipe-IT install becomes yours. Open the app in a browser, and the wizard walks you through a pre-flight check, then "Next: Create Database Tables", then "Next: Create User". You create your admin account, then set the company name, logo, and timezone, and configure your default asset categories and statuses.
The APP_KEY deserves its own moment here. It is Laravel's encryption backbone — sessions, cookies, and encrypted values all depend on it — and Snipe-IT will not run without a valid one. Generate it once per deployment with docker compose run --rm app php artisan key:generate --show, paste it into .env, and never change it afterwards: changing the key breaks access to encrypted data and login sessions. Backing it up is part of the backup rule later in this guide.
The Companies-Categories-Models Rule (Snipe-IT's Three-Level Data Model)
Before you touch a single asset, understand this rule: in Snipe-IT you build Company → Category → Asset Model → Asset, in that order. Getting this order wrong is the #1 beginner confusion, and it produces exactly the miscategorized mess people were trying to escape by leaving spreadsheets. Think of it as a filing cabinet: the company is the cabinet, the category is the drawer, the asset model is the folder, and the asset is the document.
Here it is with the laptop example the community uses most:
| Level | What You Configure | Example |
|---|---|---|
| Company | Settings > Companies | Your company (or each department) |
| Category | Settings > Categories, type asset | "Laptops" |
| Asset Model | Settings > Asset Models | Dell Latitude 5440, manufacturer, model number, "ready for deployment" flag |
| Asset | New Asset | Asset tag #1042, serial X, "Ready to Deploy", location "IT Closet" |
Categories carry the policy decisions: a category is where you decide whether checkouts require EULA acceptance, email notifications, or both. Note that categories are not just for assets — Snipe-IT has five category types: asset, accessory, consumable, component, and license. If your company has multiple entities or strict departmental walls, enable Full Multiple Company Support in Admin Settings and set up your companies before you create anything else; it segments users and assets cleanly.
Step 3: Create Users First — Checkout Needs Somebody to Check Out To
Users must exist before you can check anything out to them. That ordering matters: a checkout targets a user, and a user who does not exist in Snipe-IT yet is a blocked workflow. Snipe-IT gives you four ways to create users: manually through the People page, synced from LDAP or Active Directory, imported from CSV, or pushed through the API.
Sync Your Users With LDAP / Active Directory
Snipe-IT LDAP sync is the option most real-world IT shops should reach for. If your company already runs Active Directory or another LDAP directory, it should be the source of truth for your people — the community's stated rule is that AD-backed organizations should use Snipe-IT's LDAP integration rather than maintaining a second manual user list. Configure it under Admin Settings > LDAP, then sync; new users flow in and existing ones stay matched, which keeps the checkout workflow honest because the "who" is always the company's real directory.
Create Your First Asset
With a category and a model in place, create your first asset: New Asset, pick your company, the model you created, and fill in the asset tag (Snipe-IT auto-generates the tag if auto-increment is on — otherwise it is the lookup key for imports and searches), the serial number, and the status. The status that matters for your first deploy is "Ready to Deploy": it means the machine is in stock, set up, and eligible for checkout. Add the location (the classic first asset lives in the "IT Closet"), mark it requestable if you want users to ask for it, and record warranty, purchase date, and cost while the receipt is still on your desk.
Two beginner niceties worth knowing: every asset gets a label view with a QR code and barcode encoding the serial and model — print them, and scanning an asset takes you straight to its page — and asset models have a Files tab where you can stash repair manuals and spec sheets so they travel with every unit of that model.
The Snipe-IT Checkout Workflow (Checkout to Users, Locations, and Assets)
The Snipe-IT checkout workflow is the daily job of the whole system: assets move between "Ready to Deploy" and a checkout target, and the ledger records every move. Checkout targets are people (the common case), locations (a kiosk PC bolted to a counter), or other assets — but the docs advise against asset-to-asset checkouts outside established workflows. The nuance the community stresses is asset-to-asset for consumables and components: checking toner and paper out to a printer asset, or RAM and storage out to a workstation asset, is the legitimate case.
To check out your first asset, open the asset and choose Checkout — it goes to the user you created in the previous step. The category you built earlier now does its policy work: if you enabled EULA acceptance, the user accepts it on checkout; if you enabled email notifications, everyone who needs to know finds out. Since v8.0.0 you can also attach custom fields directly to checkin and checkout actions, which is how teams capture condition reports and sign-off notes at handoff time. Checkin is the mirror: the asset returns, its status flips back, and the ledger gains the return entry. In practice, checkout is most of the job, and the user-before-asset ordering rule is what keeps it from jamming.
The Five Record Types: Assets, Licenses, Accessories, Consumables, Components
Snipe-IT tracks five record types, and beginners should meet all five on day one — each has its own section and its own rules:
| Record Type | What It Is | Checkout Behavior |
|---|---|---|
| Assets | Tracked equipment with serials and asset tags (laptops, servers, phones) | Check out to users, locations, or other assets; check back in |
| Licenses | Software seats and keys | Seats assigned to users or assets; seat counts tracked against the license total |
| Accessories | Non-depreciated items given to people (chargers, docks, keyboards) | Check out to users; no serial-level tracking |
| Consumables | Items used up (toner, paper, cables) | Check out to users, locations, or assets; never come back |
| Components | Internal parts (RAM, SSDs, NICs) | Check out to assets only — a component lives inside a machine |
The checkout targets from the previous section now make sense: consumables and components are the records that legitimately check out to another asset, while accessories and licenses check out to people. Keep licenses honest — a license with 50 seats and 53 assignments is the compliance surprise Snipe-IT exists to prevent.
Import Your First Assets From CSV
The Snipe-IT import CSV path is the spreadsheet escape hatch: if you are coming from a spreadsheet of machines, the official getting-started docs tell you to go to the Import tool before you build anything manually. The importer accepts a comma-delimited CSV through the web Import UI; the repository ships sample CSVs to start from, and downloadable import CSVs arrived in v8.3.x.
The three columns that matter: Model Name (the model is auto-created if it does not exist), Category (auto-created too), and Status (for example Ready to Deploy). Asset Tag is the lookup key for matching existing assets, and it is auto-generated if tag auto-increment is on. The header rules are strict and cheap to satisfy: the first row is the header, header matching is not case-sensitive, no leading or trailing spaces, and no blank trailing lines. You can even check assets out at import time with a Checkout Type of user or location — but the importer cannot auto-checkout to other assets; use bulk checkout for that.
The Backup Rule: Your .env, Your Database, Your Files
Snipe-IT's official backup guidance names three things: your .env file, your database, and your uploaded files. Back them up through Admin > Backups in the web UI, or with php artisan snipeit:backup. The backup is a timestamped zip of the database SQL dump plus uploaded images and attachments; the files side covers public/uploads, storage/private_uploads, and your OAuth keys in storage.
Two details that bite people. Setting BACKUP_ENV=true in .env includes the .env file itself in the backup — which is exactly how you protect the APP_KEY that can never be changed. And the restore utility does not modify an existing .env: after a restore you re-apply old settings manually, and the restore logs everyone out. A beginner running Docker gets the database side free through the snipesql-vol volume — but a volume is not a backup; copy it off the host on a schedule.
Self-Hosted or Hosted? The Honest 2026 Answer
A Snipe-IT self hosted install is free with unlimited users and assets under the AGPL-3.0 license — that is the whole point of this guide. The hosted version from Grokability runs the exact same software; the official line is that there is no software difference, hosted just covers maintenance, upgrades, and security. Hosted plans run $39.99/month for Basic and $99.99/month for Small Business, with dedicated tiers above that and support add-ons for teams that want a vendor on call.
For self-hosters, the 2026-10-22 v8.8.3 release is a lesson in upgrade discipline: it was a security patch for the critical PHP2SHELL exploit, and the project told absolutely everyone to upgrade PHP immediately. Self-hosting means you own that responsibility. If you deploy, back up the three things, pin your APP_VERSION, and schedule upgrades — and Snipe-IT will outlast every spreadsheet you ever wrestled.
Sources
GitHub grokability/snipe-it releases page (v8.8.3 published 2026-10-22, ~15,136 stars, AGPL-3.0, PHP 8.2+/8.4 recommended, Laravel 12 — fetched 2026-11-01); snipe-it.readme.io/docs/docker (official Docker steps, APP_KEY generation, APP_VERSION pinning, port 8000, named volumes, the .env compose-restart gotcha — fetched 2026-11-01); snipe-it.readme.io/docs/getting-started (workflow order, categories, checkout targets, user onboarding, Full Multiple Company Support — updated 2026-04-14, fetched 2026-11-01); snipe-it.readme.io/docs/importing-assets and /docs/importing (sample CSVs, required columns, header rules, import-time checkout — fetched 2026-11-01); snipe-it.readme.io/docs/backups (Admin > Backups GUI, artisan command, the three backup items — updated 2026-04-14, fetched 2026-11-01); snipe-it.readme.io/docs/configuration (BACKUP_ENV=true — fetched 2026-11-01); the greyneuronsconsulting Docker install guide (APP_KEY required-once rule, pinning example, port 8000 wizard steps — fetched 2026-11-01); Daniel Meeks' "Building Out an Asset Management System (AMS) Part 3" (the companies-categories-models hierarchy, the laptop example, checkout targets, the LDAP rule — fetched 2026-11-01); elest.io's Snipe-IT quickstart (the five record types — fetched 2026-11-01); snipeitapp.com/faq (AGPL, no software difference hosted vs self-hosted, hosted plans $39.99/mo and $99.99/mo — fetched 2026-11-01); the Grokability v8.0.0 release notes (custom fields on checkin/checkout, journal notes, accessories tab — fetched 2026-11-01); and snipeitapp.com/demo (live demo — fetched 2026-11-01).
Frequently Asked Questions
Is Snipe-IT free?
Yes — self-hosted Snipe-IT is free with unlimited users and assets under the AGPL-3.0 license. Hosted Snipe-IT starts at $39.99/month (Basic) and $99.99/month (Small Business), running the same software with maintenance and security handled for you.
Do I need LDAP to use Snipe-IT?
No. Users can be added manually, imported from CSV, synced from LDAP or Active Directory, or pushed through the API. LDAP sync is simply the best choice when your company already runs Active Directory — the directory stays the source of truth for who receives checkouts.
What is the APP_KEY and why can't I lose it?
The APP_KEY is Laravel's encryption key for sessions, cookies, and encrypted values — Snipe-IT will not run without one. Generate it once per deployment and never change it afterwards, because changing it breaks access to encrypted data and login sessions. Set BACKUP_ENV=true so it is included in backups.
Can I check out an asset to another asset?
Yes, but Snipe-IT's docs advise against it outside established workflows. The legitimate case is consumables and components: toner and paper checked out to a printer asset, RAM and storage checked out to a workstation asset. People and locations remain the normal checkout targets.
How do I move Snipe-IT to another server?
Back up the three things the official docs name: your .env file, your database, and your uploaded files (public/uploads, storage/private_uploads, OAuth keys). The restore utility does not modify an existing .env, so re-apply your old settings manually after restoring — and expect everyone to be logged out.