.. _ref-cockpit:

Cockpit Web Interface
=====================

The Cockpit Web Interface is an easy-to-use web based interface made to manage
a Linux based server. It intentionally uses standard system API like `systemd`,
`pam`, `networkmanager` making it easily integrable and interoperable on 
any Linux operating system using these programs.

.. image:: cockpit/overview.png

.. important::

    Providing and supporting a web management interface is out of the scope of
    CoreOS. We provide some facilities to install this web interface as it's
    available in `meta-openembedded` and we find it useful for developer.

The Cockpit Web Interface can be installed on an image by adding `cockpit` to
the :ref:`IMAGE_FEATURES <ref-features-image>` variable. You can then access
the web interface on the port 9090: `https://TARGET_IP:9090`

.. hint::
    Cockpit use standard Linux authentification method. The simplest way to
    get a login is to enable the `debug-tweak`
    :ref:`IMAGE_FEATURES <ref-features-image>`, then login with `root` as 
    username and an empty password.

    See https://cockpit-project.org/guide/latest/authentication for more info

When the `cockpit` `IMAGE_FEATURES`` is used, the following feature of are
availabe:

Dashboard
---------

The dashboard allows seeing some system statistic in real time.

.. image:: cockpit/dashboard.png

.. hint::
    The statistics are not stored, so they are only available when the dashboard
    page is open

Logs Viewer
-----------

The log viewer allows seeing the log from `journalctl`.

.. image:: cockpit/log.png

Accounts management
-------------------

The account management allow creating and managing users. For existing user, the
account can be locked, the password changed and SSH public key can be added.


.. image:: cockpit/accounts.png

Services management
-------------------

The services page allows managing `systemd` service. Service can be started,
restarted, stopped, enabled or disabled. Logs related to the service can also be
viewed easily.

.. image:: cockpit/services.png

Web Terminal
------------

The terminal page gives access to a web terminal, allowing to interact with the
shell of the device.

.. image:: cockpit/terminal.png

Additional plugins
------------------

Additional plugin can be installed for `cockpit`, like `podman-cockpit` that
allow to manage podman container from the cockpit web interface. When possible,
CoreOS automatically add the corresponding `cockpit` plugin when additional
features are added via :ref:`IMAGE_FEATURES <ref-features-image>`. 

As an example, the `cockpit-podman` package is automatically installed if 
:ref:`IMAGE_FEATURES <ref-features-image>` contains both `cockpit` and `podman`.

These plugins are documented in the corresponding features showcase page.
