Skip to content

Important!

Following instructions are valid for next generation of Armbian config utility which is due for integration in Armbian v24.11. Until then please follow this installation instructions to test it out:

armbian/configng?tab=readme-ov-file#add--install-from-development-repository

Armbian Configuration Utility (Next Generation)

Utility for configuring your board, adjusting services, and installing applications. It comes with Armbian by default.

To start the Armbian configuration utility, use the following command:

Text Only
1
sudo armbian-config

  • System

    • S01 - Enable Armbian kernel/firmware upgrades
    • S02 - Disable Armbian kernel upgrades
    • S03 - Edit the boot environment
    • S04 - Install Linux headers
    • S05 - Remove Linux headers
    • S06 - Install to internal storage
    • S07.1 - Manage SSH login options
    • S17 - Change shell system wide to BASH
    • S18 - Change shell system wide to ZSH
    • S19 - Switch to rolling release
    • S20 - Switch to stable release
    • S21 - Enable read only filesystem
    • S22 - Disable read only filesystem
    • S23 - Adjust welcome screen (motd)
    • S24 - Install alternative kernels
    • S25 - Distribution upgrades
    • S28 - Manage device tree overlays
  • Network

    • N01 - Configure network interfaces
    • N15 - Install Bluetooth support
    • N16 - Remove Bluetooth support
    • N17 - Bluetooth Discover
    • N18 - Toggle system IPv6/IPv4 internet protocol
  • Localisation

    • L00 - Change Global timezone (WIP)
    • L01 - Change Locales reconfigure the language and character set
    • L02 - Change Keyboard layout
    • L03 - Change APT mirrors
    • L04 - Change System Hostname
  • Software

    • Desktops - Install Desktop Environments
    • Netconfig - Network tools
    • DevTools - Development
    • Benchy - System benchmaking and diagnostics
    • Containers - Containerlization and Virtual Machines
    • Media - Media Servers and Editors
    • Management - Remote Management tools
  • Help

    • H00 - About This system. (WIP)
    • H02 - List of Config function(WIP)

Install

Armbian installation

Text Only
1
sudo apt install armbian-config

3rd party Debian based distributions

Text Only
1
2
3
4
5
6
7
8
{
    sudo wget https://apt.armbian.com/armbian.key -O key
    sudo gpg --dearmor < key | sudo tee /usr/share/keyrings/armbian.gpg > /dev/null
    sudo chmod go+r /usr/share/keyrings/armbian.gpg
    sudo echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/armbian.gpg] http://apt.armbian.com $(lsb_release -cs) main  $(lsb_release -cs)-utils  $(lsb_release -cs)-desktop" | sudo tee /etc/apt/sources.list.d/armbian.list
    sudo apt update
    sudo apt install armbian-config
}


CLI options

Command line options.

Use:

Text Only
1
armbian-config --help

Outputs:

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
  System - System wide and admin settings (x86_64)
    --cmd S01 - Enable Armbian kernel/firmware upgrades
    --cmd S02 - Disable Armbian kernel upgrades
    --cmd S03 - Edit the boot environment
    --cmd S04 - Install Linux headers
    --cmd S05 - Remove Linux headers
    --cmd S06 - Install to internal storage
    S07.1 - Manage SSH login options
    --cmd S07 - Disable root login
    --cmd S08 - Enable root login
    --cmd S09 - Disable password login
    --cmd S10 - Enable password login
    --cmd S11 - Disable Public key authentication login
    --cmd S12 - Enable Public key authentication login
    --cmd S13 - Disable OTP authentication
    --cmd S14 - Enable OTP authentication
    --cmd S15 - Generate new OTP authentication QR code
    --cmd S16 - Show OTP authentication QR code
    --cmd S30 - Disable last login banner
    --cmd S31 - Enable last login banner
    --cmd S17 - Change shell system wide to BASH
    --cmd S18 - Change shell system wide to ZSH
    --cmd S19 - Switch to rolling release
    --cmd S20 - Switch to stable release
    --cmd S21 - Enable read only filesystem
    --cmd S22 - Disable read only filesystem
    --cmd S23 - Adjust welcome screen (motd)
    --cmd S24 - Install alternative kernels
    S25 - Distribution upgrades
    --cmd S26 - Upgrade to latest stable / LTS
    --cmd S27 - Upgrade to rolling unstable
    --cmd S28 - Manage device tree overlays

  Network - Fixed and wireless network settings (eth0)
    N01 - Configure network interfaces
    --cmd N02 - Add / change interface
    --cmd N03 - Revert to Armbian defaults
    --cmd N04 - Show configuration
    --cmd N06 - Show active status
    --cmd N15 - Install Bluetooth support
    --cmd N16 - Remove Bluetooth support
    --cmd N17 - Bluetooth Discover
    --cmd N18 - Toggle system IPv6/IPv4 internet protocol

  Localisation - Localisation (C.UTF-8)
    --cmd L00 - Change Global timezone (WIP)
    --cmd L01 - Change Locales reconfigure the language and character set
    --cmd L02 - Change Keyboard layout
    --cmd L03 - Change APT mirrors
    --cmd L04 - Change System Hostname

  Software - Run/Install 3rd party applications (Update the package lists.)
    Desktops - Install Desktop Environments
    --cmd SW02 - Install XFCE desktop
    --cmd SW03 - Install Gnome desktop
    --cmd SW04 - Install i3-wm desktop
    --cmd SW05 - Install Cinnamon desktop
    --cmd SW06 - Install kde-neon desktop
    Netconfig - Network tools
    --cmd SW08 - Install realtime console network usage monitor (nload)
    --cmd SW09 - Remove realtime console network usage monitor (nload)
    --cmd SW10 - Install bandwidth measuring tool (iperf3)
    --cmd SW11 - Remove bandwidth measuring tool (iperf3)
    --cmd SW12 - Install IP LAN monitor (iptraf-ng)
    --cmd SW13 - Remove IP LAN monitor (iptraf-ng)
    --cmd SW14 - Install hostname broadcast via mDNS (avahi-daemon)
    --cmd SW15 - Remove hostname broadcast via mDNS (avahi-daemon)
    DevTools - Development
    --cmd SW17 - Install tools for cloning and managing repositories (git)
    --cmd SW18 - Remove tools for cloning and managing repositories (git)
    --cmd Benchy - System benchmaking and diagnostics
    Containers - Containerlization and Virtual Machines
    --cmd SW25 - Install Docker Minimal
    --cmd SW26 - Install Docker Engine
    --cmd SW27 - Remove Docker
    --cmd SW28 - Purge all Docker images, containers, and volumes
    Media - Media Servers and Editors
    --cmd SW21 - Install Plex Media server
    --cmd SW22 - Remove Plex Media server
    --cmd SW23 - Install Emby server
    --cmd SW24 - Remove Emby server
    Management - Remote Management tools
    --cmd M00 - Install Cockpit web-based management tool
    --cmd M01 - Purge Cockpit web-based management tool
    --cmd M02 - Start Cockpit Service
    --cmd M03 - Stop Cockpit Service

  Help - About this app
    --cmd H00 - About This system. (WIP)
    --cmd H02 - List of Config function(WIP)

Legacy options

Backward Compatible options.

Use:

Text Only
1
armbian-config main=Help

Outputs:

Text Only
1
2
3
4
5
6
7
Legacy Options (Backward Compatible)
Please use 'armbian-config --help' for more information.

Usage:  armbian-configng main=[arguments] selection=[options]

    armbian-configng main=System selection=Headers          -  Install headers:
    armbian-configng main=System selection=Headers_remove   -  Remove headers:


Development

Development is divided into three sections:

Click for more info:

Jobs / JSON Object A list of the jobs defined in the Jobs file.
Text Only
1
2
3
4
5
### S01

Enable Armbian kernel/firmware upgrades

Jobs:
armbian_fw_manipulate unhold
Text Only
1
2
3
4
5
### S02

Disable Armbian kernel upgrades

Jobs:
armbian_fw_manipulate hold
Text Only
1
2
3
4
5
### S03

Edit the boot environment

Jobs:
nano /boot/armbianEnv.txt
Text Only
1
2
3
4
5
### S04

Install Linux headers

Jobs:
Headers_install
Text Only
1
2
3
4
5
### S05

Remove Linux headers

Jobs:
Headers_remove
Text Only
1
2
3
4
5
### S06

Install to internal storage

Jobs:
armbian-install
Text Only
1
2
3
4
5
### S07.1

Manage SSH login options

Jobs:
No commands available
Text Only
1
2
3
4
5
### S17

Change shell system wide to BASH

Jobs:
export BASHLOCATION=$(grep /bash$ /etc/shells | tail -1) sed -i "s|^SHELL=.*|SHELL=${BASHLOCATION}|" /etc/default/useradd sed -i "s|^DSHELL=.*|DSHELL=${BASHLOCATION}|" /etc/adduser.conf apt_install_wrapper apt-get -y purge armbian-zsh zsh-common zsh tmux update_skel awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534 || $3 == 0) print $1}' /etc/passwd | xargs -L1 chsh -s $(grep /bash$ /etc/shells | tail -1)
Text Only
1
2
3
4
5
### S18

Change shell system wide to ZSH

Jobs:
export ZSHLOCATION=$(grep /zsh$ /etc/shells | tail -1) sed -i "s|^SHELL=.*|SHELL=${ZSHLOCATION}|" /etc/default/useradd sed -i "s|^DSHELL=.*|DSHELL=${ZSHLOCATION}|" /etc/adduser.conf apt_install_wrapper apt-get -y install armbian-zsh zsh-common zsh tmux update_skel awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534 || $3 == 0) print $1}' /etc/passwd | xargs -L1 chsh -s $(grep /zsh$ /etc/shells | tail -1)
Text Only
1
2
3
4
5
### S19

Switch to rolling release

Jobs:
set_rolling
Text Only
1
2
3
4
5
### S20

Switch to stable release

Jobs:
set_stable
Text Only
1
2
3
4
5
### S21

Enable read only filesystem

Jobs:
manage_overlayfs enable
Text Only
1
2
3
4
5
### S22

Disable read only filesystem

Jobs:
manage_overlayfs disable
Text Only
1
2
3
4
5
### S23

Adjust welcome screen (motd)

Jobs:
adjust_motd
Text Only
1
2
3
4
5
### S24

Install alternative kernels

Jobs:
switch_kernels
Text Only
1
2
3
4
5
### S25

Distribution upgrades

Jobs:
No commands available
Text Only
1
2
3
4
5
### S28

Manage device tree overlays

Jobs:
manage_dtoverlays
Text Only
1
2
3
4
5
### N01

Configure network interfaces

Jobs:
No commands available
Text Only
1
2
3
4
5
### N15

Install Bluetooth support

Jobs:
see_current_apt debconf-apt-progress -- apt-get -y install bluetooth bluez bluez-tools check_if_installed xserver-xorg && debconf-apt-progress -- apt-get -y --no-install-recommends install pulseaudio-module-bluetooth blueman
Text Only
1
2
3
4
5
### N16

Remove Bluetooth support

Jobs:
see_current_apt debconf-apt-progress -- apt-get -y remove bluetooth bluez bluez-tools check_if_installed xserver-xorg && debconf-apt-progress -- apt-get -y remove pulseaudio-module-bluetooth blueman debconf-apt-progress -- apt -y -qq autoremove
Text Only
1
2
3
4
5
### N17

Bluetooth Discover

Jobs:
connect_bt_interface
Text Only
1
2
3
4
5
### N18

Toggle system IPv6/IPv4 internet protocol

Jobs:
toggle_ipv6 | show_infobox
Text Only
1
2
3
4
5
### L00

Change Global timezone (WIP)

Jobs:
dpkg-reconfigure tzdata
Text Only
1
2
3
4
5
### L01

Change Locales reconfigure the language and character set

Jobs:
dpkg-reconfigure locales source /etc/default/locale ; sed -i "s/^LANGUAGE=.*/LANGUAGE=$LANG/" /etc/default/locale export LANGUAGE=$LANG
Text Only
1
2
3
4
5
### L02

Change Keyboard layout

Jobs:
dpkg-reconfigure keyboard-configuration ; setupcon update-initramfs -u
Text Only
1
2
3
4
5
### L03

Change APT mirrors

Jobs:
get_user_continue "This is only a frontend test" process_input
Text Only
1
2
3
4
5
### L04

Change System Hostname

Jobs:
change_system_hostname
Text Only
1
2
3
4
5
### Desktops

Install Desktop Environments

Jobs:
No commands available
Text Only
1
2
3
4
5
### Netconfig

Network tools

Jobs:
No commands available
Text Only
1
2
3
4
5
### DevTools

Development

Jobs:
No commands available
Text Only
1
2
3
4
5
### Benchy

System benchmaking and diagnostics

Jobs:
see_monitoring
Text Only
1
2
3
4
5
### Containers

Containerlization and Virtual Machines

Jobs:
No commands available
Text Only
1
2
3
4
5
### Media

Media Servers and Editors

Jobs:
No commands available
Text Only
1
2
3
4
5
### Management

Remote Management tools

Jobs:
No commands available
Text Only
1
2
3
4
5
### H00

About This system. (WIP)

Jobs:
show_message <<< "This app is to help execute procedures to configure your system Some options may not work on manually modified systems"
Text Only
1
2
3
4
5
### H02

List of Config function(WIP)

Jobs:
show_message <<< see_use
Text Only
1

Jobs API / Helper Functions These helper functions facilitate various operations related to job management, such as creation, updating, deletion, and listing of jobs, acting as a practical API for developers. | Description | Example | Credit | |:----------- | ------- |:------:| | Generate a Help message legacy cli commands. | see_cli_legacy | Joey Turner | Run time variables Migrated procedures from Armbian config. | set_runtime_variables | Igor Pecovnik | Toggle SSH lastlog | toggle_ssh_lastlog | tearran | Set Armbian to rolling release | set_rolling | Tearran | Generate this markdown table of all module_options | see_function_table_md | Joey Turner | Switching to alternative kernels | | Igor | Set Armbian root filesystem to read only | manage_overlayfs enable|disable | igorpecovnik | Display a menu from pipe | show_menu <<< armbianmonitor -h ; | Joey Turner | Build the main menu from a object | generate_top_menu 'json_data' | Joey Turner | Migrated procedures from Armbian config. | is_package_manager_running | Igor Pecovnik | Migrated procedures from Armbian config. | check_desktop | Igor Pecovnik | Generate Document files. | generate_readme | Joey Turner | | | Igor Pecovnik | Needed by generate_menu | | Joey Turner | Display a Yes/No dialog box and process continue/exit | get_user_continue 'Do you wish to continue?' process_input | Joey Turner | Display a message box | show_message <<< 'hello world' | Joey Turner | Migrated procedures from Armbian config. | connect_bt_interface | Igor Pecovnik | Menu for armbianmonitor features | see_monitoring | Joey Turner | Enable/disable device tree overlays | manage_dtoverlays | Gunjan Gupta | Show or generate QR code for Google OTP | qr_code generate | Igor Pecovnik | Check if kernel headers are installed | are_headers_installed | Gunjan Gupta | Check when apt list was last updated and suggest updating or update | see_current_apt || see_current_apt update | Joey Turner | Migrated procedures from Armbian config. | check_if_installed nano | Igor Pecovnik | Generate 'Armbian CPU logo' SVG for document file. | generate_svg | Joey Turner | Remove Linux headers | Headers_remove | Joey Turner | Update submenu descriptions based on conditions | update_submenu_data | Joey Turner | sanitize input cli | sanitize_input | | Check if a domain is reachable via IPv4 and IPv6 | check_ip_version google.com | Joey Turner | Migrated procedures from Armbian config. | set_header_remove | Igor Pecovnik | Generate a submenu from a parent_id | generate_menu 'parent_id' | Tearran | Generate a markdown list json objects using jq. | see_jq_menu_list | Joey Turner | Generate jobs from JSON file. | generate_jobs_from_json | Joey Turner | Install kernel headers | is_package_manager_running | Joey Turner | Toggle IPv6 on or off | toggle_ipv6 | Joey Turner | Adjust welcome screen (motd) | | igorpecovnik | Generate JSON-like object file. | generate_json | Joey Turner | Install DE | install_de | Igor Pecovnik | Install wrapper | apt_install_wrapper apt-get -y purge armbian-zsh | igorpecovnik | Netplan wrapper | network_config | Igor Pecovnik | Change the background color of the terminal or dialog box | set_colors 0-7 | Joey Turner | Serve the edit and debug server. | serve_doc | Joey Turner | Update JSON data with system information | update_json_data | Joey Turner | pipeline strings to an infobox | show_infobox <<< 'hello world' ; | Joey Turner | Stop hostapd, clean config | default_wireless_network_config | Igor Pecovnik | Parse json to get list of desired menu or submenu items | parse_menu_items 'menu_options_array' | Gunjan Gupta | Show the usage of the functions. | see_use | Joey Turner | Generate a Help message for cli commands. | see_cmd_list [catagory] | Joey Turner | Revert network config back to Armbian defaults | default_network_config | Igor Pecovnik | freeze/unhold/reinstall armbian related packages. | armbian_fw_manipulate unhold|freeze|reinstall | Igor Pecovnik | Check the internet connection with fallback DNS | see_ping | Joey Turner | Upgrade to next stable or rolling release | release_upgrade stable verify | Igor Pecovnik | Install docker from a repo using apt | install_docker engine | Kat Schwarz | change_system_hostname | change_system_hostname | igorpecovnik | Set Armbian to stable release | set_stable | Tearran | Secure version of get_user_continue | get_user_continue_secure 'Do you wish to continue?' process_input | Joey Turner
Runtime / Board Statuses (WIP) This section outlines the runtime environment to check configurations and statuses for dynamically managing jobs based on JSON data. (WIP)

Testing and contributing

Get Development Install the dependencies:
Text Only
1
sudo apt install git jq whiptail
Get Development and contribute:
Text Only
1
2
3
4
5
{
git clone https://github.com/armbian/configng
cd configng
./armbian-configng --help
}
Install and test Development deb:
Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
{
    sudo apt install whiptail
    latest_release=$(curl -s https://api.github.com/repos/armbian/configng/releases/latest)
    deb_url=$(echo "$latest_release" | jq -r '.assets[] | select(.name | endswith(".deb")) | .browser_download_url')
    curl -LO "$deb_url"
    deb_file=$(echo "$deb_url" | awk -F"/" '{print $NF}')
    sudo dpkg -i "$deb_file"
    sudo dpkg --configure -a
    sudo apt --fix-broken install
}