Skip to content

Latest commit

 

History

History
958 lines (685 loc) · 23.3 KB

DOCUMENTATION.md

File metadata and controls

958 lines (685 loc) · 23.3 KB

Armbian Configuration Utility

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:

sudo armbian-config
  • System

    • Enable Armbian firmware upgrades

    • Disable Armbian kernel upgrades

    • Edit the boot environment

    • Install Linux headers

    • Remove Linux headers

    • Install to internal storage

    • Manage SSH login options

      • Disable root login

      • Enable root login

      • Disable password login

      • Enable password login

      • Disable Public key authentication login

      • Enable Public key authentication login

      • Disable OTP authentication

      • Enable OTP authentication

      • Generate new OTP authentication QR code

      • Show OTP authentication QR code

      • Disable last login banner

      • Enable last login banner

    • Change shell system wide to BASH

    • Change shell system wide to ZSH

    • Switch to rolling release

    • Switch to stable release

    • Enable read only filesystem

    • Disable read only filesystem

    • Adjust welcome screen (motd)

    • Install alternative kernels

    • Manage device tree overlays

    • ZFS filesystem - enable support

    • ZFS filesystem - remove support

    • Select Odroid board configuration

  • Network

    • Configure network interfaces

      • Add / change interface

      • Revert to Armbian defaults

      • Show configuration

      • Show active status

  • Localisation

    • Change Global timezone

    • Change Locales reconfigure the language and character set

    • Change Keyboard layout

    • Change System Hostname

  • Software

    • Network tools

      • Install realtime console network usage monitor (nload)

      • Remove realtime console network usage monitor (nload)

      • Install bandwidth measuring tool (iperf3)

      • Remove bandwidth measuring tool (iperf3)

      • Install IP LAN monitor (iptraf-ng)

      • Remove IP LAN monitor (iptraf-ng)

      • Install hostname broadcast via mDNS (avahi-daemon)

      • Remove hostname broadcast via mDNS (avahi-daemon)

    • Download tools

      • Install qBittorrent

      • Remove qBittorrent

      • Install Deluge

      • Remove Deluge

      • Install Transmission

      • Remove Transmission

      • Install SABnzbd

      • Remove SABnzbd

      • Install Medusa

      • Remove Medusa

      • Install Sonarr

      • Remove Sonarr

      • Install Radarr

      • Remove Radarr

      • Install Bazarr

      • Remove Bazarr

      • Install Lidarr

      • Remove Lidarr

      • Install Readarr

      • Remove Readarr

      • Install Prowlarr

      • Remove Prowlarr

      • Jellyseerr install

      • Jellyseerr remove

      • Jellyseerr purge data folder

    • Database

      • Mariadb install

      • Mariadb remove

      • Mariadb purge

      • phpMyAdmin install

      • phpMyAdmin remove

      • phpMyAdmin purge

    • DNS blockers

      • Install Pi-hole DNS ad blocker

      • Set Pi-hole web admin password

      • Remove Pi-hole DNS ad blocker

    • Development

      • Install tools for cloning and managing repositories (git)

      • Remove tools for cloning and managing repositories (git)

    • Home Automation

      • Install openHAB

      • Remove openHAB

      • Install Home Assistant

      • Remove Home Assistant

    • System benchmaking and diagnostics

    • Containerlization and Virtual Machines

      • Install Docker Minimal

      • Install Docker Engine

      • Remove Docker

      • Purge all Docker images, containers, and volumes

      • Install Portainer

      • Remove Portainer

      • Watchtower install

      • Watchtower remove

    • Media Servers and Editors

      • Install Plex Media server

      • Remove Plex Media server

      • Install Emby server

      • Remove Emby server

      • Stirling-PDF Install

      • Stirling-PDF Remove

      • Stirling-PDF Purge data folder

      • Syncthing Install

      • Syncthing Remove

      • Syncthing Purge data folder

      • Nextcloud Install

      • Nextcloud Remove

      • Nextcloud Purge data folder

      • Owncloud Install

      • Owncloud Remove

      • Owncloud Purge data folder

    • Monitoring

      • Uptime Kuma install

      • Uptime Kuma remove

      • Uptime Kuma purge data folder

      • Netdata Install

      • Netdata remove

      • Netdata purge data folder

    • Remote Management tools

      • Install Cockpit web-based management tool

      • Purge Cockpit web-based management tool

      • Start Cockpit Service

      • Stop Cockpit Service

      • Webmin web-based management tool

  • Help

    • Contribute

Install

Armbian installation

sudo apt install armbian-config

3rd party Debian based distributions

{
	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:

armbian-config --help

Outputs:


  System - System wide and admin settings (x86_64)
    --cmd SY001 - Enable Armbian firmware upgrades
    --cmd SY002 - Disable Armbian kernel upgrades
    --cmd SY003 - Edit the boot environment
    --cmd SY004 - Install Linux headers
    --cmd SY005 - Remove Linux headers
    --cmd SY006 - Install to internal storage
    SY007 - Manage SSH login options
	--cmd SY101 - Disable root login
	--cmd SY102 - Enable root login
	--cmd SY103 - Disable password login
	--cmd SY104 - Enable password login
	--cmd SY105 - Disable Public key authentication login
	--cmd SY106 - Enable Public key authentication login
	--cmd SY107 - Disable OTP authentication
	--cmd SY108 - Enable OTP authentication
	--cmd SY109 - Generate new OTP authentication QR code
	--cmd SY110 - Show OTP authentication QR code
	--cmd SY111 - Disable last login banner
	--cmd SY112 - Enable last login banner
    --cmd SY008 - Change shell system wide to BASH
    --cmd SY009 - Change shell system wide to ZSH
    --cmd SY010 - Switch to rolling release
    --cmd SY011 - Switch to stable release
    --cmd SY012 - Enable read only filesystem
    --cmd SY013 - Disable read only filesystem
    --cmd SY014 - Adjust welcome screen (motd)
    --cmd SY015 - Install alternative kernels
    --cmd SY017 - Manage device tree overlays
    --cmd SY018 - ZFS filesystem - enable support
    --cmd SY019 - ZFS filesystem - remove support
    --cmd SY020 - Select Odroid board configuration

  Network - Fixed and wireless network settings (eth0)
    NE001 - Configure network interfaces
	--cmd NE002 - Add / change interface
	--cmd NE003 - Revert to Armbian defaults
	--cmd NE004 - Show configuration
	--cmd NE005 - Show active status

  Localisation - Localisation (C.UTF-8)
    --cmd LO001 - Change Global timezone
    --cmd LO002 - Change Locales reconfigure the language and character set
    --cmd LO003 - Change Keyboard layout
    --cmd LO005 - Change System Hostname

  Software - Run/Install 3rd party applications (Update the package lists.)
    Netconfig - Network tools
	--cmd NET001 - Install realtime console network usage monitor (nload)
	--cmd NET002 - Remove realtime console network usage monitor (nload)
	--cmd NET003 - Install bandwidth measuring tool (iperf3)
	--cmd NET004 - Remove bandwidth measuring tool (iperf3)
	--cmd NET005 - Install IP LAN monitor (iptraf-ng)
	--cmd NET006 - Remove IP LAN monitor (iptraf-ng)
	--cmd NET007 - Install hostname broadcast via mDNS (avahi-daemon)
	--cmd NET008 - Remove hostname broadcast via mDNS (avahi-daemon)
    Downloaders - Download tools
	--cmd DOW001 - Install qBittorrent
	--cmd DOW002 - Remove qBittorrent (http://10.1.0.84:8090 6881)
	--cmd DOW003 - Install Deluge
	--cmd DOW004 - Remove Deluge (http://10.1.0.84:8112 6181 58846)
	--cmd DOW005 - Install Transmission
	--cmd DOW006 - Remove Transmission (http://10.1.0.84:9091)
	--cmd DOW011 - Install SABnzbd
	--cmd DOW012 - Remove SABnzbd (http://10.1.0.84:8080)
	--cmd DOW013 - Install Medusa
	--cmd DOW014 - Remove Medusa (http://10.1.0.84:8081)
	--cmd DOW015 - Install Sonarr
	--cmd DOW016 - Remove Sonarr (http://10.1.0.84:8989)
	--cmd DOW017 - Install Radarr
	--cmd DOW018 - Remove Radarr (http://10.1.0.84:7878)
	--cmd DOW019 - Install Bazarr
	--cmd DOW020 - Remove Bazarr (http://10.1.0.84:6767)
	--cmd DOW021 - Install Lidarr
	--cmd DOW022 - Remove Lidarr (http://10.1.0.84:8686)
	--cmd DOW023 - Install Readarr
	--cmd DOW024 - Remove Readarr (http://10.1.0.84:8787)
	--cmd DOW025 - Install Prowlarr
	--cmd DOW026 - Remove Prowlarr (http://10.1.0.84:9696)
	--cmd DOW040 - Jellyseerr install
	--cmd DOW041 - Jellyseerr remove  (http://10.1.0.84:5055)
	--cmd DOW042 - Jellyseerr purge data folder
    Database - Database
	--cmd DAT001 - Mariadb install
	--cmd DAT002 - Mariadb remove (Server: 10.1.0.84)
	--cmd DAT003 - Mariadb purge
	--cmd DAT005 - phpMyAdmin install
	--cmd DAT006 - phpMyAdmin remove (http://10.1.0.84:8071)
	--cmd DAT007 - phpMyAdmin purge
    DNS - DNS blockers
	--cmd DNS001 - Install Pi-hole DNS ad blocker
	--cmd DNS002 - Set Pi-hole web admin password
	--cmd DNS003 - Remove Pi-hole DNS ad blocker
    DevTools - Development
	--cmd DEV001 - Install tools for cloning and managing repositories (git)
	--cmd DEV002 - Remove tools for cloning and managing repositories (git)
    HomeAutomation - Home Automation
	--cmd HA001 - Install openHAB
	--cmd HA002 - Remove openHAB
	--cmd HA003 - Install Home Assistant
	--cmd HA004 - Remove Home Assistant (http://10.1.0.84:8123)
    --cmd Benchy - System benchmaking and diagnostics
    Containers - Containerlization and Virtual Machines
	--cmd CON001 - Install Docker Minimal
	--cmd CON002 - Install Docker Engine
	--cmd CON003 - Remove Docker
	--cmd CON004 - Purge all Docker images, containers, and volumes
	--cmd CON005 - Install Portainer
	--cmd CON006 - Remove Portainer (http://10.1.0.84:9000)
	--cmd CON007 - Watchtower install
	--cmd CON008 - Watchtower remove
    Media - Media Servers and Editors
	--cmd MED001 - Install Plex Media server
	--cmd MED002 - Remove Plex Media server
	--cmd MED003 - Install Emby server
	--cmd MED004 - Remove Emby server
	--cmd MED010 - Stirling-PDF Install
	--cmd MED011 - Stirling-PDF Remove
	--cmd MED012 - Stirling-PDF Purge data folder
	--cmd MED015 - Syncthing Install
	--cmd MED016 - Syncthing Remove (http://10.1.0.84:8884)
	--cmd MED017 - Syncthing Purge data folder
	--cmd MED020 - Nextcloud Install
	--cmd MED021 - Nextcloud Remove (https://10.1.0.84:443)
	--cmd MED022 - Nextcloud Purge data folder
	--cmd MED025 - Owncloud Install
	--cmd MED026 - Owncloud Remove (http://10.1.0.84:7787)
	--cmd MED027 - Owncloud Purge data folder
    Monitoring - Monitoring
	--cmd MON001 - Uptime Kuma install 
	--cmd MON002 - Uptime Kuma remove
	--cmd MON003 - Uptime Kuma purge data folder
	--cmd MON005 - Netdata Install
	--cmd MON006 - Netdata remove
	--cmd MON007 - Netdata purge data folder
    Management - Remote Management tools
	--cmd MAN001 - Install Cockpit web-based management tool
	--cmd MAN002 - Purge Cockpit web-based management tool
	--cmd MAN003 - Start Cockpit Service
	--cmd MAN004 - Stop Cockpit Service
	--cmd MAN005 - Webmin web-based management tool

  Help - About this tool
    --cmd HE001 - Contribute

Legacy options

Backward Compatible options.

Use:

armbian-config main=Help

Outputs:

Legacy Options (Backward Compatible)
Please use 'armbian-config --help' for more information.

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

	armbian-config main=System selection=Headers          -  Install headers:
	armbian-config 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.

### SY001

Enable Armbian firmware upgrades

Jobs:

armbian_fw_manipulate unhold


### SY002

Disable Armbian kernel upgrades

Jobs:

armbian_fw_manipulate hold


### SY003

Edit the boot environment

Jobs:

nano /boot/armbianEnv.txt


### SY004

Install Linux headers

Jobs:

module_headers install


### SY005

Remove Linux headers

Jobs:

module_headers remove


### SY006

Install to internal storage

Jobs:

armbian-install


### SY007

Manage SSH login options

Jobs:

No commands available


### SY008

Change shell system wide to BASH

Jobs:

manage_zsh disable


### SY009

Change shell system wide to ZSH

Jobs:

manage_zsh enable


### SY010

Switch to rolling release

Jobs:

set_rolling


### SY011

Switch to stable release

Jobs:

set_stable


### SY012

Enable read only filesystem

Jobs:

manage_overlayfs enable


### SY013

Disable read only filesystem

Jobs:

manage_overlayfs disable


### SY014

Adjust welcome screen (motd)

Jobs:

adjust_motd


### SY015

Install alternative kernels

Jobs:

switch_kernels


### SY017

Manage device tree overlays

Jobs:

manage_dtoverlays


### SY018

ZFS filesystem - enable support

Jobs:

module_zfs install


### SY019

ZFS filesystem - remove support

Jobs:

module_zfs remove


### SY020

Select Odroid board configuration

Jobs:

manage_odroid_board select


### NE001

Configure network interfaces

Jobs:

No commands available


### LO001

Change Global timezone

Jobs:

dpkg-reconfigure tzdata


### LO002

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


### LO003

Change Keyboard layout

Jobs:

dpkg-reconfigure keyboard-configuration ; setupcon update-initramfs -u


### LO005

Change System Hostname

Jobs:

change_system_hostname


### Netconfig

Network tools

Jobs:

No commands available


### Downloaders

Download tools

Jobs:

No commands available


### Database

Database

Jobs:

No commands available


### DNS

DNS blockers

Jobs:

No commands available


### DevTools

Development

Jobs:

No commands available


### HomeAutomation

Home Automation

Jobs:

No commands available


### Benchy

System benchmaking and diagnostics

Jobs:

see_monitoring


### Containers

Containerlization and Virtual Machines

Jobs:

No commands available


### Media

Media Servers and Editors

Jobs:

No commands available


### Monitoring

Monitoring

Jobs:

No commands available


### Management

Remote Management tools

Jobs:

No commands available


### HE001

Contribute

Jobs:

show_message <<< $(about_armbian_configng)

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 @Tearran
Run time variables Migrated procedures from Armbian config. set_runtime_variables @igorpecovnik
Check for (Whiptail, DIALOG, READ) tools and set the user interface. Tearran
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 @Tearran
Switching to alternative kernels switch_kernels @igorpecovnik
Webmin setup and service setting. help install remove start stop enable disable status check @Tearran
Hos container install and configure help install uninstall @igorpecovnik
Set Armbian root filesystem to read only manage_overlayfs enable/disable @igorpecovnik
Display a menu from pipe show_menu <<< armbianmonitor -h ; @Tearran
Install watchtower container install remove status help @armbian
Build the main menu from a object generate_top_menu 'json_data' @Tearran
Install bazarr container install remove status help @igorpecovnik
Install headers container install remove status help @armbian
Migrated procedures from Armbian config. is_package_manager_running @armbian
Migrated procedures from Armbian config. check_desktop @armbian
Install phpmyadmin container install remove purge status help
Install stirling container install remove purge status help @Frooodle
Install sonarr container install remove status help @armbian
Generate Document files. generate_readme @Tearran
Storing netplan config to tmp store_netplan_config @igorpecovnik
Install jellyseerr container install remove purge status help @armbian
Needed by generate_menu execute_command 'id' @Tearran
Display a Yes/No dialog box and process continue/exit get_user_continue 'Do you wish to continue?' process_input @Tearran
Migrated procedures from Armbian config. connect_bt_interface @armbian
Display a message box show_message <<< 'hello world' @Tearran
Menu for armbianmonitor features see_monitoring @Tearran
Enable/disable device tree overlays manage_dtoverlays @viraniac
Show or generate QR code for Google OTP qr_code generate @igorpecovnik
Install/uninstall/check status of pi-hole container help install uninstall status password @armbian
Check when apt list was last updated and suggest updating or update see_current_apt or see_current_apt update @Tearran
Install/uninstall/check status of portainer container help install uninstall status @armbian
Migrated procedures from Armbian config. check_if_installed nano @armbian
Generate 'Armbian CPU logo' SVG for document file. generate_svg @Tearran
Install zfs filesystem support install remove status kernel_max zfs_version help @armbian
Update submenu descriptions based on conditions update_submenu_data @Tearran
sanitize input cli sanitize_input @Tearran
Install lidarr container install remove status help @armbian
Check if a domain is reachable via IPv4 and IPv6 check_ip_version google.com @Tearran
Install embyserver from repo using apt install_embyserver @schwar3kat
Install deluge container install remove status help @armbian
Generate a submenu from a parent_id generate_menu 'parent_id' @Tearran
Install docker from a repo using apt install_docker engine @schwar3kat
Generate a markdown list json objects using jq. see_jq_menu_list @Tearran
Generate jobs from JSON file. generate_jobs_from_json @Tearran
Install radarr container install remove status help @armbian
Toggle IPv6 on or off toggle_ipv6 @Tearran
Adjust welcome screen (motd) adjust_motd clear, header, sysinfo, tips, commands @igorpecovnik
Install qbittorrent container install remove status help @armbian
Generate JSON-like object file. generate_json @Tearran
Install transmission container install remove status help @armbian
Install nextcloud container install remove purge status help
Install wrapper apt_install_wrapper apt-get -y purge armbian-zsh @igorpecovnik
Uses Avalible (Whiptail, DIALOG, READ) for the menu interface <function_name> Tearran
Netplan wrapper network_config @igorpecovnik
Install medusa container install remove status help @armbian
Install syncthing container install remove purge status help
Select optimised Odroid board configuration select @GeoffClements
Install owncloud container install remove purge status help @armbian
Install netdata container install remove purge status help @armbian
Change the background color of the terminal or dialog box set_colors 0-7 @Tearran
Show general information about this tool about_armbian_configng @igorpecovnik
Serve the edit and debug server. serve_doc @Tearran
Update JSON data with system information update_json_data @Tearran
pipeline strings to an infobox show_infobox <<< 'hello world' ; @Tearran
Install readarr container install remove status help @armbian
Install uptimekuma container install remove purge status help @armbian
Stop hostapd, clean config default_wireless_network_config @igorpecovnik
Update sub-submenu descriptions based on conditions update_sub_submenu_data "MenuID" "SubID" "SubSubID" "CMD" @Tearran
Parse json to get list of desired menu or submenu items parse_menu_items 'menu_options_array' @viraniac
Show the usage of the functions. see_use @Tearran
Install Desktop environment manage_desktops xfce install @igorpecovnik
Set system shell to BASH manage_zsh enable disable
Install sabnzbd container install remove status help @armbian
Generate a Help message for cli commands. see_cmd_list [category] @Tearran
Install mariadb container install remove purge status help
Revert network config back to Armbian defaults default_network_config @igorpecovnik
Install prowlarr container install remove status help @armbian
freeze, unhold, reinstall armbian related packages. armbian_fw_manipulate unhold/freeze/reinstall @igorpecovnik
Check the internet connection with fallback DNS see_ping @Tearran
Upgrade to next stable or rolling release release_upgrade stable verify @igorpecovnik
Install openhab from a repo using apt install uinstall @igorpecovnik
Update the /etc/skel files in users directories update_skel @igorpecovnik
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 @Tearran
Install plexmediaserver from repo using apt install_plexmediaserver @schwar3kat
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:

sudo apt install git jq whiptail

Get Development and contribute:

{
git clone https://github.com/armbian/configng
cd configng
./armbian-config --help
}

Install and test Development deb:

{
	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
}