Skip to content

Containerized App Management

The App menu (/app) provides a catalog of deployable applications that can be deployed in a couple of clicks. Each application can consist of one or multiple pre-configured containers, and the necessary RouterOS configuration such as firewall rules and address translation is applied automatically. This catalog is prepared and maintained by MikroTik, but the container images are sourced from multiple registries such as Docker Hub, GCR, and Quay.

The configuration parameters can be edited before enabling an application, and the applied YAML file can always be viewed.

Sub-menu: /app Packages required: container

The App system inherits the same requirements as the Container package:

  • Architecture Support: ARM64 and x86 architectures
  • Container Package: Must be installed on the RouterOS device
  • Device Mode: Container mode must be enabled (requires physical access and device reset)
  • External Storage: Highly recommended for optimal performance
  • Memory Requirements: Adequate RAM for container operations (16MB SPI flash devices require external storage for images)
  • Architecture Limitations: Devices with EN7562CT CPU (like hEX Refresh) are not supported

The App menu includes a setup wizard accessible via the “Setup” button in the graphical user interface (GUI) or by running /app setup. This wizard automates all the networking, storage, and registry setup that would otherwise require multiple manual steps.

Choose the storage disk for application installation. The system automatically detects available formatted disks (nvme1, usb1, disk1, etc.). If no suitable disk appears, it must be formatted with ext4 or btrfs and mounted via the /disk menu.

Requirements:

  • Minimum 100MB/s sequential read/write speed recommended
  • 10K random IOPS recommended
  • Use /disk/test command to verify storage performance
  • External storage highly recommended for optimal performance

Select the LAN bridge interface for container networking. This enables automatic port forwarding and application autodiscovery on the local network. The wizard automatically configures:

  • Virtual ethernet (veth) interfaces
  • Adding the veth interface to the configured bridge
  • NAT rules for outbound connectivity

Specify the router IP address for application access. The system auto-detects the primary IP but allows manual override for complex network configurations. This IP is used for:

  • Application user interface (UI) URL generation
  • Automatic port forwarding rules
  • WebFig integration links

After completing the setup wizard, the App system is ready for immediate use. Applications can be enabled directly through the interface and will automatically handle all underlying container configuration.

App configuration is accessible through /app/settings and provides simplified setup compared to manual Container configuration.

PropertyDescription
diskStorage device for application installation (auto-detected - could be nvme1, usb1, disk1, etc.)

Performance Requirements:

  • Minimum 100MB/s sequential read/write speed recommended
  • 10K random IOPS recommended
  • Filesystem: ext4 or btrfs (must be formatted and mounted)
  • Use /disk/test command to verify storage performance
PropertyDescription
router-ipNetwork IP address for RouterOS device (auto-detected, can be overridden)
assumed-lan-bridgeNetwork bridge interface for LAN connectivity (auto-configured)

Port forwarding is automatically configured for application web interfaces.

PropertyDescription
registry-mirrorsContainer registry mirror configuration (defaults to Docker Hub)
auto-updateEnable automatic application updates (yes/no)
PropertyDescription
assumed-media-pathDefault media storage path (typically raid1/media or disk1/media)
assumed-download-pathDownload directory path (typically raid1/media/downloads)
PropertyDescription
show-in-webfigDisplay application access buttons in RouterOS WebFig interface

Applications are managed through the /app interface, providing status monitoring and lifecycle control similar to the underlying /container system.

Terminal window
/app> print
Flags: X - DISABLED, R - RUNNING
Columns: NAME, UI-URL, MEMORY-CURRENT, APP-SIZE, DATA-SIZE, CATEGORY, DESCRIPTION
FlagDescription
X (DISABLED)Can indicate two states: not downloaded/installed (APP-SIZE and DATA-SIZE will be empty), or downloaded but disabled (APP-SIZE and DATA-SIZE show storage usage)
R (RUNNING)Application actively running and accessible
ColumnDescription
UI-URLDirect web interface access URL when application is running
MEMORY-CURRENTReal-time memory consumption in MiB (only when running)
APP-SIZEContainer image storage consumption in MiB (shows space used when downloaded)
DATA-SIZEApplication persistent data size in KiB/MiB (shows configuration and user data)
CATEGORYApplication functional classification
DESCRIPTIONApplication functionality description

Unlike manual Container deployment which requires multiple configuration steps (veth interfaces, bridge setup, environment variables, mounts, and firewall rules), App deployment automates the entire process:

  1. Selection: Choose application from catalog via CLI or WebFig
  2. Download: Automatic container image download and extraction
  3. Network Setup: Automatic veth interface and bridge configuration
  4. Port Forwarding: Automatic firewall rule creation for web access
  5. Startup: Container initialization with pre-configured settings
  6. Access: UI-URL becomes available for immediate web interface access

The cleanup command provides complete application removal, including all associated data. This operation is destructive and irreversible:

Terminal window
/app> cleanup pihole
App data will be lost, continue? [y/N]:

Cleanup Process:

  1. Stops the running container
  2. Removes all application data and configuration files
  3. Deletes container image from storage
  4. Resets application to uninstalled state (empty APP-SIZE and DATA-SIZE)
  5. Removes network configuration specific to the application
CategoryApplications
Productivity (14)adventurelog, babybuddy, convertx, docmost, excalidraw, fossil, hedgedoc, kimai, memos, partdb, wallabag, warracker, webtop, wordpress
Media (7)immich, jellyfin, lidarr, plex, radarr, sonarr, transmission
Media-Management (4)jackett, mediamanager, nzbget, prowlarr
Development (5)code-server, forgejo, gitea, gitlab, sonatype-nexus
Networking (9)caddy, chr, cloudflared, firefox, goaway, pihole, pmacct-netflow, technitium, upsnap
Monitoring (13)grafana, influxdb, librenms, librespeed, netbox, ntfy, rabbitmq, smokeping, snipeit, speedketchup, uptime-kuma, victoria-metrics, zabbix
Communication (5)cinny, conduit, element, redlib, roundcube
File-Management (7)backrest, copyparty, filegator, minio, nextcloud, restic-server, syncthing
Database/Search (4)elasticsearch, nocodb, searxng, solr
Automation (2)n8n, nodered
Home-Automation (1)home-assistant
Messaging (1)mosquitto
Video/AI (2)frigate, viseron
Radio (1)openwebrx
AI (1)openwebui
  • Storage: Use external storage (USB/SATA/NVMe) for better performance and capacity
  • Memory: Monitor application memory usage through /app print
  • Updates: Enable auto-update for security and feature updates
  • Networking: Applications automatically handle port forwarding and URL generation
  • Data Persistence: Application data is stored in configured storage paths and survives application restarts