Halloween DealsAmazon USHalloween week deals: useful picks before month-endAmazon US: current deals, useful picks and tech finds.Check DealsSlow PC?RecommendedPC slow today? Run a repair scan before it gets worseResolve common Windows issues and optimize system performance.Scan NowHalloween DealsAmazon USOctober picks are moving - compare before checkoutAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
VGSources
Blog

How to Self-Host Snipe-IT Asset Management on a VPS (Docker or Git)

A practical, production-focused guide to running Snipe-IT on a Linux VPS, including Docker Compose and conventional Git/archive installations, reverse-proxy HTTPS, SMTP, persistence, backups, upgrades, and troubleshooting.
Length11 min Posted Quest giverVGSources Team
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The clearest new-deployment path is the official Snipe-IT Docker Compose stack on a Linux VPS: it packages the application runtime, keeps dependencies isolated, and gives you a repeatable upgrade procedure. A conventional Git or release-archive installation is also suitable when your team already operates PHP and a web server. In either case, Snipe-IT is web software, so the VPS needs a configured web server, a database, persistent application storage, HTTPS, and working SMTP.

What a self-hosted Snipe-IT deployment contains

Snipe-IT is an inventory and asset-management web application, not a desktop program. Users reach it through a browser, while the server runs the application code, serves the web interface, stores records in a database, and keeps uploaded files and generated application data on persistent storage.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

A production VPS deployment therefore has several distinct parts:

  • Application runtime: either the official snipe/snipe-it container or a conventional PHP installation from Git or a release archive.
  • Web entry point: a web server or reverse proxy that terminates HTTPS and forwards requests to Snipe-IT.
  • Database: a database service running in the Compose stack, on the VPS, or on a separate managed host.
  • Persistent data: the database, uploaded files, configuration, generated keys, and Docker volumes must survive container replacement or code updates.
  • Mail transport: SMTP is needed for password resets, alerts about expiring licenses and assets, and asset-acceptance or EULA workflows.

The official server guidance is explicit about privilege: You should never run Snipe-IT (or any website, ever) as a root (Linux) or Administrator (Windows). Create an unprivileged user and make them the owner of the files. Apply that rule to both the application files and any service account that operates the stack.

#1 Best Overall
Elebase USB to USB C Adapter for iPhone 18 Pro Max,USBC Car Charger Adapter | 4Pack Type C Female to A Male Cable Converter for Apple Duo 17 16 15 14 Plus,iWatch Watch 12 11 10,iPad 9 8 Air,Airpods 5 4
  • Read Before You Buy — No Video Output: These adapters support charging and USB 2.0 data transfer, but cannot transmit video signals. Except for standard USB webcams (which use USB data only), they are not compatible with HDMI/DisplayPort cables, video-capable USB-C hubs, or docking stations with video output.
  • Convert USB-A Ports to USB-C: Designed to connect USB-C earphones, cables, flash drives, card readers, and other USB-C accessories to standard USB-A ports. Plug-and-play with no drivers or software required.
  • Aluminum Alloy Housing: Built with a sturdy aluminum alloy shell that aids in heat dissipation and protects against daily wear and scratches. Designed to maintain a stable and secure connection.
  • Compact & Travel-Friendly: The ultra-compact design allows the adapter to stay plugged into your device without blocking adjacent ports or adding bulk, reducing wear and tear on your original USB ports.
  • 12-Month Warranty: Backed by a 12-month manufacturer warranty for peace of mind. Designed to meet strict quality control standards for reliable everyday performance.

Choose Docker Compose or a conventional installation

Both methods can produce a production service. The better choice depends on what your team already knows and how you want to maintain the server.

Decision area Official Docker Compose Git or release archive
Dependencies Packaged in the supported snipe/snipe-it image and Compose services. You install and maintain the web server, PHP runtime, extensions, Composer dependencies, and database separately.
Upgrade mechanics Stop the old container, pull the desired image, and start it again against the same persistent volume. Pull newer Git code or replace the release archive, then run the documented application update and dependency steps.
Web-server visibility The application stack is isolated; HTTPS is commonly handled by a reverse proxy in front. You control the web server and PHP configuration directly, including the virtual host and process model.
Backup surface Back up the database and every named or bind-mounted application volume. Back up the database plus the application data and configuration directories used by the web server.
Best fit New VPS deployments that value repeatability and image-based operations. Teams already operating PHP web stacks or needing direct control of each server component.

The maintainers document only snipe/snipe-it as the supported container image. Images from unrelated repositories are outside that support responsibility. The recommendation to default to Docker for a new VPS is an operational judgment based on the published workflows, not a claim that it is faster or more performant.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Prepare the VPS before installing

Create accounts and define ownership

  1. Log in with a non-root administrative account that can use controlled privilege escalation.
  2. Create a separate unprivileged application or service owner. Do not make the web process, PHP process, or container workload run as root.
  3. Give that owner access only to the Snipe-IT files, sockets, volumes, and backup paths it actually needs.

Keep administrative access, application ownership, and database credentials separate. This limits the damage from a compromised web process and makes file-permission failures easier to diagnose.

Plan DNS and HTTPS

Point the hostname you will publish to the VPS before requesting a certificate. Decide whether TLS terminates at a reverse proxy, at the web server that serves Snipe-IT directly, or at an upstream load balancer. The public URL you place in Snipe-IT must use the final HTTPS hostname, not an internal container name or temporary IP address.

Reserve persistent storage

Estimate space for the database, uploaded attachments, generated files, logs, and backup staging. On Docker, identify the named application volume in the Compose file and treat it as stateful infrastructure. On a conventional install, identify the application data directories and configuration files that must be copied with the database.

Constrain network exposure

  • Expose only the web ports needed for HTTP redirection and HTTPS.
  • Keep the database on the internal application network or bound to localhost whenever possible.
  • If a standalone database is required, allow connections only from the VPS or private application network and use its provider’s TLS and access controls.
  • Allow SSH only for administration, preferably with key authentication and a restricted source range.

Install with the official Docker Compose workflow

Docker Compose is the most repeatable route for a new VPS. Install a supported Docker Engine and Compose implementation first, then perform the following sequence as the dedicated deployment user.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

1. Create a dedicated working directory

Make a directory that is not mixed with unrelated applications, change into it, and restrict access to the deployment administrators and service owner. Download the official Compose file from the Snipe-IT documentation into this directory. Do not substitute an image from another repository.

Rank #2
Sale
Anker USB-C Hub, 5-in-1 USB Hub for Laptops, 4K HDMI Multiport Adapter | USB C Dongle with 90W Max Power Delivery, 3×5Gbps USB A Data Ports, for MacBook, Dell, and More (Charger Not Included)
  • 5-in-1 USB-C Hub: Experience comprehensive connectivity featuring a Power Delivery input, two USB-A 2.0 ports, a USB-A 3.0 port, and an HDMI port. (Note: The USB-C power delivery input port is only for connecting an external wall charger to power your laptop and cannot power peripheral devices.)
  • 90W Pass-Through Charging: Achieve optimal charging with 90W pass-through power to your laptop, supported by a total input of 100W, with the hub reserving 10W for operational efficiency. (Note: Wall charger not included.)
  • Quick Data Transfers: Accelerate your productivity with rapid data transfers using a high-speed 5Gbps USB 3.0 port and two 480Mbps USB 2.0 ports.
  • 4K HDMI Display: Enhance your visual experience with a hub capable of delivering 4K resolution at 30Hz in both mirror and extend modes. Please note that this hub is compatible with MacBook (macOS 12 and newer), Windows 10 and 11, ChromeOS, and laptops equipped with DP Alt Mode and Power Delivery. Note: This device is not compatible with Linux.
  • What You Get: Anker USB-C Hub (5-in-1, 4K HDMI), welcome guide, 18-month warranty, and our friendly customer service.

2. Create and edit the environment file

Use the Compose template’s environment file as the source of truth. Set the public application URL, database connection values, application key, and mail settings. If the database is outside Docker, set its documented host and port values to the private database endpoint rather than a public address.

Generate the application key with the documented command:

php artisan key:generate --show

Copy the resulting key into the Compose environment file exactly as generated. Keep the file private; it is a secret, not a value to publish in a ticket or repository. Set APP_URL to the browser-facing HTTPS address. When a reverse proxy sits in front of the container, configure APP_TRUSTED_PROXIES as documented for that proxy so forwarded requests and generated URLs use the correct scheme and host.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Configure database and mail values

Use a unique database name, user, and long password. The Compose file’s database service can be used for a self-contained deployment, or you can point the application at a standalone database by changing the host and port variables supplied by the template. Do not expose the database port to the public internet merely because the container has one.

Configure the SMTP host, port, encryption mode, username, password, sender address, and sender name required by your mail provider. Snipe-IT uses mail for password resets, expiring-license and expiring-asset alerts, and asset-acceptance or EULA requirements. An installation without working SMTP will appear functional until one of those workflows is needed.

4. Start the stack

From the directory containing the Compose file and environment file, start the services in detached mode:

docker compose up -d

Watch the container logs and then open the HTTPS hostname. Complete any first-run or pre-flight checks shown by Snipe-IT. Confirm that the application can reach its database and that the configured storage is writable before importing real asset data.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
Anker USB C Hub, 7in1 Multi-Port USB Adapter, 4K@60Hz USBC to HDMI Splitter | 85W Max PD, 2 USB 3.0 & 1 USBC Data Ports, SD/TF Card Reader, for Laptops/Mac and Other Type C Devices (Charger Not Included)
  • Sleek 7-in-1 USB-C Hub: Features an HDMI port, two USB-A 3.0 ports, and a USB-C data port, each providing 5Gbps transfer speeds. It also includes a USB-C PD input port for charging up to 100W and dual SD and TF card slots, all in a compact design.
  • Flawless 4K@60Hz Video with HDMI: Delivers exceptional clarity and smoothness with its 4K@60Hz HDMI port, making it ideal for high-definition presentations and entertainment. (Note: Only the HDMI port supports video projection; the USB-C port is for data transfer only.)
  • Double Up on Efficiency: The two USB-A 3.0 ports and a USB-C port support a fast 5Gbps data rate, significantly boosting your transfer speeds and improving productivity.
  • Fast and Reliable 85W Charging: Offers high-capacity, speedy charging for laptops up to 85W, so you spend less time tethered to an outlet and more time being productive.
  • What You Get: Anker USB-C Hub (7-in-1), welcome guide, 18-month warranty, and our friendly customer service.

5. Keep the volume identity unchanged

The named application volume is part of the deployment’s identity. Do not delete it while troubleshooting, and do not create a new project name or volume mapping casually. Replacing a container is safe only when it is attached to the same persistent data volume and the database remains available.

Install from Git or a release archive

The conventional route is appropriate when you already run a PHP web stack and want direct control over the web server. The official download guidance supports Git, a release archive, or the Linux installer; Git is the documented preference when Git is already installed.

1. Obtain the application code

Clone the supported repository or unpack a release archive into a dedicated application directory owned by the unprivileged service account. A release archive gives you a fixed package; Git gives you the documented workflow of pulling newer code later. Keep the current release recorded so you can identify exactly what is running.

2. Install the server-side prerequisites

Install the PHP version and extensions required by the Snipe-IT release, Composer, a web server, and a database service or connection. The exact package list changes with the release and operating-system distribution, so follow the release-specific requirements rather than copying an old package list.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

3. Create the database and credentials

Manual installations must create their database themselves. Create a dedicated database and account, grant that account access only to the Snipe-IT database, and keep the password outside the web root. Record the host, port, database name, username, and password for the application’s environment configuration.

4. Install application dependencies and configure the environment

Run Composer from the application directory as the unprivileged owner, create the environment configuration required by the release, set the application URL, database values, application key, and SMTP settings, and use the documented permissions for writable directories. Never solve a permissions error by making the entire tree world-writable or by running Composer as root.

5. Configure the web server correctly

Set the virtual host’s document root to the application’s public directory, not the top-level installation directory. This prevents private configuration and source files from being served directly. Enable the URL-rewrite and PHP handling required by the selected web server, then reload it after checking the configuration.

Rank #4
Sale
UGREEN USB to USB C Adapter Combo 4-Pack, 10Gbps USB C Converter Space Gray | Data transfer & Fast charging for MacBook, iPhone 17/16/15, iPad, Samsung Galaxy, Apple Watch
  • Dual Converters, Infinite Potential:Includes 2× USB C male to USB A female adapters and 2× USB A male to USB C female adapters. Perfect for a wide range of uses—tablets with Bluetooth keyboards, expand USB ports on macbook, and more. Two different converters for all your daily needs
  • Next-Level 10Gbps & 3A Charging: No more slow 480Mbps, this usb to usb c adapter has a transfer speed of up to 10Gbps, allowing you to do more transferring in less time. This usb adapter fits both USB A and USB C charger, supporting up to 3A fast charging
  • Upgraded Exquisite Craftsmanship: With an aluminum alloy housing and metal connector, the usbc to usb adapter is extremely durable and sturdy. Rigorously tested to withstand more than 10,000 times of plugging and unplugging, ensuring long-lasting performance
  • Broad Compatible: The usb c to usb adapter widely supports all USB C/ USB A devices like laptops, tablets, cellphones, car chargers, and phone chargers. Such as compatible with MacBook Pro/Air 2023/2022, Thunderbolt 4/3 Devices,Apple MagSafe Watch 9/8/7/SE/Ultra, iPad Pro 2022/2021, Samsung Galaxy S23/S20/S10, and iPhone 17/16/15 Pro. Plug and play
  • Please Note: To reach 10Gbps speed, keep the cable under 3.3 ft. For USB A Male to USB C adapters, try flipping the USB C connector. USB C Male to USB A adapters support bidirectional 10Gbps transfer within 3.3 ft

6. Apply HTTPS and complete the pre-flight checks

Install the certificate for the public hostname, force HTTP requests to HTTPS, and open the Snipe-IT setup or pre-flight page. Resolve database, PHP-extension, directory-permission, and mail warnings before onboarding users.

Put HTTPS and a reverse proxy in the correct place

HTTPS is not optional for an asset system that holds employee, device, license, and potentially credential-related information. Terminate TLS at the reverse proxy or web server, redirect plain HTTP to HTTPS, and pass the original host and scheme to the application.

For Docker, the reverse proxy normally forwards to the published application port on the private host interface or internal network. Set APP_TRUSTED_PROXIES according to the official guidance and the actual proxy addresses. Trusting every possible proxy without understanding the network can allow spoofed forwarded headers; trusting too little can produce HTTP links, failed redirects, or incorrect client addresses.

For a conventional install, the web server’s document root remains the public directory. Keep database ports and internal administration endpoints off the public listener, and verify that requests for environment files, source directories, and hidden files are denied.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Configure SMTP and verify real workflows

Enter the mail provider’s SMTP hostname, port, encryption setting, credentials, sender identity, and any required authentication options in the Snipe-IT environment configuration. Use a sender address permitted by the provider and by your domain’s mail policy.

Send a test from the Snipe-IT pre-flight or setup page. Then perform a password-reset test with a non-administrator account and verify delivery, links, and the sender identity. If your organization uses license or asset-expiration alerts, test one notification path as well. A successful SMTP connection test does not prove that recipient filtering, DNS authentication, or application-generated links are correct.

MAIL_BACKUP_NOTIFICATION_ADDRESS is an optional destination for backup notifications. Treat that message as a monitoring signal only. It does not create a backup, encrypt a copy, retain historical versions, or prove that restoration will work.

Best Value
Sale
Anker USB C Hub, 5-in-1 USBC to HDMI Splitter with 4K Display | 85W Max PD, 1 Powered USB-C 5Gbps & 2 Powered USB-A 3.0 5Gbps Data Ports, for MacBook Pro, MacBook Air, Dell and More (Black)
  • 5-in-1 Connectivity: Equipped with a 4K HDMI port, a 5 Gbps USB-C data port, two 5 Gbps USB-A ports, and a USB C 100W PD-IN port. Note: The USB C 100W PD-IN port supports only charging and does not support data transfer devices such as headphones or speakers.
  • Powerful Pass-Through Charging: Supports up to 85W pass-through charging so you can power up your laptop while you use the hub. Note: Pass-through charging requires a charger (not included). Note: To achieve full power for iPad, we recommend using a 45W wall charger.
  • Transfer Files in Seconds: Move files to and from your laptop at speeds of up to 5 Gbps via the USB-C and USB-A data ports. Note: The USB C 5Gbps Data port does not support video output.
  • HD Display: Connect to the HDMI port to stream or mirror content to an external monitor in resolutions of up to 4K@30Hz. Note: The USB-C ports do not support video output.
  • What You Get: Anker 332 USB-C Hub (5-in-1), welcome guide, our worry-free 18-month warranty, and friendly customer service.

Design backups that can actually restore the service

A usable backup covers both the database and persistent application data. Saving only the database loses uploaded files and other state; saving only a Docker volume leaves the relational records unavailable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Back up these components

  • Database: produce consistent database dumps or provider snapshots and encrypt them before off-host storage.
  • Application data: include uploaded files, generated files, and any persistent directories identified by the Compose volume or conventional installation.
  • Configuration and secrets: protect the environment file, application key, web-server configuration, and certificate material according to your secret-management policy.
  • Deployment definition: retain the Compose file and its image or release tag, or the Git commit and dependency-lock information for a conventional installation.

Test restoration independently

Restore the database and application data into an isolated VPS or maintenance environment on a schedule. Confirm that users can log in, assets and attachments appear, and mail can be sent. Record the restore time and any manual steps. Keep at least one encrypted copy outside the production VPS so a disk failure, account compromise, or accidental volume deletion does not destroy both the service and its backup.

Upgrade without losing state

Docker upgrade procedure

  1. Notify users and take a fresh database and application-data backup.
  2. Record the current image tag, Compose file, environment-file checksum, and volume names.
  3. Stop the running application according to the Compose workflow.
  4. Pull the intended newer Snipe-IT image.
  5. Start the stack again with the same Compose project and the same named application volume.
  6. Watch startup logs and complete any application migration step shown by the release.
  7. Verify login, mail, asset creation, file upload, and scheduled tasks before announcing completion.

Changing or deleting volumes during an upgrade can destroy deployment data. Treat an image pull as a code change, not as a backup.

Git or archive upgrade procedure

  1. Back up the database, uploaded files, environment configuration, and current application directory.
  2. Record the running release or Git commit.
  3. Fetch the new Git revision or unpack the new release beside the current one.
  4. Install the dependencies required by that release as the unprivileged owner.
  5. Apply the documented Snipe-IT update and migration steps.
  6. Point the web server at the new public directory, reload it, and retain the previous release for rollback until checks pass.

Security and operations checklist

  • Run the application as an unprivileged owner; never as root or Administrator.
  • Use HTTPS and redirect HTTP.
  • Expose only required web and administration ports.
  • Keep the database private and use a dedicated database account.
  • Protect the environment file, application key, SMTP password, and database password.
  • Patch the operating system, Docker Engine, Snipe-IT image or release, PHP dependencies, and reverse proxy.
  • Monitor disk space, database growth, certificate expiry, failed jobs, and mail delivery.
  • Back up off-host and test restoration rather than relying on notification emails.
  • Document the current image or release tag, Compose file, volume names, DNS record, TLS termination point, and recovery procedure.

Troubleshooting common first-deployment failures

The site shows a server error immediately

Check application and web-server logs, then verify file ownership, writable directories, PHP extensions, and the database connection. In a conventional install, confirm that the virtual host points to public, not the repository root. In Docker, confirm that the container is running and attached to the intended volume.

Generated links use HTTP or the wrong hostname

Correct APP_URL, confirm that the proxy forwards the original scheme and host, and set APP_TRUSTED_PROXIES for the actual proxy path. Clear any stale proxy or browser cache only after the server-side values are correct.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Mail tests fail or password resets never arrive

Recheck SMTP hostname, port, encryption, credentials, sender authorization, and outbound firewall rules. Inspect the mail provider’s rejection log and test with a recipient outside the administrator’s mailbox. A backup-notification address cannot compensate for broken SMTP or replace a real backup.

Data disappears after a container replacement

Stop further changes and inspect the Compose project, volume names, and mount points. The new container must use the same named application volume and the same database. Restore from the latest verified backup if the original volume was deleted or overwritten.

Which deployment should you choose?

Choose Docker Compose when this is a new VPS, you want isolated dependencies, and your operators are comfortable managing containers, volumes, and a reverse proxy. Choose Git or a release archive when your team already maintains PHP web servers, needs direct visibility into PHP and web-server behavior, or has an established configuration-management process for those components.

Whichever route you select, the non-negotiable design is the same: least-privilege ownership, a private database, HTTPS, working SMTP, persistent application storage, and backups that have been restored in a separate environment. Those controls matter more than whether the application process runs inside a container or directly on the host.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More quests from Patch Notes

  1. How to Set Up a RedM (RDR2) Server in 2026: License Key, txAdmin and server.cfg, Step by StepBlog11min
  2. Best RedM (RDR2) Server Hosting in 2026: Comparing Four Hosts on Slots, Memory and PriceBlog10min
  3. How to Host a Mindustry Server in 2026: server-release.jar, Port 6567 and the Commands That MatterBlog7min
Recommended PC Tool
Recommended PC Tool
Crashes, No Sound, or Screen Glitches?Free driver scan
PC Slower Than It Used to Be?Free scan - under a minute

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.