Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon 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 Now×
Skip to content
VGSources
Blog

How to Self-Host Umami Web Analytics on a VPS

A practical guide to running Umami Web Analytics on your own VPS, covering Docker Compose, source installation, PostgreSQL, Nginx HTTPS, subdirectories, security, backups and upgrades.
Length13 min Posted Quest giverVGSources Team

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.

The simplest production setup for a single VPS is Umami’s Docker Compose deployment: it runs the Umami application and PostgreSQL together, listens on port 3000 locally, and can sit behind Nginx or Apache for a public HTTPS address. A source installation gives you more control over Node.js, PostgreSQL, and the process manager, but also makes upgrades and service management your responsibility.

Whichever route you choose, set a unique APP_SECRET, protect PostgreSQL, put the public endpoint behind a reverse proxy with TLS, and replace the initial admin/umami password immediately. This guide covers both deployment methods, subdirectory hosting, backups, updates, and the failure modes most likely to stop a new installation.

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.

What self-hosted Umami looks like on a VPS

Umami is a privacy-first web analytics platform for traffic, campaigns, behavior, conversions, and revenue. A self-hosted instance keeps the application and its analytics database under your control instead of sending site data to a hosted analytics provider.

There are four documented installation routes:

  • Docker Compose: the shortest path for one VPS. The supplied Compose stack contains the Umami application and a PostgreSQL database.
  • Source installation: install Node.js and PostgreSQL yourself, build Umami with pnpm, and run the resulting service.
  • Prebuilt Docker image: run the published image while connecting it to a database you provide separately.
  • Kubernetes: use Kubernetes with a third-party Helm chart when your organization already operates a cluster.

For a personal site, a small business, or a game-community network on one server, Compose normally has the fewest moving parts. Source installation is more appropriate when you already standardize on system packages, PM2 or another service supervisor, and an independently managed PostgreSQL service.

#1 Best Overall
Sale
Gaoye Blue Light Blocking Glasses
  • BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
  • EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
  • COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
  • LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
  • WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.

Plan the VPS before installing

Choose the operating layout

You can keep Umami, PostgreSQL, and the reverse proxy on one machine, or put PostgreSQL on another host. One server is easier to deploy and cheaper to operate, but a VPS failure takes out both the dashboard and its database. A separate database host creates isolation and an independent failure domain, at the cost of private networking, firewall rules, credentials management, and additional monitoring.

Layout Advantages Trade-offs
Application and PostgreSQL on one VPS Fastest setup, no database network hop, one backup target and one bill Application and data fail together; upgrades compete for the same CPU, memory and disk
Umami on VPS, PostgreSQL elsewhere Database isolation, independent database backups and scaling, smaller application host Requires private connectivity, database firewall rules, TLS or a trusted network, and handling an additional service

Prepare DNS, firewall and backups

  1. Register a DNS record such as analytics.example.com pointing to the VPS address. Do not expose Umami by its temporary IP if you intend to issue a certificate for a hostname.
  2. Allow SSH only from the administration addresses you need. Allow TCP 80 and 443 for the reverse proxy. Keep PostgreSQL on its private interface or local socket; do not open port 5432 to the whole internet.
  3. Decide where PostgreSQL backups will live before collecting real analytics. A backup on the same disk does not protect against disk loss or a compromised server.
  4. Enable automatic security updates for the operating system where they fit your maintenance policy, and monitor disk usage. Analytics tables grow with event volume and retention.

Umami’s official material does not provide a universal CPU, RAM, or visitor-volume sizing table. Capacity therefore depends on event traffic, retention, dashboard query load, and whether the database shares the VPS with other applications. Start with a monitored instance, then increase resources when CPU saturation, memory pressure, slow queries, or disk growth make the bottleneck measurable.

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

Docker Compose: the recommended single-VPS route

Why Compose is usually the best first deployment

The official Compose file defines the application and PostgreSQL services together. Running docker compose up -d starts the stack, and the application is available locally at http://localhost:3000. You do not have to install a compatible Node.js runtime or initialize PostgreSQL by hand. You do still own the VPS, Docker updates, firewall, reverse proxy, secrets, and database backups.

Install Docker and create the project directory

  1. Install a current Docker Engine and the Docker Compose plugin using your Linux distribution’s supported instructions.
  2. Create a directory that will hold the Compose file and environment settings, for example sudo mkdir -p /opt/umami, then give your administrator account access to it.
  3. Place Umami’s official Compose file in that directory. Keep the file under change control so you can reproduce the exact service definition during a recovery.
  4. Create a .env file beside the Compose file. Store database credentials and an APP_SECRET there, and set restrictive permissions such as chmod 600 .env.

The Compose database service supplies PostgreSQL for the stack. If you edit service names, ports, volumes, or credentials, make the same changes in the environment values consumed by the application; a mismatch commonly appears as a database connection failure on first boot.

Set the required secrets

DATABASE_URL is the required environment variable in Umami’s environment reference. In a Compose deployment, the supplied file may already assemble a database URL from its service variables; inspect the file and ensure the application receives a valid URL. Set a random, installation-specific APP_SECRET. The documented generation method is:

Rank #2
Windex Gaming Cleaning Wipes, Pre-Moistened Wipes to Instantly Clean all Gaming Gear and Electronics, Resealable Packaging for a Freshness Lock, 25 count (Pack of 1)
  • WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
  • AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
  • PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
  • ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
  • COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed

openssl rand -hex 32

Do not reuse that value on another Umami instance, commit it to a public repository, or replace it casually after users and sessions exist. A changed secret can invalidate existing sessions and any data encrypted with the previous value.

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

Start and inspect the stack

  1. Change into the project directory: cd /opt/umami.
  2. Start both services in the background: docker compose up -d.
  3. Check container state with docker compose ps. Both the application and PostgreSQL should remain in a running state.
  4. Read startup output with docker compose logs --tail=100. Look for a message indicating that the web service is listening and for database authentication or migration errors.
  5. From the VPS itself, request http://localhost:3000. A response confirms that the application is reachable before you add Nginx or HTTPS.

The first database setup creates the initial login account. Its documented credentials are username admin and password umami. Log in as soon as the reverse proxy is working and change this password before exposing the dashboard to the public internet.

Using the prebuilt image instead

The documented image is docker.umami.is/umami-software/umami:latest. Unlike the bundled Compose route, this image expects you to provide a database and set DATABASE_URL. Use this arrangement when PostgreSQL is already operated elsewhere or when you need to pin and promote image versions through your own deployment pipeline. Treat the latest tag as a moving target: record the image digest or chosen version if reproducibility matters.

Source installation: direct control over Node.js and PostgreSQL

Supported runtime requirements

Source installation requires Node.js 18.18 or newer and PostgreSQL 12.14 or newer. Verify both versions before building; an older distribution package can fail during dependency installation or produce runtime errors that look unrelated to the original version mismatch.

Install PostgreSQL and create an application database

  1. Install PostgreSQL from your operating system’s supported packages and enable the service at boot.
  2. Create a dedicated database and a dedicated login role for Umami. Grant that role ownership or the minimum permissions needed to create and alter Umami’s tables in its database; do not use the PostgreSQL superuser for the application.
  3. Keep PostgreSQL bound to localhost for a same-server deployment. If the database is remote, restrict its listener and firewall to the application host or private network.
  4. Record a URL in the form postgresql://username:password@host:5432/database. URL-encode reserved characters in the password so the parser cannot mistake them for delimiters.

Build and start Umami

  1. Install Node.js 18.18 or newer and pnpm on the VPS.
  2. Obtain the Umami source at the version you intend to run and change into its directory.
  3. Create a .env file containing DATABASE_URL and a unique APP_SECRET. Protect this file from other users.
  4. Install dependencies with pnpm install.
  5. Compile the application with pnpm build. The first setup creates the database tables and the initial administrator account.
  6. Start the service with pnpm start. For a production service, run it under a supervisor such as PM2 or a systemd unit so it restarts after a crash and starts after reboot.

Run the start command from the same release directory whose environment and dependencies you built. If you use a process manager, explicitly define the working directory and environment file instead of relying on an interactive shell.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
LISEN Cell Phone Stand Phone Holder for Desk, Office Decor Gadgets for Men
  • Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
  • Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
  • Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
  • ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
  • Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)

Environment variables and secure configuration

Variable Purpose How to use it safely
DATABASE_URL Connection string for PostgreSQL; the only required variable in the reference Use a dedicated role, a strong password, private connectivity, and URL-encode reserved password characters
APP_SECRET Secret used by the application for session and security functions Generate a unique value with openssl rand -hex 32; keep it private and stable for the life of the installation
BASE_PATH Prefix when Umami is served below the domain root For a URL such as https://example.com/stats, set BASE_PATH=/stats and configure the proxy to preserve that prefix
API_URL Optional API endpoint configuration Set it only when your integration requires a non-default API address, and make its public path match the proxy
TWO_FACTOR_ENCRYPTION_KEY Optional encryption key for two-factor data The repository documents a 64-character hexadecimal value; generate and store it as a secret rather than inventing a short key
MCP_ENABLED Enables the MCP endpoint when set to 1 Enable deliberately, assess its exposure, and protect the endpoint with the same access controls as other administration surfaces

Environment variables are configuration, not a substitute for network controls. A private database, least-privilege database role, restricted SSH, HTTPS, and a protected backup location still matter when every secret is correct.

Put Nginx or Apache in front of Umami

Do not make port 3000 your public interface. Bind Umami to the local machine or a private network and let a reverse proxy terminate TLS, enforce the hostname, and forward requests to the application.

Root-domain Nginx pattern

The following is a minimal pattern for an installation served at its own hostname. Replace the hostname and certificate paths with your values:

server {
    listen 80;
    server_name analytics.example.com;
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Use the HTTP server block to obtain a certificate with your chosen ACME client, then add a 443 server block that points to the certificate and retains the proxy headers. Redirect port 80 to HTTPS after certificate issuance. Test the configuration before reloading Nginx.

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.

Subdirectory deployment

To publish Umami at https://example.com/stats rather than at a dedicated hostname, set BASE_PATH=/stats in the application environment and restart it. The proxy location must preserve the same prefix:

Rank #4
Ledagic IC+RGBW USB Powered Led Light Bar with App & Remote Control, 2 Pack
  • Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
  • Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
  • 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
  • Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
  • USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
location /stats/ {
    proxy_pass http://127.0.0.1:3000;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

Do not configure the proxy for /stats while leaving BASE_PATH empty, or configure BASE_PATH=/stats while stripping the prefix in proxy_pass. That mismatch produces missing JavaScript, redirects to the wrong path, or API calls that return 404. After reloading the proxy, test the login page, static assets, dashboard navigation, and an event request from a tracking site.

Finish the first-run security checklist

  1. Open the HTTPS hostname, sign in with the initial admin/umami credentials, and change the password immediately.
  2. Confirm that the browser shows a valid certificate and that HTTP redirects to HTTPS.
  3. Verify that port 3000 is not reachable from the public internet. If Docker publishes it on all interfaces, change the binding to localhost or block it at the firewall.
  4. Review the administrator account and create only the users and permissions you need.
  5. Create a tracking website in Umami, copy its tracking snippet, and place that snippet on a non-production page first. Confirm that a visit appears in the dashboard before deploying it site-wide.
  6. Write down the Umami version, Compose file or source commit, environment variable names, proxy configuration, database location, and backup schedule.

Docker Compose versus source installation

Decision point Docker Compose Source installation
Initial setup Shortest documented single-server setup; application and PostgreSQL start together More steps: supported Node.js, PostgreSQL, database role, pnpm dependencies and process supervision
Node.js and PostgreSQL control Versions are encapsulated by the image and database service; less host-level control Direct control over package versions, extensions, tuning and service layout
Upgrade workflow Pull the new image, then recreate the services Pull source, install dependencies, rebuild and restart the process
Backups You must back up the PostgreSQL volume or dump the database; Docker does not make backups automatically You must back up the separately installed PostgreSQL database and retain configuration files
Reverse proxy Proxy to the published local container port, commonly 3000 Proxy to the port used by the supervised Node.js process
Operational complexity Lower at first, but requires Docker volume, image and Compose knowledge Higher initially, with familiar system-service controls for teams that already use them

Choose Compose when a reproducible one-host stack matters more than host-level package control. Choose source when your operations team needs to patch, tune, monitor, or share PostgreSQL and Node.js according to an existing platform standard.

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

Backups, updates and routine maintenance

Back up the data that actually matters

The PostgreSQL database contains the analytics history, sites, users, and configuration stored by Umami. Back up it up independently of the application image or source tree. A logical dump is portable and easy to verify:

pg_dump --format=custom --file=umami-$(date +%F).dump DATABASE_NAME

Use the correct database role and host for your deployment, encrypt dumps at rest, copy them to a separate failure domain, and periodically restore one to a test PostgreSQL instance. For Compose, also preserve the Compose file and volume definition; for source installs, preserve the release commit, .env secrets, process-manager unit, and proxy configuration. Never place secrets in an unencrypted public backup.

Update a source installation

From the checked-out Umami directory, the documented sequence is:

Best Value
Sale
HUANUO FlowLift™ Dual Monitor Stand, Fully Adjustable Gaming Monitor Desk Mount for 13–32″ Computer Screens, Full Motion VESA 75x75/100x100 with C-Clamp & Grommet Base, Each Arm Holds 4.4 to 19.8 lbs
  • Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
  • Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
  • Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
  • Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
  • Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
  1. git pull
  2. pnpm install
  3. pnpm build
  4. Restart the service with pnpm start, or restart the PM2 process or systemd unit that runs it.

Take a database backup before a major version change. Keep the previous source revision available until the new build has passed login, dashboard, tracking, and proxy checks.

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

Update a Compose installation

From the directory containing the Compose file, run:

  1. docker compose pull
  2. docker compose up --force-recreate -d
  3. docker compose ps and docker compose logs --tail=100 to verify health and startup output.

Pin a tested image version when you need controlled rollouts instead of silently receiving a changing latest image. Keep the database volume and environment file unchanged unless the release notes require a deliberate migration.

Refresh PostgreSQL statistics after major upgrades

After a major Umami upgrade, run PostgreSQL ANALYZE so the query planner refreshes table statistics. Execute it against the Umami database with a role allowed to analyze its tables, then inspect dashboard response times and database logs. This maintenance does not replace a backup or a schema migration; it refreshes planner information after the upgrade.

Troubleshooting by symptom

The container or process exits immediately

  • Read logs first. A malformed DATABASE_URL, unreachable PostgreSQL host, invalid credentials, or unsupported Node.js version is more useful than repeatedly restarting.
  • Check that the environment file is in the directory and format expected by Compose or the process manager.
  • For source installs, verify Node.js is at least 18.18 and PostgreSQL at least 12.14 before reinstalling dependencies.

The login page works locally but not through Nginx

  • Confirm the proxy points to the actual local listening address and port.
  • Check the Nginx error log and test the local URL from the VPS.
  • Verify DNS resolves to the VPS and that the firewall allows 80 and 443.
  • If the installation is under a path, make BASE_PATH, the Nginx location, and the public URL use the identical prefix.

CSS or JavaScript files return 404 under a subdirectory

This almost always indicates a prefix mismatch. Set BASE_PATH=/stats for a /stats deployment, preserve that prefix in the proxy, restart Umami, clear an old browser cache, and test the generated asset URLs again.

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

The dashboard is empty after adding the tracking script

  • Use the browser developer tools to confirm the script loads over HTTPS and that its requests are not blocked by mixed-content rules or a content-security policy.
  • Check that the script uses the correct website identifier and endpoint for this Umami instance.
  • Generate a visit on a test page, then inspect Umami and the reverse-proxy logs for the incoming event.

PostgreSQL fills the disk

Measure database growth against event volume and retention rather than deleting files from the PostgreSQL data directory. Expand storage, establish retention practices appropriate to your analytics needs, archive or remove data through supported database procedures, and verify that backups still complete.

When to use a separate database host

Move PostgreSQL away from the Umami VPS when database durability, independent scaling, or organizational separation outweighs the simplicity of a single host. Place both systems on a private network, allow connections only from the Umami address, use a dedicated database role, and require TLS when traffic crosses an untrusted segment. Test what happens when the database is unavailable: the dashboard should fail clearly, and your monitoring should alert before users discover it.

A separate database does not remove backup responsibility. It changes where backups, upgrades, credentials, and failure recovery are managed. Document the database version, connection endpoint, allowed network ranges, backup retention, and restoration procedure alongside the Umami deployment.

Production readiness checklist

  • Supported runtime: Node.js 18.18 or newer for source installs; PostgreSQL 12.14 or newer.
  • Unique APP_SECRET generated with a cryptographically strong method.
  • Dedicated PostgreSQL role and a protected DATABASE_URL.
  • Initial administrator password changed from umami.
  • Public traffic served through Nginx or Apache with a valid HTTPS certificate.
  • Port 3000 restricted to localhost or a private network.
  • BASE_PATH and proxy rules aligned when using a subdirectory.
  • Tested PostgreSQL backups stored away from the VPS.
  • Written update procedure for either Compose or source deployment.
  • Monitoring for disk, memory, CPU, process health, certificate expiry, and database availability.

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.

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

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
Windows Errors? Fix Them Before They SpreadFree repair scan
Crashes, No Sound, or Screen Glitches?Free driver scan

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.