System Requirements for Snipe-IT: Complete Hardware and Software Specifications

Snipe-IT requires PHP 8.2 or higher, MySQL 8.0+ or MariaDB 10.5+, and Apache 2.4+ (with mod_rewrite) or Nginx 1.14+ to run the Laravel 12-based asset management platform.

Snipe-IT is an open-source IT asset management system built on Laravel 12. Understanding the system requirements for Snipe-IT is essential before installation to ensure compatibility, security, and optimal performance in production environments.

PHP Version and Extensions

The application mandates PHP 8.2 or higher, enforced through the composer.json file which declares the constraint "php": ">=8.2". The bundled upgrade.php script explicitly checks for this version and will terminate execution if the environment runs an older release.

Required PHP Extensions

Snipe-IT requires the following PHP extensions to be installed and enabled:

  • mbstring – for multibyte string handling
  • openssl – for encryption and security functions
  • pdo – for database connectivity
  • tokenizer – for Laravel's code generation
  • xml – for XML parsing
  • ctype – for character type checking
  • json – for JSON encoding/decoding
  • bcmath – for arbitrary precision mathematics
  • fileinfo – for file type detection

As implemented in upgrade.php (lines 121-125), the installation process validates these extensions before proceeding. Missing any of these will prevent the application from running.

For optimal functionality, you should also install:

  • gd or imagick – for image processing and barcode generation
  • zip – for archive handling during imports/exports
  • intl – for internationalization and localization features

Database Requirements

Snipe-IT supports MySQL 8.0+ or MariaDB 10.5+. The database must meet the following specifications:

  • Storage engine: InnoDB (required for foreign key constraints)
  • Character set: UTF-8 encoding (utf8mb4)
  • Memory: Minimum 2 GB RAM allocated for production workloads
  • Connection: PDO MySQL driver enabled in PHP

The snipeit.sh installation helper script automates the configuration of these database requirements, ensuring proper InnoDB support and character encoding during setup.

Web Server Configuration

You can run Snipe-IT on either Apache 2.4+ or Nginx 1.14+.

For Apache, you must enable mod_rewrite to support Laravel's URL rewriting:

sudo a2enmod rewrite
sudo systemctl restart apache2

For Nginx, configure the server block to point to the public/ directory and handle Laravel's front controller pattern.

Optional Dependencies

While not required for core functionality, these tools enhance the deployment process:

Node.js ≥ 16 – Required only if compiling front-end assets locally using Laravel Mix:


# Install Node.js 18.x (recommended)

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
npm install
npm run prod

Composer – Essential for PHP dependency management. The installation process uses Composer to install Laravel and third-party packages defined in composer.json.

Verifying Your Environment

Before installing Snipe-IT, verify your server meets the minimum requirements using these checks:

// Check PHP version and required extensions
if (version_compare(PHP_VERSION, '8.2.0', '<')) {
    exit('Error: PHP 8.2 or higher is required.');
}

$required = ['mbstring','openssl','pdo','tokenizer','xml','ctype','json','bcmath','fileinfo'];
foreach ($required as $ext) {
    if (!extension_loaded($ext)) {
        exit("Error: PHP extension $ext is missing.");
    }
}

Verify your database version:

mysql -u root -p -e "SELECT VERSION();"

# Expect 8.0.x for MySQL or 10.5.x for MariaDB

Automated Installation Checks

The upgrade.php script in the repository root performs comprehensive environment validation. According to the source code in grokability/snipe-it, this script checks PHP version compatibility and extension availability before allowing database migrations or updates to proceed.

The snipeit.sh helper script further automates environment preparation by installing Apache, PHP, MariaDB, and all required PHP extensions on supported Linux distributions.

Summary

  • PHP: Version 8.2+ with mbstring, openssl, pdo, tokenizer, xml, ctype, json, bcmath, and fileinfo extensions
  • Database: MySQL 8.0+ or MariaDB 10.5+ with InnoDB support and 2 GB RAM minimum
  • Web Server: Apache 2.4+ (with mod_rewrite) or Nginx 1.14+
  • Tools: Composer (required), Node.js ≥ 16 (optional for asset compilation)
  • Validation: Use upgrade.php to verify requirements before installation

Frequently Asked Questions

Does Snipe-IT work with PHP 8.1 or older versions?

No. According to the composer.json in the grokability/snipe-it repository, the framework requires PHP 8.2 or higher. The upgrade.php script enforces this minimum version and will block installation on older PHP releases.

Can I use PostgreSQL instead of MySQL/MariaDB?

No. Snipe-IT requires either MySQL 8.0+ or MariaDB 10.5+ with InnoDB support. The database configuration and migrations are specifically designed for these MySQL-compatible engines.

Is Node.js required for production deployments?

No. Node.js is only necessary if you plan to modify and recompile front-end assets using Laravel Mix. Production instances can run without Node.js installed, using the pre-compiled assets included in the repository.

How much RAM does Snipe-IT require?

The database server requires a minimum of 2 GB RAM for production workloads. The web server running PHP needs sufficient memory to handle concurrent requests, typically 512 MB to 1 GB depending on your asset volume and user count.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →