portabase-agent

portabase-agent

Docker app from MikaPST's Repository

Overview

Portabase Agent is the lightweight execution agent for Portabase. It connects to the Portabase Dashboard and executes database backup and restore tasks for configured database connections. An EDGE_KEY generated by the Portabase Dashboard is required to authenticate the agent. SECURITY: Keep EDGE_KEY confidential. Anyone possessing this key may be able to authenticate as the associated agent. NETWORK: The agent does not require an exposed web port. Ensure that it can reach the Portabase Dashboard over HTTPS and the database servers it is configured to manage. For Docker databases, use a shared Docker network or an appropriate host-reachable database address. Do not expose database ports publicly solely to make them accessible to this agent.
MikaPST Unraid Community Apps

MikaPST — Unraid Community Apps

Docker application templates for Unraid

Unraid GitHub License

Self-hosted applications and integrations for the Unraid community.


Table of Contents


Applications

This repository provides Docker application templates designed for Unraid Community Applications.

The goal is to provide simple, documented and maintainable templates for useful self-hosted applications and integrations.

Available applications

Application Description Category License
Sablier Sablier Docker-aware middleware for automatically starting and stopping containers based on incoming requests Docker / FinOps Apache-2.0
DockDash DockDash Docker dashboard for monitoring containers, resources, image updates and GitHub release notes Docker / Monitoring AGPL-3.0
Portabase Agent Portabase Agent Agent connecting databases to Portabase for backup and restore operations Backup / Database See upstream project
Web-Check Web-Check Open-source OSINT tool for analysing websites and domains Security / OSINT MIT

Sablier

Sablier
Docker-aware middleware for automatically starting and stopping containers
🌐 sablierapp.dev

Sablier is a lightweight Docker-aware middleware that can automatically start and stop containers based on incoming requests.

It is designed to work with reverse proxies such as Traefik, helping reduce resource consumption by stopping applications that are not being used.

  • Docker image: sablierapp/sablier:1.15.0
  • Default HTTP/API port: 10000
  • Docker provider: enabled
  • Reverse proxy integration: Traefik, Caddy and other compatible proxies
  • License: Apache-2.0

Installing Sablier on Unraid

The templates/sablier.xml file is intended for use with Unraid Community Applications.

The template configures:

  • Sablier Docker image
  • Docker socket access
  • Sablier configuration file
  • Optional custom themes directory
  • HTTP port 10000
  • Traefik labels
  • start --provider.name=docker startup command

Docker network

The template uses the Docker network:

traefik

by default, because this is a common configuration when Sablier is used with Traefik.

If you use another reverse proxy, you can change the Docker network to the network used by your reverse proxy.

Sablier itself is not limited to Traefik.


Traefik integration

Sablier can be integrated with Traefik through the official Sablier Traefik plugin.

1. Enable the Sablier plugin in Traefik

Add the following configuration to your traefik.yml:

# =========================
# PLUGINS
# =========================
experimental:
  plugins:
    sablier:
      moduleName: github.com/sablierapp/sablier-traefik-plugin
      version: v1.3.0

Restart Traefik after changing this configuration.

The plugin used in this example is Sablier Traefik Plugin v1.3.0.

Official Traefik plugin page:

https://plugins.traefik.io/plugins/69104ac3b7d4dd76110a1a09/sablier

2. Create a Sablier middleware

Once the plugin is enabled, configure a middleware in your Traefik dynamic configuration, for example in middlewares.yml.

Example:

# =========================
# SABLIER APP
# =========================
sablier-bentopdf:
  plugin:
    sablier:
      sablierUrl: "http://sablier:10000"
      group: "bentopdf"
      sessionDuration: 5m
      ignoreUserAgent: "kuma"
      dynamic:
        displayName: "BentoPDF"
        showDetails: true
        theme: ghost_fr
        refreshFrequency: 10s

Configuration explained

Parameter Description
sablierUrl URL used by the Traefik plugin to communicate with Sablier
group Sablier group associated with the application
sessionDuration How long the application remains active after being requested
ignoreUserAgent Optional user-agent to ignore
displayName Name displayed by the dynamic Sablier page
showDetails Displays additional information on the Sablier page
theme Theme used by the Sablier dynamic page
refreshFrequency Frequency used to refresh the Sablier page

The sablierUrl assumes that the Sablier container is reachable as sablier on the same Docker network as Traefik.


Activating Sablier on an application

Once the middleware has been created, the application that should be managed by Sablier needs the appropriate Traefik and Sablier labels.

For example, for BentoPDF:

labels:
  - "traefik.http.routers.bentopdf.middlewares=sablier-bentopdf@file"
  - "sablier.enable=true"
  - "sablier.group=bentopdf"
  - "traefik.docker.allownonrunning=true"

The important elements are:

traefik.http.routers.bentopdf.middlewares=sablier-bentopdf@file

This attaches the previously created Traefik middleware to the application's router.

sablier.enable=true

This enables Sablier management for the container.

sablier.group=bentopdf

This associates the container with the same Sablier group configured in the middleware.

traefik.docker.allownonrunning=true

This allows Traefik to consider the container even when it is stopped, which is important for Sablier's start-on-request behavior.

Replace bentopdf with the name/group appropriate for your application.


Custom Sablier themes

Sablier supports custom themes for its dynamic pages.

The Unraid template provides an optional directory:

/mnt/user/appdata/sablier/themes

which is mounted inside the container as:

/etc/sablier/themes

For example, custom themes can be stored locally as:

/mnt/user/appdata/sablier/themes/ghost_fr.html
/mnt/user/appdata/sablier/themes/hacker-terminal_fr.html
/mnt/user/appdata/sablier/themes/shuffle_fr.html

They can then be referenced from the Traefik middleware configuration:

dynamic:
  theme: ghost_fr

or:

dynamic:
  theme: hacker-terminal_fr

This makes it possible to customize the Sablier page displayed while an application is starting.

Sablier Theme Editor

Sablier provides an official online theme editor that makes it easy to create, customize and preview Sablier themes.

Official Sablier Theme Editor:

https://editor.sablierapp.dev/

Once your theme is created, you can export it and place the resulting .html file in the Sablier themes directory:

/mnt/user/appdata/sablier/themes/

You can then reference the theme from your Traefik middleware configuration using the filename without the .html extension.

For example:

ghost_fr.html

becomes:

dynamic:
  theme: ghost_fr

Sablier architecture

A typical Traefik + Sablier setup looks like this:

                         Internet
                             │
                             ā–¼
                         Traefik
                             │
                 Sablier Traefik Plugin
                             │
                             ā–¼
                          Sablier
                     ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”“ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
                     │ Docker API    │
                     ā–¼               │
              Docker containers     │
                     │               │
          ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”    │
          ā–¼          ā–¼          ā–¼    │
       BentoPDF   Shelfmark   Caesium │

Traefik receives the request, the Sablier middleware checks the application state, and Sablier can start the associated container when necessary.


Sablier useful links


DockDash

DockDash
Container and service monitoring dashboard
🌐 github.com/dougmaitelli/DockDash

DockDash is a self-hosted dashboard for visualizing Docker containers and network services.

It automatically discovers Docker services, monitors their health and resources, detects available container image updates and displays the corresponding GitHub release notes.

DockDash is particularly useful for keeping track of versioned Docker images without having to manually visit the GitHub repository of every application.

  • Docker image: ghcr.io/dougmaitelli/dockdash:latest
  • Default container port: 3001
  • Unraid host port: 4001
  • Docker network: bridge
  • Docker provider: Docker socket
  • Update monitoring: semantic-version aware
  • GitHub release notes: supported
  • Authentication: not enforced by default
  • License: AGPL-3.0

Installing DockDash on Unraid

The templates/dockdash.xml file is intended for use with Unraid Community Applications.

The template configures:

  • DockDash Docker image
  • Standard Docker bridge network
  • Docker socket access
  • Persistent application data
  • HTTP port 4001 → 3001
  • Update monitoring
  • Network discovery
  • Health monitoring
  • Resource monitoring

The default configuration stores DockDash application data in:

/mnt/user/appdata/dockdash

and mounts it inside the container as:

/app/data

The Docker socket is mounted as:

/var/run/docker.sock

āš ļø Security warning

DockDash does not enforce authentication by default.

This is particularly important because DockDash requires access to the Docker socket and provides powerful Docker management features.

Depending on the configuration, DockDash can:

  • start, stop and restart containers
  • execute commands inside containers
  • access container filesystems
  • view Docker logs
  • monitor resources
  • manage Docker services

Access to the Docker socket can effectively provide root-level control over the Docker host.

Therefore:

Do not expose DockDash directly to the Internet or to an untrusted network without an authentication layer.

For a typical self-hosted installation, protect DockDash using either its built-in OIDC authentication or an authenticated reverse proxy.


Authentication

DockDash supports two main approaches for protecting the interface.

Option 1 — Built-in OIDC

DockDash supports OpenID Connect authentication with providers such as:

  • Authentik
  • Authelia
  • Keycloak
  • Google
  • Other compatible OIDC providers

OIDC can be configured using environment variables such as:

OIDC_ISSUER
OIDC_CLIENT_ID
OIDC_CLIENT_SECRET
SESSION_SECRET

Refer to the official DockDash documentation for the complete OIDC configuration.

Option 2 — Reverse proxy authentication

DockDash can also be placed behind a reverse proxy and protected by an external authentication layer.

Examples include:

  • Traefik + Authentik
  • Traefik + Authelia
  • Caddy + authentication middleware
  • Nginx + authentication
  • oauth2-proxy
  • TinyAuth
  • Other trusted authentication solutions

This approach can be particularly convenient in an existing self-hosted infrastructure where authentication is already centralized.


DockDash configuration

The Unraid template exposes the most useful DockDash configuration parameters.

Basic configuration

Parameter Default Description
HTTP Port 4001 → 3001 Port used to access the DockDash web interface
DockDash Data /mnt/user/appdata/dockdash Persistent application data
Docker Socket /var/run/docker.sock Docker API access

Advanced configuration

Variable Default Description
LOG_LEVEL info DockDash logging level
NETWORK_CIDRS 192.168.0.1/24 Network ranges used for network discovery
HEALTH_CHECK_INTERVAL 30000 Health check interval in milliseconds
RESOURCE_MONITOR_INTERVAL 5000 Resource monitoring interval in milliseconds
UPDATE_CHECK_INTERVAL 3600000 Docker image update check interval in milliseconds

The NETWORK_CIDRS value should be adapted to the local network if necessary.

For example:

192.168.0.0/24

or another CIDR corresponding to your local network.


DockDash update monitoring

One of DockDash's main features is its semantic-version-aware Docker image update monitoring.

Instead of simply reporting that a Docker image has changed, DockDash can compare the version actually running with newer compatible versions published by the registry.

For example:

Running:
1.25.0

Available:
1.26.0

DockDash can report:

1.25.0 → 1.26.0

It can then resolve the source repository and retrieve the corresponding GitHub release notes.

This makes it possible to see:

Application
Current version → Available version
          │
          ā–¼
      GitHub Release
          │
          ā–¼
       Changelog

This is particularly useful when managing a large number of self-hosted applications.

Instead of manually checking each GitHub repository, DockDash provides the update information and associated release notes directly from the dashboard.

DockDash also supports digest-based detection for floating tags such as:

latest
stable
dev

DockDash architecture

A basic Unraid installation looks like this:

                         Unraid
                            │
                            ā–¼
                    ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
                    │    DockDash   │
                    │    :3001      │
                    ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
                            │
                     Docker Socket
                            │
                            ā–¼
                     Docker Engine
                            │
        ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”¼ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
        ā–¼                   ā–¼                   ā–¼
    Sablier             Traefik            Vaultwarden
        │                   │                   │
        ā–¼                   ā–¼                   ā–¼
      Other              Other               Other
    containers          containers          containers

DockDash reads Docker information through:

/var/run/docker.sock

and provides a centralized view of the Docker environment.

It can monitor:

  • container health
  • CPU and memory usage
  • network and disk I/O
  • Docker image versions
  • available updates
  • GitHub changelogs
  • Docker logs
  • container filesystem
  • container terminal
  • service topology

Docker socket hardening

For advanced deployments, the Docker socket can be exposed through a restricted Docker socket proxy rather than mounting the host socket directly.

A solution such as:

tecnativa/docker-socket-proxy

can be used to limit the Docker API operations available to DockDash.

This is an advanced configuration and is not required for the standard Unraid template.


DockDash useful links


Portabase Agent

Portabase Agent
Database backup and restore agent for Portabase
🌐 portabase.io

Portabase Agent is a background service that connects a Portabase Dashboard to database servers and executes backup and restore tasks configured through the dashboard.

  • Docker image: portabase/agent:latest
  • Container type: background service
  • Web interface: none
  • Published ports: none required by the template
  • Authentication: EDGE_KEY generated by the Portabase Dashboard
  • Timezone default: Europe/Paris
  • Polling interval default: 5 seconds

Installing Portabase Agent on Unraid

The templates/portabase-agent.xml file is intended for use with Unraid Community Applications.

The template configures:

  • Portabase Agent Docker image
  • Required EDGE_KEY environment variable, masked in the Unraid interface
  • Timezone configuration
  • Optional task polling interval
  • Persistent agent data directory
  • Optional agent configuration directory
  • Standard Docker bridge network by default
  • No published web port and no WebUI, because the agent runs in the background

Generate an Edge Key for the agent in your Portabase Dashboard and enter it during installation. Treat this key as a secret: do not publish it in screenshots, XML templates, source control or logs shared publicly.

Portabase Agent configuration

The Unraid template exposes the following parameters:

Parameter Default Description
EDGE_KEY Required Edge Key generated by Portabase Dashboard for this agent. The value is masked in the Unraid form.
TZ Europe/Paris Timezone used by the container.
POLLING 5 Interval between agent task checks, in seconds.
Agent Data /mnt/user/appdata/portabase/agent/data Persistent directory mounted inside the container as /data.
Agent Configuration /mnt/user/appdata/portabase/agent/config Optional directory mounted inside the container as /config. Dashboard-defined connections may not require local configuration files.

The template uses Docker's bridge network by default. You can change the network in Unraid if your deployment requires the agent to communicate directly with other containers on a custom Docker network.

Network and database access

The agent must be able to reach:

  1. The Portabase Dashboard URL encoded in its Edge Key, typically over HTTPS.
  2. Each database server configured in Portabase.

If a database runs in another Docker container, ensure that the agent can reach it through a shared Docker network or a suitable host-reachable address and published database port. Do not expose database services to the public Internet just to make them reachable by the agent.

Use dedicated database credentials with only the permissions needed for the backup and restore operations you intend to perform. The exact permissions depend on the database engine, the backup/restore method and the restore options. Test restoration against a separate test database before relying on the setup for production data.

The agent does not need a public HTTP port or a reverse-proxy route. Keep EDGE_KEY confidential and regenerate it from Portabase if it is exposed or compromised.

Portabase Agent useful links


Web-Check


Comprehensive, on-demand open source intelligence for any website
🌐 web-check.xyz

Web-Check is an open-source OSINT tool for analysing websites and domains.

It provides a broad range of checks covering IP addresses, SSL certificates, DNS records, HTTP headers, cookies, redirects, open ports, traceroute, DNS security, performance, trackers, associated hostnames and other website intelligence.

  • Docker image: lissy93/web-check:latest
  • Default container port: 3000
  • Docker network: bridge
  • API keys: optional
  • License: MIT

Installing Web-Check on Unraid

The templates/web-check.xml file is intended for use with Unraid Community Applications.

The template configures:

  • Web-Check Docker image
  • Standard Docker bridge network
  • HTTP port 3000
  • Optional API keys
  • Optional API and scan configuration

Web-Check does not require a persistent application volume for its standard deployment.

Web-Check configuration

The template exposes optional API keys and advanced configuration parameters for users who want to enable additional checks or adapt Web-Check to their environment.

Parameter Default Description
HTTP Port 3000 Port used to access the Web-Check web interface
GOOGLE_CLOUD_API_KEY — Optional Google Cloud API key
SHODAN_API_KEY — Optional Shodan API key
WHO_API_KEY — Optional WhoAPI key
SECURITY_TRAILS_API_KEY — Optional SecurityTrails API key
URL_SCAN_API_KEY — Optional URLScan API key
CLOUDMERSIVE_API_KEY — Optional Cloudmersive API key
TRANCO_USERNAME — Optional Tranco username
TRANCO_API_KEY — Optional Tranco API key
TORRENT_IP_API_KEY — Optional Torrent IP API key
BUILT_WITH_API_KEY — Optional BuiltWith API key
API_ENABLE_RATE_LIMIT true Enable API rate limiting
PUBLIC_API_TIMEOUT_LIMIT 25000 Maximum API request timeout in milliseconds
API_CORS_ORIGIN — Optional API CORS origin
API_DISABLED_CHECKS — Optional comma-separated list of checks to disable
API_ENABLED_CHECKS — Optional comma-separated list of checks to enable exclusively
API_BLOCKED_HOSTS — Optional hosts or networks that must not be scanned
TRUST_PROXY — Optional reverse proxy trust configuration

Web-Check and external services

Web-Check can use optional third-party APIs to enrich its results. API keys are not required for the core functionality.

If API keys are configured, review the relevant provider's terms and data handling before using them in a production environment.

Web-Check useful links


Repository structure

.
ā”œā”€ā”€ ca_profile.xml
ā”œā”€ā”€ README.md
ā”œā”€ā”€ LICENSE
ā”œā”€ā”€ icons/
│   ā”œā”€ā”€ icon.png
│   ā”œā”€ā”€ icon-sablier.png
│   ā”œā”€ā”€ icon-dockdash.png
│   ā”œā”€ā”€ icon-portabase.png
│   └── icon-web-check.png
└── templates/
    ā”œā”€ā”€ sablier.xml
    ā”œā”€ā”€ dockdash.xml
    ā”œā”€ā”€ portabase-agent.xml
    └── web-check.xml

Each Docker application has its own XML template under:

templates/

For example:

templates/sablier.xml
templates/dockdash.xml
templates/portabase-agent.xml

Application icons and the repository logo are stored in the icons/ directory and referenced directly by their corresponding templates and README entries.


Support

For issues concerning an application itself, please refer to the official project repository.

Sablier

https://github.com/sablierapp/sablier

DockDash

https://github.com/dougmaitelli/DockDash

Web-Check

https://github.com/Lissy93/web-check

Portabase Agent

https://portabase.io/

For issues specifically related to the Unraid templates maintained in this repository, please open an issue in this GitHub repository.


License

This repository contains Unraid application templates maintained by MikaPST.

Each application remains subject to its own upstream license:

  • Sablier: Apache License 2.0
  • DockDash: GNU Affero General Public License v3.0
  • Web-Check: MIT License
  • Portabase Agent: refer to the upstream project for its current license terms.

The repository itself is distributed under the license specified in LICENSE.

Requirements


Ā Ā Ā Ā A Portabase Dashboard instance and a valid EDGE_KEY generated
Ā Ā Ā Ā for the agent. Network access to the Dashboard and configured
Ā Ā Ā Ā database servers is required.

Download Statistics

177,019
Total Downloads

Related apps

Explore more like this

Explore all

Details

Repository
portabase/agent:latest
Last Updated2026-09-26
First Seen2026-10-11

Runtime arguments

Network
bridge
Shell
sh
Privileged
false

Template configuration

Edge KeyVariable

Required: paste the Edge Key generated by your Portabase Dashboard for this agent. Keep this value secret.

Target
EDGE_KEY
TimezoneVariable

Timezone used by Portabase Agent. Default: Europe/Paris.

Target
TZ
Default
Europe/Paris
Polling IntervalVariable

Interval between agent task checks, in seconds. Default: 5.

Target
POLLING
Default
5
Agent DataPathrw

Persistent directory used by Portabase Agent for local data and agent-related files.

Target
/data
Default
/mnt/user/appdata/portabase/agent/data
Agent ConfigurationPathrw

Optional directory for agent-side database configuration files. Dashboard-defined database connections may not require local configuration files.

Target
/config
Default
/mnt/user/appdata/portabase/agent/config