From 7f866dee2f195bc5145ad3959a370ef1efe6b095 Mon Sep 17 00:00:00 2001 From: Igor Pecovnik Date: Tue, 8 Sep 2026 14:15:51 +0200 Subject: [PATCH] docs: retire the /User-Guide_Armbian-Software/ URLs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The daily configng sync kept rewriting docs/User-Guide_Armbian-Software/: 16 category hub pages on the old long URLs, plus Software.md — a 3600-line dump of every app on one page that nothing in the nav, the redirects or any other page linked to, reachable only by guessing the URL. Move the hubs next to the app pages they list (WebHosting.md -> software/web-hosting.md, so /software/web-hosting/), drop the dump, and redirect every old URL — the hubs to their new page, Software.md to the software overview. App pages' category back-links now point at the new hub URLs. The sync workflow no longer copies configng's legacy docs/Software/ tree; armbian/configng writes the hubs into docs/software/ with `hub: true` in their front-matter, and build-software-nav.py keys off that to regenerate the not_in_nav list that keeps hubs out of the left nav without warnings. serve-docs-local.sh mirrors the workflow again (it was still staging the pre-/config/ layout). Needs armbian/configng#1020 merged first. Signed-off-by: Igor Pecovnik --- .../workflows/pull-from-armbian-config.yml | 7 +- docs/User-Guide_Armbian-Software/Software.md | 3625 ----------------- docs/software/actual-budget.md | 2 +- docs/software/adguardhome.md | 2 +- docs/software/apt-cacher-ng.md | 2 +- .../Armbian.md => software/armbian.md} | 1 + docs/software/avahi-daemon.md | 2 +- .../Backup.md => software/backup.md} | 1 + docs/software/bazarr.md | 2 +- docs/software/cdn-router.md | 2 +- docs/software/cockpit.md | 2 +- docs/software/code-server.md | 2 +- .../Containers.md => software/containers.md} | 1 + .../Database.md => software/database.md} | 1 + docs/software/deluge.md | 2 +- .../DevTools.md => software/dev-tools.md} | 1 + .../DNS.md => software/dns.md} | 1 + docs/software/docker.md | 2 +- docs/software/domoticz.md | 2 +- .../downloaders.md} | 1 + docs/software/dozzle.md | 2 +- docs/software/duplicati.md | 2 +- docs/software/emby.md | 2 +- docs/software/evcc.md | 2 +- docs/software/filebrowser.md | 2 +- .../Finance.md => software/finance.md} | 1 + docs/software/gh-runners.md | 2 +- docs/software/ghost.md | 2 +- docs/software/git-cdn.md | 2 +- docs/software/git-cli.md | 2 +- docs/software/grafana.md | 2 +- docs/software/hastebin.md | 2 +- docs/software/home-assistant.md | 2 +- .../home-automation.md} | 1 + docs/software/homepage.md | 2 +- docs/software/immich.md | 2 +- docs/software/iperf3.md | 2 +- docs/software/iptraf-ng.md | 2 +- docs/software/jellyfin.md | 2 +- docs/software/jellyseerr.md | 2 +- docs/software/lidarr.md | 2 +- .../Management.md => software/management.md} | 1 + docs/software/mariadb.md | 2 +- .../Media.md => software/media.md} | 1 + docs/software/medusa.md | 2 +- .../Monitoring.md => software/monitoring.md} | 1 + docs/software/mysql.md | 2 +- docs/software/navidrome.md | 2 +- docs/software/netalertx.md | 2 +- docs/software/netbox.md | 6 +- .../Netconfig.md => software/netconfig.md} | 1 + docs/software/netdata.md | 2 +- docs/software/nextcloud.md | 2 +- docs/software/nload.md | 2 +- docs/software/octoprint.md | 2 +- docs/software/omv.md | 2 +- docs/software/openhab.md | 2 +- docs/software/owncloud.md | 2 +- docs/software/phpmyadmin.md | 2 +- docs/software/pi-hole.md | 2 +- docs/software/portainer.md | 2 +- docs/software/postgresql.md | 2 +- .../Printing.md => software/printing.md} | 1 + docs/software/prometheus.md | 2 +- docs/software/prowlarr.md | 2 +- docs/software/proxmox-ve.md | 2 +- docs/software/qbittorrent.md | 2 +- docs/software/radarr.md | 2 +- docs/software/redis.md | 2 +- docs/software/rsyncd-server.md | 2 +- docs/software/sabnzbd.md | 2 +- docs/software/samba.md | 2 +- docs/software/sonarr.md | 2 +- docs/software/stirling.md | 2 +- docs/software/swag.md | 2 +- docs/software/syncthing.md | 2 +- docs/software/transmission.md | 2 +- docs/software/unbound.md | 2 +- docs/software/uptime-kuma.md | 2 +- .../VPN.md => software/vpn.md} | 1 + docs/software/wallos.md | 2 +- .../WebHosting.md => software/web-hosting.md} | 1 + docs/software/webmin.md | 2 +- docs/software/wireguard.md | 2 +- docs/software/zerotier.md | 2 +- mkdocs.yml | 46 +- serve-docs-local.sh | 21 +- tools/build-software-nav.py | 72 +- 88 files changed, 186 insertions(+), 3739 deletions(-) delete mode 100644 docs/User-Guide_Armbian-Software/Software.md rename docs/{User-Guide_Armbian-Software/Armbian.md => software/armbian.md} (98%) rename docs/{User-Guide_Armbian-Software/Backup.md => software/backup.md} (97%) rename docs/{User-Guide_Armbian-Software/Containers.md => software/containers.md} (98%) rename docs/{User-Guide_Armbian-Software/Database.md => software/database.md} (98%) rename docs/{User-Guide_Armbian-Software/DevTools.md => software/dev-tools.md} (98%) rename docs/{User-Guide_Armbian-Software/DNS.md => software/dns.md} (98%) rename docs/{User-Guide_Armbian-Software/Downloaders.md => software/downloaders.md} (99%) rename docs/{User-Guide_Armbian-Software/Finance.md => software/finance.md} (97%) rename docs/{User-Guide_Armbian-Software/HomeAutomation.md => software/home-automation.md} (98%) rename docs/{User-Guide_Armbian-Software/Management.md => software/management.md} (99%) rename docs/{User-Guide_Armbian-Software/Media.md => software/media.md} (99%) rename docs/{User-Guide_Armbian-Software/Monitoring.md => software/monitoring.md} (98%) rename docs/{User-Guide_Armbian-Software/Netconfig.md => software/netconfig.md} (98%) rename docs/{User-Guide_Armbian-Software/Printing.md => software/printing.md} (97%) rename docs/{User-Guide_Armbian-Software/VPN.md => software/vpn.md} (98%) rename docs/{User-Guide_Armbian-Software/WebHosting.md => software/web-hosting.md} (97%) diff --git a/.github/workflows/pull-from-armbian-config.yml b/.github/workflows/pull-from-armbian-config.yml index 06b3b4d80..d6dc0864d 100644 --- a/.github/workflows/pull-from-armbian-config.yml +++ b/.github/workflows/pull-from-armbian-config.yml @@ -54,11 +54,8 @@ jobs: rsync -avr "docs/System/$f.md" "../documentation/docs/config/$(echo "$f" | tr 'A-Z' 'a-z').md" done - # the rest goes under armbian-software (category hubs + section pages) - mkdir -p ../documentation/docs/User-Guide_Armbian-Software/ - rsync -avr --exclude="Software.user.md" docs/Software/* ../documentation/docs/User-Guide_Armbian-Software/ - - # per-app SEO pages get their own top-level /software// URLs + # per-app SEO pages and their category hubs get their own top-level + # /software// URLs; index.md here is hand-maintained, not synced. mkdir -p ../documentation/docs/software/ rsync -avr --delete --exclude=index.md docs/software/. ../documentation/docs/software/ diff --git a/docs/User-Guide_Armbian-Software/Software.md b/docs/User-Guide_Armbian-Software/Software.md deleted file mode 100644 index f5e926ea7..000000000 --- a/docs/User-Guide_Armbian-Software/Software.md +++ /dev/null @@ -1,3625 +0,0 @@ ---- -seo_title: "Install apps & services on Armbian" -description: "Browse and install third-party applications and services on Armbian single-board computers with armbian-config, as Docker containers or native packages." -comments: true ---- - -# Run/Install 3rd party applications - -## Armbian infrastructure services - -#### CDN router - - -Router for repository mirror automation - - - -![CDN router](/images/ART001.png) - - - - -The Armbian Router is an intelligent redirector system that optimizes file downloads by automatically directing users to the best available mirror. It evaluates each download request based on geographic location, server health, and file availability, ensuring faster downloads, balanced load distribution, and high availability. This core service underpins Armbian's scalable mirror network, seamlessly routing traffic to improve performance and reliability for end users worldwide. - - - - -~~~ bash title="CDN router" -armbian-config --cmd ART001 -~~~ - - -~~~ bash title="Remove CDN router" -armbian-config --cmd ART002 -~~~ - - - -#### GH runners - - -GitHub runners for Armbian automation - - - -![GH runners](/images/GHR001.png) - - - - -This module automates the installation, removal, and status checking of GitHub self-hosted runners for the Armbian project. It supports batch operations and user input through dialog prompts when running interactively. - - - - -~~~ bash title="GH runners" -armbian-config --cmd GHR001 -~~~ - - - -=== "Supported Commands" - -- **`install`** - Installs one or more GitHub runners using the provided configuration or interactively prompted values. - -- **`purge` / `remove`** - Removes runners based on the provided runner name series and target organization or repository. - -- **`status`** - Quietly checks if any `actions.runner` services are currently running on the system. - -=== "Available Switches" - -| Switch | Description | -|--------------------|-----------------------------------------------------------------------------| -| `gh_token` | GitHub token with admin rights to manage self-hosted runners. | -| `runner_name` | Name prefix for the runner series (default: `armbian`). | -| `start` | Start index of the runner series (e.g., `01`). | -| `stop` | End index of the runner series (e.g., `05`). | -| `label_primary` | Labels for the first runner (default: `alfa`). | -| `label_secondary` | Labels for additional runners (default: `fast,images`). | -| `organisation` | GitHub organization name (default: `armbian`). | -| `owner` | GitHub user or organization owner (used for repo-level runners). | -| `repository` | GitHub repository name (used for repo-level runners). | - -=== "Behavior" - -- Prompts the user for missing switches via `dialog` **only in interactive mode**. -- Supports bulk installation of runners using sequential numbering (`start` to `stop`). -- Calls internal `actions.runner.install` and `actions.runner.remove` helpers. -- Returns `0` if any runner services are active, `1` otherwise (for scripting use). -- Suppresses errors and outputs when checking status to remain quiet in background use. - - - - -~~~ bash title="Remove GitHub runners for Armbian automation" -armbian-config --cmd GHR002 -~~~ - - - -#### Rsyncd server - - - -![Rsyncd server](/images/RSD001.png) - - - -~~~ bash title="Rsyncd server" -armbian-config --cmd RSD001 -~~~ - - -~~~ bash title="Remove Armbian rsyncd server" -armbian-config --cmd RSD002 -~~~ - - - -## Backup solutions for your data - -#### Duplicati - - -Duplicati install - - - -![Duplicati](/images/DPL001.png) - - - - -Duplicati is a versatile and secure backup tool designed for everyone, including: - -- Users new to backup systems who need a simple and reliable solution. -- Experienced users who want full control over encrypted backups and storage destinations. -- System administrators who require automated, encrypted backups across multiple platforms. - -Duplicati offers powerful features such as strong AES-256 encryption, backup scheduling, and flexible storage support (local folders, NAS, cloud providers like Google Drive, Dropbox, S3, and more). -Through its web-based interface, users can easily configure, monitor, and restore backups from any browser. - -Thanks to Duplicati’s smart design — working through standard protocols and containerized deployment — it fits seamlessly into any environment, from personal setups to enterprise infrastructures. - - - - -~~~ bash title="Duplicati" -armbian-config --cmd DPL001 -~~~ - - - -=== "Directories" - - - Install directory: `/armbian/duplicati` - - Configuration directory: `/armbian/duplicati/config` - - Backup target directory: `/armbian/duplicati/backups` - -=== "View logs" - - ```sh - docker logs -f duplicati - ``` - - - - -~~~ bash title="Duplicati remove" -armbian-config --cmd DPL002 -~~~ - - -~~~ bash title="Duplicati purge with data folder" -armbian-config --cmd DPL003 -~~~ - - - - -## Docker containerization and KVM virtual machines - -#### Docker - - - -![Docker](/images/CON001.png) - - - -~~~ bash title="Docker" -armbian-config --cmd CON001 -~~~ - - - -What is Docker? Docker helps developers build, share, run, and verify applications anywhere - without tedious environment configuration or management. - - - - -~~~ bash title="Docker remove" -armbian-config --cmd CON003 -~~~ - - -~~~ bash title="Docker purge with all images, containers, and volumes" -armbian-config --cmd CON004 -~~~ - - - - -#### Portainer - - -Portainer container management platform - - - -![Portainer](/images/POR001.png) - - - - -Portainer simplifies your Docker container management via Portainer web interface. It enables faster deploy of the applications and it gives real time visibility. - - - - -~~~ bash title="Portainer" -armbian-config --cmd POR001 -~~~ - - - - - - - - -~~~ bash title="Portainer remove" -armbian-config --cmd POR002 -~~~ - - -~~~ bash title="Portainer purge with with data folder" -armbian-config --cmd POR003 -~~~ - - - - -## Network-wide ad blockers servers - -#### AdGuardHome - - -AdGuardHome DNS sinkhole - - - -![AdGuardHome](/images/ADG001.png) - - - - -AdGuard Home is a network-wide software that functions as a DNS server and ad blocker. It blocks ads, trackers, and malicious websites at the DNS level, meaning it filters content for all devices connected to the network. It also provides additional features like parental controls, logging, and privacy protections. Essentially, it acts as a gateway between your devices and the internet, blocking unwanted content before it even reaches your devices. - - - - -~~~ bash title="AdGuardHome" -armbian-config --cmd ADG001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / generate at first web interface login - -=== "Directories" - - - Install directory: `/armbian/adguardhome/` - - Configuration directory: `/armbian/adguardhome/confdir` - - Work directory: `/armbian/adguardhome/workdir` - -=== "Usage" - - - server where you are installing is automatically switched to this DNS - - on your desktop PC set IP address of this server as DNS - - network wide: set IP address of this server on routers DNS - -=== "Black and white lists" - - There are many sites in the web giving blocklists and whitelists for AdGuard Home. They can be used when you want to have more blocking as the standard installation gives you. Here are some examples: - - - [The Big Blocklist Collection by WaLLy3K](https://firebog.net/) - - [Phishing Army blocklist](https://phishing.army/) - - [Whitelist collection by anudeepND](https://github.com/anudeepND/whitelist) - -=== "View logs" - - ```sh - docker logs -f adguardhome - ``` - - - - -~~~ bash title="AdGuardHome remove" -armbian-config --cmd ADG002 -~~~ - - -~~~ bash title="AdGuardHome purge with data folder" -armbian-config --cmd ADG003 -~~~ - - - - -#### Pi-hole - - -Pi-hole DNS ad blocker with Unbound support - - - -![Pi-hole](/images/PIH001.png) - - - - -**Pi-hole** is a network-wide ad blocker that acts as a DNS (Domain Name System) sinkhole. It blocks connections to known ad servers, trackers, and malicious domains across all devices in your network, without requiring any browser extensions or client-side software. - -### Pi-hole Explained - -- **DNS-Based Filtering** -Pi-hole intercepts DNS queries made by devices on your network. When a domain is requested, Pi-hole checks it against a set of blocklists. If the domain is known to serve ads or track user activity, Pi-hole blocks the request, preventing unwanted content from loading. - -- **Customizable Blocklists** -You can choose from various community-maintained blocklists or add your own. These lists contain domains associated with ads, trackers, malware, or other undesirable content. - -- **Whole-Network Protection** -Once Pi-hole is configured as your network’s DNS server, all devices - smartphones, laptops, smart TVs, and IoT devices - are automatically protected. No additional configuration or software is required on the individual devices. - -- **Built-in Recursive DNS with Unbound** -For added privacy and full DNS resolution control, [Unbound](#unbound) is installed and enabled by default during Pi-hole installation. Unbound functions as a local recursive DNS resolver, fetching responses directly from authoritative DNS servers rather than relying on upstream providers. This minimizes third-party exposure and can improve query performance. - -- **Web Interface** -Pi-hole includes a web-based dashboard that provides real-time visibility into DNS activity. The interface allows you to view statistics, manage blocklists, whitelist domains, and configure settings with ease. - -- **Privacy and Performance Benefits** -By blocking unwanted domains at the DNS level, Pi-hole reduces page load times, lowers bandwidth usage, and enhances user privacy by preventing tracking scripts and ads from reaching client devices. - -- **Platform Compatibility** -Pi-hole can be installed on a variety of platforms. It runs well on lightweight systems such as **Armbian Minimal**, but is also available as a Docker container and supports deployment on most Linux-based environments. - -Pi-hole offers an effective and centralized way to enhance privacy and reduce unwanted content across your entire network. - - - - -~~~ bash title="Pi-hole" -armbian-config --cmd PIH001 -~~~ - - - -=== "Access the web interface" - - - Password is set on install and can be adjusted from `armbian-config` - - - - -~~~ bash title="Pi-hole change web admin password" -armbian-config --cmd PIH002 -~~~ - - -~~~ bash title="Pi-hole remove" -armbian-config --cmd PIH003 -~~~ - - -~~~ bash title="Pi-hole purge with data folder" -armbian-config --cmd PIH004 -~~~ - - - - - -#### Unbound - - -Unbound caching DNS resolver - - - -![Unbound](/images/UNB001.png) - - - - -Unbound is a high-performance, open-source DNS resolver. It primarily serves to resolve domain names into IP addresses for devices on a network. Unlike regular DNS servers, Unbound performs DNS lookups directly and securely, providing features like DNSSEC validation (ensuring data integrity) and privacy protections. It's often used to improve speed, security, and privacy by resolving queries locally rather than relying on external DNS services. - - - -~~~ bash title="Unbound" -armbian-config --cmd UNB001 -~~~ - - - -=== "Default DNS port" - - - Default DNS port: 8053 - -=== "Directories" - - - Install directory: `/armbian/unbound/` - - Configuration directory: `/armbian/unbound/` - -=== "View logs" - - ```sh - docker logs -f unbound - ``` - - - - -~~~ bash title="Unbound remove" -armbian-config --cmd UNB002 -~~~ - - -~~~ bash title="Unbound purge with data folder" -armbian-config --cmd UNB003 -~~~ - - - - -## SQL database servers and web interface managers - -#### MySQL - - -MySQL SQL database server - - - -![MySQL](/images/MYSQL1.png) - - - - -MySQL is one of the world’s most widely used open-source database servers. Trusted for decades in web, cloud, and enterprise applications. - - - - -~~~ bash title="MySQL" -armbian-config --cmd MYSQL1 -~~~ - - - -=== "Configuration" - - Database access configuration is done at first install: - - - create root password - - create database - - create normal user - - create password for normal user - - - Database host: `` - -=== "Directories" - - - Install directory: `/armbian/mysql` - - Data volume mounted to: `/armbian/mysql/data` - -=== "View logs" - - ```sh - docker logs -f mysql - ``` - - - - -~~~ bash title="MySQL remove" -armbian-config --cmd MYSQL2 -~~~ - - -~~~ bash title="MySQL purge with data folder" -armbian-config --cmd MYSQL3 -~~~ - - - - -#### Mariadb - - -Mariadb SQL database server - - - -![Mariadb](/images/DAT001.png) - - - - -**MariaDB** is a fast, open-source relational database server developed by the original creators of MySQL. It is designed to be fully compatible with MySQL while offering improved performance, enhanced security, and additional features. - -MariaDB supports a wide range of storage engines, advanced SQL capabilities, and both single-node and clustered deployments. It is widely used in web, cloud, and - - - - - -~~~ bash title="Mariadb" -armbian-config --cmd DAT001 -~~~ - - - -=== "Configuration" - - Database access configuration is done at first install: - - create root password - - create database - - create normal user - - create password for normal user - - - Database host: `:3307` - -=== "Directories" - - - Install directory: `/armbian/mariadb` - - Site configuration directory: `/armbian/mariadb/config` - -=== "View logs" - - ```sh - docker logs -f mariadb - ``` - - - - -~~~ bash title="Mariadb remove" -armbian-config --cmd DAT002 -~~~ - - -~~~ bash title="Mariadb purge with data folder" -armbian-config --cmd DAT003 -~~~ - - - - -#### phpMyAdmin - - -phpMyAdmin web interface manager - - - -![phpMyAdmin](/images/MYA001.png) - - - -~~~ bash title="phpMyAdmin" -armbian-config --cmd MYA001 -~~~ - - -~~~ bash title="phpMyAdmin remove" -armbian-config --cmd MYA002 -~~~ - - -~~~ bash title="phpMyAdmin purge with data folder" -armbian-config --cmd MYA003 -~~~ - - - - -#### PostgreSQL - - -PostgreSQL install - - - -![PostgreSQL](/images/PGSQL1.png) - - - - -PostgreSQL is a powerful, open-source object-relational database system known for its robustness, feature richness, and reliability. - -It is designed for everyone, including: - -- Developers needing advanced SQL support and extensibility. -- System administrators requiring reliable data storage for mission-critical applications. -- Enterprises seeking a high-performance, standards-compliant relational database. - -PostgreSQL offers strong ACID compliance, concurrency, rich data types, full-text search, JSON support, and extensibility through stored procedures and custom functions. -It is trusted globally in financial, government, and web-scale applications. - -Thanks to its proven architecture and open-source nature, PostgreSQL fits seamlessly in projects of all sizes. - - - - -~~~ bash title="PostgreSQL" -armbian-config --cmd PGSQL1 -~~~ - - - -=== "Access to the database" - - - Default user: `armbian` - - Default password: `armbian` - - Default database: `armbian` - -=== "Directories" - - - Data directory: `/armbian/postgres/data` - -=== "View logs" - - ```sh - docker logs -f postgres - ``` - - - - -~~~ bash title="PostgreSQL remove" -armbian-config --cmd PGSQL2 -~~~ - - -~~~ bash title="PostgreSQL purge with data folder" -armbian-config --cmd PGSQL3 -~~~ - - - - -#### Redis - - -Redis install - - - -![Redis](/images/REDIS1.png) - - - - -Redis is an open-source, in-memory data structure store, used as a database, cache, and message broker. -It supports a variety of data structures such as strings, hashes, lists, sets, and sorted sets. - -**Key Features:** -- Extremely fast performance with in-memory storage -- Persistence options (snapshotting and AOF) -- Pub/Sub messaging capabilities -- Built-in replication and high availability -- Simple API and wide client support - -Redis is widely used for real-time applications, caching layers, session stores, and lightweight queues across industries and platforms. - - - - -~~~ bash title="Redis" -armbian-config --cmd REDIS1 -~~~ - - - -=== "Directories" - - - Data directory: `/armbian/redis/data` - -=== "View logs" - - ```sh - docker logs -f redis - ``` - - - - -~~~ bash title="Redis remove" -armbian-config --cmd REDIS2 -~~~ - - -~~~ bash title="Redis purge with data folder" -armbian-config --cmd REDIS3 -~~~ - - - - -## Applications and tools for development - -#### Git CLI - - -Install tools for cloning and managing repositories (git) - - - -![Git CLI](/images/GIT001.png) - - - -~~~ bash title="Git CLI" -armbian-config --cmd GIT001 -~~~ - - -~~~ bash title="Remove tools for cloning and managing repositories (git)" -armbian-config --cmd GIT002 -~~~ - - - -#### Code-server - - -Code-server VS Code in browser - - - -![Code-server](/images/COD001.png) - - - - -Code-server is VS Code running on a remote server, accessible through the browser. This brings the full power of Visual Studio Code to any device with a web browser, eliminating the need for local installations while maintaining a consistent development environment across all your devices. - -Built on the [VS Code](https://code.visualstudio.com/) open-source base, code-server provides enterprise-grade remote development capabilities with the familiar VS Code interface. It's maintained by [LinuxServer.io](https://www.linuxserver.io/) and optimized for containerized deployments, making it perfect for development on ARM devices, cloud servers, or homelab environments. - -*Key Features* - -- **Full VS Code Experience**: Complete access to the VS Code extension marketplace, themes, and settings -- **Browser-Based Access**: Development environment available from Chrome, Firefox, Safari, or Edge -- **Resource Efficiency**: Offload compilation and development tasks to more powerful servers -- **Persistent Workspaces**: All settings, extensions, and files saved across sessions -- **Multi-User Support**: Each container provides an isolated development environment -- **SSH Integration**: Built-in terminal for direct server access and command-line operations -- **Extension Marketplace**: Install thousands of VS Code extensions for any language or framework -- **Cross-Platform**: Develop from Windows, Mac, Linux, iOS, or Android devices - ---- - -Perfect for developers working on **ARM-based SBCs**, **cloud instances**, or **homelab servers** who need a consistent, powerful development environment accessible from anywhere. - - - - -~~~ bash title="Code-server" -armbian-config --cmd COD001 -~~~ - - - -=== "Access to the web interface" - - - Default Login: No password required by default (see optional variables below) - - **Note**: Code-server uses HTTPS with a self-signed certificate by default. Your browser may show a security warning - this is normal for self-signed certificates. - -=== "Directories" - - - Install directory: `/armbian/code-server` - - Configuration directory: `/armbian/code-server/config` - -=== "Optional Environment Variables" - - You can customize code-server by passing additional environment variables: - - - **PASSWORD** - Set a simple password for web UI access (not recommended for production) - - **HASHED_PASSWORD** - Set a hashed password for enhanced security (recommended) - - **SUDO_PASSWORD** - Set a password for sudo access within code-server terminal - - **PROXY_DOMAIN** - Configure proxy domain for reverse proxy setups - - **DEFAULT_WORKSPACE** - Set the default workspace directory - - **PWA_APPNAME** - Customize the PWA (Progressive Web App) name - - To add these variables, edit the container and restart: - - ```sh - docker stop code-server - docker rm code-server - # Then reinstall with modified environment variables - ``` - -=== "View logs" - - ```sh - docker logs -f code-server - ``` - -=== "Password hashing" - - To generate a hashed password for the HASHED_PASSWORD variable: - - ```sh - docker run -it --rm lscr.io/linuxserver/code-server:latest hash_password - ``` - -=== "Troubleshooting" - - - **Browser shows certificate warning**: Accept the security warning to proceed (self-signed certificate) - - **Cannot access web UI**: Check if port 8443 is open in your firewall - - **Extensions not installing**: Check internet connectivity from the container - - **Slow performance**: Consider increasing Docker resource limits - - - - -~~~ bash title="Code-server remove" -armbian-config --cmd COD002 -~~~ - - -~~~ bash title="Code-server purge with data folder" -armbian-config --cmd COD003 -~~~ - - - - -## Download apps for movies, TV shows, music and subtitles - -#### Bazarr - - -Bazarr automatic subtitles downloader for Sonarr and Radarr - - - -![Bazarr](/images/BAZ001.png) - - - - -Bazarr is a companion application to Sonarr and Radarr. It can manage and download subtitles based on your requirements. You define your preferences by TV show or movie and Bazarr takes care of everything for you. - - - - -~~~ bash title="Bazarr" -armbian-config --cmd BAZ001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / generate at first web interface login - -=== "Directories" - - - Install directory: `/armbian/bazarr` - - Site configuration directory: `/armbian/bazarr/config` - - Download directory: `/armbian/bazarr/movies` `/armbian/bazarr/tv` - -=== "View logs" - - ```sh - docker logs -f bazarr - ``` - - - - -~~~ bash title="Bazarr remove" -armbian-config --cmd BAZ002 -~~~ - - -~~~ bash title="Bazarr purge with data folder" -armbian-config --cmd BAZ003 -~~~ - - - - -#### Deluge - - -Deluge BitTorrent client - - - -![Deluge](/images/DEL001.png) - - - - -Deluge⁠ is a lightweight, Free Software, cross-platform BitTorrent client. - - - - -~~~ bash title="Deluge" -armbian-config --cmd DEL001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: default user/password of admin/deluge - -=== "Directories" - - - Install directory: `/armbian/deluge` - - Site configuration directory: `/armbian/deluge/config` - - Download directory: `/armbian/deluge/downloads` - -=== "View logs" - - ```sh - docker logs -f deluge - ``` - - - - -~~~ bash title="Deluge remove" -armbian-config --cmd DEL002 -~~~ - - -~~~ bash title="Deluge purge with data folder" -armbian-config --cmd DEL003 -~~~ - - - - -#### qBittorrent - - -qBittorrent BitTorrent client - - - -![qBittorrent](/images/QBT001.png) - - - - -The Qbittorrent⁠ project aims to provide an open-source software alternative to µTorrent. qBittorrent is based on the Qt toolkit and libtorrent-rasterbar library. - - - - -~~~ bash title="qBittorrent" -armbian-config --cmd QBT001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / generate at first web interface login - -=== "Directories" - - - Install directory: `/armbian/qbittorrent` - - Site configuration directory: `/armbian/qbittorrent/config` - - Download directory: `/armbian/qbittorrent/downloads` - -=== "View logs" - - ```sh - docker logs -f qbittorrent - ``` - - - - -~~~ bash title="qBittorrent remove" -armbian-config --cmd QBT002 -~~~ - - -~~~ bash title="qBittorrent purge with data folder" -armbian-config --cmd QBT003 -~~~ - - - - -#### Prowlarr - - -Prowlarr index manager and proxy for PVR - - - -![Prowlarr](/images/PRW001.png) - - - - -Prowlarr is a indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps. Prowlarr supports both Torrent Trackers and Usenet Indexers. It integrates seamlessly with Sonarr, Radarr, Lidarr, and Readarr offering complete management of your indexers with no per app Indexer setup required (we do it all). - - - - -~~~ bash title="Prowlarr" -armbian-config --cmd PRW001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / generate at first web interface login - -=== "Directories" - - - Install directory: `/armbian/prowlarr` - - Site configuration directory: `/armbian/prowlarr/config` - -=== "View logs" - - ```sh - docker logs -f prowlarr - ``` - - - - -~~~ bash title="Prowlarr remove" -armbian-config --cmd PRW002 -~~~ - - -~~~ bash title="Prowlarr purge with data folder" -armbian-config --cmd PRW003 -~~~ - - - - -#### Jellyseerr - - -Jellyseerr Jellyfin/Emby/Plex integration install - - - -![Jellyseerr](/images/JEL001.png) - - - - -Jellyseerr is a free and open source software application for managing requests for your media library. It is a fork of Overseerr built to bring support for Jellyfin & Emby media servers! - - - - -~~~ bash title="Jellyseerr" -armbian-config --cmd JEL001 -~~~ - - -~~~ bash title="Jellyseerr remove" -armbian-config --cmd JEL002 -~~~ - - -~~~ bash title="Jellyseerr purge with data folder" -armbian-config --cmd JEL003 -~~~ - - - - -#### Lidarr - - -Lidarr automatic music downloader - - - -![Lidarr](/images/LID001.png) - - - - -Lidarr is a music collection manager for Usenet and BitTorrent users. It can monitor multiple RSS feeds for new tracks from your favorite artists and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. - - - - -~~~ bash title="Lidarr" -armbian-config --cmd LID001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / generate at first web interface login - -=== "Directories" - - - Install directory: `/armbian/lidarr` - - Site configuration directory: `/armbian/lidarr/config` - - Download directory: `/armbian/lidarr/downloads` `/armbian/lidarr/music` - -=== "View logs" - - ```sh - docker logs -f lidarr - ``` - - - - -~~~ bash title="Lidarr remove" -armbian-config --cmd LID002 -~~~ - - -~~~ bash title="Lidarr purge with data folder" -armbian-config --cmd LID003 -~~~ - - - - -#### Medusa - - -Medusa automatic downloader for TV shows - - - -![Medusa](/images/MDS001.png) - - - - -Medusa is an automatic Video Library Manager for TV Shows. It watches for new episodes of your favorite shows, and when they are posted it does its magic. - - - - -~~~ bash title="Medusa" -armbian-config --cmd MDS001 -~~~ - - - -=== "Directories" - - - Install directory: `/armbian/medusa` - - Site configuration directory: `/armbian/medusa/config` - - Download directory: `/armbian/medusa/downloads` - - Download directory TV shows: `/armbian/medusa/downloads/tv` - -=== "View logs" - - ```sh - docker logs -f medusa - ``` - - - - -~~~ bash title="Medusa TV shows downloader remove" -armbian-config --cmd MDS002 -~~~ - - -~~~ bash title="Medusa TV shows downloader purge" -armbian-config --cmd MDS003 -~~~ - - - - -#### Radarr - - -Radarr automatic downloader for movies - - - -![Radarr](/images/RAD001.png) - - - - -Radarr - A fork of Sonarr to work with movies à la Couchpotato. - - - - -~~~ bash title="Radarr" -armbian-config --cmd RAD001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / generate at first web interface login - -=== "Directories" - - - Install directory: `/armbian/radarr` - - Site configuration directory: `/armbian/radarr/config` - - Download directory: `/armbian/radarr/movies` - - Client download directory: `/armbian/radarr/client` - -=== "View logs" - - ```sh - docker logs -f radarr - ``` - - - - -~~~ bash title="Radarr remove" -armbian-config --cmd RAD002 -~~~ - - -~~~ bash title="Radarr purge with data folder" -armbian-config --cmd RAD003 -~~~ - - - - -#### SABnzbd - - -SABnzbd newsgroup downloader - - - -![SABnzbd](/images/SABN01.png) - - - - -Sabnzbd⁠ makes Usenet as simple and streamlined as possible by automating everything we can. All you have to do is add an .nzb. SABnzbd takes over from there, where it will be automatically downloaded, verified, repaired, extracted and filed away with zero human interaction. - - - - -~~~ bash title="SABnzbd" -armbian-config --cmd SABN01 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / generate at first web interface login - -=== "Directories" - - - Install directory: `/armbian/sabnzbd` - - Site configuration directory: `/armbian/sabnzbd/config` - - Download directory: `/armbian/sabnzbd/downloads` - - Incomplete downloads: `/armbian/sabnzbd/incomplete` - -=== "View logs" - - ```sh - docker logs -f sabnzbd - ``` - - - - -~~~ bash title="SABnzbd remove" -armbian-config --cmd SABN02 -~~~ - - -~~~ bash title="SABnzbd purge with data folder" -armbian-config --cmd SABN03 -~~~ - - - - -#### Sonarr - - -Sonarr automatic downloader for TV shows - - - -![Sonarr](/images/SON001.png) - - - - -Sonarr (formerly NZBdrone) is a PVR for usenet and bittorrent users. It can monitor multiple RSS feeds for new episodes of your favorite shows and will grab, sort and rename them. It can also be configured to automatically upgrade the quality of files already downloaded when a better quality format becomes available. - - - - -~~~ bash title="Sonarr" -armbian-config --cmd SON001 -~~~ - - - -=== "Directories" - - - Install directory: `/armbian/sonarr` - - Site configuration directory: `/armbian/sonarr/config` - - Download directory: `/armbian/sonarr/tvseries` - - Client download directory: `/armbian/sonarr/client` - -=== "View logs" - - ```sh - docker logs -f sonarr - ``` - - - - -~~~ bash title="Sonarr remove" -armbian-config --cmd SON002 -~~~ - - -~~~ bash title="Sonarr purge with data folder" -armbian-config --cmd SON003 -~~~ - - - - -#### Transmission - - -Transmission BitTorrent client - - - -![Transmission](/images/TRA001.png) - - - - -Transmission⁠ is designed for easy, powerful use. Transmission has the features you want from a BitTorrent client: encryption, a web interface, peer exchange, magnet links, DHT, µTP, UPnP and NAT-PMP port forwarding, webseed support, watch directories, tracker editing, global and per-torrent speed limits, and more. - - - - -~~~ bash title="Transmission" -armbian-config --cmd TRA001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / generate at first web interface login - -=== "Directories" - - - Install directory: `/armbian/transmission` - - Site configuration directory: `/armbian/transmission/config` - - Download directory: `/armbian/transmission/downloads` - - Watch directory: `/armbian/transmission/watch` - -=== "View logs" - - ```sh - docker logs -f transmission - ``` - - - - -~~~ bash title="Transmission remove" -armbian-config --cmd TRA002 -~~~ - - -~~~ bash title="Transmission purge with data folder" -armbian-config --cmd TRA003 -~~~ - - - - -## Manage your finances - -#### Actual Budget - - -Do your finances with Actual Budget - - - -![Actual Budget](/images/ABU001.png) - - - - -[Actual Budget](https://actualbudget.org/) is a **free, open-source personal finance app** built around the **envelope budgeting method**. - -- **Privacy-focused**: Users can self-host their data or use encrypted cloud syncing. -- **Key Features**: - - Multi-account tracking - - Transaction importing - - Customizable financial reports - - Optional syncing via services like PikaPods -- **Ideal for**: Those who want a **transparent**, **self-hosted** alternative to proprietary budgeting tools. - - - - -~~~ bash title="Actual Budget" -armbian-config --cmd ABU001 -~~~ - - - -!!! danger "Warning: HTTPS Certificate Required" - - After initially installing the Actual server, you might get stuck at the step: - **"Initializing the connection to the local database..."** - - The issue is due to the server not having an **HTTPS certificate**. - After activating an HTTPS certificate for the Actual server, everything should work fine. - - If you still encounter issues even after setting up HTTPS, we highly recommend reaching out to the [Actual Budget Discord server](https://discord.gg/actualbudget) — the developers and community there are very kind and helpful. - - - - - -~~~ bash title="Actual Budget remove" -armbian-config --cmd ABU002 -~~~ - - -~~~ bash title="Actual Budget purge with data folder" -armbian-config --cmd ABU003 -~~~ - - - - -#### Wallos - - -Install Wallos subscription tracker - - - -![Wallos](/images/WAL001.png) - - - - -Wallos is a self-hosted finance tracker and subscription management application. It helps you monitor recurring expenses, track subscriptions, and manage your financial commitments in one centralized location. With Wallos, you can visualize spending patterns, set renewal reminders, and take control of your recurring payments. - -This Docker-based application runs as a lightweight web service, providing an intuitive interface for managing all your subscriptions and recurring expenses. The data is stored locally in SQLite database, ensuring your financial information remains private and under your control. - -=== "Features" - - **Subscription Tracking** - - - Add and manage all your subscriptions (Netflix, Spotify, cloud services, etc.) - - Track monthly, yearly, or one-time payments - - Categorize expenses by type (streaming, software, utilities, etc.) - - Set custom renewal dates and reminders - - **Financial Overview** - - - Visual dashboard showing total monthly/yearly expenses - - Breakdown by category and service provider - - Currency conversion support for international subscriptions - - Export data to CSV for further analysis - - **Data Management** - - - Upload custom logos for service providers - - Local SQLite database storage (no cloud dependency) - - Automatic backups through Docker volume mounts - - Import/export functionality for data portability - -=== "Accessing Wallos" - - Once installed, access Wallos by navigating to: - - **http://your-server-ip:8282** - - On first access, you'll be guided through the initial setup: - 1. Create your admin account - 2. Configure currency preferences - 3. Set up default categories - 4. Start adding subscriptions - -=== "Data Persistence" - - Wallos data is stored in Docker volumes for persistence: - - - **Database volume**: `/var/www/html/db` → stored at `${config_dir}/db` - - **Logos volume**: `/var/www/html/images/uploads/logos` → stored at `${config_dir}/logos` - -=== "Troubleshooting" - - **Container won't start** - - - Check port conflicts: `docker ps -a | grep wallos` - - Verify volume mounts exist and have correct permissions - - Review logs: `docker logs wallos` - - **Cannot access web interface** - - - Confirm container is running: `docker ps | grep wallos` - - Check firewall rules allow port 8282 - - Verify correct IP address if accessing remotely - - **Data loss after restart** - - - Ensure Docker volumes are properly mounted - - Check that persistence directories are not cleaned on reboot - - Verify backup of `${config_dir}` before making changes - -=== "View logs" - - ```sh - docker logs -f wallos - ``` - - - - -~~~ bash title="Wallos" -armbian-config --cmd WAL001 -~~~ - - - -**Key Use Cases** - -Personal Finance Management - -- **Subscription Awareness**: Track all recurring payments in one place -- **Budget Planning**: See exactly how much you spend monthly on subscriptions -- **Renewal Reminders**: Never miss a payment or forget to cancel unwanted services -- **Cost Optimization**: Identify unused or redundant subscriptions to cancel - -Family Finance - -- **Shared Dashboard**: Multiple family members can access the same instance -- **Categorization**: Organize expenses by person or category -- **Total Visibility**: Get a complete picture of household recurring expenses - -Small Business - -- **Service Tracking**: Monitor software subscriptions, SaaS tools, and business services -- **Expense Categorization**: Separate personal and business subscriptions -- **Financial Planning**: Forecast recurring costs for better budget management - - - - -~~~ bash title="Remove Wallos" -armbian-config --cmd WAL002 -~~~ - - -~~~ bash title="Purge Wallos" -armbian-config --cmd WAL003 -~~~ - - - - -## Home Automation for control home appliances - -#### Domoticz - - -Domoticz open source home automation - - - -![Domoticz](/images/DOM001.png) - - - - -Domoticz is an open-source home automation platform that allows you to control and monitor smart devices in your home. It supports a wide range of devices, including lights, sensors, thermostats, and cameras. Through its web interface or mobile app, you can set up automation rules and schedules, providing greater convenience and energy efficiency. It’s customizable, flexible, and can be run on a variety of hardware platforms supported by Armbian. - -=== "Access to the web interface" - - - Username/Password: admin / domoticz - -=== "Directories" - - - Config directory: `/armbian/domoticz` - -=== "Advanced setup" - - - Primary USB device passing through (`/dev/ttyUSB0`) to Docker container is enabled by default - - For more complex setup, please follow this comprehensive guide: - - - - -~~~ bash title="Domoticz" -armbian-config --cmd DOM001 -~~~ - - -~~~ bash title="Domoticz remove" -armbian-config --cmd DOM002 -~~~ - - -~~~ bash title="Domoticz purge with data folder" -armbian-config --cmd DOM003 -~~~ - - - - -#### EVCC - - -EVCC - solar charging automation - - - -![EVCC](/images/EVCC01.png) - - - - -evcc is an energy management system with a focus on electromobility. The software controls your EV charger or smart plug. It communicates with your vehicle, inverter or home storage to make intelligent charging decisions. The software is open source and community-driven. - - - - -~~~ bash title="EVCC" -armbian-config --cmd EVCC01 -~~~ - - - -=== "Access to the web interface" - - - Admin password is generated at first web interface login - -=== "Directories" - - - Install directory: `/armbian/evcc` - - Site configuration directory: `/armbian/evcc/evcc.yaml` - -=== "View logs" - - ```sh - docker logs -f evcc - ``` - - - - -~~~ bash title="EVCC - solar charging automation remove" -armbian-config --cmd EVCC02 -~~~ - - -~~~ bash title="EVCC purge with data folder" -armbian-config --cmd EVCC03 -~~~ - - - - -#### openHAB - - -openHAB empowering the smart home - - - -![openHAB](/images/HAB001.png) - - - -~~~ bash title="openHAB" -armbian-config --cmd HAB001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: Are set at first web interface login - -=== "Directories" - - - Install directory: `/armbian/openhab` - - Site configuration directory: `/armbian/openhab/conf` - - Userdata directory: `/armbian/openhab/userdata` - - Addons directory: `/armbian/openhab/addons` - - See also [openHAB file locations](https://www.openhab.org/docs/installation/linux.html#file-locations). - -=== "View logs" - - ```sh - docker logs -f openhab - ``` - - - - -~~~ bash title="openHAB remove" -armbian-config --cmd HAB002 -~~~ - - -~~~ bash title="openHAB purge with data folder" -armbian-config --cmd HAB003 -~~~ - - - - -#### Home Assistant - - -Home Assistant open source home automation - - - -![Home Assistant](/images/HAS001.png) - - - - -Home Assistant is an open source smart home platform that allows you to connect your smart home devices like your TV, fan, cameras, thermostats, lights, and sensors. As a user, you can build intricate automation using Home Assistant's user-friendly, unified web-based user interface. - -Perfect to run on any single board computer with 4 cores and at least 512Mb of memory. Armbian installation is optimised to run from SD/eMMC media, but it is recommended to use SSD. - -!!! danger "Limited support" - - The supervised installation method on Armbian is not officially supported by the [Home Assistant project](https://www.home-assistant.io/installation/alternative#install-home-assistant-supervised). Additionally, installation on hardware that is not officially supported is also outside the scope of support provided by the Armbian team. - - You are welcome to report high-level application issues that are reproducible on the official Home Assistant Operating System (HAOS) within the [Home Assistant Community](https://community.home-assistant.io/). For any topics related to single-board computer hardware, you may use the [Armbian Community Forums](https://forum.armbian.com); however, please be aware that official support from the Armbian team is not guaranteed. - - While the Home Assistant team [deprecated the Supervised installation method](https://community.home-assistant.io/t/feedback-requested-deprecating-core-supervised-i386-armhf-armv7/880968/312), the Armbian team will continue to provide and maintain it, as long as automated installation tests succeed and the required maintenance remains manageable. - - - - -~~~ bash title="Home Assistant" -armbian-config --cmd HAS001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: Are set at first web interface login - -=== "Directories" - - Home Assistant on Armbian runs supervised in a Docker container. This secures same functionality as stock HAOS. - - - Config directory: `/armbian/haos` - -=== "Armbian advantages" - - |Functionality|HAOS|Armbian with HA| - |:--|:--:|:--:| - |Automations|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:| - |Dashboards|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:| - |Integrations|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:| - |Add-ons|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:| - |One-click updates|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:| - |Backups|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:| - |General purpose server|:x:|:white_check_mark:| - |Running on exotic hardware|:x:|:white_check_mark:| - - - - -~~~ bash title="Home Assistant remove" -armbian-config --cmd HAS002 -~~~ - - -~~~ bash title="Home Assistant purge with data folder" -armbian-config --cmd HAS003 -~~~ - - - - -## Remote File & Management tools - -#### Cockpit - - -Cockpit OS and VM management tool - - - -![Cockpit](/images/CPT001.png) - - - - -Cockpit is a web-based graphical interface for servers, intended for everyone. - -Here’s a subset of tasks you can perform on each host running Cockpit - -- inspect and change network settings -- configure a firewall -- manage storage (including RAID and LUKS partitions) -- create and manage virtual machines -- download and run containers -- browse and search system logs -- inspect a system’s hardware -- upgrade software -- manage user accounts -- inspect and interact with systemd-based services -- use a terminal on a remote server in your local web browser -- switch between multiple Cockpit servers - - - - -~~~ bash title="Cockpit" -armbian-config --cmd CPT001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: your system login credentials - -=== "Video instructions" - - - - - - -~~~ bash title="Remove Cockpit" -armbian-config --cmd CPT002 -~~~ - - -~~~ bash title="Purge Cockpit with virtual machines" -armbian-config --cmd CPT003 -~~~ - - - - -#### Proxmox VE - - -Proxmox VE virtualization platform (keeps the Armbian kernel) - - - -![Proxmox VE](/images/PVE001.png) - - - - -[Proxmox VE](https://www.proxmox.com/en/proxmox-virtual-environment) is a complete, open-source server virtualization platform for running **KVM virtual machines** and **LXC containers** from a single, integrated web interface. It combines the tooling for compute, storage and software-defined networking so you can manage a whole host — or a cluster of them — from your browser. - -This module installs Proxmox VE 9 from the official *no-subscription* repository on **Debian 13 (trixie)**, on both **amd64 and arm64**, and — unlike the upstream guide — **keeps the running Armbian kernel** instead of pulling the Proxmox one. - -*Key Features* - -- **KVM virtual machines**: Full hardware-accelerated VMs via the board's KVM-enabled Armbian kernel. -- **LXC containers**: Lightweight, fast system containers alongside your VMs. -- **Web management**: Manage guests, storage, backups and networking from `https://:8006`. -- **ZFS storage**: Installs ZFS (via DKMS, built against the Armbian kernel) so you can create ZFS pools and datasets for VM/container storage. -- **Keeps your kernel**: Installs `pve-manager` (no kernel dependency) rather than the `proxmox-ve` meta, so your Armbian kernel and DTBs stay in place. -- **No subscription needed**: Uses the public `pve-no-subscription` repository. - ---- - -Ideal for turning an Armbian board into a lightweight hypervisor without giving up the board's own kernel and hardware support. - - - - -~~~ bash title="Proxmox VE" -armbian-config --cmd PVE001 -~~~ - - - -=== "Access to the web interface" - - - Username: `root` (your system root password) - - Official documentation: - -=== "Runs on the Armbian kernel" - - This install intentionally omits the Proxmox kernel and runs on the board's - Armbian kernel: - - - KVM virtual machines and LXC containers work provided the running kernel - offers the needed support (KVM / `/dev/kvm` and container - cgroups/namespaces) — which the Armbian kernels for these arches normally do. - - This module **installs ZFS** for you (via DKMS, built against the Armbian - kernel), so ZFS storage pools work out of the box; only ZFS-on-**root** - (boot) is out of scope. - -=== "Requirements" - - - **Armbian Trixie** (Debian 13) on **amd64** or **arm64** (enforced by the installer). - - **Recommended:** the hostname should resolve to a non-loopback IP in - `/etc/hosts`, e.g.: - - ``` - 192.168.1.50 pve.local pve - ``` - - If it resolves only to a loopback address (`127.x` or IPv6 `::1`), the - installer warns and lets you continue, but the web UI and clustering - may not work until you fix `/etc/hosts`. - -=== "Directories" - - - Configuration: `/etc/pve` - - Cluster data: `/var/lib/pve-cluster` - - - - -~~~ bash title="Remove Proxmox VE" -armbian-config --cmd PVE002 -~~~ - - -~~~ bash title="Purge Proxmox VE with cluster data" -armbian-config --cmd PVE003 -~~~ - - - - -#### Homepage - - -Install Homepage startpage / application dashboard - - - -![Homepage](/images/HPG001.png) - - - - -[gethomepage](https://gethomepage.dev/) is a fast, fully static, highly customizable application dashboard built for modern self-hosted environments. With a **fully proxied** architecture and **zero runtime**, it delivers exceptional speed, security, and simplicity for organizing and accessing your services. - -It supports **over 100 service integrations** and **multiple languages**, offering live status displays and dynamic resource monitoring out-of-the-box. Configuration is effortless via **YAML files** or automatic **Docker label discovery**, making setup and management seamless. - -*Key Features* - -- **Static Frontend**: Blazing-fast performance with no server-side runtime. -- **Secure Proxying**: Safely access internal services without direct exposure. -- **Service Integrations**: Native support for Docker, Kubernetes, Grafana, Proxmox, Home Assistant, and more. -- **Easy Configuration**: Manage layout and services with YAML or Docker labels. -- **Internationalization**: Translations available for multiple languages. -- **Flexible Theming**: Personalize with themes, layouts, and styling. -- **Simple Deployment**: Host via Docker, Kubernetes, or any static hosting platform. - ---- - -Whether you're running a small homelab or a full server fleet, **gethomepage** offers a sleek, powerful, and secure way to stay organized. - - - - -~~~ bash title="Homepage" -armbian-config --cmd HPG001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: none - - Configuration: Please reffer to official manual - -=== "Directories" - - - Install directory: `/armbian/homepage` - - Site configuration directory: `/armbian/homepage/config` - -=== "View logs" - - ```sh - docker logs -f homepage - ``` - - - - -~~~ bash title="Remove Homepage" -armbian-config --cmd HPG002 -~~~ - - -~~~ bash title="Purge Homepage with data folder" -armbian-config --cmd HPG003 -~~~ - - - - -#### NetBox - - -NetBox infrastructure resource modeling install - - - -![NetBox](/images/NBOX01.png) - - - - -**NetBox** is an open-source infrastructure resource modeling (IRM) tool used for managing and documenting networks and data center assets. - -Requirements (installed automatically) - -- [Redis](/User-Guide_Armbian-Software/Database/#redis) -- [Postgres SQL](/User-Guide_Armbian-Software/Database/#postgresql) - -Key Features - -- **IP Address Management (IPAM)**: Track IP networks, addresses, and VRFs. -- **Data Center Infrastructure Management (DCIM)**: Model racks, devices, connections, and more. -- **Secrets Management**: Securely store credentials and other sensitive data. -- **Extensible API & Webhooks**: Integrate with external systems. -- **Custom Fields & Scripts**: Tailor NetBox to fit your organization’s needs. - -Originally developed by DigitalOcean, NetBox is widely adopted by network engineers and sysadmins to maintain source-of-truth data for automation. - -[Official Website](https://netbox.dev/) - - - - -~~~ bash title="NetBox" -armbian-config --cmd NBOX01 -~~~ - - - -=== "Default credentials" - - - Username: `admin` - - Password: *(set during setup)* - - API token: *Generate in the UI or via Django shell* - -=== "Directories" - - - Configuration: `/armbian/netbox/config/` - - Scripts: `/armbian/netbox/scripts/` - - Reports: `/armbian/netbox/reports/` - -=== "View logs" - - ```sh - docker logs -f netbox - ``` - -=== "Manage the service" - - ```sh - docker exec -it netbox bash - ``` - - - - -~~~ bash title="NetBox remove" -armbian-config --cmd NBOX02 -~~~ - - -~~~ bash title="NetBox purge with data folder" -armbian-config --cmd NBOX03 -~~~ - - - - -#### apt-cacher-ng - - -apt-cacher-ng caching proxy install - - - -![apt-cacher-ng](/images/APT001.png) - - - - -**apt-cacher-ng** is a caching HTTP proxy for Debian and Ubuntu apt repositories. The first host on the LAN to fetch a `.deb` populates the cache; every subsequent `apt-get install` / `apt-get dist-upgrade` on any other host serves the same package from local disk — saving WAN bandwidth and turning multi-minute upgrades into seconds. - -**Key Features** - -- Transparent HTTP proxy in front of `deb.debian.org` / `archive.ubuntu.com` / vendor mirrors -- Single-port (`3142`), single-container deployment -- Per-package hit-rate report at `/acng-report.html` -- Survives container restart — cache lives on a host bind-mount - - - - -~~~ bash title="apt-cacher-ng" -armbian-config --cmd APT001 -~~~ - - - -=== "Client configuration" - - On each apt host on the LAN: - - ```sh - echo 'Acquire::http::Proxy "http://:3142";' \ - | sudo tee /etc/apt/apt.conf.d/00aptproxy - ``` - -=== "Directories" - - - Cache: `/armbian/apt-cacher-ng/cache/` - -=== "View logs" - - ```sh - docker logs -f apt-cacher-ng - ``` - - - - -~~~ bash title="apt-cacher-ng remove" -armbian-config --cmd APT002 -~~~ - - -~~~ bash title="apt-cacher-ng purge with cache folder" -armbian-config --cmd APT003 -~~~ - - - - -#### git_cdn - - -git_cdn GitHub caching proxy install - - - -![git_cdn](/images/GCD001.png) - - - -~~~ bash title="git_cdn" -armbian-config --cmd GCD001 -~~~ - - -~~~ bash title="git_cdn remove" -armbian-config --cmd GCD002 -~~~ - - -~~~ bash title="git_cdn purge with cache folder" -armbian-config --cmd GCD003 -~~~ - - - - -#### Samba - - -SAMBA Remote File share - - - -![Samba](/images/SMB001.png) - - - - -Samba is an open-source software suite that enables seamless file and printer sharing between Linux/Unix servers and Windows clients. It allows a Linux machine to act as a domain controller, file server, or print server within a Windows network environment, supporting cross-platform interoperability. - - - - -~~~ bash title="Samba" -armbian-config --cmd SMB001 -~~~ - - -#### Webmin - - -Webmin web-based management tool - - - -![Webmin](/images/WBM001.png) - - - - -Webmin is a web-based system administration tool for Unix-like servers. It provides an easy-to-use browser interface to manage users, configure services, edit files, monitor system performance, and control almost every aspect of your server — without needing to touch the command line. - - - - -~~~ bash title="Webmin" -armbian-config --cmd WBM001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: your system login credentials - - - - -## Media servers, organizers and editors - -#### Emby - - -Emby organizes video, music, live TV, and photos - - - -![Emby](/images/EMB001.png) - - - - -Emby organizes video, music, live TV, and photos from personal media libraries and streams them to smart TVs, streaming boxes and mobile devices. This container is packaged as a standalone emby Media Server. - - - - -~~~ bash title="Emby" -armbian-config --cmd EMB001 -~~~ - - - -=== "Directories" - - - Install directory: `/armbian/emby` - - Site configuration directory: `/armbian/emby/config` - - Data directory: `/armbian/emby/tvshows` `/armbian/emby/movies` - -=== "View logs" - - ```sh - docker logs -f emby - ``` - - - - -~~~ bash title="Emby server remove" -armbian-config --cmd EMB002 -~~~ - - -~~~ bash title="Emby server purge with data folder" -armbian-config --cmd EMB003 -~~~ - - - - -#### Filebrowser - - -Filebrowser provides a web-based file manager accessible via a browser - - - -![Filebrowser](/images/FIL001.png) - - - - -**Filebrowser** is a lightweight, web-based file manager that gives you direct access to your files from any browser. It allows users to upload, delete, preview, rename, and organize files and folders — all through a clean, responsive interface. - -**Key Features** - -- Modern and intuitive web interface -- User management with role-based access -- File uploads, downloads, sharing, and previews -- Custom branding support -- Configurable directory access -- Runs as a single binary or Docker container - -Official site: [https://filebrowser.org](https://filebrowser.org) - - - - -~~~ bash title="Filebrowser" -armbian-config --cmd FIL001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / admin - -=== "Directories" - - - Install directory: `/armbian/filebrowser` - - Root directory: `/armbian/filebrowser/srv` - - Database directory: `/armbian/filebrowser/database` - - Configuration file: `/armbian/filebrowser/filebrowser.json` - - Branding directory: `/armbian/filebrowser/branding` - -=== "View logs" - - ```sh - docker logs -f filebrowser - ``` - - - - -~~~ bash title="Filebrowser container remove" -armbian-config --cmd FIL002 -~~~ - - -~~~ bash title="Filebrowser container purge with data folder" -armbian-config --cmd FIL003 -~~~ - - - - -#### Hastebin - - -Hastebin Paste Server - - - -![Hastebin](/images/HPS001.png) - - - - -Hastebin is a fast and simple self-hosted pastebin server. It allows users to quickly share text snippets like logs, code, or notes via a web interface or API. Hastebin is lightweight, easy to deploy with Docker, and ideal for teams needing private, temporary paste storage. - - - - -~~~ bash title="Hastebin" -armbian-config --cmd HPS001 -~~~ - - -~~~ bash title="Hastebin remove" -armbian-config --cmd HPS002 -~~~ - - -~~~ bash title="Hastebin purge with data folder" -armbian-config --cmd HPS003 -~~~ - - - - -#### Immich - - -Immich - high-performance self-hosted photo and video backup solution - - - -![Immich](/images/IMM001.png) - - - - -[**Immich**](https://immich.app/) is a self-hosted photo and video backup solution, designed for individuals and families who want: - -- An alternative to cloud-based services like Google Photos or iCloud -- A private, secure place to store, browse, and share memories -- Powerful features like automatic mobile uploads, facial recognition, and search -- A modern, responsive web and mobile interface for easy access - -Thanks to Immich being built with modern technologies like NestJS, TypeScript, and machine learning integrations, users enjoy a smooth, intelligent media experience. Whether you’re a casual user backing up phone photos or a tech-savvy person managing media across multiple devices, Immich provides the flexibility and control of a cloud solution—on your own server. - -**Summary** - -- **Immich** is ideal if you want full privacy, open-source flexibility, and control over your data. -- **Google Photos** is convenient and polished but comes with trade-offs in privacy and cost at scale. -- **Synology Photos** fits well in homes or small offices already using Synology NAS systems, offering good performance with integrated features. - - - - -~~~ bash title="Immich" -armbian-config --cmd IMM001 -~~~ - - - -=== "Default credentials" - - - Email: *(set during initial setup)* - - Password: *(set during initial setup)* - -=== "Directories" - - - Uploads: `/armbian/immich/photos/upload/` - - Thumbnails: `/armbian/immich/photos/thumbs/` - - Profile images: `/armbian/immich/photos/profile/` - - Library: `/armbian/immich/photos/library/` - - Encoded videos: `/armbian/immich/photos/encoded-video/` - - Backups: `/armbian/immich/photos/backups/` - -=== "View logs" - - ```sh - docker logs -f immich - ``` - -=== "Immich vs Google Photos vs Synology Photos" - - | Feature / Aspect | **Immich** | **Google Photos** | **Synology Photos** | - |-------------------------------|-------------------------------------------|---------------------------------------------|---------------------------------------------| - | **Hosting** | Self-hosted | Cloud (Google infrastructure) | Self-hosted (on Synology NAS) | - | **Privacy & Control** | Full control, private data storage | Data stored and analyzed by Google | Full control within your NAS environment | - | **Automatic Uploads** | Yes (via mobile app) | Yes (via mobile app) | Yes (via mobile app or Synology Drive) | - | **Facial Recognition** | Yes (on-device) | Yes (cloud-based) | Yes (on-device) | - | **Object & Scene Detection** | Yes (limited but improving) | Yes (advanced AI) | Yes (basic) | - | **Web Interface** | Yes (modern and responsive) | Yes | Yes | - | **Mobile Apps** | Yes (iOS & Android) | Yes (iOS & Android) | Yes (iOS & Android) | - | **Albums & Sharing** | Yes (with public and private sharing) | Yes (advanced sharing options) | Yes | - | **Multi-user Support** | Yes | Limited (mostly single user) | Yes (multi-user, tied to NAS users) | - | **Backup Original Quality** | Yes (no compression) | Only with paid storage | Yes (NAS dependent) | - | **Offline Access** | Limited (depends on app setup) | Yes (with sync) | Yes | - | **Open Source** | Yes | No | No | - | **Hardware Requirement** | Any Docker-capable server or NAS | N/A (runs on Google’s cloud) | Synology NAS required | - | **Price** | Free (self-hosted, you pay for hardware) | Free (with limitations) / Paid for storage | Included with NAS, hardware cost required | - - - - -~~~ bash title="Immich remove" -armbian-config --cmd IMM002 -~~~ - - -~~~ bash title="Immich purge with data folder" -armbian-config --cmd IMM003 -~~~ - - - - -#### Jellyfin - - -Jellyfin Media System - - - -![Jellyfin](/images/JMS001.png) - - - - -Jellyfin is a Free Software Media System that puts you in control of managing and streaming your media. It is an alternative to the proprietary Emby and Plex, to provide media from a dedicated server to end-user devices via multiple apps. Jellyfin is descended from Emby's 3.5.2 release and ported to the .NET Core framework to enable full cross-platform support. There are no strings attached, no premium licenses or features, and no hidden agendas: just a team who want to build something better and work together to achieve it. - - - - -~~~ bash title="Jellyfin" -armbian-config --cmd JMS001 -~~~ - - - -=== "Access to the web interface" - - - Username and password are set at first login - -=== "Directories" - - - Install directory: `/armbian/jellyfin` - - Site configuration directory: `/armbian/jellyfin/config` - - TV shows directory: `/armbian/jellyfin/tvseries` - - Movies directory: `/armbian/jellyfin/movies` - -=== "View logs" - - ```sh - docker logs -f jellyfin - ``` - - - - -~~~ bash title="Jellyfin remove" -armbian-config --cmd JMS002 -~~~ - - -~~~ bash title="Jellyfin purge with data folder" -armbian-config --cmd JMS003 -~~~ - - - - -#### Navidrome - - -Navidrome music server and streamer compatible with Subsonic/Airsonic - - - -![Navidrome](/images/NAV001.png) - - - - -Navidrome is a modern, lightweight, and self-hosted music server and streamer. It's designed to be compatible with the Subsonic and Airsonic APIs, making it a drop-in replacement for users of those systems. With Navidrome, you can stream your personal music collection from anywhere using any compatible Subsonic client (mobile or desktop). It supports multi-user access, real-time updates, album artwork, and is built with performance and simplicity in mind—perfect for organizing and accessing large music libraries. - - - - -~~~ bash title="Navidrome" -armbian-config --cmd NAV001 -~~~ - - -~~~ bash title="Navidrome remove" -armbian-config --cmd NAV002 -~~~ - - -~~~ bash title="Navidrome purge with data folder" -armbian-config --cmd NAV003 -~~~ - - - - -#### Nextcloud - - -Nextcloud content collaboration platform - - - -![Nextcloud](/images/NCT001.png) - - - - -Nextcloud gives you access to all your files wherever you are. Where are your photos and documents? With Nextcloud you pick a server of your choice, at home, in a data center or at a provider. And that is where your files will be. Nextcloud runs on that server, protecting your data and giving you access from your desktop or mobile devices. Through Nextcloud you also access, sync and share your existing data on that FTP drive at the office, a Dropbox or a NAS you have at home. - - - - -~~~ bash title="Nextcloud" -armbian-config --cmd NCT001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / generate at first web interface login - -=== "Directories" - - - Install directory: `/armbian/nextcloud` - - Site configuration directory: `/armbian/nextcloud/config` - - Data directory: `/armbian/nextcloud/data` - -=== "View logs" - - ```sh - docker logs -f nextcloud - ``` - - - - -~~~ bash title="Nextcloud remove" -armbian-config --cmd NCT002 -~~~ - - -~~~ bash title="Nextcloud purge with data folder" -armbian-config --cmd NCT003 -~~~ - - - - -#### OMV - - -Deploy NAS using OpenMediaVault - - - -![OMV](/images/OMV001.png) - - - - -OpenMediaVault (OMV) is a powerful, open-source network-attached storage (NAS) operating system built on the Debian Linux distribution. It is designed to provide a simple and intuitive web-based interface for managing storage devices and network services, making it ideal for home users, small offices, and even advanced users looking for a customizable and efficient NAS solution. - -OMV supports a wide range of features, including various file systems (EXT4, XFS, BTRFS, etc.), software RAID configurations, scheduled backups, and user and group management. It offers support for common network protocols such as SMB/CIFS (Windows file sharing), NFS, FTP, and SSH, enabling seamless file access across different platforms. - -Through its modular design, OpenMediaVault can be easily extended with plugins, allowing users to add functionality like Docker support, media servers, cloud synchronization tools, BitTorrent clients, and more. The system is designed for stability and ease of use, with regular updates and a strong community supporting development and troubleshooting. - -Whether used on a dedicated server, a Raspberry Pi, or virtualized hardware, OMV provides a flexible and reliable way to build your own custom NAS. - -**Warning**: installation works only on Debian (bookworm) based Armbian image. - - - -~~~ bash title="OMV" -armbian-config --cmd OMV001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / openmediavault (change after first login) - -=== "Directories" - - - Default config directory: `/etc/openmediavault/` - - Shared folders base path: `/srv/dev-disk-by-.../` - - Plugin data directories may vary by service (e.g., Docker, SMB, etc.) - -=== "Usage" - - - Use the web interface to configure storage, users, services, and plugins - - Create shared folders and enable SMB/NFS to access files over the network - - Monitor system status, performance, and logs from the dashboard - -=== "Plugins and Add-ons" - - OpenMediaVault supports a wide range of community plugins: - - - Docker support via `openmediavault-compose` or `omv-extras` - - Media servers (e.g., Plex, Jellyfin) - - Backup tools (e.g., rsync, USB backup) - - Cloud sync (e.g., Rclone) - - Install plugins through the web interface after enabling OMV-Extras. - -=== "View logs" - - ```sh - journalctl -u openmediavault-engined - tail -f /var/log/syslog - ``` - - - - -~~~ bash title="OpenMediaVault remove" -armbian-config --cmd OMV002 -~~~ - - - -#### Owncloud - - -Owncloud share files and folders, easy and secure - - - -![Owncloud](/images/OWC001.png) - - - - -ownCloud is a free and open-source software project for content collaboration and sharing and syncing of files in distributed and federated enterprise scenarios. - - - - -~~~ bash title="Owncloud" -armbian-config --cmd OWC001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: admin / admin - -=== "Directories" - - - Install directory: `/armbian/owncloud` - - Site configuration directory: `/armbian/owncloud/config` - - Data directory: `/armbian/owncloud/data` - -=== "View logs" - - ```sh - docker logs -f owncloud - ``` - - - - -~~~ bash title="Owncloud remove" -armbian-config --cmd OWC002 -~~~ - - -~~~ bash title="Owncloud purge with data folder" -armbian-config --cmd OWC003 -~~~ - - - - -#### Syncthing - - -Syncthing continuous file synchronization - - - -![Syncthing](/images/STC001.png) - - - - -Syncthing replaces proprietary sync and cloud services with something open, trustworthy and decentralized. Your data is your data alone and you deserve to choose where it is stored, if it is shared with some third party and how it's transmitted over the Internet. - - - - -~~~ bash title="Syncthing" -armbian-config --cmd STC001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: There is none, but it is highly suggested setting a password for this container. To do this go to Actions -> Settings -> set user/password for the webUI. - -=== "Directories" - - - Install directory: `/armbian/syncthing` - - Site configuration directory: `/armbian/syncthing/config` - - Data directory: `/armbian/syncthing/data1` `/armbian/syncthing/data2` - -=== "View logs" - - ```sh - docker logs -f syncthing - ``` - - - - -~~~ bash title="Syncthing remove" -armbian-config --cmd STC002 -~~~ - - -~~~ bash title="Syncthing purge with data folder" -armbian-config --cmd STC003 -~~~ - - - - -#### Stirling - - -Stirling PDF tools for viewing and editing PDF files - - - -![Stirling](/images/STR001.png) - - - - -Stirling-PDF is a robust, locally hosted web-based PDF manipulation tool using Docker. It enables you to carry out various operations on PDF files, including splitting, merging, converting, reorganizing, adding images, rotating, compressing, and more. This locally hosted web application has evolved to encompass a comprehensive set of features, addressing all your PDF requirements. - - - - -~~~ bash title="Stirling" -armbian-config --cmd STR001 -~~~ - - - -=== "Directories" - - - Install directory: `/armbian/stirling` - -=== "View logs" - - ```sh - docker logs -f stirling-pdf - ``` - - - - -~~~ bash title="Stirling PDF remove" -armbian-config --cmd STR002 -~~~ - - -~~~ bash title="Stirling PDF purge with data folder" -armbian-config --cmd STR003 -~~~ - - - - -## Real-time monitoring, collecting metrics, up-time status - -#### Grafana - - -Grafana data analytics - - - -![Grafana](/images/GRA001.png) - - - - -Grafana is a multi-platform open source analytics and interactive visualization web application. It can produce charts, graphs, and alerts for the web when connected to supported data sources. - - - -~~~ bash title="Grafana" -armbian-config --cmd GRA001 -~~~ - - - -=== "Directories" - - - Install directory: `/armbian/grafana` - -=== "View logs" - - ```sh - docker logs -f grafana - ``` - - - - -~~~ bash title="Grafana remove" -armbian-config --cmd GRA002 -~~~ - - -~~~ bash title="Grafana purge with data folder" -armbian-config --cmd GRA003 -~~~ - - - - -#### NetAlertX - - -NetAlertX network scanner & notification framework - - - -![NetAlertX](/images/NAX001.png) - - - - -NetAlertX is an open-source network monitoring and intruder detection tool designed to provide visibility into your Wi-Fi or LAN network. It scans your network for connected devices and alerts you when new or unknown devices are detected, helping you monitor unauthorized access and maintain network security. - -**Key Features:** - -- **Scheduled Network Scans:** Regularly scans your network to detect new devices, reconnections, disconnections, and changes in IP addresses. - -- **Extensive Notification Support:** Integrates with over 80 notification services, including email, Telegram, Pushover, and NTFY, ensuring you receive timely alerts about network changes. - -- **Network Visualization:** Offers a user-friendly interface to visualize your entire network, enhancing security and simplifying management. - -- **Multi-Network Monitoring:** Supports synchronization of multiple network instances, providing cross-network visibility across various device manufacturers. - -- **Home Assistant Integration:** Seamlessly integrates with Home Assistant, enabling advanced automation workflows and smart home integrations. - -- **Customizable Plugins:** Allows users to develop custom plugins with auto-generated user interfaces and built-in notification systems, tailoring the tool to specific network monitoring needs. - -NetAlertX is actively maintained and supports various installation methods, including Docker and bare-metal setups. It serves as a proactive solution for maintaining network health and preventing issues before they escalate, providing peace of mind for individuals and small businesses alike. - -For more information and installation guides, visit the official [NetAlertX documentation](https://jokob-sk.github.io/NetAlertX/). - - - - -~~~ bash title="NetAlertX" -armbian-config --cmd NAX001 -~~~ - - - -=== "Directories" - - - Config directory: `/armbian/netalertx/config` - -=== "View logs" - - ```sh - docker logs -f netalertx - ``` - - - - -~~~ bash title="NetAlertX network scanner remove" -armbian-config --cmd NAX002 -~~~ - - -~~~ bash title="NetAlertX network scanner purge with data folder" -armbian-config --cmd NAX003 -~~~ - - - - -#### Netdata - - -Netdata - monitoring real-time metrics - - - -![Netdata](/images/NTD001.png) - - - - -Netdata is a partially open source tool designed to collect real-time metrics, such as CPU usage, disk activity, bandwidth usage, website visits, etc., and then display them in live, easy-to-interpret charts. - - - - -~~~ bash title="Netdata" -armbian-config --cmd NTD001 -~~~ - - -~~~ bash title="Netdata remove" -armbian-config --cmd NTD002 -~~~ - - -~~~ bash title="Netdata purge with data folder" -armbian-config --cmd NTD003 -~~~ - - - - -#### Prometheus - - -Prometheus monitoring and alerting toolkit - - - -![Prometheus](/images/PRO001.png) - - - - -Prometheus is an open-source monitoring and alerting toolkit designed for reliability and scalability. It collects and stores time-series data, provides powerful query capabilities, and enables real-time alerts based on defined conditions. Commonly used in cloud and containerized environments, Prometheus integrates seamlessly with Kubernetes and other modern infrastructure. - - - - -~~~ bash title="Prometheus" -armbian-config --cmd PRO001 -~~~ - - - -=== "Directories" - - - Config directory: `/armbian/prometheus` - -=== "View logs" - - ```sh - docker logs -f prometheus - ``` - - - - -~~~ bash title="Prometheus remove" -armbian-config --cmd PRO002 -~~~ - - -~~~ bash title="Prometheus purge with data folder" -armbian-config --cmd PRO003 -~~~ - - - - -#### Uptime Kuma - - -Uptime Kuma self-hosted monitoring tool - - - -![Uptime Kuma](/images/UPK001.png) - - - - -[Uptime Kuma](https://github.com/louislam/uptime-kuma) is a self-hosted monitoring tool similar to \"Uptime Robot\". -It provides a beautiful, easy-to-use web dashboard to monitor HTTP(s), TCP, Ping, and more types of services. - -You can receive instant notifications when a service goes down via Telegram, Discord, Slack, email, and many other integrations. - - - - -~~~ bash title="Uptime Kuma" -armbian-config --cmd UPK001 -~~~ - - - -=== "Access to the web interface" - - - Username/Password: Are set at first web interface login - -=== "Features" - - - Monitoring uptime for HTTP(s) / TCP / HTTP(s) Keyword / HTTP(s) Json Query / Ping / DNS Record / Push / Steam Game Server / Docker Containers - - Fancy, Reactive, Fast UI/UX - - Notifications via Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), and 90+ notification services, click here for the full list - - 20-second intervals - - Multi Languages - - Multiple status pages - - Map status pages to specific domains - - Ping chart - - Certificate info - - Proxy support - - 2FA support - - - - -~~~ bash title="Uptime Kuma remove" -armbian-config --cmd UPK002 -~~~ - - -~~~ bash title="Uptime Kuma purge with data folder" -armbian-config --cmd UPK003 -~~~ - - - - -#### Dozzle - - -Dozzle real-time Docker log viewer - - - -![Dozzle](/images/DOZ001.png) - - - - -Dozzle is a lightweight, real-time Docker log viewer that provides a simple and efficient way to monitor logs from all your Docker containers. Unlike complex logging solutions, Dozzle offers a streamlined interface for viewing logs without the overhead of databases or heavy resource usage. - -**Key Features:** - -- **Real-time Log Streaming:** View logs from all Docker containers in real-time as they are generated, with automatic updates and scrolling. - -- **Search and Filtering:** Quickly find specific log entries with built-in search functionality and filter containers by name or status. - -- **Color-Coded Log Levels:** Easily identify log severity with automatic color coding for different log levels, making it simple to spot errors and warnings. - -- **Multi-Container View:** Monitor multiple containers simultaneously with a split-screen view, allowing you to correlate events across different services. - -- **Responsive Web Interface:** Access logs from any device with a modern, responsive web interface that works seamlessly on desktops, tablets, and mobile devices. - -- **Lightweight Resource Usage:** Built with Go and designed for efficiency, Dozzle consumes minimal system resources compared to heavier logging solutions. - -- **No Authentication Required:** Simple setup without complex authentication; consider securing with a reverse proxy for production environments. - -Dozzle connects directly to the Docker socket to read container logs, requiring no changes to your existing containers or applications. It's an ideal solution for developers and system administrators who need quick access to container logs without the complexity of full-scale log management systems. - -For more information and usage examples, visit the official [Dozzle documentation](https://dozzle.dev/). - - - - -~~~ bash title="Dozzle" -armbian-config --cmd DOZ001 -~~~ - - - -=== "View logs" - - View real-time logs from the Dozzle container: - - ```sh - docker logs -f dozzle - ``` - -=== "Security considerations" - - Dozzle does not include built-in authentication. For production use, consider: - - - Running behind a reverse proxy with authentication (e.g., SWAG, Nginx) - - Using firewall rules to restrict access to trusted networks - - Configuring VPN access for remote log viewing - -=== "Troubleshooting" - - If Dozzle cannot display logs from certain containers: - - - Ensure the Docker socket is properly mounted - - Check that the container has logs available: `docker logs ` - - Verify Dozzle container is running: `docker ps | grep dozzle` - - - - -~~~ bash title="Dozzle remove" -armbian-config --cmd DOZ002 -~~~ - - -~~~ bash title="Dozzle purge" -armbian-config --cmd DOZ003 -~~~ - - - - -## Console network tools for measuring load and bandwidth - -#### avahi-daemon - - -avahi-daemon hostname broadcast via mDNS - - - -![avahi-daemon](/images/AVH001.png) - - - -~~~ bash title="avahi-daemon" -armbian-config --cmd AVH001 -~~~ - - -~~~ bash title="avahi-daemon remove" -armbian-config --cmd AVH002 -~~~ - - - -#### iperf3 - - -iperf3 bandwidth measuring tool - - - -![iperf3](/images/IPR001.png) - - - -~~~ bash title="iperf3" -armbian-config --cmd IPR001 -~~~ - - -~~~ bash title="iperf3 remove" -armbian-config --cmd IPR002 -~~~ - - - -#### iptraf-ng - - -iptraf-ng IP LAN monitor - - - -![iptraf-ng](/images/IPT001.png) - - - -~~~ bash title="iptraf-ng" -armbian-config --cmd IPT001 -~~~ - - -~~~ bash title="iptraf-ng remove" -armbian-config --cmd IPT002 -~~~ - - - -#### nload - - -nload - realtime console network usage monitor - - - -![nload](/images/NLD001.png) - - - -~~~ bash title="nload" -armbian-config --cmd NLD001 -~~~ - - -~~~ bash title="nload - remove" -armbian-config --cmd NLD002 -~~~ - - - -## Tools for printing and 3D printing - -#### OctoPrint - - -OctoPrint web-based 3D printers management tool - - - -![OctoPrint](/images/OCT001.png) - - - - -OctoPrint is an open source 3D printer controller application, which provides a web interface for the connected printers. It displays printers status and key parameters and allows user to schedule prints and remotely control the printer. - - - -~~~ bash title="OctoPrint" -armbian-config --cmd OCT001 -~~~ - - - -=== "Directories" - - - Install directory: `/armbian/octoprint` - -=== "View logs" - - ```sh - docker logs -f octoprint - ``` - - - - -~~~ bash title="OctoPrint remove" -armbian-config --cmd OCT002 -~~~ - - -~~~ bash title="OctoPrint purge with data folder" -armbian-config --cmd OCT003 -~~~ - - - - -## Virtual Private Network tools - -#### WireGuard - - -WireGuard VPN server - - - -![WireGuard](/images/WRG001.png) - - - - -WireGuard is an extremely simple yet fast and modern VPN that utilizes state-of-the-art cryptography. It aims to be faster, simpler, leaner, and more useful than IPsec, while avoiding the massive headache. It intends to be considerably more performant than OpenVPN. WireGuard is designed as a general purpose VPN for running on embedded interfaces and super computers alike, fit for many different circumstances. Initially released for the Linux kernel, it is now cross-platform (Windows, macOS, BSD, iOS, Android) and widely deployable. Regarded as the most secure, easiest to use, and simplest VPN solution in the industry. - - - -~~~ bash title="WireGuard" -armbian-config --cmd WRG001 -~~~ - - - -=== "Server" - - 1. Launch `armbian-config --api module_wireguard server`. - - 2. When prompted, enter a comma-separated list of peer names (e.g., laptop,phone,router). - - 3. Peer configuration files will be created in - - ``` - /armbian/wireguard/config/wg_confs/peer_laptop.conf - ``` - 4. Scan the QR code (for mobile) or transfer .conf to your client system. - - 5. Connect the client using the configuration. - -=== "Client" - - 1. Launch `armbian-config --api module_wireguard client`. - - 2. You will be asked to edit or paste a valid WireGuard configuration. - - 3. Provide the client configuration in this format: - - ```sh - [Interface] - Address = 10.13.13.2/32 - PrivateKey = - DNS = 1.1.1.1 - - [Peer] - PublicKey = - Endpoint = your.server.com:51820 - AllowedIPs = 0.0.0.0/0 - PersistentKeepalive = 25 - ``` - - 4. The configuration will be saved to: - - ``` - /armbian/wireguard/config/wg_confs/client.conf - ``` - - 5. When prompted, enter the local LAN subnets you wish to route via VPN (e.g., `10.0.10.0/24,192.168.0.0/16`). - - 6. The VPN container will be started and routing rules will be generated accordingly. - - 7. Routing will be restored automatically on boot via systemd service. - -=== "Access to the server from internet" - - Remember to open/forward the port 51820 (UDP) through NAT on your router. - -=== "Directories" - - - Install directory: `/armbian/wireguard` - - Site configuration directory: `/armbian/wireguard/config` - -=== "View logs" - - ```sh - docker logs -f wireguard - ``` - - - -~~~ bash title="WireGuard VPN client" -armbian-config --cmd WRG002 -~~~ - - -~~~ bash title="WireGuard remove" -armbian-config --cmd WRG003 -~~~ - - -~~~ bash title="WireGuard VPN server QR codes for clients" -armbian-config --cmd WRG004 -~~~ - - -~~~ bash title="WireGuard purge with data folder" -armbian-config --cmd WRG005 -~~~ - - - - - - -#### ZeroTier - - -ZeroTier connect devices over your own private network in the world. - - - -![ZeroTier](/images/ZTR001.png) - - - -~~~ bash title="ZeroTier" -armbian-config --cmd ZTR001 -~~~ - - -## Web server, LEMP, reverse proxy, Let's Encrypt SSL - -#### SWAG - - -SWAG reverse proxy - - - -![SWAG](/images/SWAG01.png) - - - - -SWAG - Secure Web Application Gateway sets up an Nginx webserver and reverse proxy with php support and a built-in certbot client that automates free SSL server certificate generation and renewal processes (Let's Encrypt). It also contains fail2ban for intrusion prevention. - -After entering required information, your server will have auto updating SSL secured website! To this website you can attach several services, for example: https://my.server.com/netdata will run [Netdata](https://www.netdata.cloud/) instance. - -=== "Requirements" - - - this computer port 80 and 443 must be open to the internet - - your domain name (myserver.mydomain.com) DNS server should point to your router WAN address - - make sure to set additional .htpasswd username and password as you don't want to expose your services without password - -=== "Directories" - - - Config directory: `/armbian/swag/config/` - - Website root folder: `/armbian/swag/config/www/` - - Reverse proxy configuration samples: `/armbian/swag/config/nginx/proxy-confs/` - -=== "Advanced setup" - - - Please follow this comprehensive guide: - - - - -~~~ bash title="SWAG" -armbian-config --cmd SWAG01 -~~~ - - -~~~ bash title="SWAG reverse proxy .htpasswd set" -armbian-config --cmd SWAG02 -~~~ - - -~~~ bash title="SWAG remove" -armbian-config --cmd SWAG03 -~~~ - - -~~~ bash title="SWAG purge with data folder" -armbian-config --cmd SWAG04 -~~~ - - - - - -#### Ghost - - -Ghost CMS install - - - -![Ghost](/images/GHOST1.png) - - - - -Ghost is a powerful open-source publishing platform designed for professional publishing, newsletters, and modern blogs. It’s built on Node.js and provides a clean, fast, and customizable CMS experience. - - - - -~~~ bash title="Ghost" -armbian-config --cmd GHOST1 -~~~ - - - -=== "Configuration" - - Initial setup includes: - - - automatic database schema setup on first run - - admin account created via web interface - - Default port: `9190` - - Admin URL: `http://:9190/ghost` (or behind reverse proxy like SWAG) - - Site: `http://:9190` - -=== "Directories" - - - Install directory: `/armbian/ghost` - -=== "View logs" - - ```sh - docker logs -f ghost - ``` - - - - -~~~ bash title="Ghost CMS remove" -armbian-config --cmd GHOST2 -~~~ - - -~~~ bash title="Ghost CMS purge with data folder" -armbian-config --cmd GHOST3 -~~~ - - - diff --git a/docs/software/actual-budget.md b/docs/software/actual-budget.md index 8286ec543..e8e5631f7 100644 --- a/docs/software/actual-budget.md +++ b/docs/software/actual-budget.md @@ -65,4 +65,4 @@ armbian-config --cmd ABU001 --- -_Part of Armbian's [Manage your finances](/User-Guide_Armbian-Software/Finance/) software._ +_Part of Armbian's [Manage your finances](/software/finance/) software._ diff --git a/docs/software/adguardhome.md b/docs/software/adguardhome.md index 8f782c1c8..65e3384c2 100644 --- a/docs/software/adguardhome.md +++ b/docs/software/adguardhome.md @@ -76,4 +76,4 @@ armbian-config --cmd ADG001 --- -_Part of Armbian's [Network-wide ad blockers servers](/User-Guide_Armbian-Software/DNS/) software._ +_Part of Armbian's [Network-wide ad blockers servers](/software/dns/) software._ diff --git a/docs/software/apt-cacher-ng.md b/docs/software/apt-cacher-ng.md index 79026a03e..95096d098 100644 --- a/docs/software/apt-cacher-ng.md +++ b/docs/software/apt-cacher-ng.md @@ -72,4 +72,4 @@ armbian-config --cmd APT001 --- -_Part of Armbian's [Remote File & Management tools](/User-Guide_Armbian-Software/Management/) software._ +_Part of Armbian's [Remote File & Management tools](/software/management/) software._ diff --git a/docs/User-Guide_Armbian-Software/Armbian.md b/docs/software/armbian.md similarity index 98% rename from docs/User-Guide_Armbian-Software/Armbian.md rename to docs/software/armbian.md index e278ad96c..7c90bc222 100644 --- a/docs/User-Guide_Armbian-Software/Armbian.md +++ b/docs/software/armbian.md @@ -2,6 +2,7 @@ title: "Armbian" seo_title: "Armbian apps for Armbian" description: "Armbian infrastructure services for Armbian on ARM64 and x86 single-board computers: CDN router, GH runners, Rsyncd server." +hub: true comments: true --- # Armbian infrastructure services diff --git a/docs/software/avahi-daemon.md b/docs/software/avahi-daemon.md index 646a25dcf..a859d862d 100644 --- a/docs/software/avahi-daemon.md +++ b/docs/software/avahi-daemon.md @@ -39,4 +39,4 @@ armbian-config --cmd AVH001 --- -_Part of Armbian's [Console network tools for measuring load and bandwidth](/User-Guide_Armbian-Software/Netconfig/) software._ +_Part of Armbian's [Console network tools for measuring load and bandwidth](/software/netconfig/) software._ diff --git a/docs/User-Guide_Armbian-Software/Backup.md b/docs/software/backup.md similarity index 97% rename from docs/User-Guide_Armbian-Software/Backup.md rename to docs/software/backup.md index 5ca7e7e97..bd4fc96e5 100644 --- a/docs/User-Guide_Armbian-Software/Backup.md +++ b/docs/software/backup.md @@ -2,6 +2,7 @@ title: "Backup" seo_title: "Backup apps for Armbian" description: "Backup solutions for your data for Armbian on ARM64 and x86 single-board computers: Duplicati." +hub: true comments: true --- # Backup solutions for your data diff --git a/docs/software/bazarr.md b/docs/software/bazarr.md index 91b83b539..427200f3b 100644 --- a/docs/software/bazarr.md +++ b/docs/software/bazarr.md @@ -62,4 +62,4 @@ armbian-config --cmd BAZ001 --- -_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/User-Guide_Armbian-Software/Downloaders/) software._ +_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/software/downloaders/) software._ diff --git a/docs/software/cdn-router.md b/docs/software/cdn-router.md index b8e9c1752..09b5677a1 100644 --- a/docs/software/cdn-router.md +++ b/docs/software/cdn-router.md @@ -39,4 +39,4 @@ armbian-config --cmd ART001 --- -_Part of Armbian's [Armbian infrastructure services](/User-Guide_Armbian-Software/Armbian/) software._ +_Part of Armbian's [Armbian infrastructure services](/software/armbian/) software._ diff --git a/docs/software/cockpit.md b/docs/software/cockpit.md index ad80b15c4..a04936f3e 100644 --- a/docs/software/cockpit.md +++ b/docs/software/cockpit.md @@ -69,4 +69,4 @@ armbian-config --cmd CPT001 --- -_Part of Armbian's [Remote File & Management tools](/User-Guide_Armbian-Software/Management/) software._ +_Part of Armbian's [Remote File & Management tools](/software/management/) software._ diff --git a/docs/software/code-server.md b/docs/software/code-server.md index 6a5cc73ac..ce9056468 100644 --- a/docs/software/code-server.md +++ b/docs/software/code-server.md @@ -114,4 +114,4 @@ armbian-config --cmd COD001 --- -_Part of Armbian's [Applications and tools for development](/User-Guide_Armbian-Software/DevTools/) software._ +_Part of Armbian's [Applications and tools for development](/software/dev-tools/) software._ diff --git a/docs/User-Guide_Armbian-Software/Containers.md b/docs/software/containers.md similarity index 98% rename from docs/User-Guide_Armbian-Software/Containers.md rename to docs/software/containers.md index d146f7193..959229657 100644 --- a/docs/User-Guide_Armbian-Software/Containers.md +++ b/docs/software/containers.md @@ -2,6 +2,7 @@ title: "Containers" seo_title: "Containers apps for Armbian" description: "Docker containerization and KVM virtual machines for Armbian on ARM64 and x86 single-board computers: Docker, Portainer." +hub: true comments: true --- # Docker containerization and KVM virtual machines diff --git a/docs/User-Guide_Armbian-Software/Database.md b/docs/software/database.md similarity index 98% rename from docs/User-Guide_Armbian-Software/Database.md rename to docs/software/database.md index cc05df541..1831b2d5d 100644 --- a/docs/User-Guide_Armbian-Software/Database.md +++ b/docs/software/database.md @@ -2,6 +2,7 @@ title: "Database" seo_title: "Database apps for Armbian" description: "SQL database servers and web interface managers for Armbian on ARM64 and x86 single-board computers: MySQL, Mariadb, phpMyAdmin, PostgreSQL, Redis." +hub: true comments: true --- # SQL database servers and web interface managers diff --git a/docs/software/deluge.md b/docs/software/deluge.md index 0a9682820..ffcf176b6 100644 --- a/docs/software/deluge.md +++ b/docs/software/deluge.md @@ -62,4 +62,4 @@ armbian-config --cmd DEL001 --- -_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/User-Guide_Armbian-Software/Downloaders/) software._ +_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/software/downloaders/) software._ diff --git a/docs/User-Guide_Armbian-Software/DevTools.md b/docs/software/dev-tools.md similarity index 98% rename from docs/User-Guide_Armbian-Software/DevTools.md rename to docs/software/dev-tools.md index c70bc09d9..8f187e8f5 100644 --- a/docs/User-Guide_Armbian-Software/DevTools.md +++ b/docs/software/dev-tools.md @@ -2,6 +2,7 @@ title: "Dev Tools" seo_title: "Dev Tools apps for Armbian" description: "Applications and tools for development for Armbian on ARM64 and x86 single-board computers: Git CLI, Code-server." +hub: true comments: true --- # Applications and tools for development diff --git a/docs/User-Guide_Armbian-Software/DNS.md b/docs/software/dns.md similarity index 98% rename from docs/User-Guide_Armbian-Software/DNS.md rename to docs/software/dns.md index 6a7c83476..3e3421b1b 100644 --- a/docs/User-Guide_Armbian-Software/DNS.md +++ b/docs/software/dns.md @@ -2,6 +2,7 @@ title: "DNS" seo_title: "DNS apps for Armbian" description: "Network-wide ad blockers servers for Armbian on ARM64 and x86 single-board computers: AdGuardHome, Pi-hole, Unbound." +hub: true comments: true --- # Network-wide ad blockers servers diff --git a/docs/software/docker.md b/docs/software/docker.md index 9b661252b..fdfd48af3 100644 --- a/docs/software/docker.md +++ b/docs/software/docker.md @@ -45,4 +45,4 @@ What is Docker? Docker helps developers build, share, run, and verify applicatio --- -_Part of Armbian's [Docker containerization and KVM virtual machines](/User-Guide_Armbian-Software/Containers/) software._ +_Part of Armbian's [Docker containerization and KVM virtual machines](/software/containers/) software._ diff --git a/docs/software/domoticz.md b/docs/software/domoticz.md index 77f9c536f..0f62de2d5 100644 --- a/docs/software/domoticz.md +++ b/docs/software/domoticz.md @@ -55,4 +55,4 @@ armbian-config --cmd DOM001 --- -_Part of Armbian's [Home Automation for control home appliances](/User-Guide_Armbian-Software/HomeAutomation/) software._ +_Part of Armbian's [Home Automation for control home appliances](/software/home-automation/) software._ diff --git a/docs/User-Guide_Armbian-Software/Downloaders.md b/docs/software/downloaders.md similarity index 99% rename from docs/User-Guide_Armbian-Software/Downloaders.md rename to docs/software/downloaders.md index 47d14e055..11bb77583 100644 --- a/docs/User-Guide_Armbian-Software/Downloaders.md +++ b/docs/software/downloaders.md @@ -2,6 +2,7 @@ title: "Downloaders" seo_title: "Downloaders apps for Armbian" description: "Download apps for movies, TV shows, music and subtitles for Armbian on ARM64 and x86 single-board computers: Bazarr, Deluge, qBittorrent, Prowlarr, Jellyseerr, Lidarr, Medusa, Rada" +hub: true comments: true --- # Download apps for movies, TV shows, music and subtitles diff --git a/docs/software/dozzle.md b/docs/software/dozzle.md index 4b0d10265..d35fc0394 100644 --- a/docs/software/dozzle.md +++ b/docs/software/dozzle.md @@ -90,4 +90,4 @@ armbian-config --cmd DOZ001 --- -_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/User-Guide_Armbian-Software/Monitoring/) software._ +_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/software/monitoring/) software._ diff --git a/docs/software/duplicati.md b/docs/software/duplicati.md index 25024d2aa..0487b31d6 100644 --- a/docs/software/duplicati.md +++ b/docs/software/duplicati.md @@ -67,4 +67,4 @@ armbian-config --cmd DPL001 --- -_Part of Armbian's [Backup solutions for your data](/User-Guide_Armbian-Software/Backup/) software._ +_Part of Armbian's [Backup solutions for your data](/software/backup/) software._ diff --git a/docs/software/emby.md b/docs/software/emby.md index ae95fc2f4..7b8743343 100644 --- a/docs/software/emby.md +++ b/docs/software/emby.md @@ -58,4 +58,4 @@ armbian-config --cmd EMB001 --- -_Part of Armbian's [Media servers, organizers and editors](/User-Guide_Armbian-Software/Media/) software._ +_Part of Armbian's [Media servers, organizers and editors](/software/media/) software._ diff --git a/docs/software/evcc.md b/docs/software/evcc.md index 29f688028..51cc8d1fd 100644 --- a/docs/software/evcc.md +++ b/docs/software/evcc.md @@ -61,4 +61,4 @@ armbian-config --cmd EVCC01 --- -_Part of Armbian's [Home Automation for control home appliances](/User-Guide_Armbian-Software/HomeAutomation/) software._ +_Part of Armbian's [Home Automation for control home appliances](/software/home-automation/) software._ diff --git a/docs/software/filebrowser.md b/docs/software/filebrowser.md index db958adaf..82152b605 100644 --- a/docs/software/filebrowser.md +++ b/docs/software/filebrowser.md @@ -75,4 +75,4 @@ armbian-config --cmd FIL001 --- -_Part of Armbian's [Media servers, organizers and editors](/User-Guide_Armbian-Software/Media/) software._ +_Part of Armbian's [Media servers, organizers and editors](/software/media/) software._ diff --git a/docs/User-Guide_Armbian-Software/Finance.md b/docs/software/finance.md similarity index 97% rename from docs/User-Guide_Armbian-Software/Finance.md rename to docs/software/finance.md index 4ed72b273..1dafc99be 100644 --- a/docs/User-Guide_Armbian-Software/Finance.md +++ b/docs/software/finance.md @@ -2,6 +2,7 @@ title: "Finance" seo_title: "Finance apps for Armbian" description: "Manage your finances for Armbian on ARM64 and x86 single-board computers: Actual Budget, Wallos." +hub: true comments: true --- # Manage your finances diff --git a/docs/software/gh-runners.md b/docs/software/gh-runners.md index f4ed74f31..2d29633fc 100644 --- a/docs/software/gh-runners.md +++ b/docs/software/gh-runners.md @@ -76,4 +76,4 @@ armbian-config --cmd GHR001 --- -_Part of Armbian's [Armbian infrastructure services](/User-Guide_Armbian-Software/Armbian/) software._ +_Part of Armbian's [Armbian infrastructure services](/software/armbian/) software._ diff --git a/docs/software/ghost.md b/docs/software/ghost.md index 20bfa5bd8..8cecfddaf 100644 --- a/docs/software/ghost.md +++ b/docs/software/ghost.md @@ -66,4 +66,4 @@ armbian-config --cmd GHOST1 --- -_Part of Armbian's [Web server, LEMP, reverse proxy, Let's Encrypt SSL](/User-Guide_Armbian-Software/WebHosting/) software._ +_Part of Armbian's [Web server, LEMP, reverse proxy, Let's Encrypt SSL](/software/web-hosting/) software._ diff --git a/docs/software/git-cdn.md b/docs/software/git-cdn.md index d06deca7b..84fd45379 100644 --- a/docs/software/git-cdn.md +++ b/docs/software/git-cdn.md @@ -39,4 +39,4 @@ armbian-config --cmd GCD001 --- -_Part of Armbian's [Remote File & Management tools](/User-Guide_Armbian-Software/Management/) software._ +_Part of Armbian's [Remote File & Management tools](/software/management/) software._ diff --git a/docs/software/git-cli.md b/docs/software/git-cli.md index b264594ef..c0dd3e9a7 100644 --- a/docs/software/git-cli.md +++ b/docs/software/git-cli.md @@ -38,4 +38,4 @@ armbian-config --cmd GIT001 --- -_Part of Armbian's [Applications and tools for development](/User-Guide_Armbian-Software/DevTools/) software._ +_Part of Armbian's [Applications and tools for development](/software/dev-tools/) software._ diff --git a/docs/software/grafana.md b/docs/software/grafana.md index cefab795b..46ce302a0 100644 --- a/docs/software/grafana.md +++ b/docs/software/grafana.md @@ -55,4 +55,4 @@ armbian-config --cmd GRA001 --- -_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/User-Guide_Armbian-Software/Monitoring/) software._ +_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/software/monitoring/) software._ diff --git a/docs/software/hastebin.md b/docs/software/hastebin.md index 957f07111..a5a057cd7 100644 --- a/docs/software/hastebin.md +++ b/docs/software/hastebin.md @@ -42,4 +42,4 @@ armbian-config --cmd HPS001 --- -_Part of Armbian's [Media servers, organizers and editors](/User-Guide_Armbian-Software/Media/) software._ +_Part of Armbian's [Media servers, organizers and editors](/software/media/) software._ diff --git a/docs/software/home-assistant.md b/docs/software/home-assistant.md index 1874f7ae8..d080a1dd2 100644 --- a/docs/software/home-assistant.md +++ b/docs/software/home-assistant.md @@ -79,4 +79,4 @@ armbian-config --cmd HAS001 --- -_Part of Armbian's [Home Automation for control home appliances](/User-Guide_Armbian-Software/HomeAutomation/) software._ +_Part of Armbian's [Home Automation for control home appliances](/software/home-automation/) software._ diff --git a/docs/User-Guide_Armbian-Software/HomeAutomation.md b/docs/software/home-automation.md similarity index 98% rename from docs/User-Guide_Armbian-Software/HomeAutomation.md rename to docs/software/home-automation.md index e3a62d240..9265a2bf9 100644 --- a/docs/User-Guide_Armbian-Software/HomeAutomation.md +++ b/docs/software/home-automation.md @@ -2,6 +2,7 @@ title: "Home Automation" seo_title: "Home Automation apps for Armbian" description: "Home Automation for control home appliances for Armbian on ARM64 and x86 single-board computers: Domoticz, EVCC, openHAB, Home Assistant." +hub: true comments: true --- # Home Automation for control home appliances diff --git a/docs/software/homepage.md b/docs/software/homepage.md index 30cc85b92..033ca6e8f 100644 --- a/docs/software/homepage.md +++ b/docs/software/homepage.md @@ -79,4 +79,4 @@ armbian-config --cmd HPG001 --- -_Part of Armbian's [Remote File & Management tools](/User-Guide_Armbian-Software/Management/) software._ +_Part of Armbian's [Remote File & Management tools](/software/management/) software._ diff --git a/docs/software/immich.md b/docs/software/immich.md index eaf5be8a5..89bacaea3 100644 --- a/docs/software/immich.md +++ b/docs/software/immich.md @@ -98,4 +98,4 @@ armbian-config --cmd IMM001 --- -_Part of Armbian's [Media servers, organizers and editors](/User-Guide_Armbian-Software/Media/) software._ +_Part of Armbian's [Media servers, organizers and editors](/software/media/) software._ diff --git a/docs/software/iperf3.md b/docs/software/iperf3.md index c60374571..8e9edb1b4 100644 --- a/docs/software/iperf3.md +++ b/docs/software/iperf3.md @@ -39,4 +39,4 @@ armbian-config --cmd IPR001 --- -_Part of Armbian's [Console network tools for measuring load and bandwidth](/User-Guide_Armbian-Software/Netconfig/) software._ +_Part of Armbian's [Console network tools for measuring load and bandwidth](/software/netconfig/) software._ diff --git a/docs/software/iptraf-ng.md b/docs/software/iptraf-ng.md index 2b77a51aa..5b8038963 100644 --- a/docs/software/iptraf-ng.md +++ b/docs/software/iptraf-ng.md @@ -39,4 +39,4 @@ armbian-config --cmd IPT001 --- -_Part of Armbian's [Console network tools for measuring load and bandwidth](/User-Guide_Armbian-Software/Netconfig/) software._ +_Part of Armbian's [Console network tools for measuring load and bandwidth](/software/netconfig/) software._ diff --git a/docs/software/jellyfin.md b/docs/software/jellyfin.md index 1790e8227..8de38e7a5 100644 --- a/docs/software/jellyfin.md +++ b/docs/software/jellyfin.md @@ -63,4 +63,4 @@ armbian-config --cmd JMS001 --- -_Part of Armbian's [Media servers, organizers and editors](/User-Guide_Armbian-Software/Media/) software._ +_Part of Armbian's [Media servers, organizers and editors](/software/media/) software._ diff --git a/docs/software/jellyseerr.md b/docs/software/jellyseerr.md index 3d053731c..c306ffa91 100644 --- a/docs/software/jellyseerr.md +++ b/docs/software/jellyseerr.md @@ -42,4 +42,4 @@ armbian-config --cmd JEL001 --- -_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/User-Guide_Armbian-Software/Downloaders/) software._ +_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/software/downloaders/) software._ diff --git a/docs/software/lidarr.md b/docs/software/lidarr.md index 00b59a642..1395c99b1 100644 --- a/docs/software/lidarr.md +++ b/docs/software/lidarr.md @@ -62,4 +62,4 @@ armbian-config --cmd LID001 --- -_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/User-Guide_Armbian-Software/Downloaders/) software._ +_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/software/downloaders/) software._ diff --git a/docs/User-Guide_Armbian-Software/Management.md b/docs/software/management.md similarity index 99% rename from docs/User-Guide_Armbian-Software/Management.md rename to docs/software/management.md index 2d3decbfa..22af47ad9 100644 --- a/docs/User-Guide_Armbian-Software/Management.md +++ b/docs/software/management.md @@ -2,6 +2,7 @@ title: "Management" seo_title: "Management apps for Armbian" description: "Remote File & Management tools for Armbian on ARM64 and x86 single-board computers: Cockpit, Proxmox VE, Homepage, NetBox, apt-cacher-ng, git_cdn, Samba, Webmin." +hub: true comments: true --- # Remote File & Management tools diff --git a/docs/software/mariadb.md b/docs/software/mariadb.md index dd29d95ec..985431524 100644 --- a/docs/software/mariadb.md +++ b/docs/software/mariadb.md @@ -70,4 +70,4 @@ armbian-config --cmd DAT001 --- -_Part of Armbian's [SQL database servers and web interface managers](/User-Guide_Armbian-Software/Database/) software._ +_Part of Armbian's [SQL database servers and web interface managers](/software/database/) software._ diff --git a/docs/User-Guide_Armbian-Software/Media.md b/docs/software/media.md similarity index 99% rename from docs/User-Guide_Armbian-Software/Media.md rename to docs/software/media.md index 094273d28..9231e572a 100644 --- a/docs/User-Guide_Armbian-Software/Media.md +++ b/docs/software/media.md @@ -2,6 +2,7 @@ title: "Media" seo_title: "Media apps for Armbian" description: "Media servers, organizers and editors for Armbian on ARM64 and x86 single-board computers: Emby, Filebrowser, Hastebin, Immich, Jellyfin, Navidrome, Nextcloud, OMV, Owncloud, Synct" +hub: true comments: true --- # Media servers, organizers and editors diff --git a/docs/software/medusa.md b/docs/software/medusa.md index 143708bbe..8878ba169 100644 --- a/docs/software/medusa.md +++ b/docs/software/medusa.md @@ -59,4 +59,4 @@ armbian-config --cmd MDS001 --- -_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/User-Guide_Armbian-Software/Downloaders/) software._ +_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/software/downloaders/) software._ diff --git a/docs/User-Guide_Armbian-Software/Monitoring.md b/docs/software/monitoring.md similarity index 98% rename from docs/User-Guide_Armbian-Software/Monitoring.md rename to docs/software/monitoring.md index ec90365fd..cba91add4 100644 --- a/docs/User-Guide_Armbian-Software/Monitoring.md +++ b/docs/software/monitoring.md @@ -2,6 +2,7 @@ title: "Monitoring" seo_title: "Monitoring apps for Armbian" description: "Real-time monitoring, collecting metrics, up-time status for Armbian on ARM64 and x86 single-board computers: Grafana, NetAlertX, Netdata, Prometheus, Uptime Kuma, Dozzle." +hub: true comments: true --- # Real-time monitoring, collecting metrics, up-time status diff --git a/docs/software/mysql.md b/docs/software/mysql.md index 3f63f31e9..d8a5b2fe2 100644 --- a/docs/software/mysql.md +++ b/docs/software/mysql.md @@ -68,4 +68,4 @@ armbian-config --cmd MYSQL1 --- -_Part of Armbian's [SQL database servers and web interface managers](/User-Guide_Armbian-Software/Database/) software._ +_Part of Armbian's [SQL database servers and web interface managers](/software/database/) software._ diff --git a/docs/software/navidrome.md b/docs/software/navidrome.md index 62aeacb75..746621e53 100644 --- a/docs/software/navidrome.md +++ b/docs/software/navidrome.md @@ -42,4 +42,4 @@ armbian-config --cmd NAV001 --- -_Part of Armbian's [Media servers, organizers and editors](/User-Guide_Armbian-Software/Media/) software._ +_Part of Armbian's [Media servers, organizers and editors](/software/media/) software._ diff --git a/docs/software/netalertx.md b/docs/software/netalertx.md index bc980cfde..b82e87a99 100644 --- a/docs/software/netalertx.md +++ b/docs/software/netalertx.md @@ -74,4 +74,4 @@ armbian-config --cmd NAX001 --- -_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/User-Guide_Armbian-Software/Monitoring/) software._ +_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/software/monitoring/) software._ diff --git a/docs/software/netbox.md b/docs/software/netbox.md index 5a09b51bd..c03155903 100644 --- a/docs/software/netbox.md +++ b/docs/software/netbox.md @@ -22,8 +22,8 @@ comments: true Requirements (installed automatically) -- [Redis](/User-Guide_Armbian-Software/Database/#redis) -- [Postgres SQL](/User-Guide_Armbian-Software/Database/#postgresql) +- [Redis](/software/database/#redis) +- [Postgres SQL](/software/database/#postgresql) Key Features @@ -87,4 +87,4 @@ armbian-config --cmd NBOX01 --- -_Part of Armbian's [Remote File & Management tools](/User-Guide_Armbian-Software/Management/) software._ +_Part of Armbian's [Remote File & Management tools](/software/management/) software._ diff --git a/docs/User-Guide_Armbian-Software/Netconfig.md b/docs/software/netconfig.md similarity index 98% rename from docs/User-Guide_Armbian-Software/Netconfig.md rename to docs/software/netconfig.md index 11910794a..32ba0f6ad 100644 --- a/docs/User-Guide_Armbian-Software/Netconfig.md +++ b/docs/software/netconfig.md @@ -2,6 +2,7 @@ title: "Netconfig" seo_title: "Netconfig apps for Armbian" description: "Console network tools for measuring load and bandwidth for Armbian on ARM64 and x86 single-board computers: avahi-daemon, iperf3, iptraf-ng, nload." +hub: true comments: true --- # Console network tools for measuring load and bandwidth diff --git a/docs/software/netdata.md b/docs/software/netdata.md index d4869fe7b..cd4eef9a1 100644 --- a/docs/software/netdata.md +++ b/docs/software/netdata.md @@ -42,4 +42,4 @@ armbian-config --cmd NTD001 --- -_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/User-Guide_Armbian-Software/Monitoring/) software._ +_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/software/monitoring/) software._ diff --git a/docs/software/nextcloud.md b/docs/software/nextcloud.md index 97b3d3e53..ef69b1839 100644 --- a/docs/software/nextcloud.md +++ b/docs/software/nextcloud.md @@ -62,4 +62,4 @@ armbian-config --cmd NCT001 --- -_Part of Armbian's [Media servers, organizers and editors](/User-Guide_Armbian-Software/Media/) software._ +_Part of Armbian's [Media servers, organizers and editors](/software/media/) software._ diff --git a/docs/software/nload.md b/docs/software/nload.md index cc2baa307..051ac37b3 100644 --- a/docs/software/nload.md +++ b/docs/software/nload.md @@ -39,4 +39,4 @@ armbian-config --cmd NLD001 --- -_Part of Armbian's [Console network tools for measuring load and bandwidth](/User-Guide_Armbian-Software/Netconfig/) software._ +_Part of Armbian's [Console network tools for measuring load and bandwidth](/software/netconfig/) software._ diff --git a/docs/software/octoprint.md b/docs/software/octoprint.md index a09d751f0..54adb2252 100644 --- a/docs/software/octoprint.md +++ b/docs/software/octoprint.md @@ -55,4 +55,4 @@ armbian-config --cmd OCT001 --- -_Part of Armbian's [Tools for printing and 3D printing](/User-Guide_Armbian-Software/Printing/) software._ +_Part of Armbian's [Tools for printing and 3D printing](/software/printing/) software._ diff --git a/docs/software/omv.md b/docs/software/omv.md index c53487ef6..26395c3d8 100644 --- a/docs/software/omv.md +++ b/docs/software/omv.md @@ -86,4 +86,4 @@ armbian-config --cmd OMV001 --- -_Part of Armbian's [Media servers, organizers and editors](/User-Guide_Armbian-Software/Media/) software._ +_Part of Armbian's [Media servers, organizers and editors](/software/media/) software._ diff --git a/docs/software/openhab.md b/docs/software/openhab.md index 19e1ddf04..f0a26ad82 100644 --- a/docs/software/openhab.md +++ b/docs/software/openhab.md @@ -62,4 +62,4 @@ armbian-config --cmd HAB001 --- -_Part of Armbian's [Home Automation for control home appliances](/User-Guide_Armbian-Software/HomeAutomation/) software._ +_Part of Armbian's [Home Automation for control home appliances](/software/home-automation/) software._ diff --git a/docs/software/owncloud.md b/docs/software/owncloud.md index 9a6b17b43..c9043854a 100644 --- a/docs/software/owncloud.md +++ b/docs/software/owncloud.md @@ -62,4 +62,4 @@ armbian-config --cmd OWC001 --- -_Part of Armbian's [Media servers, organizers and editors](/User-Guide_Armbian-Software/Media/) software._ +_Part of Armbian's [Media servers, organizers and editors](/software/media/) software._ diff --git a/docs/software/phpmyadmin.md b/docs/software/phpmyadmin.md index 7ef25b46c..550903e12 100644 --- a/docs/software/phpmyadmin.md +++ b/docs/software/phpmyadmin.md @@ -39,4 +39,4 @@ armbian-config --cmd MYA001 --- -_Part of Armbian's [SQL database servers and web interface managers](/User-Guide_Armbian-Software/Database/) software._ +_Part of Armbian's [SQL database servers and web interface managers](/software/database/) software._ diff --git a/docs/software/pi-hole.md b/docs/software/pi-hole.md index 20583dfd7..0dcf3bd38 100644 --- a/docs/software/pi-hole.md +++ b/docs/software/pi-hole.md @@ -76,4 +76,4 @@ armbian-config --cmd PIH001 --- -_Part of Armbian's [Network-wide ad blockers servers](/User-Guide_Armbian-Software/DNS/) software._ +_Part of Armbian's [Network-wide ad blockers servers](/software/dns/) software._ diff --git a/docs/software/portainer.md b/docs/software/portainer.md index e4f2c8404..5ba2d41e1 100644 --- a/docs/software/portainer.md +++ b/docs/software/portainer.md @@ -48,4 +48,4 @@ armbian-config --cmd POR001 --- -_Part of Armbian's [Docker containerization and KVM virtual machines](/User-Guide_Armbian-Software/Containers/) software._ +_Part of Armbian's [Docker containerization and KVM virtual machines](/software/containers/) software._ diff --git a/docs/software/postgresql.md b/docs/software/postgresql.md index 7fdfe28d2..f2a5e4a1d 100644 --- a/docs/software/postgresql.md +++ b/docs/software/postgresql.md @@ -73,4 +73,4 @@ armbian-config --cmd PGSQL1 --- -_Part of Armbian's [SQL database servers and web interface managers](/User-Guide_Armbian-Software/Database/) software._ +_Part of Armbian's [SQL database servers and web interface managers](/software/database/) software._ diff --git a/docs/User-Guide_Armbian-Software/Printing.md b/docs/software/printing.md similarity index 97% rename from docs/User-Guide_Armbian-Software/Printing.md rename to docs/software/printing.md index 04a7d3e88..122a5324b 100644 --- a/docs/User-Guide_Armbian-Software/Printing.md +++ b/docs/software/printing.md @@ -2,6 +2,7 @@ title: "Printing" seo_title: "Printing apps for Armbian" description: "Tools for printing and 3D printing for Armbian on ARM64 and x86 single-board computers: OctoPrint." +hub: true comments: true --- # Tools for printing and 3D printing diff --git a/docs/software/prometheus.md b/docs/software/prometheus.md index ff7d3f802..7e19fe8de 100644 --- a/docs/software/prometheus.md +++ b/docs/software/prometheus.md @@ -56,4 +56,4 @@ armbian-config --cmd PRO001 --- -_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/User-Guide_Armbian-Software/Monitoring/) software._ +_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/software/monitoring/) software._ diff --git a/docs/software/prowlarr.md b/docs/software/prowlarr.md index 7f82740d7..593834787 100644 --- a/docs/software/prowlarr.md +++ b/docs/software/prowlarr.md @@ -61,4 +61,4 @@ armbian-config --cmd PRW001 --- -_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/User-Guide_Armbian-Software/Downloaders/) software._ +_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/software/downloaders/) software._ diff --git a/docs/software/proxmox-ve.md b/docs/software/proxmox-ve.md index ad9b7503a..b65b1b7fb 100644 --- a/docs/software/proxmox-ve.md +++ b/docs/software/proxmox-ve.md @@ -98,4 +98,4 @@ armbian-config --cmd PVE001 --- -_Part of Armbian's [Remote File & Management tools](/User-Guide_Armbian-Software/Management/) software._ +_Part of Armbian's [Remote File & Management tools](/software/management/) software._ diff --git a/docs/software/qbittorrent.md b/docs/software/qbittorrent.md index 2db166e33..77a3db161 100644 --- a/docs/software/qbittorrent.md +++ b/docs/software/qbittorrent.md @@ -62,4 +62,4 @@ armbian-config --cmd QBT001 --- -_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/User-Guide_Armbian-Software/Downloaders/) software._ +_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/software/downloaders/) software._ diff --git a/docs/software/radarr.md b/docs/software/radarr.md index 7b558c6e6..8e18bfbdf 100644 --- a/docs/software/radarr.md +++ b/docs/software/radarr.md @@ -63,4 +63,4 @@ armbian-config --cmd RAD001 --- -_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/User-Guide_Armbian-Software/Downloaders/) software._ +_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/software/downloaders/) software._ diff --git a/docs/software/redis.md b/docs/software/redis.md index b1b5d27e3..242a46033 100644 --- a/docs/software/redis.md +++ b/docs/software/redis.md @@ -66,4 +66,4 @@ armbian-config --cmd REDIS1 --- -_Part of Armbian's [SQL database servers and web interface managers](/User-Guide_Armbian-Software/Database/) software._ +_Part of Armbian's [SQL database servers and web interface managers](/software/database/) software._ diff --git a/docs/software/rsyncd-server.md b/docs/software/rsyncd-server.md index b98c8f469..fb6929759 100644 --- a/docs/software/rsyncd-server.md +++ b/docs/software/rsyncd-server.md @@ -33,4 +33,4 @@ armbian-config --cmd RSD001 --- -_Part of Armbian's [Armbian infrastructure services](/User-Guide_Armbian-Software/Armbian/) software._ +_Part of Armbian's [Armbian infrastructure services](/software/armbian/) software._ diff --git a/docs/software/sabnzbd.md b/docs/software/sabnzbd.md index 69b959249..466642836 100644 --- a/docs/software/sabnzbd.md +++ b/docs/software/sabnzbd.md @@ -63,4 +63,4 @@ armbian-config --cmd SABN01 --- -_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/User-Guide_Armbian-Software/Downloaders/) software._ +_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/software/downloaders/) software._ diff --git a/docs/software/samba.md b/docs/software/samba.md index 1128301a9..078141fb5 100644 --- a/docs/software/samba.md +++ b/docs/software/samba.md @@ -32,4 +32,4 @@ armbian-config --cmd SMB001 --- -_Part of Armbian's [Remote File & Management tools](/User-Guide_Armbian-Software/Management/) software._ +_Part of Armbian's [Remote File & Management tools](/software/management/) software._ diff --git a/docs/software/sonarr.md b/docs/software/sonarr.md index b575261b0..76a00b98c 100644 --- a/docs/software/sonarr.md +++ b/docs/software/sonarr.md @@ -59,4 +59,4 @@ armbian-config --cmd SON001 --- -_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/User-Guide_Armbian-Software/Downloaders/) software._ +_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/software/downloaders/) software._ diff --git a/docs/software/stirling.md b/docs/software/stirling.md index 335a06c1c..7a2210d61 100644 --- a/docs/software/stirling.md +++ b/docs/software/stirling.md @@ -56,4 +56,4 @@ armbian-config --cmd STR001 --- -_Part of Armbian's [Media servers, organizers and editors](/User-Guide_Armbian-Software/Media/) software._ +_Part of Armbian's [Media servers, organizers and editors](/software/media/) software._ diff --git a/docs/software/swag.md b/docs/software/swag.md index d34dd4072..c134bef2e 100644 --- a/docs/software/swag.md +++ b/docs/software/swag.md @@ -61,4 +61,4 @@ armbian-config --cmd SWAG01 --- -_Part of Armbian's [Web server, LEMP, reverse proxy, Let's Encrypt SSL](/User-Guide_Armbian-Software/WebHosting/) software._ +_Part of Armbian's [Web server, LEMP, reverse proxy, Let's Encrypt SSL](/software/web-hosting/) software._ diff --git a/docs/software/syncthing.md b/docs/software/syncthing.md index 0987f645f..e30270d01 100644 --- a/docs/software/syncthing.md +++ b/docs/software/syncthing.md @@ -62,4 +62,4 @@ armbian-config --cmd STC001 --- -_Part of Armbian's [Media servers, organizers and editors](/User-Guide_Armbian-Software/Media/) software._ +_Part of Armbian's [Media servers, organizers and editors](/software/media/) software._ diff --git a/docs/software/transmission.md b/docs/software/transmission.md index 803326d7c..f15fca070 100644 --- a/docs/software/transmission.md +++ b/docs/software/transmission.md @@ -63,4 +63,4 @@ armbian-config --cmd TRA001 --- -_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/User-Guide_Armbian-Software/Downloaders/) software._ +_Part of Armbian's [Download apps for movies, TV shows, music and subtitles](/software/downloaders/) software._ diff --git a/docs/software/unbound.md b/docs/software/unbound.md index 8a9820408..02a423d01 100644 --- a/docs/software/unbound.md +++ b/docs/software/unbound.md @@ -60,4 +60,4 @@ armbian-config --cmd UNB001 --- -_Part of Armbian's [Network-wide ad blockers servers](/User-Guide_Armbian-Software/DNS/) software._ +_Part of Armbian's [Network-wide ad blockers servers](/software/dns/) software._ diff --git a/docs/software/uptime-kuma.md b/docs/software/uptime-kuma.md index a6cdf89e7..8836ea6e6 100644 --- a/docs/software/uptime-kuma.md +++ b/docs/software/uptime-kuma.md @@ -67,4 +67,4 @@ armbian-config --cmd UPK001 --- -_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/User-Guide_Armbian-Software/Monitoring/) software._ +_Part of Armbian's [Real-time monitoring, collecting metrics, up-time status](/software/monitoring/) software._ diff --git a/docs/User-Guide_Armbian-Software/VPN.md b/docs/software/vpn.md similarity index 98% rename from docs/User-Guide_Armbian-Software/VPN.md rename to docs/software/vpn.md index d8234e72d..6246a2c91 100644 --- a/docs/User-Guide_Armbian-Software/VPN.md +++ b/docs/software/vpn.md @@ -2,6 +2,7 @@ title: "VPN" seo_title: "VPN apps for Armbian" description: "Virtual Private Network tools for Armbian on ARM64 and x86 single-board computers: WireGuard, ZeroTier." +hub: true comments: true --- # Virtual Private Network tools diff --git a/docs/software/wallos.md b/docs/software/wallos.md index dccb91b58..0f1cf4d5b 100644 --- a/docs/software/wallos.md +++ b/docs/software/wallos.md @@ -135,4 +135,4 @@ Small Business --- -_Part of Armbian's [Manage your finances](/User-Guide_Armbian-Software/Finance/) software._ +_Part of Armbian's [Manage your finances](/software/finance/) software._ diff --git a/docs/User-Guide_Armbian-Software/WebHosting.md b/docs/software/web-hosting.md similarity index 97% rename from docs/User-Guide_Armbian-Software/WebHosting.md rename to docs/software/web-hosting.md index aa94be3e5..234acb82a 100644 --- a/docs/User-Guide_Armbian-Software/WebHosting.md +++ b/docs/software/web-hosting.md @@ -2,6 +2,7 @@ title: "Web Hosting" seo_title: "Web Hosting apps for Armbian" description: "Web server, LEMP, reverse proxy, Let's Encrypt SSL for Armbian on ARM64 and x86 single-board computers: SWAG, Ghost." +hub: true comments: true --- # Web server, LEMP, reverse proxy, Let's Encrypt SSL diff --git a/docs/software/webmin.md b/docs/software/webmin.md index b4aec6fa3..52e692d7b 100644 --- a/docs/software/webmin.md +++ b/docs/software/webmin.md @@ -40,4 +40,4 @@ armbian-config --cmd WBM001 --- -_Part of Armbian's [Remote File & Management tools](/User-Guide_Armbian-Software/Management/) software._ +_Part of Armbian's [Remote File & Management tools](/software/management/) software._ diff --git a/docs/software/wireguard.md b/docs/software/wireguard.md index dccc05464..8e63940e8 100644 --- a/docs/software/wireguard.md +++ b/docs/software/wireguard.md @@ -110,4 +110,4 @@ armbian-config --cmd WRG001 --- -_Part of Armbian's [Virtual Private Network tools](/User-Guide_Armbian-Software/VPN/) software._ +_Part of Armbian's [Virtual Private Network tools](/software/vpn/) software._ diff --git a/docs/software/zerotier.md b/docs/software/zerotier.md index 8999235ef..e688b97f9 100644 --- a/docs/software/zerotier.md +++ b/docs/software/zerotier.md @@ -26,4 +26,4 @@ armbian-config --cmd ZTR001 --- -_Part of Armbian's [Virtual Private Network tools](/User-Guide_Armbian-Software/VPN/) software._ +_Part of Armbian's [Virtual Private Network tools](/software/vpn/) software._ diff --git a/mkdocs.yml b/mkdocs.yml index 01b707aa9..f0377b9d3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -14,12 +14,29 @@ repo_name: armbian/documentation exclude_docs: | /README.md -# Software category hub pages (e.g. Monitoring.md) are kept for SEO and the -# existing /User-Guide_Armbian-Software// URLs, but are reached via -# search and the app pages' back-link rather than the nav, so building them -# outside the nav must not warn (matters under `mkdocs build --strict`). +# Software category hub pages (e.g. software/monitoring.md) are kept for SEO, +# but are reached via search and the app pages' back-link rather than the nav, +# so building them outside the nav must not warn (matters under +# `mkdocs build --strict`). The list is regenerated by tools/build-software-nav.py. not_in_nav: | - /User-Guide_Armbian-Software/*.md + # BEGIN software-hubs — generated by tools/build-software-nav.py (do not edit by hand) + /software/armbian.md + /software/backup.md + /software/containers.md + /software/database.md + /software/dev-tools.md + /software/dns.md + /software/downloaders.md + /software/finance.md + /software/home-automation.md + /software/management.md + /software/media.md + /software/monitoring.md + /software/netconfig.md + /software/printing.md + /software/vpn.md + /software/web-hosting.md + # END software-hubs /releases/*.md !/releases/index.md !/releases/release-model.md @@ -87,6 +104,25 @@ plugins: # Emptied legacy software category hubs -> software overview 'User-Guide_Armbian-Software/Desktops.md': 'software/index.md' 'User-Guide_Armbian-Software/Music.md': 'software/index.md' + # The monolithic all-apps dump is gone; each app has its own page now + 'User-Guide_Armbian-Software/Software.md': 'software/index.md' + # Category hubs moved to short /software// URLs + 'User-Guide_Armbian-Software/Armbian.md': 'software/armbian.md' + 'User-Guide_Armbian-Software/Backup.md': 'software/backup.md' + 'User-Guide_Armbian-Software/Containers.md': 'software/containers.md' + 'User-Guide_Armbian-Software/DNS.md': 'software/dns.md' + 'User-Guide_Armbian-Software/Database.md': 'software/database.md' + 'User-Guide_Armbian-Software/DevTools.md': 'software/dev-tools.md' + 'User-Guide_Armbian-Software/Downloaders.md': 'software/downloaders.md' + 'User-Guide_Armbian-Software/Finance.md': 'software/finance.md' + 'User-Guide_Armbian-Software/HomeAutomation.md': 'software/home-automation.md' + 'User-Guide_Armbian-Software/Management.md': 'software/management.md' + 'User-Guide_Armbian-Software/Media.md': 'software/media.md' + 'User-Guide_Armbian-Software/Monitoring.md': 'software/monitoring.md' + 'User-Guide_Armbian-Software/Netconfig.md': 'software/netconfig.md' + 'User-Guide_Armbian-Software/Printing.md': 'software/printing.md' + 'User-Guide_Armbian-Software/VPN.md': 'software/vpn.md' + 'User-Guide_Armbian-Software/WebHosting.md': 'software/web-hosting.md' # Getting Started moved to short /getting-started/ URLs 'User-Guide_Getting-Started.md': 'getting-started/index.md' # armbian-config pages live at /config/; keep every earlier URL working diff --git a/serve-docs-local.sh b/serve-docs-local.sh index 69e88cd45..600718036 100755 --- a/serve-docs-local.sh +++ b/serve-docs-local.sh @@ -16,11 +16,11 @@ CONFIGNG="${CONFIGNG:-$(cd "$DOCS/../configng" && pwd)}" VENV="${VENV:-$DOCS/.venv-docs}" cmd="${1:-serve}" -# Revert exactly what the staging block below writes: the generated hub/config -# pages and images (restore tracked ones, drop untracked ones), and the wholly -# generated docs/software tree. Only touches those paths. +# Revert exactly what the staging block below writes: the generated config pages +# and images (restore tracked ones, drop untracked ones), the regenerated nav in +# mkdocs.yml, and the wholly generated docs/software tree. Only those paths. stage_clean() { - for d in docs/User-Guide_Armbian-Software docs/User-Guide_Armbian-Config docs/images; do + for d in docs/config docs/images mkdocs.yml; do git -C "$DOCS" checkout -- "$d" 2>/dev/null || true # restore tracked files git -C "$DOCS" clean -fdq "$d" 2>/dev/null || true # drop untracked generated files done @@ -53,14 +53,15 @@ echo ">> generating software pages in $CONFIGNG" # 3) stage into the docs tree exactly like pull-from-armbian-config.yml. echo ">> staging generated pages into $DOCS/docs" -mkdir -p "$DOCS/docs/images" "$DOCS/docs/User-Guide_Armbian-Config" \ - "$DOCS/docs/User-Guide_Armbian-Software" "$DOCS/docs/software" +mkdir -p "$DOCS/docs/images" "$DOCS/docs/config" "$DOCS/docs/software" rsync -a "$CONFIGNG/tools/include/images/." "$DOCS/docs/images/" -for p in Localisation Network System; do - rsync -a "$CONFIGNG/docs/$p/$p.md" "$DOCS/docs/User-Guide_Armbian-Config/" +rsync -a "$CONFIGNG/docs/Localisation/Localisation.md" "$DOCS/docs/config/localisation.md" +rsync -a "$CONFIGNG/docs/Network/Network.md" "$DOCS/docs/config/network.md" +for p in Kernel Desktops Storage Access User Updates; do + rsync -a "$CONFIGNG/docs/System/$p.md" "$DOCS/docs/config/$(echo "$p" | tr 'A-Z' 'a-z').md" done -rsync -a --exclude="Software.user.md" "$CONFIGNG/docs/Software/"* "$DOCS/docs/User-Guide_Armbian-Software/" -rsync -a --delete "$CONFIGNG/docs/software/." "$DOCS/docs/software/" +# app pages + their category hubs; index.md here is hand-maintained, not synced +rsync -a --delete --exclude=index.md "$CONFIGNG/docs/software/." "$DOCS/docs/software/" # 3b) rebuild the ARMBIAN SOFTWARE nav from the staged app pages, exactly as the # pull-from-armbian-config workflow does, so the local preview matches CI. diff --git a/tools/build-software-nav.py b/tools/build-software-nav.py index 4acdba75c..7fac0f329 100644 --- a/tools/build-software-nav.py +++ b/tools/build-software-nav.py @@ -1,11 +1,15 @@ #!/usr/bin/env python3 # Rebuild the "ARMBIAN SOFTWARE" nav in mkdocs.yml so each category is a section -# (its hub page as the section index, via navigation.indexes) with the per-app -# pages nested beneath it. App pages and their `category:` come from the configng -# generator (docs/software/.md); this only groups them for the left nav — -# the /software// URLs are unaffected. +# with its per-app pages nested beneath it. App pages and their `category:` come +# from the configng generator (docs/software/.md); this only groups them +# for the left nav — the /software// URLs are unaffected. # -# Idempotent: rewrites only the region between the BEGIN/END markers. Category +# The generator also emits one hub page per category (`hub: true` front-matter, +# e.g. docs/software/web-hosting.md). Those stay out of the nav — their apps are +# already listed there — so this also refreshes the `not_in_nav` list that keeps +# `mkdocs build --strict` quiet about them. +# +# Idempotent: rewrites only the regions between the BEGIN/END markers. Category # labels + order are curated here (rarely change); a new category needs one line. import re import sys @@ -14,12 +18,15 @@ ROOT = Path(__file__).resolve().parent.parent MKDOCS = ROOT / "mkdocs.yml" APPS_DIR = ROOT / "docs" / "software" -HUB_DIR = "User-Guide_Armbian-Software" BEGIN = "# BEGIN software-nav" END = "# END software-nav" IND = " " * 8 # category entries sit 8 spaces in, under 'ARMBIAN SOFTWARE' +HUB_BEGIN = "# BEGIN software-hubs" +HUB_END = "# END software-hubs" +HUB_IND = " " * 2 # not_in_nav is a block scalar indented 2 spaces + # Curated label + order, mapped to the category id used by the hub file name and # the app pages' `category:` field. CATEGORIES = [ @@ -43,29 +50,34 @@ def read_front_matter(md_path): - """Return (title, category) from a page's YAML front-matter, or (None, None).""" + """Return (title, category, is_hub) from a page's YAML front-matter.""" text = md_path.read_text(encoding="utf-8") m = re.match(r"^---\n(.*?)\n---\n", text, re.DOTALL) if not m: - return None, None + return None, None, False fm = m.group(1) title = re.search(r'^title:\s*"?(.*?)"?\s*$', fm, re.MULTILINE) cat = re.search(r'^category:\s*"?(.*?)"?\s*$', fm, re.MULTILINE) + hub = re.search(r'^hub:\s*true\s*$', fm, re.MULTILINE) return (title.group(1) if title else None, - cat.group(1) if cat else None) + cat.group(1) if cat else None, + bool(hub)) def collect_apps(): - """category_id -> sorted list of (title, slug).""" - by_cat = {} + """Return (category_id -> sorted [(title, slug)], sorted list of hub slugs).""" + by_cat, hubs = {}, [] for md in sorted(APPS_DIR.glob("*.md")): - title, cat = read_front_matter(md) + title, cat, is_hub = read_front_matter(md) + if is_hub: + hubs.append(md.stem) + continue if not title or not cat: continue by_cat.setdefault(cat, []).append((title, md.stem)) for cat in by_cat: by_cat[cat].sort(key=lambda t: t[0].lower()) - return by_cat + return by_cat, hubs def yq(s): @@ -83,8 +95,9 @@ def build_block(by_cat): # category that was removed or merged upstream can't linger in the nav. continue # Category is a collapsible toggle with its apps under it. The hub page - # (kept for SEO / the old URL) is intentionally NOT listed here — it is - # redundant with the app list and is marked not_in_nav in mkdocs.yml. + # (kept for SEO and as the app pages' back-link target) is intentionally + # NOT listed here — it is redundant with the app list, and is written to + # not_in_nav instead. lines.append(f"{IND}- {yq(label)}:") for title, slug in apps: lines.append(f"{IND} - {yq(title)}: {yq(f'software/{slug}.md')}") @@ -102,25 +115,34 @@ def build_block(by_cat): return "\n".join(lines) +def replace_region(text, begin, end, ind, block): + """Swap the body between two marker lines, leaving the markers in place. + Matches whole lines lazily, so an already-empty region is filled too.""" + pattern = (rf"({re.escape(ind)}{re.escape(begin)}[^\n]*\n)" + rf"(?:.*\n)*?({re.escape(ind)}{re.escape(end)})") + body = block + "\n" if block else "" + return re.sub(pattern, lambda m: m.group(1) + body + m.group(2), text, count=1) + + def main(): text = MKDOCS.read_text(encoding="utf-8") - if BEGIN not in text or END not in text: - sys.exit(f"markers {BEGIN!r}/{END!r} not found in {MKDOCS}") - by_cat = collect_apps() + for begin, end in ((BEGIN, END), (HUB_BEGIN, HUB_END)): + if begin not in text or end not in text: + sys.exit(f"markers {begin!r}/{end!r} not found in {MKDOCS}") + by_cat, hubs = collect_apps() if not by_cat: # No per-app pages present (e.g. the configng generator that emits # docs/software/.md with title/category hasn't run/synced yet). # Leave the existing nav block untouched rather than blanking it. print(f"software-nav: no app pages found under {APPS_DIR} — nav left unchanged.") return - block = build_block(by_cat) - new = re.sub( - rf"({re.escape(IND)}{re.escape(BEGIN)}[^\n]*\n).*?(\n{re.escape(IND)}{re.escape(END)})", - lambda m: m.group(1) + block + m.group(2), - text, count=1, flags=re.DOTALL) - MKDOCS.write_text(new, encoding="utf-8") + text = replace_region(text, BEGIN, END, IND, build_block(by_cat)) + hub_block = "\n".join(f"{HUB_IND}/software/{slug}.md" for slug in sorted(hubs)) + text = replace_region(text, HUB_BEGIN, HUB_END, HUB_IND, hub_block) + MKDOCS.write_text(text, encoding="utf-8") total = sum(len(v) for v in by_cat.values()) - print(f"software-nav: {total} app pages grouped under {len(CATEGORIES)} categories.") + print(f"software-nav: {total} app pages grouped under {len(CATEGORIES)} categories, " + f"{len(hubs)} category hubs kept out of the nav.") if __name__ == "__main__":