A few weeks ago, my friend Kat — who runs a small Etsy shop that somehow grew into a real business — called me in mild panic. "James, I am paying $47 a month for a Plesk license on top of my VPS, and I just realized I have been paying it for nine months and I have used it exactly twice."
I wanted to be sympathetic. I really did. But I was too busy doing math in my head. That is $423 for a control panel she used to check disk space twice.
I told her about Cockpit. She had it running in under ten minutes. She cancelled Plesk that afternoon.
What Is Cockpit?
Cockpit is an open-source, web-based graphical interface for Linux servers. It is maintained by Red Hat (well, IBM technically, but let us not get into that) and comes pre-installed on Fedora, RHEL, and CentOS Stream. For Debian and Ubuntu, it is one apt command away.
It gives you a browser-based dashboard where you can:
- Monitor CPU, memory, disk, and network in real time
- Manage systemd services (start, stop, restart, enable)
- Configure network interfaces and firewall rules
- Inspect and search system logs (journalctl, but with a GUI)
- Manage storage, LVM, and RAID
- Run and manage Podman containers
- Open an in-browser terminal (genuine SSH, not some web console toy)
- Manage user accounts and SSH keys
- Jump between multiple servers from one dashboard
All of this is free. Not "free tier with limitations" free. Not "free but we removed the useful features" free. Actually, genuinely, no-strings-attached free.
Why Cockpit Is Having a Moment
Cockpit just hit the Hacker News front page with nearly 300 upvotes, and the comment section was full of people saying some version of "I have been using this for years, why does nobody talk about it?" — which is the Hacker News version of a standing ovation.
The timing makes sense. cPanel raised prices again in late 2025 (they do this about once a year, like clockwork, like they are daring people to leave). Plesk is not cheap either. And a lot of people who switched to "just use the terminal" during the pandemic have started to miss having a visual dashboard for the stuff they check daily.
Cockpit is the middle ground: you get a visual interface without giving up terminal access, without paying a monthly fee, and without installing a heavyweight control panel that takes over your entire server.
Setting Up Cockpit on Ubuntu/Debian
I am going to walk through this on Ubuntu 24.04, which is what most people are running on their VPS in 2026 (not sure which VPS to pick? I compared Hetzner, DigitalOcean, and Vultr side by side). Debian 12 is virtually identical.
Step 1: Install Cockpit
sudo apt update
sudo apt install cockpit -y
That is it. I am not being cute. It is genuinely one command. The package is in the default Ubuntu repos.
Step 2: Start and Enable the Service
sudo systemctl enable --now cockpit.socket
Note that it uses a socket, not a service. Cockpit only activates when someone connects, which means it uses essentially zero resources when nobody is logged in. This was a deliberate design decision, and it is one of those details that makes you think "ah, the people who built this actually use servers."
Step 3: Access the Dashboard
Open your browser and navigate to:
https://your-server-ip:9090
You will get a certificate warning because Cockpit generates a self-signed cert. Click through it (or set up a proper cert later — I will show you how). Log in with your regular Linux username and password.
And... that is it. You are looking at your server dashboard.
The first time I set this up, I kept looking for the "catch." Where is the license key prompt? The trial expiration? The "upgrade to Pro" banner? There is none. It just works.
What the Dashboard Actually Looks Like
I cannot embed screenshots (this is a blog, not a slideshow), but let me describe what you see:
Overview Page
See that CPU graph in the top-left? It updates in real time. Not "every 30 seconds" real time — genuine, smooth, watch-the-spikes-happen real time. Below it: memory usage, disk I/O, and network traffic. All with time-series graphs you can zoom into.
My colleague Derek (yes, the same Derek from earlier — he shows up a lot because he manages about 15 servers for his consulting business) said it best: "It is like htop had a baby with Grafana, and the baby did not inherit Grafana's complexity."
Logs
The log viewer is secretly the best feature. You get journalctl output with filters — by service, priority level, time range — in a searchable interface. I have spent embarrassing amounts of time grep-ing through logs that I could have just... filtered in a GUI.
Services
Every systemd service on your machine, with start/stop/restart buttons, enable/disable toggles, and the actual service file contents viewable inline. It is like systemctl but without having to remember whether it is systemctl status nginx or systemctl status nginx.service (it is both, but tell that to my 2 AM brain).
Terminal
A full web terminal. Not the kind that drops your connection every five minutes — an actual, usable, honest-to-god terminal in your browser. I would not write code in it, but for quick commands? Perfect.
Adding Extra Modules
Cockpit has a plugin system. Some of the most useful add-ons:
# Container management (Podman)
sudo apt install cockpit-podman
# Software updates management
sudo apt install cockpit-packagekit
# KVM/QEMU virtual machines
sudo apt install cockpit-machines
The container management is particularly good if you are running Podman (which, if you are not, you maybe should be — but that is a different article). You get a visual list of containers, images, and the ability to start/stop/inspect them without remembering podman CLI syntax.
Setting Up a Proper SSL Certificate
That self-signed cert warning is fine for initial testing, but if you are going to use Cockpit regularly, set up a real cert. If you have a domain pointing at your server:
# Install certbot
sudo apt install certbot -y
# Get a cert
sudo certbot certonly --standalone -d cockpit.yourdomain.com
# Link the cert to Cockpit's config directory
sudo cat /etc/letsencrypt/live/cockpit.yourdomain.com/fullchain.pem /etc/letsencrypt/live/cockpit.yourdomain.com/privkey.pem > /etc/cockpit/ws-certs.d/cockpit.cert
# Restart Cockpit
sudo systemctl restart cockpit
Now you access it at https://cockpit.yourdomain.com:9090 with a proper green padlock.
Cockpit vs cPanel vs Plesk vs Webmin: The Honest Comparison
| Feature | Cockpit | cPanel | Plesk | Webmin |
|---|---|---|---|---|
| Price | Free | $15-45/mo | $13-58/mo | Free |
| Web hosting features | No (not its job) | Yes (its whole job) | Yes | Limited |
| System monitoring | Excellent | Basic | Basic | Good |
| Container management | Yes (Podman) | No | Docker ext | No |
| Terminal in browser | Yes (great) | Yes (okay) | No | Yes (dated) |
| Multi-server | Yes (SSH) | WHM (extra cost) | Yes (extra) | Webmin cluster |
| Resource usage | Minimal (socket) | Heavy | Heavy | Moderate |
| UI quality | Modern, clean | Functional | Polished | Dated |
| Learning curve | Low | Medium | Medium | Medium |
The key distinction: Cockpit is a server management tool, not a web hosting panel. It will not create email accounts, manage DNS zones, or deploy WordPress with one click. If you need those things, cPanel and Plesk still have their place.
But if what you actually need is "see what my server is doing, manage services, check logs, maybe restart something, and not pay $180 a year for the privilege" — Cockpit is the answer.
Multi-Server Management
One feature that makes Cockpit genuinely useful for people managing multiple VPS instances: you can add other servers and jump between them from a single dashboard.
On the primary server (the one you log into), go to the top-left dropdown menu and click "Add new host." Enter the IP or hostname and SSH credentials. Cockpit connects over SSH and lets you manage the remote server as if you were logged in locally.
Derek manages 15 servers this way. One Cockpit instance, one browser tab, 15 servers accessible from a dropdown. He told me it replaced about $300/month in Plesk licenses across his fleet. "That is $3,600 a year I was spending to look at disk space charts," he said, sounding like a man who had recently discovered therapy.
What Cockpit Will Not Do
In the interest of being genuinely helpful rather than just enthusiastic:
- No email management. If you host email on your server (which in 2026, please reconsider), you will need something else.
- No DNS management. Use your registrar's panel or Cloudflare.
- No automatic WordPress/CMS deployment. Learn Docker Compose instead. Honestly.
- No backup management built-in. Use restic, borgbackup, or your VPS provider's snapshot feature.
- No shared hosting features. This is not for web hosting providers managing 500 client accounts. Use cPanel for that.
Security Hardening (Do This, Seriously)
Running a web interface on port 9090 that accepts root login is... not great, out of the box. If you have not already locked down your file transfer setup, read our Wing FTP lockdown guide too. Do these things:
- Firewall port 9090 so only your IP can reach it:
sudo ufw allow from YOUR_IP to any port 9090 - Use a proper SSL cert (covered above).
- Disable root login: Edit
/etc/cockpit/disallowed-usersand addroot. Use a regular sudo user instead. - Consider Cloudflare Tunnel if you want to access it without exposing port 9090 at all.
I have seen people expose Cockpit to the internet with default credentials and then act surprised when someone logs in. Do not be that person. Kat was going to be that person until I intervened.
Should You Switch?
If you are paying for cPanel or Plesk and you are not using their web hosting features (email, DNS, multi-tenant hosting), cancel it today and install Cockpit. You will save money, reduce your server's resource overhead, and get a dashboard that is honestly more useful for day-to-day server management.
If you are a "terminal-only" person who thinks GUIs are for the weak — first of all, calm down. Second, Cockpit uses virtually zero resources when you are not connected, and the log viewer alone might change your mind. Give it fifteen minutes.
If you manage multiple servers and want a single pane of glass without paying for enterprise monitoring — Cockpit's multi-server feature is free and works over SSH. It is not Datadog, but it handles the basics.
And if you are like Kat, quietly spending $47 a month on a panel you never use — well, now you know there is an alternative that costs exactly nothing and takes ten minutes to install.