domain-watchdog

domain-watchdog

Docker app from DevlinDelFuego's Repository

Overview

Domain Watchdog monitors domain names using RDAP, tracks their history, and helps you acquire them when they expire.

Requires an existing PostgreSQL and Redis container on the same Docker network.

Also deploy the domain-watchdog-worker container.

Before starting, create the database:
docker exec -it YOUR_POSTGRES_CONTAINER psql -U YOUR_USER -c "CREATE DATABASE domainwatchdog;"

Install domain-watchdog on Unraid in a few clicks.

Find domain-watchdog in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open Apps on Unraid Find an app Click Install

Requirements

PostgreSQL container | Redis container | Both on the same Docker network | Also install domain-watchdog-worker

Download Statistics

27,444
Total Downloads

Details

Repository
maelgangloff/domain-watchdog:latest
Last Updated2026-04-25
First Seen2026-06-02

Runtime arguments

Web UI
http://[IP]:[PORT:80]/
Network
bridge
Shell
sh
Privileged
false
Extra Params
--restart=unless-stopped

Template configuration

Web UI PortPorttcp

Port to access the Domain Watchdog web interface.

Target
80
Default
8080
Value
8080
Caddy DataPathrw

Internal Caddy state storage.

Target
/data
Default
/mnt/user/appdata/domain-watchdog/caddy/data
Value
/mnt/user/appdata/domain-watchdog/caddy/data
Caddy ConfigPathrw

Internal Caddy configuration storage.

Target
/config
Default
/mnt/user/appdata/domain-watchdog/caddy/config
Value
/mnt/user/appdata/domain-watchdog/caddy/config
Public ContentPathrw

User-uploaded public content. Create a home.md file here to customize the landing page.

Target
/app/public/content
Default
/mnt/user/appdata/domain-watchdog/public/content
Value
/mnt/user/appdata/domain-watchdog/public/content
JWT PassphraseVariable

Passphrase used to encrypt JWT keypair. Generate with: openssl rand -hex 32 — If changing this on an existing install, regenerate keys with: docker exec domain-watchdog php /app/bin/console lexik:jwt:generate-keypair --overwrite

Target
JWT_PASSPHRASE
App EnvironmentVariable

Leave as prod.

Target
APP_ENV
Default
prod
Value
prod
App SecretVariable

Random secret key. Generate with: openssl rand -hex 32

Target
APP_SECRET
Secure CookiesVariable

Set to true if behind a reverse proxy with SSL. Set to false for plain HTTP direct access.

Target
HTTP_SECURE_COOKIE
Default
true
Value
true
Server NameVariable

Internal Caddy binding. Leave as :80.

Target
SERVER_NAME
Default
:80
Value
:80
Outgoing IPVariable

Your server's outgoing public IP address. Required for some domain connectors/registrars.

Target
OUTGOING_IP
Enable RegistrationVariable

Allow new users to register. Set to false to lock down the instance.

Target
REGISTRATION_ENABLED
Default
true
Value
true
Verify Email on RegistrationVariable

Require email verification on signup. Requires a working Mailer DSN.

Target
REGISTRATION_VERIFY_EMAIL
Default
false
Value
false
Database URLVariable

Full PostgreSQL connection string. Format: postgresql://USER:PASSWORD@CONTAINER_NAME:PORT/DATABASE?serverVersion=VERSION&charset=utf8

Target
DATABASE_URL
Default
postgresql://app:password@postgresql:5432/domainwatchdog?serverVersion=16&charset=utf8
Value
postgresql://app:password@postgresql:5432/domainwatchdog?serverVersion=16&charset=utf8
Redis Async DSNVariable

Redis connection for async messages. Format: redis://CONTAINER_NAME:PORT/messages?lazy=1

Target
MESSENGER_ASYNC_TRANSPORT_DSN
Default
redis://redis:6379/messages?lazy=1
Value
redis://redis:6379/messages?lazy=1
Redis RDAP Low DSNVariable

Redis connection for low-priority RDAP messages.

Target
MESSENGER_RDAP_LOW_TRANSPORT_DSN
Default
redis://redis:6379/messages-rdap-low?lazy=1
Value
redis://redis:6379/messages-rdap-low?lazy=1
Redis RDAP High DSNVariable

Redis connection for high-priority RDAP messages.

Target
MESSENGER_RDAP_HIGH_TRANSPORT_DSN
Default
redis://redis:6379/messages-rdap-high?lazy=1
Value
redis://redis:6379/messages-rdap-high?lazy=1
Redis Lock DSNVariable

Redis connection for distributed locking. Format: redis://CONTAINER_NAME:PORT

Target
LOCK_DSN
Default
redis://redis:6379
Value
redis://redis:6379
Mailer DSNVariable

SMTP connection for email alerts. Example: smtp://user:pass@smtp.example.com:587 — Leave as null://null to disable.

Target
MAILER_DSN
Default
null://null
Value
null://null
Mailer Sender NameVariable

Display name for outgoing notification emails.

Target
MAILER_SENDER_NAME
Default
Domain Watchdog
Value
Domain Watchdog
Mailer Sender EmailVariable

Sender address for outgoing notification emails.

Target
MAILER_SENDER_EMAIL
Default
notifications@example.com
Value
notifications@example.com
OAuth Client IDVariable

OAuth2/OIDC client ID. Leave blank to disable SSO.

Target
OAUTH_CLIENT_ID
OAuth Client SecretVariable

OAuth2/OIDC client secret.

Target
OAUTH_CLIENT_SECRET
OAuth Authorization URLVariable

OAuth2 authorization endpoint URL.

Target
OAUTH_AUTHORIZATION_URL
OAuth Token URLVariable

OAuth2 token endpoint URL.

Target
OAUTH_TOKEN_URL
OAuth UserInfo URLVariable

OAuth2 userinfo endpoint URL.

Target
OAUTH_USERINFO_URL
OAuth ScopeVariable

OAuth2 scopes to request. Example: openid profile email

Target
OAUTH_SCOPE
SSO Auto RedirectVariable

Automatically redirect to SSO login instead of showing the local login form.

Target
SSO_AUTO_REDIRECT
Default
false
Value
false