
Snipe-IT is a free, open source IT asset management system written in PHP. Snipe-IT was made for IT asset management, to enable IT departments to track who has which laptop, when it was purchased, which software licenses and accessories are available, and so on. Iāve been using it for a couple of years now to keep track of my own growing collection of devices, software licenses, and network gear at home. What started as a simple way to stop losing track of which laptop had which warranty quickly became indispensable. Now I can see at a glance who *owns* what, when something is due for replacement, and which licenses are still available. In this step by step guide I will show you how to install Snipe-ITĀ on your UGREEN NAS using Docker and Dockhand.
STEP 1
Please Support My work by Making a Donation.
STEP 2
InstallĀ Dockhand using my step by step guide. If you already have Dockhand installed on your UGREEN NAS, skip this STEP. Attention: Make sure you have installed the latest Dockhand version.
STEP 3
ā ļøMandatory: Enable HTTPS on your UGREEN NAS.
STEP 4
Create a new hostname on the noip website using your noip account. For example, I have created snipmariusitĀ as Host and I use the free ddns.net domain. In the IP Address area, type in your own IPV4 IP address from your ISP, then click Create. Follow the instructions in the image below.

STEP 5
ā ļøMandatory: Add Read & Write Permissions to the Docker Folder.
STEP 6
Go toĀ Files and open the docker folder. Inside the docker folder, create one new folder and name itĀ snipeit. Follow the instructions in the image below.
Note: Be careful to enter only lowercase, not uppercase letters.

STEP 7
Now create three new folders inside the snipeit folder that you have previosuly created at STEP 6 and name them cache, config, db. Follow the instructions in the image below.
Note: Be careful to enter only lowercase, not uppercase letters.

STEP 8
Follow my step by step guide on how to activate SMTP for your Gmail account. This step is mandatory. Note: If you don’t want to use the easiest way for SMTP with Google and you already have SMTP details from your own Mail Server, you can just skip this STEP and use your personalized email SMTP details instead.
STEP 9
Open your browser and type in http://ugreen-ip-address:3866 to connect to your Dockhand container. On the left sidebar, click Stacks then + Create. Follow the instructions in the image below.

STEP 10
In the Stack name field, type in snipeit. ā ļøWarning: Type in the name in lowercase letters. The installation process can take up to a few seconds/minutes. It will depend on your Internet speed connection. Follow the instructions in the image below.
services:
db:
image: mariadb:11.8-noble #LTS Long Term Support Until October 15, 2033.
container_name: SNIPE-IT-DB
security_opt:
- no-new-privileges:false
user: 999:10
volumes:
- /volume1/docker/snipeit/db:/var/lib/mysql:rw
environment:
- MYSQL_ROOT_PASSWORD=snipeit
- MYSQL_USER=snipeit
- MYSQL_PASSWORD=snipeit
- MYSQL_DATABASE=snipeit
- TZ=Europe/Bucharest
restart: on-failure:5
snipeit:
image: snipe/snipe-it:latest
container_name: SNIPE-IT
user: 0:0
healthcheck:
test: curl -f http://localhost:80/ || exit 1
depends_on:
- db
volumes:
- /volume1/docker/snipeit/config:/var/lib/snipeit:rw
- /volume1/docker/snipeit/cache:/var/www/snipe-it/bootstrap/cache:rw
environment:
- APP_ENV=production
- TZ=Europe/Bucharest
- APP_TRUSTED_PROXIES="*"
- APP_URL=https://snipmariusit.ddns.net
- NGINX_APP_URL=https://snipmariusit.ddns.net
- APP_KEY=base64:ivoEDdeb+0ywdn/+d/lF8414TrIwbFOyz8DI187V8vo=
- APP_FORCE_TLS=true
- DB_CONNECTION=mysql
- DB_HOST=db
- DB_SOCKET=null
- DB_PORT=3306
- DB_DATABASE=snipeit
- DB_USERNAME=snipeit
- DB_PASSWORD=snipeit
- MYSQL_ROOT_PASSWORD=snipeit
- DB_PREFIX=null
- DB_DUMP_PATH='/usr/bin'
- IMAGE_LIB=gd
- SESSION_LIFETIME=12000
- EXPIRE_ON_CLOSE=false
- ENCRYPT=false
- COOKIE_NAME=snipeit_session
- COOKIE_DOMAIN=null
- SECURE_COOKIES=false
- MAIL_MAILER=smtp
- MAIL_HOST=smtp.gmail.com
- MAIL_PORT=587
- MAIL_ENCRYPTION=tls
- MAIL_UNVERIFIED_TLS=false
- MAIL_TLS_VERIFY_PEER=true
- MAIL_USERNAME=Your-own-gmail-address
- MAIL_PASSWORD=Your-own-app-password
- MAIL_FROM_ADDR=Your-own-gmail-address
- MAIL_REPLYTO_ADDR=Your-own-gmail-address
- MAIL_FROM_NAME=mariushosting
- MAIL_REPLYTO_NAME=mariushosting
- PHP_UPLOAD_LIMIT=64
- PHP_POST_MAX_SIZE=70
- PHP_UPLOAD_MAX_FILESIZE=64
- PHP_MEMORY_LIMIT=256
ports:
- 1339:80
restart: on-failure:5
Note: Before you paste the code above in the Stack editor area below, change the value numbers for userĀ with your own values. (Follow my step by step guide on how to do this.) 999 is my personal PUID value and 10Ā is my personal PGID value. You have to type in your own values.
Note: Before you paste the code above in the Stack editor area below, change the value for TZ.Ā (Select your current Time Zone from this list.)
Note: Before you paste the code above in the Stack editor area below, change the value for APP_URL and type in your own NO IP DDNS with https:// at the beginning that you have previously created at STEP 4.
Note: Before you paste the code above in the Stack editor area below, change the value for NGINX_APP_URL and type in your own NO IP DDNS withĀ https:// at the beginning that you have previously created at STEP 4.
Note: Before you paste the code above in the Stack editor area below, change the value for APP_KEY.Ā (Generate your own free APP KEY.)
Note: Before you paste the code above in the Stack editor area below, change the value for MAIL_USERNAMEĀ and type in your own Gmail address. STEP 8.
Note: Before you paste the code above in the Stack editor area below, change the value for MAIL_PASSWORDĀ and type in your own Gmail app password. STEP 8. ā ļøWarning: Do NOT confuse with your own Gmail password. This is the Gmail APP password.
Note: Before you paste the code above in the Stack editor area below, change the value for MAIL_FROM_ADDRĀ and type in your own Gmail address. STEP 8.
Note: Before you paste the code above in the Stack editor area below, change the value for MAIL_REPLYTO_ADDRĀ and type in your own Gmail address. STEP 8.
Note: Before you paste the code above in the Stack editor area below, change the value for MAIL_FROM_NAME and type in your name. mariushosting is an example for a name.
Note: Before you paste the code above in the Stack editor area below, change the value for MAIL_REPLYTO_NAME and type in your name. mariushosting is an example for a name.

STEP 11
If everything goes right, you will see the following message at the bottom right of your screen: āCreated stack “snipeit”ā.

STEP 12
On the left sidebar, click Shell then search for your SNIPE-IT instance. Click SNIPE-IT. Follow the instructions in the image below.

STEP 13
You will be connected to your internal SNIPE-IT Docker terminal. In the terminal area, copy paste the code below then hit enter on your Keyboard.
chmod -R 777 /var/lib/snipeit chown -R docker:root /var/lib/snipeit php artisan passport:keys --force php artisan migrate --force

STEP 14
You will force database migration. Once everything is marked as DONE, go straight to the next STEP.

STEP 15
Open your Nginx Proxy Manager container that you have previously installed at STEP 3. Click Add Proxy Host. A new pop up window will open. Add the following details:
Domain Names: Type in your own noip domain name that you have previously created at STEP 4.
Scheme: http
Forward Hostname/IP: Type in the local NAS IP of your UGREEN NAS.
Forward Port: Type in the Snipe-IT local Port that is 1339
Check Block Common Exploits
Check Websockets Support
Click the SSL tab. Follow the instructions in the image below.

STEP 16
After you click the SSL tab, add the following details:
SSL Certificate: Request a new SSL Certificate
Check: Force SSL
Check: HSTS Enabled
Check: HTTP/2 Support
Click Save. Follow the instructions in the image below.

STEP 17
In the Proxy Hosts area, if everything goes right, you will see that your Snipe-IT hostname has been generated. Click on it. Follow the instructions in the image below.

STEP 18
š¢Please Support My work by Making a Donation. Almost 99,9% of the people that install something using my guidesĀ forget to support my work, or justĀ ignoreĀ STEP 1. Iāve been very honest about this aspect of my work since the beginning: I donāt run any ADS, I donāt require subscriptions, paid or otherwise, I donāt collect IPs, emails, and I donāt have any referral links from Amazon or other merchants. I also donāt have any POP-UPs or COOKIES. I have repeatedly been told over the years how much I have contributed to the community. Itās something I love doing and have been honest about my passion since the beginning. But I also Need The Community to Support me Back to be able to continue doing this work.
STEP 19
Now open your browser and type in your HTTPS/SSL certificate like this https://snipeit.ddns.netĀ In my case it’s https://snipmariusit.ddns.netĀ If everything goes right, you will see the Snipe-IT installation page. Click Next: Create Database Tables. ā ļøWarning: Ignore the URL issue, it’s just a bug (False positive) in the application. Everything is already correctly set up with https:// in your compose stack at STEP 10.Ā Follow the instructions in the image below.

STEP 20
Click Next: Create an Admin User. Follow the instructions in the image below.

STEP 21
Create the new Admin user using your own credentials, then click Next: Save User and Finish.Ā Follow the instructions in the image below.

STEP 22
Your Snipe-IT Dashboard at a glance!

Enjoy Snipe-IT on Your UGREEN NAS!
šNote/Update/Container: How to Update Your Docker Containers on UGREEN NAS Using Dockhand.
š³Note: How to Create Docker Shortcuts on Desktop.
šNote: How to Update Dockhand to the latest version.
šNote: How to Clean Docker.
This post was updated on Thursday / October 1st, 2026 at 7:20 AM