Skip to main content

Installation Methods

Snipe-IT can be installed using several methods. Choose the one that best fits your environment:

Docker

Recommended - Easiest setup and maintenance

Manual Installation

Full control - Ubuntu, Debian, CentOS, RHEL

Shared Hosting

cPanel, Plesk, and other shared hosts

Cloud Platforms

AWS, Azure, DigitalOcean, etc.

System Requirements

Before installing, ensure your system meets these requirements:

PHP Requirements

Snipe-IT requires PHP 8.2 or later. The application is built on Laravel 11.
Required PHP Extensions:
  • php-curl - cURL support
  • php-fileinfo - File information
  • php-gd or php-imagick - Image processing
  • php-iconv - Character encoding conversion
  • php-json - JSON support
  • php-mbstring - Multibyte string support
  • php-mysql or php-pgsql - Database driver
  • php-pdo - PDO database support
  • php-xml - XML support
  • php-zip - ZIP archive support
  • php-bcmath - Precision math
Optional Extensions:
  • php-ldap - LDAP/Active Directory integration
  • php-redis - Redis caching support
  • php-memcached - Memcached support

Database Requirements

Snipe-IT supports the following databases:
  • MySQL 5.7 or later
  • MariaDB 10.2 or later
  • PostgreSQL 9.6 or later (experimental)

Web Server

  • Apache 2.4+ with mod_rewrite enabled
  • Nginx 1.18+ with PHP-FPM

System Resources

Minimum Requirements:
  • 1 CPU core
  • 2GB RAM
  • 5GB disk space
Recommended for Production:
  • 2+ CPU cores
  • 4GB+ RAM
  • 20GB+ disk space (depending on uploads)

Docker Installation

Docker is the recommended installation method for most users. It provides isolation, easy updates, and consistent environments.
1

Install Docker

Install Docker and Docker Compose on your system:
2

Create Project Structure

Create a directory for Snipe-IT:
3

Create docker-compose.yml

Create the Docker Compose configuration:
docker-compose.yml
4

Configure Environment Variables

Create your .env configuration file. Below are the key settings:
.env
Security Notice:
  • Change all default passwords
  • Generate a secure APP_KEY (done automatically in next step)
  • Use HTTPS in production (APP_FORCE_TLS=true)
  • Enable security headers for production
5

Start the Application

Launch the containers:
6

Generate Application Key

Generate the encryption key:
7

Complete Web Setup

Access your Snipe-IT instance at http://your-server-ip and complete the setup wizard.

Using Pre-built Docker Image

Run Snipe-IT with a single command:

Manual Installation

Manual installation requires more system administration knowledge. Docker is recommended for most users.

Ubuntu 24.04 / Debian 12

1

Update System

2

Install PHP 8.3 and Extensions

3

Install MySQL/MariaDB

4

Install Apache

5

Install Composer

6

Download Snipe-IT

7

Install Dependencies

8

Configure Permissions

9

Configure Environment

Update the database settings:
10

Generate Application Key

11

Configure Apache Virtual Host

Create /etc/apache2/sites-available/snipe-it.conf:
Enable the site:
12

Complete Web Setup

Navigate to http://your-server-ip and complete the setup wizard.

CentOS/RHEL 9

1

Enable EPEL and Remi Repositories

2

Install PHP and Extensions

3

Install and Configure MariaDB

4

Install Apache

5

Follow Ubuntu Steps 5-11

Continue with steps 5-11 from the Ubuntu installation, adjusting paths and commands as needed for RHEL.

Shared Hosting Installation

For shared hosting environments (cPanel, Plesk, etc.):
Shared hosting has limitations. Ensure your host meets the PHP 8.2+ requirement and allows SSH access or provides Composer.
1

Create Database

Use your hosting control panel to create:
  • A MySQL database
  • A database user with all privileges
2

Upload Files

Download the latest release from GitHub and upload via FTP/SFTP to your hosting directory.
3

Configure .env File

Rename .env.example to .env and update database credentials.
4

Install Dependencies

If SSH access is available:
If no SSH access, use your host’s PHP selector to run composer commands.
5

Set Document Root

Point your domain’s document root to the public directory.

Cloud Platforms

AWS EC2

Snipe-IT can run on AWS EC2 instances:
  1. Launch an Ubuntu 24.04 EC2 instance (t3.small or larger)
  2. Configure security groups to allow HTTP/HTTPS
  3. Follow the Ubuntu manual installation steps
  4. Use RDS for MySQL (recommended for production)
  5. Use S3 for file storage (configure in .env)

DigitalOcean

  1. Create a Droplet with Ubuntu 24.04
  2. Follow the Ubuntu installation steps
  3. Use DigitalOcean Managed Databases for MySQL
  4. Use Spaces for object storage

Azure

  1. Create an Ubuntu VM
  2. Configure Network Security Group for HTTP/HTTPS
  3. Follow Ubuntu installation steps
  4. Use Azure Database for MySQL
  5. Use Azure Blob Storage for uploads

Environment Variables Reference

Here are the most important environment variables from /home/daytona/workspace/source/.env.example:1-240:

Application Settings

Database Settings

Mail Settings


Post-Installation Configuration

Set Up Scheduled Tasks

Snipe-IT requires a cron job for scheduled tasks (notifications, backups, etc.):

Configure File Permissions

Ensure proper permissions for uploads and cache:

Enable SSL/HTTPS

For production environments, always use HTTPS:

Troubleshooting Common Issues

Causes:
  • Incorrect file permissions
  • Missing .env file
  • Invalid APP_KEY
Solutions:
Check:
  1. Database server is running
  2. Credentials in .env are correct
  3. Database user has proper privileges
  4. Firewall allows database connection
Test connection:
Common causes:
  • Cache issues
  • Session configuration
Solutions:
Check:
  • Directory permissions
  • PHP upload limits
Fix PHP limits in php.ini:
Verify:
  1. SMTP credentials are correct
  2. Firewall allows outbound SMTP
  3. Mail server requires TLS
Test email:

Performance Optimization

Enable Caching

For production environments, use Redis or Memcached:
.env

Optimize Composer Autoloader

Configure OPcache

Add to php.ini:

Next Steps

User Management

Set up users, groups, and permissions

Asset Categories

Create categories and custom fields

API Access

Generate API tokens for integrations

LDAP/SAML

Configure enterprise authentication

Backups

Set up automated backups

Customization

Customize branding and email templates

Getting Help

If you encounter issues:
Before asking for help, search the GitHub issues (both open and closed) and the Discord server - your question may already be answered!