# SnipeIT - Install SnipeIT

1. Pastikan server ubuntu sudah mempunyai koneksi internet.
2. Pastikan Ubuntu yang digunakan LTS.  
    ```
    lsb_release -a
    ```
    
    *Output* OS Ubuntu version. ```
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 24.04.3 LTS
    Release:        24.04
    Codename:       noble
    ```
3. Update dan Upgrade Ubuntu 24.04. ```
    apt update && apt upgrade -y
    ```
4. Install Dependencies. ```
    apt install software-properties-common -y
    apt install curl -y
    apt install unzip -y
    apt install zip -y
    apt install nano -y
    ```
5. Install PHP 8.4. ```
    add-apt-repository ppa:ondrej/php -y
    apt update
    apt install -y php8.4 php8.4-bcmath php8.4-common php8.4-ctype php8.4-curl php8.4-fileinfo php8.4-fpm php8.4-gd php8.4-intl php8.4-mbstring php8.4-mysql php8.4-soap php8.4-xml php8.4-xsl php8.4-zip php8.4-cli
    ```
6. Cek Version  
    ```
    php -v
    ```
    
      
    Output PHP version. ```
    PHP 8.4.11 (cli) (built: Aug  3 2025 08:42:27) (NTS)
    Copyright (c) The PHP Group
    Built by Debian
    Zend Engine v4.4.11, Copyright (c) Zend Technologies
        with Zend OPcache v8.4.11, Copyright (c), by Zend Technologies
    ```
7. Install Composer. ```
    wget -O composer-setup.php https://getcomposer.org/installer
    php composer-setup.php --install-dir=/usr/local/bin --filename=composer
    ```
8. Cek Version ```
    composer -V
    ```
    
    Output Composer version. ```
    Composer version 2.8.11 2025-08-21 11:29:39
    PHP version 8.4.11 (/usr/bin/php8.4)
    Run the "diagnose" command to get more detailed diagnostics output.
    ```
9. Install MariaDB Server &amp; Client. ```
    apt install mariadb-server mariadb-client -y
    ```
10. Cek Version ```
    mariadb -V
    ```
    
    Output MariaDB version. ```
    mariadb  Ver 15.1 Distrib 10.11.13-MariaDB, for debian-linux-gnu (x86_64) using  EditLine wrapper
    ```
11. Create Database. ```
    mysql
    ```
    
    ```
    mysql> CREATE DATABASE db_snipeit;
    mysql> GRANT ALL on db_snipeit.* to user_snipeit@localhost identified by 'ilusidigital.com';
    mysql> FLUSH PRIVILEGES;
    mysql> \q
    ```
12. Create Folder &amp; Download Snipe-IT ( Versi yang diunduh tergantung pada yang ingin diinstal.) ```
    mkdir -p /var/www/
    cd /var/www/
    wget https://github.com/grokability/snipe-it/archive/refs/tags/v8.2.1.zip
    unzip v8.2.1.zip
    mv snipe-it-8.2.1 snipe-it 
    cd snipe-it
    cp .env.example .env
    nano .env
    ```
13. Basic &amp; Simple Config .env ```
    APP_URL=https://assets.ilusidigital.com
    APP_TIMEZONE=Asia/Jakarta
    #
    DB_DATABASE=db_snipeit
    DB_USERNAME=user_snipeit
    DB_PASSWORD=ilusidigital.com
    ```
14. Change Ownership. ```
    chown -R nginx:nginx /var/www/snipe-it
    ```
15. Update Dependencies Composer &amp; Laravel. ```
    cd /var/www/snipe-it/
    composer update --no-plugins --no-scripts
    composer install --no-dev --prefer-source --no-plugins --no-scripts
    php artisan migrate --seed
    php artisan key:generate
    ```
16. Klik link berikut untuk [Install Nginx Ubuntu](https://notes.ilusidigital.com/books/nginx/page/nginx-install-nginx-ubuntu "Install Nginx Ubuntu")
17. Backup file config default nginx. ```
    cd /etc/nginx/conf.d/
    mv default.conf default.conf.backup
    ```
18. Create Folder Log dan Edit Konfigurasi Nginx untuk SnipeIT :  
    ```
    mkdir -p /var/log/nginx/snipeit/
    nano /etc/nginx/conf.d/snipeit.conf
    ```
19. Konfigurasi Nginx SnipeIT : ```
    server {
        listen 80;
        server_name assets.ilusidigital.com;
    
        root /var/www/snipe-it/public;
        index index.php;
    
        access_log /var/log/nginx/snipeit/snipeit_access.log;
        error_log  /var/log/nginx/snipeit/snipeit_error.log warn;
    
        location / {
            try_files $uri $uri/ /index.php?$query_string;
        }
    
        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_pass unix:/run/php/php8.4-fpm.sock;
            fastcgi_index index.php;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param PATH_INFO $fastcgi_path_info;
            fastcgi_read_timeout 300;
            fastcgi_connect_timeout 300;
            fastcgi_send_timeout 300;
    
        }
    
        location ~ /\.ht {
            deny all;
        }
    }
    ```
20. Ubah default user. ```
    nano /etc/nginx/nginx.conf
    ```
21. Edit pool config PHP-FPM (biasanya di /etc/php/8.4/fpm/pool.d/www.conf):  
    ```
    listen = /run/php/php8.4-fpm.sock
    listen.owner = nginx
    listen.group = nginx
    listen.mode = 0660
    ```
22. Restart Service Nginx dan PHP-FPM ```
    systemctl restart php8.4-fpm
    systemctl restart nginx
    ```
23. Verifikasi Socket  
    ```
    ls -l /run/php/php8.4-fpm.sock
    ```
24. Hasil dari verfikasi socket.   
    ```
    srw-rw---- 1 nginx nginx 0 Sep 22 13:05 /run/php/php8.4-fpm.sock
    ```
25. Create User Admin pada SnipeIT  
    ```
    cd /var/www/snipet-it/
    php artisan snipeit:create-admin --first_name="Admin" --last_name="Ilusi Digital" --email=ilusi.digtal2022@gmail.com --username=ilusidigital --password="P@ssw0rd!"
    ```
26. Snipe-IT sudah bisa digunakan.  
    [![image.png](https://notes.ilusidigital.com/uploads/images/gallery/2025-08/scaled-1680-/image.png)](https://notes.ilusidigital.com/uploads/images/gallery/2025-08/image.png)
27. Selesai