If you want to monitor or manage your server via a browser interface, you can do it with these free tools.

Table of Contents

Cockpit

  1. Cockpit is a server management tool with a browser interface you can install easily:
    #Ubuntu
    sudo apt install cockpit -y
    
  2. You need to open port 9090 if you want to access outside server local network (you can also do SSH forwarding, check: Redirecting ports with SSH, or use a reverse proxy with nginx or apache).
  3. Check if cockpit service is active and running:
    sudo systemctl status cockpit
    

    If not, enable it and run it:

    sudo service cockpit start
    
  4. Go to: https://<SERVER-IP>:9090. If you see a warning message, don’t worry, this is because Cockpit is using a self-signed SSL certificate, click “Advanced settings” option and accept the “risk”.
  5. Cockpit is simply an interface for your server’s system, so it uses your server’s username and password to access. Cockpit main window
  6. By default, if server operating system is Ubuntu, Cockpit doesn’t detect network configuration correctly, so you need to add a line in one of your server config files, /etc/netplan/00-installer-config.yaml:
    sudo vim /etc/netplan/00-installer-config.yaml
    

    Add the following line below network line:

    renderer: NetworkManager
    

    Then, save the file, close your text editor and type:

    sudo netplan try
    

    Press Enter to accept the changes. If no message appears, and you are connecting to a server via SSH with its local IP, this is because this new configuration has changed the server’s assigned local IP. Try again but using the server directly, don’t access through SSH.

NetData

  1. NetData is a server monitor tool you can install as easy as Cockpit:
    bash <(curl -Ss https://my-netdata.io/kickstart.sh)
    # Check NetData webpage for more info about this command and other installation options
    

    Press Enter to accept the prompts. The installation process may take some time to complete.

  2. You need to open port 19999 if you want to access outside your server local network and you don’t want to use SSH forwarding (Redirecting ports with SSH) or a reverse proxy.
  3. Then go to http://<SERVER-IP>:19999. NetData main window

Linux Dash

A simple & low-overhead web dashboard for linux systems. You can use it with Node, Go, PHP and Python. These are the installation instructions for Node:

  1. Clone the repo.
    git clone --depth 1 https://github.com/afaqurk/linux-dash.git
    
  2. Go to linux-dash/app/server and run npm install.
    cd linux-dash/app/server
    npm install --production
    
  3. Start the server.
    node index.js
    

Default port is 80, but you can change it with the parameter -p when starting the server.

WeTTY

If you only want a browser-based terminal, WeTTY is a good option. These are the steps to install it on a Ubuntu system:

  1. Download and install Node.js 14 and other required packages:
    sudo apt update
    sudo apt-get install -y curl git apt-utils make g++
    curl -fsSL https://deb.nodesource.com/setup_14.x | sudo bash -
    sudo apt-get install -y nodejs
    
  2. Install Yarn (a Node.js package manager).
    sudo npm install -g yarn
    
  3. Download WeTTY.
    git clone https://github.com/butlerx/wetty.git
    
  4. By default, WeTTY has an options menu that doesn’t work very well, You can disable it by opening wetty/src/assets/scss/options.scss and adding this line to #options block:
    display: none
    
  5. Go to wetty folder and compile WeTTY.
    cd wetty
    yarn
    yarn build
    
  6. Create a service file, so WeTTY will start when server starts up.
    sudo vim /lib/systemd/system/wetty.service
    
    [Unit]
    Description=Starts wetty
    After=network.target
    StartLimitIntervalSec=0
    [Service]
    Type=simple
    Restart=on-failure
    RestartSec=1
    User=root
    ExecStart=node /home/ubuntu/wetty/ --title 'WEB TITLE' -b '/' &
    [Install]
    WantedBy=multi-user.target
    
  7. Reload systemctl and enable the service.
    sudo systemctl daemon-reload
    sudo systemctl start wetty.service
    sudo systemctl enable wetty.service
    
  8. Default port is 3000, but you can change it by adding -p PORT at the ExecStart line, before &.
  9. Then you can go to http://<SERVER-IP>:3000 and type your server username and password.

Monitorix

Lightweight and easy-to-install system monitoring tool. Just run (on Debian/Ubuntu):

sudo apt install monitorix

Then, go to http://<server-ip>:8080/monitorix. For installation instructions on other distros, check its webpage.

Configuration files are inside /etc/monitorix/conf.d/. These files overwrite default settings inside /etc/monitorix/monitorix.conf. Check https://www.monitorix.org/manpage.html and the default config file for more details. This is an example of a config file:

# /etc/monitorix/conf.d/00-debian.conf

title = "Web monitoring"
refresh_rate = 60
show_gaps = y
image_format = svg
enable_hourly_view = y
base_url = /

<httpd_builtin>
        user = monitorix
        group = monitorix
</httpd_builtin>

<mysql>
        conn_type = socket
        list = /run/mysqld/mysqld.sock
        <desc>
                /run/mysqld/mysqld.sock = 3306, user, secret
        </desc>
</mysql>

<apcupsd>
        cmd = /sbin/apcaccess
</apcupsd>

Click on a graph to enlarge. They are static graphs (they don’t update in real time) but the page updates every 150 seconds (by default). If you need a simple tool that does not consume system resources, it’s a great choice.

Monitorix

Monitorix

If you have any suggestion, feel free to contact me via social media or email.