Free tools Windows power users keep installed
One-click scans. No signup required.
iTechGuides 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
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
The simplest reliable Uptime Kuma deployment is a four-line Docker Compose service: use the louislam/uptime-kuma:2 image, publish port 3001, and persist /app/data on storage with dependable POSIX file locking. Create a project directory, save the Compose file below as compose.yaml, start it with docker compose up -d, then open http://HOSTNAME-OR-IP:3001.
The data mount is not optional for a practical installation. It contains the database, settings, and monitor definitions, so deleting it removes the instance state. Keep that directory on a local filesystem or a Docker-managed local volume, and treat it as data that needs backups before upgrades.
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 →Use this minimal compose.yaml
The current example published by the Uptime Kuma project is intentionally small. It does not require a custom network, environment variables, a fixed container name, or a declared healthcheck.
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
volumes:
- ./data:/app/data
ports:
- "3001:3001"
Save the file exactly as compose.yaml in a new directory. Compose interprets the left side of the volume mapping as a path on the host and the right side as the path inside the container. Uptime Kuma stores its application database, settings, and monitor configuration under /app/data.
#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.
What each line does
image: louislam/uptime-kuma:2selects the current major-version image used by the project’s repository example.restart: unless-stoppedasks Docker to restart the service after a failure or host reboot, while respecting an intentional manual stop../data:/app/datakeeps application state outside the container’s writable layer, so recreating the container does not erase the instance."3001:3001"publishes host port 3001 to the container’s documented listening port 3001.
Install Uptime Kuma step by step
1. Confirm the prerequisites
You need Docker with the Compose subcommand available, permission to run Docker commands, and a host directory where the application can write its data. The commands below use the modern docker compose syntax.
2. Create the project and data directories
mkdir uptime-kuma
cd uptime-kuma
mkdir data
The data directory is created explicitly so its purpose is visible before the container starts. Do not place it on a network filesystem unless you have verified that the filesystem provides reliable POSIX file-lock behavior.
3. Save the Compose file
Create compose.yaml in the uptime-kuma directory and paste in the minimal service shown above. YAML indentation is significant: use spaces, keep uptime-kuma nested under services, and keep the list entries under volumes and ports indented beneath their keys.
4. Start the container in the background
docker compose up -d
Compose pulls the image if it is not already present and starts the service detached from your terminal. The unless-stopped policy then allows Docker to bring it back after a reboot or an unplanned container exit.
5. Verify the service
docker compose ps
Look for the uptime-kuma service in a running state and a published port showing the host-to-container mapping. If it is not running, inspect the startup output:
docker compose logs -f uptime-kuma
Press Ctrl+C to leave the log stream; that stops viewing logs, not the container.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
6. Open the web interface
On the Docker host itself, browse to http://localhost:3001. From another machine, replace localhost with the host’s DNS name or IP address:
http://HOSTNAME-OR-IP:3001
The project’s installation guidance identifies port 3001 as the service endpoint after startup. If you changed the host-side port, use that changed value in the browser instead.
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
How persistence works
A container can be removed and recreated without losing Uptime Kuma’s state when ./data remains in place. The bind mount maps that host directory to /app/data inside the container, where the application keeps its SQLite database, settings, and monitor definitions.
What survives a recreation
- Monitors and their notification configuration stored in the application database.
- Uptime Kuma settings held under the persistent application directory.
- The existing instance identity and configuration when the image is refreshed or the container is recreated.
Run docker compose down or recreate the service without deleting the project’s data directory when you want to remove the container but retain the instance. Removing the directory intentionally discards that state; do it only when you are deliberately starting over and have no data to preserve.
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 minuteFilesystem locking is a database requirement
Uptime Kuma’s installation guidance states: “Filesystem support for POSIX file locks is required to avoid SQLite database corruption.” SQLite relies on file locks to coordinate reads and writes. A storage system that reports files but does not implement locking correctly can therefore damage the database even though the mount appears usable.
A local host directory is the straightforward choice. A Docker-managed local volume is another suitable option. If the host directory resides on a NAS or other network filesystem, verify its locking behavior before using it for /app/data. If you see database locking or corruption symptoms, move the data to storage with dependable POSIX lock support before attempting further recovery.
Back up before changing the image
The Compose file does not create backups automatically. Before an image refresh or a major-version migration, stop or quiesce the service as appropriate for your operating procedure and make a copy of the data directory. Keep the backup separate from the live directory so an accidental deletion or failed update does not remove both copies.
Port mapping and the “port 3001” problem
In "3001:3001", the first number is the host port and the second number is the container port. Uptime Kuma continues listening on container port 3001; you only need to change the host side when another process already occupies port 3001.
Use a different host port
For example, publish host port 8080 to the application’s internal port 3001:
ports:
- "8080:3001"
After saving the change, recreate the service:
docker compose up -d
Use http://HOSTNAME-OR-IP:8080 in the browser. Do not change the right-hand number unless you are intentionally changing the container’s listening configuration; the documented internal endpoint remains 3001.
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.
Check the correct side of the mapping
If Compose reports a running container but the browser cannot connect, first compare the URL with the left-hand host port. A mapping of 8080:3001 will not respond at host port 3001. Also make sure the browser is pointed at the Docker host, not at a different workstation or server.
Host firewall and reachability
The Compose mapping makes the service available through the host’s published port, but a host firewall, cloud security rule, or network ACL can still block connections from another machine. Test locally on the Docker host first. If local access works and remote access does not, investigate the host and network path while leaving the container mapping unchanged.
Choosing a bind mount or a named volume
The official example uses a bind mount because ./data is easy to see, copy, and back up beside compose.yaml. A named volume delegates the storage location to Docker while preserving the same container path.
| Characteristic | Bind mount in the official example | Docker-managed named volume |
|---|---|---|
| Compose entry | ./data:/app/data |
uptime-kuma-data:/app/data |
| Host data location | Visible relative to the project directory | Managed by Docker |
| Convenience for direct file copies | High; copy the data directory directly |
Requires Docker volume commands or a temporary helper container |
| Container path | /app/data |
/app/data |
| Locking requirement | Use a filesystem with reliable POSIX file locks | Use a Docker storage driver and backing filesystem that provide reliable POSIX file locks |
A named-volume variant requires a top-level volume declaration:
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
volumes:
- uptime-kuma-data:/app/data
ports:
- "3001:3001"
volumes:
uptime-kuma-data:
Choose one storage approach and keep it consistent. Do not switch from a bind mount to a newly created named volume while expecting the old data to appear automatically; that would attach an empty storage location unless you deliberately migrate the files.
Image tags, upgrades, and major-version decisions
The current repository Compose example uses the major tag louislam/uptime-kuma:2. An older v1 installation page documents louislam/uptime-kuma:1 as its recommended stable tag and describes nightly tags as development builds. Those instructions apply to different major lines.
Stay on the major line that matches your instance
Do not change a v1 deployment to v2 merely by editing the image tag and starting the container. Review the project’s migration guidance for the relevant major-version transition, confirm that your backup is restorable, and schedule the change as an upgrade rather than treating it as a routine patch.
Routine refresh on the same major line
For a normal image refresh within the major line selected by your Compose file:
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.
docker compose pull
docker compose up -d
docker compose ps
docker compose pull downloads the current image for the configured tag. docker compose up -d recreates the service when the image digest has changed while retaining the mounted data. The final docker compose ps confirms that the replacement container is running.
Use a backup and observe the first start
Copy the persistent data before the pull, then watch the startup log after the container is recreated:
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 →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →docker compose logs -f uptime-kuma
Look for startup errors, permission failures, or database messages. Keep the previous image available until you have confirmed that the upgraded instance loads its monitors and settings correctly.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Optional Compose additions
The minimal file is enough for a local deployment. Compose also supports service keys such as environment, healthcheck, logging, restart, ports, and volumes. Add these only when you have a specific operational requirement.
Healthchecks
A healthcheck can provide a machine-readable health state for orchestration or monitoring, but the official minimal file does not define one. Use a command and timing policy appropriate to your Compose and Docker versions, and validate that the check tests the endpoint you actually intend to monitor. A healthcheck does not replace the restart policy and does not create backups.
Logging
Compose logging options can limit or rotate container logs when the host has a defined log-retention policy. Configure them deliberately; changing logging settings does not affect the persistent Uptime Kuma database in /app/data.
PC 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 & 11Outdated 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 matchEnvironment variables
The official example does not require environment variables. Do not add arbitrary variables copied from another deployment without confirming that the Uptime Kuma version supports them and that their values are needed for your environment.
Custom networks and reverse proxies
A reverse proxy or TLS terminator can sit in front of the published service when you need a hostname, HTTPS, or integration with an existing web entry point. That is a deployment-specific layer outside the minimal local setup. Keep the direct port mapping available while testing, or document the proxy path and firewall rules so operators know which endpoint is authoritative.
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.
Troubleshooting in the fastest order
Service is stopped or repeatedly restarting
- Run
docker compose psto see the current state and published ports. - Run
docker compose logs -f uptime-kumaand read the first startup error, not just the final restart message. - Confirm that the image name and major tag match the instance you intend to run.
- Check that the project directory and
datapath are present and writable by the container.
A restart loop is a symptom, not a diagnosis. The log output normally distinguishes an image pull problem, an invalid configuration, a permission issue, or a database problem.
Browser cannot connect
- Verify the service is running with
docker compose ps. - Read the port mapping and use the host-side number in the URL.
- Try the URL from the Docker host itself to separate application problems from network filtering.
- Check the host firewall or upstream network rules if local access succeeds but remote access fails.
- If you changed
compose.yaml, rundocker compose up -dagain so Compose applies the mapping.
Port 3001 is already in use
Publish another host port, such as 8080:3001, and browse to port 8080. Keep the container side at 3001. If you need to return to port 3001 later, first free the host port used by the other process.
Permission errors in the data directory
Inspect the ownership and permissions of ./data on the host, then correct them according to your operating system and Docker setup. The directory must be writable by the process inside the container. Re-run the logs after correcting access rather than repeatedly recreating the container.
SQLite locking or corruption messages
Treat these messages as a storage problem until proven otherwise. Confirm that /app/data is backed by local storage or a Docker-managed local volume with functioning POSIX locks. If it is on a NAS or another network filesystem, move the data to a filesystem with reliable locking, restore from a known-good backup if necessary, and only then restart the service.
Monitors disappeared after an update
Check that the updated container still mounts the same host path or named volume at /app/data. A typo in the relative path, a different Compose project directory, or an accidentally new named volume can make the application appear empty even though the old data still exists elsewhere.
Operational checklist
- Keep
compose.yamland its persistent data location documented together. - Use
louislam/uptime-kuma:2for a new deployment following the current repository example. - Keep
/app/dataon storage with reliable POSIX file-lock support. - Back up the data directory before image refreshes and major-version changes.
- Record any host-port change, such as
8080:3001, so users know the correct URL. - Use
docker compose psanddocker compose logs -f uptime-kumaas the first health checks. - Do not delete the data directory when recreating a container unless you intend to discard the instance.
- Add healthchecks, logging options, custom networks, environment variables, or a reverse proxy only for a defined requirement.
What the ready-to-use setup provides
This Compose definition gives Uptime Kuma a restart policy, a persistent application directory, and a directly reachable web port without adding deployment assumptions that vary between hosts. The key decisions are storage location, host-port availability, and the image major version. Once those match your environment, the installation is the directory creation, file save, startup command, and verification sequence shown above.
Recommended Free Tools
Frequently Asked Questions
Can I remove the Uptime Kuma container without losing monitors?
Yes, provided the host bind-mounted data directory or the same named volume remains attached at /app/data. Deleting that storage removes the instance state.
Why does http://localhost:3001 not work from another computer?
localhost refers to the computer running the browser. Use the Docker host’s hostname or IP address and the host-side port from the mapping, while checking the host firewall if local access works.
Should I use Uptime Kuma image tag 1 or 2?
The current repository example uses major tag 2. Older v1 guidance applies to v1 deployments; follow the project’s migration notes before changing major versions rather than swapping tags casually.
Is a NAS suitable for the Uptime Kuma data directory?
Only if its network filesystem reliably supports POSIX file locks. The project warns that file-lock support is required to avoid SQLite corruption; local storage or a Docker-managed local volume is the safer default.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC 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 & 11Does the official Compose example include a healthcheck or reverse proxy?
No. The minimal example includes only the image, restart policy, data mount, and port mapping. Healthchecks, logging, custom networks, and reverse-proxy or TLS configuration are deployment-specific additions.
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.

