All apps · 0 apps
Alarm-HUB
Docker app from 2CrAzYTV's Repository
Overview
Readme
View on GitHubAlarm Hub
Alarm Hub is a standalone multi-user alarm service. Manual alarms are the core feature; WebComm is an optional integration.
Features
- User registration and login
- Multiple manual alarms per user
- Repeating weekdays or one-time alarms
- Per-user timezone
- Optional WebComm sync via personal integration token
- Optional direct WebComm import
- API endpoint for upcoming alarms (for iOS Shortcuts / Android automation)
- Embedded PostgreSQL by default
- Optional external PostgreSQL for advanced setups
- Docker deployment behind a reverse proxy
Configuration principle
Alarm Hub does not use a .env file. Runtime configuration should be provided directly through the Docker/Unraid template wherever possible.
For a normal installation, only the Alarm-HUB container is required. PostgreSQL is included in the image and stores its persistent database below /config/postgres.
Database modes
Embedded PostgreSQL (default)
DATABASE_MODE=embedded
This is the recommended mode for normal Unraid installations. Alarm-HUB starts its own PostgreSQL instance inside the same container. The database only listens on a local Unix socket and is not exposed on the Docker network.
Persist /config on the host, for example:
/mnt/user/appdata/alarm-hub -> /config
A container update or Force Update therefore does not delete the database.
If no SECRET_KEY is supplied in embedded mode, Alarm-HUB automatically generates a strong random key on first start and stores it persistently as /config/secret_key. This avoids extra setup while keeping sessions and encrypted direct-WebComm passwords stable across container updates.
External PostgreSQL (advanced)
DATABASE_MODE=external
DATABASE_URL=postgresql+psycopg://user:password@host:5432/database
Use this only if you deliberately want to manage PostgreSQL separately. Existing installations that already define DATABASE_URL but do not yet define DATABASE_MODE continue to use their external PostgreSQL database for backward compatibility.
A legacy/advanced Unraid PostgreSQL template is retained as documentation at:
unraid/alarm-hub-postgres.xml.example
It deliberately does not use the .xml extension so Community Apps does not publish it as a separate application. Rename or copy it to an .xml file only for a manual advanced deployment.
Docker
The application image listens on port 8080.
Recommended settings for a new local Unraid installation:
DATABASE_MODE=embedded
DEFAULT_TIMEZONE=Europe/Berlin
SESSION_HTTPS_ONLY=false
SECRET_KEY is optional in embedded mode because it is generated persistently under /config if omitted. Advanced/external installations may continue supplying their own existing SECRET_KEY; changing an established key invalidates sessions and prevents decryption of previously saved direct-WebComm passwords.
For public deployment, place Alarm Hub behind a reverse proxy with a valid public HTTPS certificate and set SESSION_HTTPS_ONLY=true.
WebComm integration
A logged-in user can create an integration token on the Integrations page. WebComm Calendar Sync can then POST future shifts to /api/v1/integrations/webcomm/shifts with Authorization: Bearer <token>.
Alternatively, users without WebComm Calendar Sync can configure the direct WebComm import inside Alarm-HUB. Direct-import credentials are stored per user, with the password encrypted before it is written to PostgreSQL.
The user's WebComm offsets are configurable and may contain any number of values, e.g. 120,90,45 minutes before shift start.
Unraid
For a new standard setup, install only Alarm-HUB. The normal user only needs the WebUI port and /config appdata path; PostgreSQL and the application secret are handled automatically. No second PostgreSQL container and no .env file are required.
The canonical Community Apps template is maintained in the central 2CrAzYTV repository:
2CrAzYTV/unraid-community-apps/templates/alarm-hub.xml
A synchronized project-local template remains at templates/alarm-hub.xml for source review and validation. An older/manual template is retained as unraid/alarm-hub.xml.example for reference without being published as a separate Community Apps application. For existing or advanced external-database deployments, set DATABASE_MODE=external and keep the existing DATABASE_URL and SECRET_KEY.
Community Apps submission
Community Apps metadata for Alarm-HUB is published from the central repository 2CrAzYTV/unraid-community-apps together with the other 2CrAzYTV applications. This repository remains the source-of-truth for the Alarm-HUB application code, README, support and container build.
- The canonical CA template is
2CrAzYTV/unraid-community-apps/templates/alarm-hub.xml. templates/alarm-hub.xmlin this repository is a project-local mirror whoseTemplateURLpoints to the central canonical file.icon.pngandicon.svgremain the Alarm-HUB application artwork.LICENSEprovides the OSI-approved MIT license..github/workflows/community-apps.ymlvalidates the local mirror and its reference to the central template.- Files below
unraid/use the.xml.examplesuffix so they remain documentation/manual examples and are not published as additional Community Apps entries.
Before publishing changes, run Validate and Scan in the Unraid Community Apps submission portal against the central repository. The portal is the source of truth for final acceptance and may report requirements that are newer than the repository checks.
Support
Please use GitHub Issues for bugs and support requests. Do not post passwords, API tokens, database credentials, session secrets, or other private data in issues or logs.
License
Alarm-HUB is licensed under the MIT License. See LICENSE.
Install Alarm-HUB on Unraid in a few clicks.
Find Alarm-HUB 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.
Requirements
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/2crazytv/alarm-hub:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8080]/- Network
bridge- Shell
bash- Privileged
- false
- Extra Params
--restart unless-stopped
Template configuration
HTTP port for the Alarm-HUB WebUI.
- Target
- 8080
- Default
- 8080
- Value
- 8080
Persistent Alarm-HUB data, including the embedded PostgreSQL database and generated application secret.
- Target
- /config
- Default
- /mnt/user/appdata/alarm-hub
- Value
- /mnt/user/appdata/alarm-hub
embedded = integrated PostgreSQL database (recommended); external = use your own PostgreSQL server.
- Target
- DATABASE_MODE
- Default
- embedded
- Value
- embedded
Only required for DATABASE_MODE=external. Example: postgresql+psycopg://user:password@host:5432/database
- Target
- DATABASE_URL
Optional in embedded mode: when left empty Alarm-HUB creates and persists a strong secret under /config. Set and keep a fixed value for external/managed deployments if desired.
- Target
- SECRET_KEY
Default timezone for new users.
- Target
- DEFAULT_TIMEZONE
- Default
- Europe/Berlin
- Value
- Europe/Berlin
Default false for direct local HTTP access in Unraid. Set true when Alarm-HUB is published through an HTTPS reverse proxy.
- Target
- SESSION_HTTPS_ONLY
- Default
- false
- Value
- false