# Install the base package and a few useful modules
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install cockpit cockpit-storaged cockpit-networkmanager # Start and -weight: 500;">enable the socket (not the -weight: 500;">service — Cockpit is socket-activated)
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now cockpit.socket
# Install the base package and a few useful modules
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install cockpit cockpit-storaged cockpit-networkmanager # Start and -weight: 500;">enable the socket (not the -weight: 500;">service — Cockpit is socket-activated)
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now cockpit.socket
# Install the base package and a few useful modules
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">update
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install cockpit cockpit-storaged cockpit-networkmanager # Start and -weight: 500;">enable the socket (not the -weight: 500;">service — Cockpit is socket-activated)
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now cockpit.socket
# Usually pre-installed on Fedora Server, but just in case
-weight: 600;">sudo -weight: 500;">dnf -weight: 500;">install cockpit cockpit-storaged -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now cockpit.socket # Open the firewall port
-weight: 600;">sudo firewall-cmd --permanent --add--weight: 500;">service=cockpit
-weight: 600;">sudo firewall-cmd --reload
# Usually pre-installed on Fedora Server, but just in case
-weight: 600;">sudo -weight: 500;">dnf -weight: 500;">install cockpit cockpit-storaged -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now cockpit.socket # Open the firewall port
-weight: 600;">sudo firewall-cmd --permanent --add--weight: 500;">service=cockpit
-weight: 600;">sudo firewall-cmd --reload
# Usually pre-installed on Fedora Server, but just in case
-weight: 600;">sudo -weight: 500;">dnf -weight: 500;">install cockpit cockpit-storaged -weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now cockpit.socket # Open the firewall port
-weight: 600;">sudo firewall-cmd --permanent --add--weight: 500;">service=cockpit
-weight: 600;">sudo firewall-cmd --reload
# Check if the port is actually listening
-weight: 600;">sudo ss -tulnp | grep 9090 # If it's listening but unreachable, check your firewall
-weight: 600;">sudo iptables -L -n | grep 9090
# Or for firewalld:
-weight: 600;">sudo firewall-cmd --list-all # For UFW (Ubuntu):
-weight: 600;">sudo ufw allow 9090/tcp
-weight: 600;">sudo ufw reload
# Check if the port is actually listening
-weight: 600;">sudo ss -tulnp | grep 9090 # If it's listening but unreachable, check your firewall
-weight: 600;">sudo iptables -L -n | grep 9090
# Or for firewalld:
-weight: 600;">sudo firewall-cmd --list-all # For UFW (Ubuntu):
-weight: 600;">sudo ufw allow 9090/tcp
-weight: 600;">sudo ufw reload
# Check if the port is actually listening
-weight: 600;">sudo ss -tulnp | grep 9090 # If it's listening but unreachable, check your firewall
-weight: 600;">sudo iptables -L -n | grep 9090
# Or for firewalld:
-weight: 600;">sudo firewall-cmd --list-all # For UFW (Ubuntu):
-weight: 600;">sudo ufw allow 9090/tcp
-weight: 600;">sudo ufw reload
# This is what you want to see
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status cockpit.socket
# Should show: Active: active (listening) # If it's not running:
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart cockpit.socket # Check the journal for errors if it fails
journalctl -u cockpit.socket -u cockpit.-weight: 500;">service --since "10 min ago"
# This is what you want to see
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status cockpit.socket
# Should show: Active: active (listening) # If it's not running:
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart cockpit.socket # Check the journal for errors if it fails
journalctl -u cockpit.socket -u cockpit.-weight: 500;">service --since "10 min ago"
# This is what you want to see
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">status cockpit.socket
# Should show: Active: active (listening) # If it's not running:
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart cockpit.socket # Check the journal for errors if it fails
journalctl -u cockpit.socket -u cockpit.-weight: 500;">service --since "10 min ago"
# Cockpit looks for certs in /etc/cockpit/ws-certs.d/
# Place your cert and key in a single combined .cert file
-weight: 600;">sudo cat /path/to/fullchain.pem /path/to/privkey.pem > \ /etc/cockpit/ws-certs.d/my-server.cert # Restart the -weight: 500;">service to pick up the new cert
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart cockpit.socket
# Cockpit looks for certs in /etc/cockpit/ws-certs.d/
# Place your cert and key in a single combined .cert file
-weight: 600;">sudo cat /path/to/fullchain.pem /path/to/privkey.pem > \ /etc/cockpit/ws-certs.d/my-server.cert # Restart the -weight: 500;">service to pick up the new cert
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart cockpit.socket
# Cockpit looks for certs in /etc/cockpit/ws-certs.d/
# Place your cert and key in a single combined .cert file
-weight: 600;">sudo cat /path/to/fullchain.pem /path/to/privkey.pem > \ /etc/cockpit/ws-certs.d/my-server.cert # Restart the -weight: 500;">service to pick up the new cert
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">restart cockpit.socket
# On the secondary server, -weight: 500;">install cockpit normally
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install cockpit
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now cockpit.socket # On your primary Cockpit server, -weight: 500;">install the machines module
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install cockpit-machines
# On the secondary server, -weight: 500;">install cockpit normally
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install cockpit
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now cockpit.socket # On your primary Cockpit server, -weight: 500;">install the machines module
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install cockpit-machines
# On the secondary server, -weight: 500;">install cockpit normally
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install cockpit
-weight: 600;">sudo -weight: 500;">systemctl -weight: 500;">enable --now cockpit.socket # On your primary Cockpit server, -weight: 500;">install the machines module
-weight: 600;">sudo -weight: 500;">apt -weight: 500;">install cockpit-machines - You SSH in and run top or htop to check CPU/memory
- You open another session for journalctl -f to watch logs
- Another tab for df -h and du to hunt disk usage
- Maybe another for ss -tulnp or -weight: 500;">systemctl commands
- You lose track of which tab has what, miss a critical log line, and -weight: 500;">start over - Overview page: CPU, memory, disk I/O, and network graphs all on one screen. I spotted my disk space issue immediately because I could see the I/O spike correlated with a runaway log rotation.
- Logs section: Filters by priority, -weight: 500;">service, and time range. Way faster than piping journalctl through grep when you're panicking.
- Services panel: Start, -weight: 500;">stop, -weight: 500;">restart, and read the -weight: 500;">status of any systemd unit. You can see which services are in a failed state at a glance instead of running -weight: 500;">systemctl --failed.
- Terminal: Yes, there's a built-in terminal. So when you do need to drop to CLI, you don't have to leave the browser. - Proper monitoring and alerting — You still need something like Prometheus and Grafana for historical data, dashboards, and alert rules. Cockpit shows you what's happening now, not what happened at 3 AM last Tuesday.
- Configuration management at scale — If you're managing 50+ servers, you need Ansible or similar, not a web UI.
- Centralized logging — Cockpit shows logs per-machine. For a fleet, you'll want a log aggregation setup. - Install Cockpit as part of my base provisioning script, right alongside fail2ban and unattended-upgrades
- Set up the real TLS certificate from the -weight: 500;">start so I'm not clicking through warnings
- Add all my servers to one primary Cockpit dashboard so I have a single pane of glass
- Keep Cockpit updated — the project ships new releases frequently and the changelog is worth reading