Skip to main content

Snipe-IT Installation on Ubuntu 24.04

This guide explains how to install Snipe-IT, a self-hosted IT asset management system, on Ubuntu 24.04 using Nginx, MariaDB, and PHP 8.3.


Ref.

https://snipe-it.readme.io/docs/installation

📦 1. Update the System

sudo apt update && sudo apt upgrade -y

🌐 2. Install Required Packages

Install Nginx, PHP, MariaDB, and all required PHP extensions:

sudo apt install nginx mariadb-server php-bcmath php-common php-ctype php-curl php-fileinfo php-fpm php-gd php-iconv php-intl php-mbstring php-mysql php-soap php-xml php-xsl php-zip git -y

⚙️ 3. Install Composer

sudo apt install composer -y

🛢️ 4. Create the Snipe-IT Database


sudo mysql

Inside the MySQL shell:

CREATE DATABASE snipeit;
GRANT ALL ON snipeit.* TO 'snipeit'@'localhost' IDENTIFIED BY 'yourStrongPassword';
FLUSH PRIVILEGES; EXIT;

📁 5. Download Snipe-IT

cd /var/www/html 
sudo git clone https://github.com/snipe/snipe-it 
cd snipe-it

⚙️ 6. Create and Configure .env File

sudo cp .env.example .env 
sudo nano .env

Edit the following variables:

APP_URL=http://your-server-ip 
DB_DATABASE=snipeit 
DB_USERNAME=snipeit 
DB_PASSWORD=yourStrongPassword

🔒 7. Set Permissions

sudo chown -R www-data: /var/www/html/snipe-it 
sudo chmod -R 755 /var/www/html/snipe-it

🧱 8. Install Dependencies with Composer


sudo composer update --no-plugins --no-scripts 
sudo composer install --no-dev --prefer-source --no-plugins --no-scripts

🔑 9. Generate App Key


sudo php artisan key:generate

Make sure you keep a copy of your APP_KEY in a safe place, for example, a secure password manager. This key is required to decrypt any encrypted fields in the database.

🧠 10. Check PHP FPM Version

sudo systemctl list-units --type=service | grep php

Make sureEnsure PHP 8.3 (or current)the current version) is installed and running.


▶️ 11. Enable PHP-FPM

bash
sudo systemctl start php8.3-fpm 
sudo systemctl enable php8.3-fpm

🌐 12. Create Nginx Configuration for Snipe-IT

sudo nano /etc/nginx/conf.d/snipeit.conf
Paste the following (adjust IP and PHP version if needed):
server {
        listen 80;
        server_name 10.1.1.8;
        root /var/www/html/snipe-it/public;
        
        index index.php;
                
        location / {
                try_files $uri $uri/ /index.php?$query_string;

        }
        
        location ~ \.php$ {
include fastcgi.conf;
                include snippets/fastcgi-php.conf;
                fastcgi_pass unix:/run/php/php8.3-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        }

}

🔗 13. Enable the Site

bash
sudo ln -s /etc/nginx/conf.d/snipeit.conf /etc/nginx/sites-enabled/snipeit.conf

⚙️ 14. Update Nginx Config

Edit main config:

bash
sudo nano /etc/nginx/nginx.conf

Add the following line inside the http block:

server_names_hash_bucket_size 
nginx
64;
server_names_hash_bucket_size 64;

🔄 15. Restart Nginx

bash
sudo systemctl restart nginx

🌐 16. Access Snipe-IT Web Interface

Open your browser and go to:

arduino
http://your-server-ip

Complete the web-based setup to finish the installation.