mirror of
https://github.com/armbian/configng.git
synced 2026-01-06 10:37:41 -08:00
646 lines
34 KiB
JSON
646 lines
34 KiB
JSON
{
|
|
"menu": [
|
|
{
|
|
"id": "System",
|
|
"description": "System wide and admin settings",
|
|
"sub": [
|
|
{
|
|
"id": "Kernel",
|
|
"description": "Alternative kernels, headers, overlays, bootenv",
|
|
"short": "Hardware",
|
|
"sub": [
|
|
{
|
|
"id": "KER001",
|
|
"description": "Use alternative kernels",
|
|
"short": "Alternative kernels",
|
|
"module": "module_generic",
|
|
"about": "Switching between kernels might change functionality of your device. \n\nIt might fail to boot!",
|
|
"command": [
|
|
"module_armbian_firmware select"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": ""
|
|
},
|
|
{
|
|
"id": "HEAD01",
|
|
"description": "Install Linux headers",
|
|
"short": "Kernel Headers",
|
|
"module": "module_generic",
|
|
"command": [
|
|
"module_armbian_firmware headers install"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "! module_armbian_firmware headers status"
|
|
},
|
|
{
|
|
"id": "HEAD02",
|
|
"description": "Remove Linux headers",
|
|
"command": [
|
|
"module_armbian_firmware headers remove"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_armbian_firmware headers status"
|
|
},
|
|
{
|
|
"id": "DTO001",
|
|
"description": "Manage device tree overlays",
|
|
"short": "Device Tree Overlays",
|
|
"module": "module_generic",
|
|
"command": [
|
|
"manage_dtoverlays"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@viraniac @igorpecovnik",
|
|
"condition": "[ -d /boot/dtb/ ] && [ -f /boot/armbianEnv.txt ]"
|
|
},
|
|
{
|
|
"id": "ODR001",
|
|
"description": "Select Odroid board configuration",
|
|
"short": "Odroid Boards Config",
|
|
"module": "manage_odroid_board",
|
|
"command": [
|
|
"manage_odroid_board select"
|
|
],
|
|
"status": "Preview",
|
|
"author": "@GeoffClements",
|
|
"condition": "[ $BOARDFAMILY == odroidxu4 ]"
|
|
},
|
|
{
|
|
"id": "BOOT01",
|
|
"description": "Edit the boot environment",
|
|
"short": "Boot Environment",
|
|
"module": "module_generic",
|
|
"about": "This will open /boot/armbianEnv.txt file to edit\nCTRL+S to save\nCTLR+X to exit\nwould you like to continue?",
|
|
"command": [
|
|
"nano /boot/armbianEnv.txt"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "[[ -f /boot/armbianEnv.txt ]]"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "Storage",
|
|
"description": "Install to internal media, ZFS, NFS, read-only rootfs",
|
|
"short": "Storage",
|
|
"module": "module_generic",
|
|
"sub": [
|
|
{
|
|
"id": "STO001",
|
|
"description": "Copy the running Armbian system to another device",
|
|
"short": "Install",
|
|
"module": "module_generic",
|
|
"command": [
|
|
"armbian-install"
|
|
],
|
|
"status": "Preview",
|
|
"author": "@igorpecovnik",
|
|
"condition": "[[ -f /sbin/armbian-install || -f /usr/bin/armbian-install ]]"
|
|
},
|
|
{
|
|
"id": "FLASH1",
|
|
"description": "Download a fresh, official Armbian OS image and write it to a device",
|
|
"short": "Download and flash",
|
|
"module": "module_images",
|
|
"command": [
|
|
"module_images install"
|
|
],
|
|
"status": "Preview",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_images status >/dev/null"
|
|
},
|
|
{
|
|
"id": "FLASH2",
|
|
"description": "Remove all downloaded Armbian images",
|
|
"short": "Remove cached images",
|
|
"module": "module_images",
|
|
"command": [
|
|
"module_images remove"
|
|
],
|
|
"status": "Preview",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_images cache-status"
|
|
},
|
|
{
|
|
"id": "ROO001",
|
|
"description": "Enable read only filesystem",
|
|
"short": "Read Only FS",
|
|
"module": "module_generic",
|
|
"prompt": "This will enable Armbian read-only filesystem.\n",
|
|
"command": [
|
|
"module_overlayfs install"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_overlayfs status"
|
|
},
|
|
{
|
|
"id": "ROO002",
|
|
"description": "Disable read only filesystem",
|
|
"prompt": "This will disable Armbian read-only filesystem.\n",
|
|
"command": [
|
|
"module_overlayfs remove"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "! module_overlayfs status"
|
|
},
|
|
{
|
|
"id": "NETF01",
|
|
"description": "Enable Network filesystem (NFS) support",
|
|
"short": "NFS",
|
|
"module": "module_generic",
|
|
"command": [
|
|
"module_nfs install"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "! pkg_installed nfs-common"
|
|
},
|
|
{
|
|
"id": "NETF02",
|
|
"description": "Disable Network filesystem (NFS) support",
|
|
"command": [
|
|
"module_nfs remove"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "pkg_installed nfs-common"
|
|
},
|
|
{
|
|
"id": "NETF03",
|
|
"description": "Manage NFS Server",
|
|
"short": "NFS server",
|
|
"module": "module_generic",
|
|
"condition": "pkg_installed nfs-common",
|
|
"sub": [
|
|
{
|
|
"id": "NETF04",
|
|
"description": "Enable network filesystem (NFS) daemon",
|
|
"short": "NFS server",
|
|
"module": "module_generic",
|
|
"command": [
|
|
"module_nfsd install"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "! module_nfsd status"
|
|
},
|
|
{
|
|
"id": "NETF05",
|
|
"description": "Configure network filesystem (NFS) daemon",
|
|
"command": [
|
|
"module_nfsd manage"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_nfsd status"
|
|
},
|
|
{
|
|
"id": "NETF06",
|
|
"description": "Remove network filesystem (NFS) daemon",
|
|
"command": [
|
|
"module_nfsd remove"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_nfsd status"
|
|
},
|
|
{
|
|
"id": "NETF07",
|
|
"description": "Show network filesystem (NFS) daemon clients",
|
|
"module": "module_generic",
|
|
"command": [
|
|
"module_nfsd clients"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_nfsd status && [[ ${NFS_CLIENTS_NUMBER} -gt 0 ]]"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "NETF08",
|
|
"description": "Manage NFS Client",
|
|
"short": "NFS client",
|
|
"module": "module_generic",
|
|
"condition": "pkg_installed nfs-common",
|
|
"sub": [
|
|
{
|
|
"id": "NETF09",
|
|
"description": "Find NFS servers in subnet and mount shares",
|
|
"short": "Find NFS servers",
|
|
"module": "module_generic",
|
|
"command": [
|
|
"module_nfs servers"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "pkg_installed nfs-common"
|
|
},
|
|
{
|
|
"id": "NETF10",
|
|
"description": "Show and manage NFS mounts",
|
|
"command": [
|
|
"module_nfs mounts"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "[[ -n $(mount --type=nfs4) ]]"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "ZFS001",
|
|
"description": "ZFS filesystem - enable support",
|
|
"short": "ZFS",
|
|
"module": "module_generic",
|
|
"command": [
|
|
"module_zfs install"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@armbian",
|
|
"condition": "! module_zfs status && linux-version compare \"${KERNELID}\" le \"$(module_zfs kernel_max)\""
|
|
},
|
|
{
|
|
"id": "ZFS002",
|
|
"description": "ZFS filesystem - remove support",
|
|
"command": [
|
|
"module_zfs remove"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@armbian",
|
|
"condition": "module_zfs status"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "Access",
|
|
"description": "Manage SSH daemon options, enable 2FA",
|
|
"short": "SSH daemon",
|
|
"sub": [
|
|
{
|
|
"id": "ACC001",
|
|
"description": "Disable root login",
|
|
"short": "Native",
|
|
"module": "module_generic",
|
|
"command": [
|
|
"sed -i \"s|^#\\?PermitRootLogin.*|PermitRootLogin no|\" /etc/ssh/sshd_config",
|
|
"srv_restart ssh"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "grep -q '^PermitRootLogin yes' /etc/ssh/sshd_config"
|
|
},
|
|
{
|
|
"id": "ACC002",
|
|
"description": "Enable root login",
|
|
"command": [
|
|
"sed -i \"s/^#\\?PermitRootLogin.*/PermitRootLogin yes/\" /etc/ssh/sshd_config",
|
|
"srv_restart ssh"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "grep -q '^PermitRootLogin no' /etc/ssh/sshd_config"
|
|
},
|
|
{
|
|
"id": "ACC003",
|
|
"description": "Disable password login",
|
|
"command": [
|
|
"sed -i \"s/^#\\?PasswordAuthentication.*/PasswordAuthentication no/\" /etc/ssh/sshd_config",
|
|
"srv_restart ssh"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "grep -q 'PasswordAuthentication yes' /etc/ssh/sshd_config"
|
|
},
|
|
{
|
|
"id": "ACC004",
|
|
"description": "Enable password login",
|
|
"command": [
|
|
"sed -i \"s/^#\\?PasswordAuthentication.*/PasswordAuthentication yes/\" /etc/ssh/sshd_config",
|
|
"srv_restart ssh"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "grep -q 'PasswordAuthentication no' /etc/ssh/sshd_config"
|
|
},
|
|
{
|
|
"id": "ACC005",
|
|
"description": "Disable Public key authentication login",
|
|
"command": [
|
|
"sed -i \"s/^#\\?PubkeyAuthentication.*/PubkeyAuthentication no/\" /etc/ssh/sshd_config",
|
|
"srv_restart ssh"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "grep -q 'PubkeyAuthentication yes' /etc/ssh/sshd_config"
|
|
},
|
|
{
|
|
"id": "ACC006",
|
|
"description": "Enable Public key authentication login",
|
|
"command": [
|
|
"sed -i \"s/^#\\?PubkeyAuthentication.*/PubkeyAuthentication yes/\" /etc/ssh/sshd_config",
|
|
"srv_restart ssh"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "grep -q 'PubkeyAuthentication no' /etc/ssh/sshd_config"
|
|
},
|
|
{
|
|
"id": "ACC007",
|
|
"description": "Disable OTP authentication",
|
|
"command": [
|
|
"clear",
|
|
"! pkg_installed libpam-google-authenticator && ! pkg_installed qrencode || pkg_remove libpam-google-authenticator qrencode",
|
|
"sed -i \"s/^#\\?ChallengeResponseAuthentication.*/ChallengeResponseAuthentication no/\" /etc/ssh/sshd_config || sed -i \"0,/KbdInteractiveAuthentication/s//ChallengeResponseAuthentication yes/\" /etc/ssh/sshd_config",
|
|
"sed -i '/^auth required pam_google_authenticator.so nullok/ d' /etc/pam.d/sshd",
|
|
"srv_restart ssh"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "grep -q 'ChallengeResponseAuthentication yes' /etc/ssh/sshd_config"
|
|
},
|
|
{
|
|
"id": "ACC008",
|
|
"description": "Enable OTP authentication",
|
|
"command": [
|
|
"pkg_installed libpam-google-authenticator || pkg_install libpam-google-authenticator",
|
|
"pkg_installed qrencode || pkg_install qrencode",
|
|
"sed -i \"s/^#\\?ChallengeResponseAuthentication.*/ChallengeResponseAuthentication yes/\" /etc/ssh/sshd_config",
|
|
"sed -i $'/KbdInteractiveAuthentication/{iChallengeResponseAuthentication yes\\n:a;n;ba}' /etc/ssh/sshd_config || sed -n -i '/password updating/{p;:a;N;/@include common-password/!ba;s/.*\\n/auth required pam_google_authenticator.so nullok\\nauth required pam_permit.so\\n/};p' /etc/pam.d/sshd",
|
|
"[ ! -f /root/.google_authenticator ] && qr_code generate",
|
|
"srv_restart ssh"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "! pkg_installed libpam-google-authenticator || ! pkg_installed qrencode || grep -q '^ChallengeResponseAuthentication no' /etc/ssh/sshd_config || ! grep -q 'ChallengeResponseAuthentication' /etc/ssh/sshd_config"
|
|
},
|
|
{
|
|
"id": "ACC009",
|
|
"description": "Generate new OTP authentication QR code",
|
|
"command": [
|
|
"qr_code generate"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "grep -q '^ChallengeResponseAuthentication yes' /etc/ssh/sshd_config"
|
|
},
|
|
{
|
|
"id": "ACC010",
|
|
"description": "Show OTP authentication QR code",
|
|
"command": [
|
|
"qr_code"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "grep -q '^ChallengeResponseAuthentication yes' /etc/ssh/sshd_config && [ -f /root/.google_authenticator ]"
|
|
},
|
|
{
|
|
"id": "ACC011",
|
|
"description": "Disable last login banner",
|
|
"command": [
|
|
"sed -i \"s/^#\\?PrintLastLog.*/PrintLastLog no/\" /etc/ssh/sshd_config",
|
|
"srv_restart ssh"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "grep -q '^PrintLastLog yes' /etc/ssh/sshd_config"
|
|
},
|
|
{
|
|
"id": "ACC012",
|
|
"description": "Enable last login banner",
|
|
"command": [
|
|
"sed -i \"s/^#\\?PrintLastLog.*/PrintLastLog yes/\" /etc/ssh/sshd_config",
|
|
"srv_restart ssh"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "grep -q '^PrintLastLog no' /etc/ssh/sshd_config"
|
|
},
|
|
{
|
|
"id": "SSH001",
|
|
"description": "Sandboxed & containerised SSH server",
|
|
"short": "Containerised",
|
|
"module": "module_openssh-server",
|
|
"about": "This operation will install SSH server.",
|
|
"command": [
|
|
"module_openssh-server install"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "! module_openssh-server status"
|
|
},
|
|
{
|
|
"id": "SSH002",
|
|
"description": "Remove sandboxed SSH server",
|
|
"about": "This operation will remove SSH server.",
|
|
"command": [
|
|
"module_openssh-server remove"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_openssh-server status"
|
|
},
|
|
{
|
|
"id": "SSH003",
|
|
"description": "Purge sandboxed SSH server with data folder",
|
|
"about": "This operation will purge SSH server with data folder.",
|
|
"command": [
|
|
"module_openssh-server purge"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_openssh-server status"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "User",
|
|
"description": "Change shell, adjust MOTD",
|
|
"short": "Shell and MOTD",
|
|
"sub": [
|
|
{
|
|
"id": "SHELL1",
|
|
"description": "Change shell system wide to ZSH",
|
|
"short": "Change shell",
|
|
"module": "module_generic",
|
|
"about": "This will switch system wide shell to ZSH",
|
|
"command": [
|
|
"manage_zsh enable"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "[[ $(cat /etc/passwd | grep \"^root:\" | rev | cut -d\":\" -f1 | cut -d\"/\" -f1| rev) == \"bash\" ]]"
|
|
},
|
|
{
|
|
"id": "SHELL2",
|
|
"description": "Change shell system wide to BASH",
|
|
"about": "This will switch system wide shell to BASH",
|
|
"command": [
|
|
"manage_zsh disable"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "[[ $(cat /etc/passwd | grep \"^root:\" | rev | cut -d\":\" -f1 | cut -d\"/\" -f1| rev) == \"zsh\" ]]"
|
|
},
|
|
{
|
|
"id": "MOTD01",
|
|
"description": "Adjust welcome screen (motd)",
|
|
"short": "Adjust MOTD",
|
|
"module": "module_generic",
|
|
"command": [
|
|
"adjust_motd"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "[ -f /etc/default/armbian-motd ]"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"id": "Updates",
|
|
"description": "OS updates and distribution upgrades",
|
|
"short": "OS Updates",
|
|
"status": "Active",
|
|
"condition": "[ -f /etc/armbian-distribution-status ]",
|
|
"sub": [
|
|
{
|
|
"id": "UPD001",
|
|
"description": "Enable Armbian firmware upgrades",
|
|
"short": "Firmware",
|
|
"module": "module_generic",
|
|
"about": "This will enable Armbian kernel/firmware upgrades that are currently put on hold.",
|
|
"command": [
|
|
"module_armbian_firmware unhold"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_armbian_firmware hold status"
|
|
},
|
|
{
|
|
"id": "UPD002",
|
|
"description": "Disable Armbian firmware upgrades",
|
|
"about": "Disable Armbian kernel/firmware upgrades",
|
|
"command": [
|
|
"module_armbian_firmware hold"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "! module_armbian_firmware hold status"
|
|
},
|
|
{
|
|
"id": "ROLLIN",
|
|
"description": "Switch system to rolling packages repository",
|
|
"short": "Rolling",
|
|
"module": "module_generic",
|
|
"about": "This will switch OS to rolling releases.",
|
|
"command": [
|
|
"module_armbian_firmware repository rolling"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_armbian_firmware repository stable status"
|
|
},
|
|
{
|
|
"id": "STABLE",
|
|
"description": "Switch system to stable packages repository",
|
|
"short": "Stable",
|
|
"module": "module_generic",
|
|
"about": "This will switch OS to stable releases",
|
|
"command": [
|
|
"module_armbian_firmware repository stable"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "module_armbian_firmware repository rolling status"
|
|
},
|
|
{
|
|
"id": "STD001",
|
|
"description": "Distribution upgrade to latest stable / LTS",
|
|
"short": "Stable Distro Upgrade",
|
|
"about": "Release upgrade is irriversible operation which upgrades all packages. \n\nResoulted upgrade might break your build beyond repair!",
|
|
"command": [
|
|
"release_upgrade stable"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "[ -f /etc/armbian-distribution-status ] && release_upgrade stable verify"
|
|
},
|
|
{
|
|
"id": "UNS001",
|
|
"description": "Distribution upgrade to rolling unstable",
|
|
"short": "Unstable Distro Upgrade",
|
|
"about": "Release upgrade is irriversible operation which upgrades all packages. \n\nResoulted upgrade might break your build beyond repair!",
|
|
"command": [
|
|
"release_upgrade rolling"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@igorpecovnik",
|
|
"condition": "[ -f /etc/armbian-distribution-status ] && release_upgrade rolling verify"
|
|
},
|
|
{
|
|
"id": "WTC001",
|
|
"description": "Enable automating Docker container base images updating",
|
|
"short": "Docker images",
|
|
"module": "module_watchtower",
|
|
"command": [
|
|
"module_watchtower install"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@armbian",
|
|
"condition": "! module_watchtower status && pkg_installed docker-ce"
|
|
},
|
|
{
|
|
"id": "WTC002",
|
|
"description": "Disable automating Docker container base images updating",
|
|
"command": [
|
|
"module_watchtower remove"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@armbian",
|
|
"condition": "module_watchtower status && pkg_installed docker-ce"
|
|
},
|
|
{
|
|
"id": "UNAT01",
|
|
"description": "Enable automatic package updates.",
|
|
"short": "Packages",
|
|
"module": "module_generic",
|
|
"command": [
|
|
"module_armbian_upgrades install"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@armbian",
|
|
"condition": "! module_armbian_upgrades status"
|
|
},
|
|
{
|
|
"id": "UNAT02",
|
|
"description": "Configure automatic package updates",
|
|
"command": [
|
|
"module_armbian_upgrades configure"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@armbian",
|
|
"condition": "module_armbian_upgrades status"
|
|
},
|
|
{
|
|
"id": "UNAT03",
|
|
"description": "Disable automatic package updates",
|
|
"command": [
|
|
"module_armbian_upgrades remove"
|
|
],
|
|
"status": "Stable",
|
|
"author": "@armbian",
|
|
"condition": "module_armbian_upgrades status"
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|
|
]
|
|
}
|