Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Scan for outdated or missing drivers - takes under a minute3Clear out junk files and repair common Windows errorsiTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
Yes. Umami runs well on a single Linux VPS, and Docker Compose is the shortest documented installation because it starts both the Umami application and PostgreSQL database. A production setup still needs a domain, firewall rules, HTTPS through Nginx or Apache, a unique application secret, database backups, and an update procedure.
This guide covers Docker Compose and source deployments, the supported runtime versions, reverse-proxy layouts, first-login hardening, backups, upgrades, and the decisions involved in keeping PostgreSQL on the same server or hosting it separately.
Outdated Drivers Are Slowing You Down
One free scan finds every outdated or missing driver and matches the right update for your exact hardware.Free scan · exact hardware matchPC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11What you need before installing Umami
Prepare these items before running an installer:
- A Linux VPS with a public IP address and a domain name or subdomain such as
analytics.example.com. - Administrative access over SSH and a firewall that allows SSH plus HTTP and HTTPS. Keep the application port private when a reverse proxy is in use.
- Either Docker Engine with the Docker Compose plugin, or a source-install environment with Node.js 18.18 or newer and PostgreSQL 12.14 or newer.
- A backup destination for PostgreSQL data and the configuration files that make the service reproducible.
- A plan for TLS certificates. The official VPS walkthrough uses Nginx and offers Let’s Encrypt SSL as an option.
Umami does not publish a universal CPU, memory, or visitor-volume sizing table. Capacity depends on traffic, retention period, dashboards, and query concurrency, so start with a VPS sized for your expected workload and watch CPU, memory, storage, and database growth.
Choose a deployment model
Umami documents four routes: source installation, Docker Compose, a prebuilt Docker image, and Kubernetes through a third-party Helm chart. For one VPS, Docker Compose is generally the most direct route because the supplied compose file includes the web application and PostgreSQL.
#1 Best Overall
- Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
- With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
- Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
- Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
- Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
| Decision area | Docker Compose | Source installation |
|---|---|---|
| Initial setup | Fastest: start the supplied application-and-database stack with docker compose up -d. |
Install and maintain the runtime, dependencies, database connection, build, and process lifecycle yourself. |
| Node.js and PostgreSQL control | The containers provide the documented application and database services; host-level version control is less direct. | You control the Node.js runtime and PostgreSQL instance directly. Node.js must be 18.18 or newer and PostgreSQL 12.14 or newer. |
| Upgrade workflow | Pull the new image and recreate the services. | Pull source changes, reinstall packages, rebuild, and restart the process manager or service. |
| Backups | Back up the PostgreSQL volume or dump the database, plus the compose file and environment secrets. | Back up the PostgreSQL database and the source, environment, process-manager, and proxy configuration. |
| Reverse proxy | Proxy Nginx or Apache to the published Umami port, normally 3000. | Proxy to the port used by the process started with pnpm start. |
| Operational complexity | Lower for a single server, provided Docker storage and updates are managed carefully. | Higher, but useful when you need direct process, runtime, or database control. |
A prebuilt image is another container option when you already operate PostgreSQL elsewhere. The documented image is docker.umami.is/umami-software/umami:latest; this mode requires your own database and a DATABASE_URL.
Plan the VPS architecture
Umami can use one machine for PostgreSQL and the web application, or connect to a database on another machine. The choice affects isolation, failure domains, network security, and scaling.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
| Layout | Advantages | Trade-offs |
|---|---|---|
| Application and PostgreSQL on one VPS | Simple networking, one bill, one backup target, and the shortest path to a working installation. | A VPS failure takes both tiers offline; application queries and database maintenance compete for the same CPU, memory, disk, and I/O. |
| Application VPS plus separate PostgreSQL host | Database resources and backups can be isolated, and either tier can be scaled independently. | Requires private network controls, encrypted database connections where appropriate, credentials management, and monitoring of network latency and availability. |
For a first deployment, a single VPS is usually adequate. Move PostgreSQL when isolation, independent scaling, or a managed database service is more important than minimal administration.
Option A: install Umami with Docker Compose
1. Install Docker and prepare a working directory
Use a supported Linux distribution, install Docker Engine and its Compose plugin, then create a directory owned by the account that will manage the service. Keep the compose file and environment file in that directory so upgrades and disaster recovery are repeatable.
2. Obtain Umami’s compose file
Use the compose file supplied in Umami’s installation documentation. It defines the Umami application and a PostgreSQL service. Review the published ports, volume names, and environment settings before starting it; publish the application only to the local interface when Nginx or Apache will be the public entry point.
3. Start the stack
docker compose up -d
The documented stack serves Umami on http://localhost:3000. Confirm that both services are running and inspect logs if the application does not become healthy:
Rank #2
- Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
- Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
- Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
- Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
- Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth
docker compose ps
docker compose logs --tail=100
From the VPS itself, request the local endpoint with a browser through an SSH tunnel or a command such as curl http://127.0.0.1:3000. Do not expose port 3000 directly to the Internet once the reverse proxy is ready.
4. Preserve the data and secrets
Identify the PostgreSQL volume created by the compose file and include it in your backup plan. Keep the compose file, environment values, proxy configuration, and upgrade notes under change control. Losing the database volume loses sites, users, and analytics data even if the container can be recreated.
Option B: install from source
1. Verify the runtime
Source installation requires Node.js 18.18 or newer and PostgreSQL 12.14 or newer. Verify both versions before building; an older runtime can fail during dependency installation or compilation.
2. Configure the database connection
Create a PostgreSQL database and user, restrict access to the application host, and place the connection string in a .env file as DATABASE_URL. This is the only required environment variable in Umami’s environment-variable reference.
DATABASE_URL=postgresql://umami_user:strong-password@127.0.0.1:5432/umami
Use a URL-encoded password if it contains characters with special meaning in a connection string. For a database on another host, replace the loopback address and enforce firewall rules that allow only the application server to connect.
3. Install, build, and start
From the Umami source directory, run:
pnpm install
pnpm build
pnpm start
The build creates the database tables during first setup and creates the initial administrator account. Run the process under a service manager such as PM2 or a systemd unit so it restarts after a reboot; the official VPS walkthrough uses PM2 with Nginx.
Rank #3
- 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
- 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
- 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
- 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
- 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.
4. Keep the process private
Bind the application to a local interface or firewall its listening port so public traffic enters through the reverse proxy. A source installation does not remove the need for TLS, access controls, database backups, or log monitoring.
Set the required security settings
Change the default administrator password
On first setup Umami creates the account admin with password umami. Log in immediately and replace it with a long, unique password before adding sites or treating the instance as production.
Free tools Windows power users keep installed
One-click scans. No signup required.
Generate a unique APP_SECRET
Set a unique APP_SECRET for the instance. The documentation shows this generation command:
openssl rand -hex 32
Store the resulting value in the environment configuration and protect that file. Do not reuse the secret across unrelated installations, and do not commit it to a public repository. Changing it later can invalidate existing sessions, so schedule such a change deliberately.
Choose optional variables deliberately
API_URLis optional and should be set only when your deployment needs an explicit API URL.TWO_FACTOR_ENCRYPTION_KEYis an optional 64-character hexadecimal key for two-factor encryption. Generate and protect it as a secret if you enable the related capability.MCP_ENABLED=1enables the MCP endpoint. Leave it unset unless you specifically need that endpoint and have reviewed its exposure and authentication requirements.
Put Umami behind Nginx or Apache
A reverse proxy gives the service a stable public hostname, terminates TLS, and keeps the application port off the public Internet. The proxy and Umami can run on the same VPS or on separate machines.
Root-domain deployment
Create a virtual host for your analytics hostname and proxy requests to the local Umami listener, normally 127.0.0.1:3000. Preserve the original host and client-forwarding headers so Umami and your logs can identify the request correctly. A minimal Nginx pattern is:
Quick wins for a faster PC:
Scan for outdated or missing drivers - takes under a minuteDriver Scan →Clear out junk files and repair common Windows errorsFree Scan →Rank #4
- 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
- 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
- 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
- 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
- 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
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;
}
}
Validate the Nginx configuration, reload it, and then issue a certificate with your chosen ACME or certificate provider. Redirect HTTP to HTTPS after the certificate is active. Apache can perform the same role with its reverse-proxy modules.
Subdirectory deployment
If the public URL is https://analytics.example.com/stats rather than a dedicated hostname, set:
BASE_PATH=/stats
The proxy rules must use the same path and preserve the path when forwarding requests. A mismatch produces broken links, missing JavaScript, or login redirects to the wrong location. Test the login page, static assets, API requests, and tracking endpoint through the final subdirectory URL, not only through port 3000.
Verify the public endpoint
- Open the HTTPS hostname in a private browser window.
- Confirm the certificate is valid and the browser shows no mixed-content warnings.
- Sign in, load a dashboard, and inspect the browser network panel for failed requests.
- Submit a test visit from a separate browser or device and confirm that it appears after the normal processing delay.
Finish the first-login setup
- Sign in with
adminand the initialumamipassword. - Change the password and sign out and back in to verify the new credential.
- Create a separate website property for each site or application you want to measure.
- Copy the tracking snippet generated by Umami into the site’s page template, following the property-specific instructions shown in the Umami interface.
- Visit the site yourself, then check the real-time or current-period report to confirm the proxy, HTTPS URL, and tracking script are working together.
Keep administrative access restricted to trusted users. If you expose the dashboard to the public Internet, enforce HTTPS and monitor authentication logs.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Backups and routine operations
Back up more than the database
A usable recovery set includes the PostgreSQL data, the compose file or source revision, the .env secrets, reverse-proxy configuration, TLS renewal configuration, and notes describing the deployed version. Test restoring a database backup on a separate environment; a backup that has never been restored is only an assumption.
Monitor the components
- Check container or process health and restart loops.
- Watch disk usage, especially PostgreSQL storage and Docker volumes.
- Review memory and CPU during dashboard queries and reporting peaks.
- Inspect Nginx or Apache errors separately from application logs.
- Confirm that scheduled backups complete and are copied away from the VPS.
Run PostgreSQL maintenance after major upgrades
After a major Umami upgrade, run PostgreSQL ANALYZE to refresh planner statistics. This helps the database choose current query plans after schema or data changes. Execute it with a PostgreSQL role that has permission to analyze the relevant database, and record the maintenance in your change notes.
Best Value
- 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
- 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
- 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
- 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
- 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Update a self-hosted installation
Source deployment
Take a backup and read the release notes before changing production. Then run:
git pull
pnpm install
pnpm build
pnpm start
If PM2 or another supervisor runs Umami, restart that supervisor-managed process rather than leaving a manually started foreground process. Check the public login, dashboards, tracking requests, and logs after the restart.
Docker Compose deployment
Back up PostgreSQL and the configuration first, then pull and recreate the services:
docker compose pull
docker compose up --force-recreate -d
Follow the logs until the application is ready, verify the database volume is still attached, and test the HTTPS endpoint. Do not delete volumes as part of routine upgrades; removing the database volume destroys stored analytics and account data.
Major-version precautions
Read migration notes for major releases, reserve maintenance time, and keep a tested rollback or restore path. Run PostgreSQL ANALYZE after the upgrade, then check representative reports for errors or unexpectedly slow queries.
The Tool Desk
Outbyte PC Repair FREERepair Windows errors before they cause bigger problemsFix Now →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Troubleshoot common failures
The page on port 3000 does not load
- Run
docker compose psand inspectdocker compose logs, or inspect the PM2 and application logs for a source install. - Confirm PostgreSQL is running and that
DATABASE_URLhas the correct host, port, database, username, and password. - Check that another process is not already using port 3000.
- Test locally on the VPS before debugging DNS or TLS.
The reverse proxy returns 502 Bad Gateway
Verify that Umami is listening on the address and port in proxy_pass, that a local firewall is not blocking the proxy, and that the application process has not exited. Read the proxy error log and application log together; a database startup failure commonly appears only in the application log.
Login or assets break under /stats
Confirm that BASE_PATH=/stats is present in the active environment and that the proxy forwards the same prefix. Restart the application after changing environment variables, clear stale browser assets, and retest the complete HTTPS path.
Data disappears after a container change
Check that the original PostgreSQL volume is still mounted and that the compose file has not changed its volume name. Restore from a database backup if the volume was deleted. Never use destructive volume-removal commands as an update shortcut.
Operational checklist
- DNS points to the VPS and only required firewall ports are open.
- Node.js and PostgreSQL meet the documented minimum versions for source installs.
DATABASE_URLworks and is stored outside version control.APP_SECRETis unique and protected.- The default
admin/umamipassword has been changed. - Nginx or Apache serves the public hostname over HTTPS.
BASE_PATHand proxy rules match when using a subdirectory.- PostgreSQL backups, configuration backups, and restore tests are scheduled.
- Update commands and post-upgrade
ANALYZEmaintenance are documented.
Umami describes itself as a privacy-first analytics platform that combines traffic, campaigns, behavior, conversions, and revenue without cookies or surveillance. Self-hosting lets you control the server and data path, but it also makes patching, secrets, TLS, database reliability, and backups your responsibility.
Recommended Free Tools
Quick Recap
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.

