Containerized App Management
Containerized App Management
Section titled “Containerized App Management”Summary
Section titled “Summary”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
Requirements
Section titled “Requirements”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
Setup Wizard
Section titled “Setup Wizard”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.
Step 1: Storage Selection
Section titled “Step 1: Storage Selection”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/testcommand to verify storage performance - External storage highly recommended for optimal performance
Step 2: Bridge Configuration
Section titled “Step 2: Bridge Configuration”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
Step 3: IP Configuration
Section titled “Step 3: IP Configuration”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
Completion
Section titled “Completion”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.
Configuration
Section titled “Configuration”App configuration is accessible through /app/settings and provides simplified setup compared to manual Container configuration.
Storage Configuration
Section titled “Storage Configuration”| Property | Description |
|---|---|
disk | Storage 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/testcommand to verify storage performance
Network Configuration
Section titled “Network Configuration”| Property | Description |
|---|---|
router-ip | Network IP address for RouterOS device (auto-detected, can be overridden) |
assumed-lan-bridge | Network bridge interface for LAN connectivity (auto-configured) |
Port forwarding is automatically configured for application web interfaces.
Registry and Updates
Section titled “Registry and Updates”| Property | Description |
|---|---|
registry-mirrors | Container registry mirror configuration (defaults to Docker Hub) |
auto-update | Enable automatic application updates (yes/no) |
Storage Paths
Section titled “Storage Paths”| Property | Description |
|---|---|
assumed-media-path | Default media storage path (typically raid1/media or disk1/media) |
assumed-download-path | Download directory path (typically raid1/media/downloads) |
User Interface
Section titled “User Interface”| Property | Description |
|---|---|
show-in-webfig | Display application access buttons in RouterOS WebFig interface |
Application Management
Section titled “Application Management”Applications are managed through the /app interface, providing status monitoring and lifecycle control similar to the underlying /container system.
/app> printFlags: X - DISABLED, R - RUNNINGColumns: NAME, UI-URL, MEMORY-CURRENT, APP-SIZE, DATA-SIZE, CATEGORY, DESCRIPTIONStatus Indicators and Metadata
Section titled “Status Indicators and Metadata”| Flag | Description |
|---|---|
| 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 |
| Column | Description |
|---|---|
| UI-URL | Direct web interface access URL when application is running |
| MEMORY-CURRENT | Real-time memory consumption in MiB (only when running) |
| APP-SIZE | Container image storage consumption in MiB (shows space used when downloaded) |
| DATA-SIZE | Application persistent data size in KiB/MiB (shows configuration and user data) |
| CATEGORY | Application functional classification |
| DESCRIPTION | Application functionality description |
Deployment Process
Section titled “Deployment Process”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:
- Selection: Choose application from catalog via CLI or WebFig
- Download: Automatic container image download and extraction
- Network Setup: Automatic veth interface and bridge configuration
- Port Forwarding: Automatic firewall rule creation for web access
- Startup: Container initialization with pre-configured settings
- Access: UI-URL becomes available for immediate web interface access
Cleanup Command
Section titled “Cleanup Command”The cleanup command provides complete application removal, including all associated data. This operation is destructive and irreversible:
/app> cleanup piholeApp data will be lost, continue? [y/N]:Cleanup Process:
- Stops the running container
- Removes all application data and configuration files
- Deletes container image from storage
- Resets application to uninstalled state (empty APP-SIZE and DATA-SIZE)
- Removes network configuration specific to the application
Available Applications by Category
Section titled “Available Applications by Category”| Category | Applications |
|---|---|
| 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 |
Tips and Best Practices
Section titled “Tips and Best Practices”- 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