TurnKey Linux Configuration Console https://www.turnkeylinux.org/docs/confconsole
  • Python 96.3%
  • Shell 3.6%
Find a file
Marcos Méndez 917d04c1f2
All checks were successful
tests / package (push) Has been skipped
tests / tests (push) Successful in 31s
security / security (push) Successful in 1m3s
Merge pull request 'ci: Forgejo workflows for git.pop.coop' (#33) from ci/forgejo-workflows into master
2026-10-14 19:57:34 -03:00
.forgejo/workflows ci: Forgejo workflows for git.pop.coop 2026-10-14 22:34:23 +00:00
.github ci: security scanning, with the findings read and justified 2026-10-07 18:16:21 +00:00
add-water Remove install section from add-water.service (so doesn't auto start at boot time). 2020-01-10 20:49:23 +11:00
conf Show IPv6 first on the usage screen and in the adapter list 2026-09-26 12:57:01 +00:00
debian chore: Keel Linux maintainers in debian/control 2026-10-07 14:15:02 +00:00
docs fix: the overlay screen says by when to confirm a waiting change 2026-10-03 12:24:23 +00:00
plugins.d feat: the Let's Encrypt screen is driven by the instance description 2026-10-02 22:21:30 +00:00
release_notes Add v2.2.2 release notes (will end up in next release) 2026-07-27 10:14:56 +10:00
share Minor autostart/conf tweaks 2026-05-05 11:26:44 +10:00
tests fix: IP() refuses integers out of range 2026-10-06 19:03:46 +00:00
.gitignore Add tests for ifutil.py 2026-09-26 10:16:37 +00:00
conf.py Fixes: replace deprecated re.split(..., maxsplit) & handle potential Value error 2026-07-13 14:33:57 +10:00
confconsole.py fix: Keel screens follow the appliance manifest, and fit 80x24 2026-10-02 13:47:47 +00:00
COVERAGE.md feat: the Let's Encrypt screen is driven by the instance description 2026-10-02 22:21:30 +00:00
dbscreen.py fix: Database mode and network confirm screens say only what is true 2026-10-02 03:48:39 +00:00
dialog.pyi More typing tweaks and linting 2024-01-31 17:01:58 +11:00
ifutil.py Add a Static IPv6 entry to the networking menu 2026-09-26 12:20:39 +00:00
ipaddr.py fix: IP() refuses integers out of range 2026-10-06 19:03:46 +00:00
keelbanner.py feat: the maintainer's console art in tiers on the usage screen 2026-10-02 01:25:35 +00:00
keelcli.py feat: the Let's Encrypt screen is driven by the instance description 2026-10-02 22:21:30 +00:00
keelfirstboot.py fix: the overlay screen refuses this node as its own peer 2026-10-03 12:21:06 +00:00
keelfit.py fix: keelfit never hands dialog a size of 0 2026-10-02 13:57:17 +00:00
keelmenu.py fix: the overlay screen keeps one place in the Instance menu 2026-10-03 12:18:56 +00:00
plugin.py fix: Keel screens follow the appliance manifest, and fit 80x24 2026-10-02 13:47:47 +00:00
README.rst docs: document how to run the tests in tests/README.md 2026-10-04 05:43:06 +00:00
ruff.toml ruff.toml 2025-09-03 15:33:02 +10:00
turnkey-lexicon fix: --help and the lexicon wrapper name Keel Linux 2026-10-02 03:51:51 +00:00
wgcli.py fix: the overlay screen says by when to confirm a waiting change 2026-10-03 12:24:23 +00:00
wgscreen.py fix: the overlay screen says by when to confirm a waiting change 2026-10-03 12:24:23 +00:00

TurnKey GNU/Linux Configuration Console
=======================================

.. contents::

Overview
--------

Configuration Console (AKA confconsole) provides basic network information
and an interactive UI to easily perform basic system configuration tasks from
a terminal without requiring any commandline knowledge.

Confconsole includes a plugin framework which allows functionality to be
extended by anyone with basic python knowledge.

Confconsole ships with a number of plugins by default, including basic Network
config, "Let's Encrypt" SSL/TLS certificates, hostname update and various
Region/Locale configuration (e.g. keyboard layout, timezone).

It is licensed under `GPLv3`_. Please see `Confconsole documentation source`_
for latest usage and development docs.

Main screen and basic functionality
-----------------------------------

The main screen of Confconsole provides the following information:

- The currently bound IP address/es, the global IPv6 address first, then
  the IPv4 address (either alone when the adapter has only one)
- The listening services the user may connect to over the network, as URLs
  for each address (``https://[2001:db8:1::10]:12321``, then
  ``https://192.0.2.10:12321``)

.. image:: ./docs/images/00_confconsole_core_main.png

Configuration Console will be invoked automatically on firstboot, but without
the "Advanced Menu" available. By default it will also auto launch (with
"Advanced Menu") on first login. Unless you enable auto-start, it will
need to be manually invoked for subsequent use.

Manually invoke the Configuration Console (confconsole) like this:

.. code-block:: bash

    confconsole

Advanced
--------

Additional Confconsole functionality is provided by way of a
"`Plugin`_" system. To navigate to the plugins, please enter the
"Advanced" menu. Note that only the default plugins are noted here.
Some TurnKey GNU/Linux appliances may have additional (or modified)
plugins.

The advanced menu:

.. image:: ./docs/images/01_confconsole_core_advanced.png

The Advanced menu provides the below functionality in all appliances
(some items have additional docs available via clickable headings).

- `Networking`_:

  - Setting a static IPv6 address (address/prefix, gateway, name servers)
  - Setting a static IPv4 address
  - Requesting DHCP
  - Choosing the adapter whose addresses the main screen shows

- `Let's Encrypt`_:

  - Enable/disable auto SSL cert update
  - Get SSL certificate from Let's Encrypt

- `Mail relaying`_:

  - configure and enable remote SMTP email relay

- `Proxy settings`_:

  - configure apt proxy

- `Region config`_:

  - Keyboard layout
  - Locales and language
  - Tzdata (timezone)

- `System settings`_:

  - confconsole autostart config
  - install security updates
  - update hostname

- `Instance`_:

  - View the instance spec and its validation report
  - Apply the spec (``keel spec apply``)
  - Show drift between the spec and the machine (``keel diff``)
  - Export a spec from the machine (``keel inspect``)

- Install the system to the hard disk (only available when running live)
- Reboot the appliance
- Shut down the appliance
- Quit (return to commandline)

Installation
------------

Confconsole is installed by default in all `TurnKey Linux Appliances`_
so no installation should be required for TurnKey users.

Confconsole should be compatible with vanilla Debian (and likely recent
vanilla Ubuntu too). It does have some specific TurnKey dependencies,
but most dependencies come direct from Debian.

Upgrade Confconsole
-------------------

Confconsole is installed by default in `TurnKey Linux Appliances`_. However,
to ensure that you are running the latest version, you can upgrade via apt:

.. code-block:: bash

    apt-get update
    apt-get install confconsole

If you have problems or questions, please post on our `support forums`_
(requires free website user account).

Plugins
-------

The plugins system allows support for additional functionality via simply
dropping a(n appropriately coded) python3 plugin file within the Confconsole
file hierarchy. We aim to include more new functionality via this in coming
releases.

Developers may be interested in reading further about the `Plugin`_ system.

Tests
-----

The test suite runs with pytest, without root, network or a real console.
What it needs, the commands CI runs and the coverage threshold are in
`tests/README.md`_.

.. _GPLv3: https://www.gnu.org/licenses/gpl-3.0.txt
.. _Confconsole documentation source: https://github.com/turnkeylinux/confconsole/blob/master/docs/Readme.rst
.. _Plugin: ./docs/Plugins.rst
.. _Networking: ./docs/Networking.rst
.. _Let's Encrypt: ./docs/Lets_encrypt.rst
.. _Mail relaying: ./docs/Mail_relay.rst
.. _Proxy settings: ./docs/Proxy_settings.rst
.. _Region config: ./docs/Region_config.rst
.. _System settings: ./docs/System_settings.rst
.. _Instance: ./docs/Instance.rst
.. _tests/README.md: ./tests/README.md
.. _TurnKey Linux Appliances: https://www.turnkeylinux.org/all
.. _support forums: https://www.turnkeylinux.org/forum/support