Deploy snipe-it-lite
IT asset management with SQLite, single container
snipe-it-lite
Just deployed
/var/lib/snipeit
Snipe-IT Lite — IT Asset Management
Self-hosted IT asset management with SQLite storage. Track laptops, licenses, accessories, and who has what — one container, no database server required.
Deploy and Host
Host Snipe-IT on Railway. This template provisions Snipe-IT (v8, alpine) with a persistent volume for its SQLite database — single service, Hobby-tier friendly.
Why Deploy
Snipe-IT is the open-source standard for IT asset management (50k+ GitHub stars). Running it on Railway gives you:
- Single container — SQLite on a volume instead of a separate MySQL/Postgres service
- Persistent data — assets, users, and settings survive restarts on a Railway volume
- Hobby-tier friendly — 512MB plan runs it; no database server to pay for
- Full feature set — asset check-in/check-out, depreciation, licenses, accessories, QR/barcode labels, REST API, LDAP/SAML optional
- One-click setup — preboot creates the SQLite database; the web pre-flight wizard finishes in under a minute
Common Use Cases
- Small-team IT inventory — track laptops, phones, and peripherals issued to employees
- License compliance — record seats and expirations for software licenses
- Check-in/check-out auditing — full history of who held which asset and when
- Home lab inventory — keep hardware, VMs, and gear catalogued with photos and warranties
- Paired with your stack — REST API for integrating inventory into CMDBs and wikis
About Hosting
This template runs Snipe-IT as a single service on Railway:
- Image —
ghcr.io/mc9max/snipe-it-lite:latest(Snipe-IT v8 alpine + PHP SQLite driver) - Database — SQLite file on a 5GB volume at
/var/lib/snipeit/database.sqlite, created automatically on first boot - Web server — Apache + PHP-FPM inside the container, listening on port 80
- Scaling — one replica only (SQLite does not support multi-writer); scale vertically if needed
- Backups — copy
/var/lib/snipeit/database.sqlitefrom the volume, or use Settings → Backups in the UI
Features
- Asset check-in/check-out with full audit history
- Custom fields, categories, manufacturers, and status labels
- Software license tracking with seat counts
- Accessories and consumables inventory
- QR-code and barcode asset labels
- REST API with token auth
- Optional LDAP / SAML single sign-on
- Email alerts (configure SMTP after deploy)
Dependencies for
This template is self-contained — no external services required. All data persists on the service's volume at /var/lib/snipeit. The instance is ready out of the box on one-click deploy.
Deployment Dependencies
After first successful deploy:
- Open your Railway public domain — you'll be redirected to
/setup(the Snipe-IT pre-flight wizard) - The wizard validates the environment; every check should pass (database file, app key, extensions)
- Create the first admin user on the final wizard page
- Log in and start adding assets
Documentation
Snipe-IT docs: https://snipe-it.readme.io/docs — covers asset lifecycle, labels, LDAP, API keys, and backups.
Configuration
Variables
| Variable | Description | Default |
|---|---|---|
APP_KEY | Laravel encryption key. Auto-generated at deploy. | ${{secret(32)}} |
APP_URL | Public URL of the instance. Auto-filled with the Railway domain. | ${{RAILWAY_PUBLIC_DOMAIN}} |
DB_CONNECTION | Database driver. SQLite keeps everything in one container. | sqlite |
DB_DATABASE | SQLite file path. Must stay on the volume. | /var/lib/snipeit/database.sqlite |
APP_ENV | Laravel environment. | production |
APP_DEBUG | Debug output. Keep off in production. | false |
APP_TRUSTED_PROXIES | Trust all proxies (Railway is the only proxy). Required for correct URL detection. | ** |
APP_TRUSTED_HEADERS | Trust Railway's X-Forwarded-* headers so Laravel detects HTTPS correctly. | HEADER_X_FORWARDED_FOR,HEADER_X_FORWARDED_HOST,HEADER_X_FORWARDED_PORT,HEADER_X_FORWARDED_PROTO,HEADER_X_FORWARDED_PREFIX |
SESSION_DRIVER | Session storage backend. | file |
MAIL_MAILER | Mail transport. log stores mail in deploy logs until you configure SMTP. | log |
PHP_FPM_PM_MAX_CHILDREN | PHP-FPM worker cap. 2 fits small plans. | 2 |
PHP_MEMORY_LIMIT | PHP memory cap. | 256M |
Quick Start
After deployment, finish setup in the browser:
# Check the app is up (expect a 302 to /setup)
curl -I https://your-domain.up.railway.app/
- Visit
https://your-domain.up.railway.app— redirects to the setup wizard - Click through the pre-flight checks (all should be green)
- Create your admin user and log in
- Settings → Labels to enable QR/barcode asset tags
- Optional: Settings → Localization for currency and date formats
API usage (after creating a token in Settings → API):
# List assets
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://your-domain.up.railway.app/api/v1/hardware
# Create an asset
curl -X POST -H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"asset_tag":"LT-0001","model_id":1,"status_id":1}' \
https://your-domain.up.railway.app/api/v1/hardware
License
AGPL-3.0 (Snipe-IT upstream)
Template Content
snipe-it-lite
ghcr.io/mc9max/snipe-it-lite:latest