Yes—you can run Cachet on your own Linux VPS as a public status page. The dependable production pattern is a dedicated hostname, persistent database storage, HTTPS at a reverse proxy, and either the official Docker Compose deployment or a manual PHP installation. Docker is usually the quickest path to a repeatable environment; manual installation suits teams that already operate PHP services on the host.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
Cachet is an open-source, self-hosted status-page application. The current 3.x line requires PHP 8.3 or later, Composer, and one supported database: MariaDB, MySQL, PostgreSQL, or SQLite. This guide covers the VPS preparation, both deployment choices, first-run configuration, API automation, and the operational work required to keep the page available during an outage.
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 →What Cachet does and how a resilient deployment is shaped
Cachet presents service health, maintenance windows, and incident updates through a web application backed by a database. Visitors reach a public hostname; administrators and automation change components and publish updates in the application. Because the status page is most valuable when your primary systems are failing, place it on infrastructure that is as independent as practical from the systems it reports on.
A useful production topology has four layers:
- Public DNS: a dedicated subdomain such as
status.example.compoints to the VPS. - TLS and reverse proxy: Nginx, Caddy, or a managed edge proxy accepts HTTPS and forwards requests internally.
- Cachet: a Docker container or a PHP application serves the page on a private host or container-network port.
- Persistent data: the database and uploaded assets live on durable storage covered by backups.
Do not expose Cachet’s application port directly to the internet when a reverse proxy can provide the public listener. The proxy should be the only service handling normal web traffic, with HTTP redirected or otherwise controlled in favor of HTTPS.
#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.
Requirements before you install
| Area | Requirement | Implementation decision |
|---|---|---|
| Operating system | Supported 64-bit Linux VPS | Choose a distribution your team can patch and monitor. |
| Administrative access | Non-root account with SSH key authentication | Use the account for routine administration; reserve root for initial provisioning or approved recovery work. |
| Network policy | Host firewall exposing SSH, HTTP, and HTTPS | Restrict SSH by source where practical. Keep the Cachet application port private. |
| Hostname | Dedicated status subdomain pointed at the VPS | Set DNS before testing certificates and external monitoring. |
| Data | Persistent database storage and storage for uploaded assets | Use Docker named volumes or documented bind mounts, or durable host paths for a manual install. |
| Cachet 3.x runtime | PHP 8.3 or later, Composer, and MariaDB, MySQL, PostgreSQL, or SQLite | Manual installations provide these on the host; Docker packages the runtime in the application stack. |
| Secrets | Protected environment values and a strong unique APP_KEY |
Keep environment files out of public repositories and limit their filesystem permissions. |
Docker Compose or manual PHP installation?
Choose Docker when reproducibility is the priority
The official Docker path packages the runtime and application into a Compose-managed deployment. That isolates Cachet from the host’s PHP packages and makes it easier to recreate the same stack on another VPS. It still requires deliberate release pinning, volume design, backups, and migration planning; containers do not remove those operational responsibilities.
Choose manual installation when PHP is already standardized
A manual deployment installs PHP 8.3 or later, Composer, a supported database, the Cachet source, and a web server on the VPS. This can fit an organization that already patches and observes PHP services centrally. The trade-off is that host packages, extensions, permissions, and web-server configuration become part of the application’s recovery procedure.
| Decision axis | Docker Compose | Manual installation |
|---|---|---|
| Dependency isolation | Runtime and application are packaged in the container stack. | Uses the VPS’s PHP, Composer, database, and web-server packages. |
| Upgrade control | Pin a stable image or release tag, review changes, back up, and run migrations deliberately. | Pin application and host package versions, review changes, back up, and run migrations deliberately. |
| Operational visibility | Inspect container logs, restarts, volumes, and the reverse proxy. | Inspect host service logs, PHP/web-server processes, database health, and application files. |
| Recovery design | Restore the database, uploaded assets, Compose configuration, environment values, and chosen tag. | Restore the database, uploaded assets, application source, host configuration, and dependency versions. |
| Reproduction speed | Usually faster to reproduce once the Compose files and volumes are documented. | Can be efficient for teams that already have a standard PHP build and deployment process. |
For a new, standalone status VPS, Docker Compose is generally the simpler starting point. Select manual installation if your team has stronger existing controls for PHP patching, web-server configuration, and host-level rollback.
Prepare the Linux VPS
- Provision a supported 64-bit VPS. Keep the status service separate from the main application infrastructure when the business requirement is that it remain reachable during an outage.
- Create a non-root administrative account. Install your SSH public key and test key-based login before restricting other access. Keep an approved recovery path for the provider console or equivalent out-of-band access.
- Patch the operating system. Enable automatic security updates where they fit your change policy, and establish who reviews reboots and failed updates.
- Configure the host firewall. Permit SSH, HTTP, and HTTPS only. Restrict SSH by source network where practical. Do not open Cachet’s internal application port to the public internet.
- Create the DNS record. Point the dedicated status subdomain to the VPS address. Wait for the record to resolve from outside your office or primary hosting network.
- Plan TLS termination. Put Nginx, Caddy, or a managed edge proxy in front of Cachet. The public listener should be HTTPS; the application can remain on a private host or container-network port.
- Choose durable storage. For Docker, use named volumes or explicit bind mounts and document their locations. For a manual install, document the database data location and any directory used for uploaded assets.
- Protect configuration. Store
.envvalues andAPP_KEYmaterial with restrictive permissions. Never commit secrets to a public repository. Record the chosen Cachet release, Compose file or host package versions, environment values, and rollback procedure in a private, access-controlled location.
Install Cachet with Docker Compose
The official Docker documentation uses a short sequence: obtain the repository’s Compose files, configure the environment, select a stable Cachet release, build and start the stack, generate an application key inside the running container, then restart with that key configured.
1. Obtain and review the official Compose files
Clone or otherwise obtain the official Docker repository using the repository address shown in Cachet’s current documentation. Review the Compose file before running it. Identify the application service, database service, exposed ports, volume declarations, environment variables, and image or release-tag setting. Keep a copy of the exact files used for production so a later rebuild does not silently change the topology.
2. Configure environment values
Edit the environment values in docker-compose.yml as directed by the project. Set the database connection, application URL, timezone, and any mail settings you intend to use. Use production credentials generated specifically for this installation. Do not paste secrets into shell history or commit them to a public repository.
Free tools Windows power users keep installed
One-click scans. No signup required.
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
3. Pin a stable release
Set a specific, stable Cachet release tag. Do not use an unpinned latest or development build for production: the official Docker guidance warns that the main/latest build can change. Record the tag beside your backup and rollback instructions so you know which application version a database backup belongs to.
4. Build and start the stack
From the directory containing the Compose file, run the documented build and startup commands:
docker-compose build
docker-compose up
The example Compose configuration exposes host port 80 while the application listens on port 8000 inside the container. Treat those values as the documented defaults, not as a reason to publish port 8000 directly. In production, place the host listener behind your HTTPS reverse proxy and keep the container port private whenever the network layout permits.
5. Generate and install APP_KEY
With the application container running, open a shell or command context inside that container and run:
php artisan key:generate
The command produces a base64: application-key value. Copy that value into the Compose configuration or its protected environment file exactly as generated, then restart the stack so every application process uses the same key. A missing or inconsistent key can invalidate encrypted application data and produce confusing login or session behavior.
6. Put the service behind HTTPS
Configure the reverse proxy for the status hostname, obtain and renew its certificate, and forward requests to the Cachet service on the internal port. Test both the public URL and the proxy’s certificate from a network outside the VPS. Confirm that the application generates links for the HTTPS hostname rather than an internal address.
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)
Install Cachet manually on Linux
The manual route follows Cachet’s current 3.x installation documentation rather than a permanently fixed command list. Commands and required PHP extensions can change between releases, so use the current project instructions when you perform the installation.
- Install PHP 8.3 or later. Use the distribution or approved repository process your team supports, and install the PHP components required by the current Cachet release.
- Install Composer. Keep Composer available to the deployment account and record the version used to resolve dependencies.
- Provision a supported database. Cachet supports MariaDB, MySQL, PostgreSQL, and SQLite. Choose one deliberately, create a dedicated database and credential, and place its data on persistent storage.
- Obtain the Cachet source. Check out the intended stable release rather than an unreviewed development branch. Preserve the release identifier with your deployment records.
- Configure the environment. Set the application URL, database connection, timezone, mail values, and a strong unique
APP_KEYaccording to the current documentation. Protect the resulting environment file. - Run the documented installation and migration commands. Use the commands for the exact 3.x release you selected. They create or update the schema and prepare the application for first login.
- Serve the public directory through a web server. Configure Nginx, Caddy, or your approved web server to point at Cachet’s public directory, not the project root. Terminate TLS at that web server or at a managed edge proxy in front of it.
- Test from outside the VPS. Verify DNS, certificate validity, administrator login, database writes, and a page refresh through the public hostname before announcing the URL.
Complete the first-run configuration
Create the administrator and public identity
Create the administrator account using the application’s first-run flow, then set the public site name and timezone. The timezone matters for incident timestamps and maintenance notices; choose the zone your operators and customers understand, and document it for anyone posting updates.
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 matchWindows Errors? Fix Them Before They Spread
Repair common Windows errors and clear accumulated junk for a smoother, more stable PC - no reinstall needed.Free scan · no reinstallModel services with groups and components
Define component groups and components that map to services readers recognize. Avoid exposing internal implementation details that do not help a customer decide whether an incident affects them. Keep the component list stable enough that historical incidents remain intelligible after an architecture change.
Exercise the incident workflow
Publish a maintenance notice before a real incident. Use realistic component states and post an update containing the impact, what is being done, and when the next update will arrive. Then resolve the test event and verify that the public history, timestamps, and component state look correct to an unauthenticated visitor. This rehearsal also confirms that your operators know which account and URL to use during pressure.
Configure mail only after credentials are verified
Set up mail delivery after the core page works. Verify the SMTP or mail-provider credentials, sender policy, and delivery from the VPS. If subscriber notifications are enabled, test both confirmation and unsubscribe behavior; an untested subscription flow can create support problems during a live incident.
Use the API without surrendering incident control
Cachet’s official API represents schedules and their related components and updates in JSON responses. That makes it suitable for controlled integrations that create incidents, change component status, or publish scheduled maintenance.
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 an approval boundary
Give automation only the credentials and actions it needs. Protect API credentials like other production secrets, rotate them when staff or systems change, and rate-limit integrations so a monitoring loop cannot flood the page. Keep a clear operator override for incidents that need context a machine cannot infer.
Prevent stale monitors from erasing human updates
A failed monitoring integration must not automatically overwrite a manually posted incident without review. Use a policy that distinguishes automated health signals from the authoritative public incident record. Log each API action with its source and timestamp so an operator can reconstruct why a component changed.
Automate schedules deliberately
For planned work, create a schedule that names the affected components and includes the expected window. Confirm the schedule appears in the public timezone, then publish changes if the work starts late, ends early, or expands. Treat the API as an integration surface, not as a replacement for checking the public page.
Operate the VPS as a production service
Backups and restoration
- Back up the Cachet database on a defined schedule.
- Back up uploaded assets as well as database records.
- Encrypt backup copies and restrict who can retrieve them.
- Test restoration in a separate environment; a backup that has never been restored is an assumption, not a recovery plan.
- For Docker, include named-volume or bind-mount locations, Compose files, the selected release tag, and protected environment values in the recovery documentation.
Upgrades and rollback
- Pin the current release and read the project’s upgrade notes for the target version.
- Snapshot or back up the database and assets before changing the application.
- Schedule migrations during a planned window and tell stakeholders how the page will be updated if the migration takes longer than expected.
- Deploy the new release, run its migrations, and verify the public page, administrator login, component updates, mail, and API integrations.
- Keep the previous release and a tested restore path available until the new version is confirmed. Do not roll back application files against a database schema that has already been irreversibly changed; use the documented migration and restore plan.
External observability
Monitor HTTPS availability from outside the VPS, not only from a local process. Also monitor disk usage, database health, container restarts when using Docker, certificate expiry, and backup freshness. An internal health check can report green while DNS, the firewall, the reverse proxy, or the certificate prevents customers from reaching the page.
Security maintenance
- Apply operating-system and runtime security patches.
- Restrict administrative access and review SSH and application logs for unexpected access.
- Use a strong, unique
APP_KEYand rotate credentials when personnel or integrated systems change. - Keep the database and application port off the public firewall unless a documented exception is required.
- Review the reverse proxy’s certificate-renewal process before the first certificate approaches expiry.
Plan for a failure of the status stack itself
Prepare a short maintenance page or alternate communication channel for cases in which the VPS, DNS, or mail provider is unavailable. Store the instructions outside the VPS and make sure incident responders can access them without relying on the systems that may be down. The alternate message should tell customers where to look and when to expect the next update.
Troubleshoot common deployment failures
The hostname does not load
Check DNS resolution from an external network, then verify that the firewall permits HTTP and HTTPS, the reverse proxy is listening, and the Cachet service is running on its internal port. For Docker, inspect container status and logs; for a manual install, inspect the web-server, PHP, and application logs. Confirm that the proxy target matches the actual host or container-network address.
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.
The page loads but redirects to the wrong address or scheme
Review the configured application URL and the proxy’s HTTPS forwarding settings. Cachet must know the public HTTPS hostname; otherwise it may generate links to an internal name or create redirect loops. Retest in a private browser session after changing the environment and restarting the relevant service.
Recommended Free Tools
Login, sessions, or encrypted values fail after a rebuild
Verify that the same generated base64: APP_KEY is present for every application process. Regenerating a key on every rebuild can make existing encrypted data unreadable. Restore the protected key from your deployment record, restart the stack, and then test administrator login.
Data disappears after a container replacement
Check that the database and asset directories are backed by named volumes or documented bind mounts rather than the container’s writable layer. Confirm the mount locations are included in backups and that a restoration test can recreate them.
Email or subscriber confirmation does not arrive
Recheck mail credentials, sender policy, DNS requirements imposed by the mail provider, and application logs. Test a confirmation and an unsubscribe action separately. Keep the public incident workflow usable even while mail delivery is being repaired.
Automation changes the wrong status
Review API credentials, rate limits, integration logs, and the rule that maps monitoring signals to components. Disable or pause the failing integration, correct the component state manually, and require an operator review before re-enabling automatic writes.
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 →Runbook for a real incident
- Confirm which component or group is affected and set its public state.
- Publish an incident with a plain-language impact statement, the current mitigation, and the time of the next update.
- Use the configured timezone consistently so readers can follow the timeline.
- Update the incident when the impact, mitigation, or expected recovery changes; do not leave a stale “investigating” message without a next-update time.
- Resolve the incident only after the service is stable, then leave a concise final update that explains the outcome.
- Review the event afterward, including whether external monitoring, backups, DNS, certificates, mail, and the status page itself behaved as intended.
With the VPS prepared, the release pinned, storage backed up, and an incident workflow rehearsed, Cachet provides an independent public channel rather than another untested dependency inside the system it is meant to describe.
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.




