What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
The shortest supported VPS deployment is Docker Compose with the official louislam/uptime-kuma:2 image. Store /app/data on a persistent local volume, expose port 3001 only to a reverse proxy when possible, and configure WebSocket forwarding before putting the dashboard on HTTPS.
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
What you are deploying
Uptime Kuma is a self-hosted monitoring application. You run it on a VPS, add monitors for the services you care about, and receive alerts when checks fail or recover. It can monitor HTTP and HTTPS endpoints, TCP services, response keywords, JSON queries, WebSockets, ping targets, DNS records, push URLs, Steam game servers, and Docker containers. It also provides charts, public status pages, certificate information, custom-domain mapping for status pages, proxy support, and two-factor authentication.
As an Amazon Associate I earn from qualifying purchases.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →The project advertises checks at 20-second intervals and more than 90 notification services. Those figures are part of the project’s feature list; the interval you actually observe depends on the monitor type, your configuration, and network conditions. The application listens on port 3001 by default.
A VPS-based monitor is useful because it keeps watch while your laptop or home server is offline. It is not independent of the VPS itself, however: if the VPS, its provider, or the network path to it fails, monitors running there cannot report that failure from another location. For important services, add a second monitoring location outside the VPS as an operational safeguard.
#1 Best Overall
- 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.
Choose an installation method
Docker is the recommended path for most VPS users because the documented setup is short, upgrades are contained in the image, and the application data can be kept in a named volume or local directory. A direct Node.js installation is available when you deliberately want to manage the runtime and process supervisor yourself.
| Consideration | Docker Compose or container | Direct Node.js and PM2 |
|---|---|---|
| Documented setup | Download the project’s Compose file and run docker compose up -d. |
Clone the repository, run npm run setup, then start the server with PM2. |
| Runtime isolation | Node.js and the application run inside the image. | Node.js, Git, npm dependencies, and PM2 are managed on the VPS host. |
| Persistence | Map a named volume or local directory to /app/data. |
The checked-out application’s data directory remains on the host filesystem. |
| Updates | Pull a newer image and recreate the container, retaining the data mount. | Pull the source changes, run the project’s setup process, and restart PM2. |
| Reverse proxy | Proxy to the published host port, commonly 3001. | Proxy to the Node.js process listening on its configured port. |
| Best fit | The shortest, easiest-to-repeat VPS deployment. | Administrators who already operate Node.js services directly. |
Prerequisites before you start
- A VPS running a supported major Linux distribution, with permission to install Docker or Node.js.
- A persistent local filesystem for Uptime Kuma’s SQLite data. It must support POSIX file locking; do not place the SQLite data directory on NFS.
- SSH access and a firewall policy that allows only the traffic you intend to expose.
- A DNS record pointing your chosen hostname at the VPS if you will publish the dashboard through HTTPS.
- A notification destination, such as SMTP email, Telegram, Discord, Gotify, Slack, or Pushover, if you want alerts away from the dashboard.
Decide whether port 3001 should be public. For a direct test, publishing 3001:3001 makes the service reachable on all host interfaces. For a production dashboard behind Nginx, Caddy, or another reverse proxy, publish 127.0.0.1:3001:3001 instead so only the proxy can reach it.
Install with the official Docker Compose flow
1. Create a working directory
- Connect to the VPS over SSH.
- Create and enter a directory dedicated to the deployment:
mkdir uptime-kuma
cd uptime-kuma
2. Download the project’s Compose file
The official Compose definition is published at https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml. Download that file into the directory:
curl -o compose.yaml https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml
3. Start the service
docker compose up -d
Once the container starts, open http://your-ip:3001 for a direct-access test. The project’s examples also describe http://localhost:3001 when you are connecting from the VPS itself. The initial page asks you to create the administrator account.
4. Confirm that the container is running
docker compose ps
docker compose logs --follow
Use the first command to check the container state and the second to watch startup messages. Press Ctrl+C to leave the log view; it does not stop the container.
Run a single container instead
If you do not need a Compose file, the official image can be started directly. The image tag louislam/uptime-kuma:2 is the documented major-version image.
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 & 11Public port for a quick test
docker run -d --restart=always -p 3001:3001
-v uptime-kuma:/app/data
--name uptime-kuma louislam/uptime-kuma:2
This publishes port 3001 on all network interfaces. Use your VPS firewall and cloud firewall to restrict access if you leave it this way.
Rank #2
- 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
Loopback-only binding for a reverse proxy
docker run -d --restart=always -p 127.0.0.1:3001:3001
-v uptime-kuma:/app/data
--name uptime-kuma louislam/uptime-kuma:2
With this mapping, the proxy on the same VPS connects to 127.0.0.1:3001, while external clients cannot connect directly to port 3001. The named volume keeps the application data when the container is replaced.
Protect the data directory
Everything that must survive a container replacement belongs under /app/data. Map that path to a Docker volume or to a local directory on the VPS. The project warns that NFS is not supported for this SQLite data directory, and its documentation attributes database corruption to file-locking problems. Local block storage with normal POSIX locking is the safer choice.
Named volume
The commands above use a named volume called uptime-kuma. Docker manages its mount location, and removing or recreating the container does not remove the volume unless you explicitly delete it.
Recommended Free Tools
Bind-mounted local directory
A bind mount makes the files visible at a path you choose, which can simplify host-level backups:
mkdir -p /opt/uptime-kuma/data
docker run -d --restart=always -p 127.0.0.1:3001:3001
-v /opt/uptime-kuma/data:/app/data
--name uptime-kuma louislam/uptime-kuma:2
Keep this directory on local VPS storage rather than an NFS share. Before an upgrade, stop or snapshot the deployment according to your backup procedure, and verify that a copy of the data can actually be restored.
Install without Docker
The project also documents a direct installation for a major supported Linux distribution. You need Node.js 20.4 or newer, Git, and PM2 for background execution.
- Clone the source repository:
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
- Install and prepare the application:
npm run setup
- For a foreground test, start the server directly:
node server/server.js
This process occupies the terminal and stops when the session ends. Once the test works, use PM2 for a background service:
Rank #3
- 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)
pm2 start server/server.js --name uptime-kuma
- Register PM2 to start at boot and save the process list:
pm2 startup
pm2 save
When you choose this method, you are responsible for keeping Node.js within the supported version, protecting the host filesystem, and coordinating source updates with PM2 restarts. The Docker path avoids exposing those runtime-management tasks directly on the host.
Put Uptime Kuma behind HTTPS and a reverse proxy
A reverse proxy gives the dashboard a normal HTTPS hostname and lets you keep port 3001 private. The important detail is that Uptime Kuma uses WebSockets. Your proxy must forward both the HTTP upgrade request and the connection semantics: the Upgrade and Connection headers. Without them, the page may load while live updates, login actions, or other interactive features fail or repeatedly reconnect.
Proxy topology
- Create a DNS record such as
status.example.compointing to the VPS. - Run Uptime Kuma on
127.0.0.1:3001using the loopback-only Docker mapping, or bind your direct Node.js service to an equivalent local address. - Configure Nginx, Caddy, or your chosen proxy to terminate TLS and forward requests to
http://127.0.0.1:3001. - Enable WebSocket forwarding, including
UpgradeandConnectionheaders, following the proxy’s syntax and the project’s reverse-proxy guidance. - Open the HTTPS hostname, complete the administrator setup, and confirm that the dashboard remains connected while you navigate between pages.
Do not invent a second public path to port 3001 after setting up the proxy. Leaving the port exposed defeats the isolation gained from the loopback binding and creates another surface to protect with firewall rules and authentication.
Common proxy symptoms
- Dashboard loads but updates freeze: check that both WebSocket headers are passed and that the proxy is not stripping upgrade requests.
- Repeated reconnect messages: verify the proxy’s idle timeout and WebSocket support, then inspect the Uptime Kuma and proxy logs together.
- Certificate or hostname warnings: confirm that DNS resolves to this VPS and that the TLS certificate covers the exact hostname you entered.
- Direct port still reachable: replace
-p 3001:3001with-p 127.0.0.1:3001:3001and remove any firewall rule that deliberately exposes 3001.
Complete the first-run setup
Create and protect the administrator account
On the first visit, create the administrator account and keep authentication enabled. After you confirm access over HTTPS, enable two-factor authentication if your account policy supports it. Do not publish an unauthenticated dashboard on the public internet.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteAdd a real monitor
- Choose Add New Monitor in the dashboard.
- Select the monitor type that matches the failure you need to detect: HTTP(S) for a web endpoint, TCP for a service port, Ping for reachability, DNS for name resolution, keyword or JSON-query for content validation, WebSocket for a socket endpoint, push for a job that reports its own heartbeat, Steam game server for that service type, or Docker container for a local container.
- Enter the target hostname, URL, port, query, keyword, or push details required by that monitor type.
- Save the monitor and watch its first successful check before adding more.
Use an endpoint that represents a real user dependency rather than only checking that a server accepts TCP connections. An HTTP monitor can detect a bad status response; a keyword or JSON-query monitor can detect a page that returns HTTP 200 while displaying an error.
Configure notifications
Open the notification settings and add at least one channel you can receive away from the VPS. The project lists SMTP email, Telegram, Discord, Gotify, Slack, Pushover, and many other integrations, with more than 90 services supported in total. Send a test notification before relying on the channel for incidents.
Publish a status page selectively
Create a status page only for monitors intended for public visibility. Uptime Kuma supports multiple status pages and can map a status page to a specific domain. Keep internal infrastructure, administrative endpoints, and sensitive hostnames on private monitors instead of exposing them through a public page.
Rank #4
- 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
Design monitors that tell you something useful
Website and API checks
Use HTTP(S) monitoring for the URL a visitor or API client actually uses. Add keyword or JSON-query validation when a successful transport response is not enough. For example, a login page that returns a branded error document with status 200 should be treated differently from a healthy page.
Network and infrastructure checks
TCP checks answer whether a service accepts connections on a port. Ping checks test IP-level reachability, while DNS checks test name-resolution behavior. These checks isolate different failure layers; a healthy ping does not prove that your web application is serving the right content.
Push and scheduled jobs
A push monitor is appropriate for a backup, import, or game-server maintenance job that can report completion. Have the job call its push URL only after the work succeeds, and set a timeout long enough to cover the expected schedule without hiding a missed run.
Container and game-server checks
Docker-container monitors can show whether a local container is running. A Steam game-server monitor checks the service as a game client would. Pair local container checks with an external HTTP or TCP monitor when you need to know whether users outside the VPS can reach the service.
Free tools Windows power users keep installed
One-click scans. No signup required.
Make monitoring independent enough to be trustworthy
Running Uptime Kuma on the same VPS as the application is convenient, but it shares the VPS’s failure domain. If the host is powered off, the provider has an outage, or routing to that provider breaks, the monitor cannot send an alert through that same path. Treat the VPS instance as one observation point, not proof that the public internet can reach your service.
- Keep the primary monitor on the VPS for low-latency checks and local Docker visibility.
- Add a second Uptime Kuma instance or another monitoring service in a different provider, region, or network for independent reachability checks.
- Send notifications through a channel that is not hosted solely on the monitored VPS.
- Use a controlled endpoint to test both failure and recovery notifications after configuration changes. This is an operational check you perform, not a feature that happens automatically.
Updates, backups, and routine operations
Container lifecycle
Keep /app/data attached when replacing a container. With Compose, review the project’s current Compose definition, pull the required image, and recreate the service using your normal change window. With a single container, stop and remove only the container, not the named volume, then run the documented command again with the same volume mapping.
Source installation lifecycle
For a direct installation, update the checked-out source, run the project’s setup command when required, and restart the PM2 process. Confirm the Node.js version remains at least 20.4 before applying an update.
Best Value
- 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.
Backups
Back up the persistent data directory or Docker volume on a schedule that matches how much monitor history and configuration you can afford to lose. A backup is useful only if you can restore it: periodically test restoring a copy to a temporary local deployment and verify that monitors, notification settings, and status pages are present.
Logs and health checks
- Inspect container state with
docker compose psordocker ps. - Follow application output with
docker compose logs --followor the equivalent container log command. - For PM2, inspect the process list and logs with PM2’s normal process and log commands.
- Check the reverse-proxy error log when WebSockets or TLS fail while the application itself appears healthy.
Troubleshooting by symptom
Port 3001 will not open
First determine whether the service is intentionally loopback-only. A binding of 127.0.0.1:3001:3001 is correct when a reverse proxy is the public entry point; test it from the VPS with curl http://127.0.0.1:3001 and test the public HTTPS hostname instead. If you intended direct access, check the container state, host firewall, cloud firewall, and the published-port mapping.
The container restarts or loses configuration
Inspect logs for startup errors and verify that /app/data is mounted. If the mount is missing or points at an ephemeral container path, replacing the container creates an apparently empty installation. Also verify that the storage is local and supports POSIX file locks; NFS-backed SQLite data can become corrupted.
Notifications never arrive
Use the notification provider’s test function, then inspect the application logs for authentication, DNS, TLS, or outbound-firewall errors. Confirm that the VPS can make outbound connections and that the destination address, token, webhook, or SMTP credentials are current.
A monitor reports a false outage
Check whether the failure is limited to the VPS’s route or resolver. Compare the result with a second monitoring location, then adjust the monitor type: use keyword or JSON validation for content failures, DNS monitoring for resolver issues, and TCP or ping only when those layers are the signal you actually need.
Quick wins for a faster PC:
Repair Windows errors before they cause bigger problemsFix Now →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →The public status page exposes too much
Remove internal monitors from the status page and keep administrative targets private. Use separate status pages for separate audiences, and avoid placing hostnames, ports, or incident details on a page intended for anonymous visitors.
Docker versus direct installation: a practical decision
Choose Docker Compose when you want the shortest supported sequence, a repeatable image-based deployment, and a clean data mount. Choose direct Node.js when your team already standardizes on host-managed Node services, PM2, and source checkouts and accepts the additional runtime maintenance. Either method can sit behind the same HTTPS reverse proxy; the non-negotiable requirements are persistent, lock-safe storage and correct WebSocket forwarding.
Final deployment checklist
- The service starts automatically after a VPS reboot.
/app/datais backed up and stored on local lock-supporting storage, not NFS.- Port 3001 is loopback-only when a reverse proxy is the public entry point.
- The proxy terminates HTTPS and forwards
UpgradeandConnectionheaders for WebSockets. - An administrator account, authentication, and preferably two-factor authentication are enabled.
- At least one monitor checks a real endpoint, and its notification test succeeds.
- A public status page contains only monitors intended for public visibility.
- A second monitoring location or service covers failures of the VPS and its network path.
- You have tested both an alert and a recovery notification with a controlled endpoint.
For most readers, the dependable path is therefore: run louislam/uptime-kuma:2 with Docker, keep its data on a persistent local volume, bind port 3001 to loopback, terminate HTTPS at a WebSocket-capable reverse proxy, and validate alerts from outside the VPS failure domain.
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.




