All apps · 0 apps
DayFront
Docker app from MaplePotion's Repository
Overview
Readme
View on GitHub
DayFront
The open-source CalDAV frontend.
Own your day. Own your data.

DayFront is a modern, self-hosted web interface for calendars and tasks stored on an existing CalDAV server.
DayFront uses standard CalDAV and WebDAV discovery and connects to standards-compliant CalDAV servers through the caldav configuration.
Status: DayFront 1.0 is stable and ready for self-hosted deployment. Compatibility reports for different CalDAV servers are welcome.
Features
- Month, week, day, and agenda calendar views
- Multiple CalDAV calendars with visibility controls and colors
- Create, edit, and safely delete CalDAV calendars
- Toggleable, read-only external iCalendar (
.ics) subscriptions - Timed, all-day, multi-day, and recurring events
- Series and single-occurrence recurrence editing
- Dated and undated CalDAV tasks
- Recurring tasks, subtasks, priorities, and completion workflows
- Light and dark themes
- Docker, Compose, and Unraid deployment support
CalDAV implementations vary in optional features and edge-case behavior. Compatibility reports and fixes for different servers are welcome.
Security boundary
DayFront stores CalDAV credentials only on its backend. It does not currently provide its own user authentication. Keep it on a trusted network or place it behind an authenticating HTTPS reverse proxy before exposing it externally. See the security guide.
Local development
Requirements:
- Node.js 24 or newer
- pnpm 10.14.0
- An accessible CalDAV server
pnpm install --frozen-lockfile
cp config.example.yaml config.yaml
pnpm dev
Edit config.yaml with the CalDAV URL and credentials. The web application is available at http://localhost:5173 during development.
Run the complete local verification suite with:
pnpm verify
Container deployment
The stable image is available for AMD64 and ARM64 hosts:
docker pull ghcr.io/erik-a-smith/dayfront:latest
Alternatively, copy config.example.yaml to config.yaml, configure the CalDAV connection, and build locally:
docker compose up -d --build dayfront
See the deployment guide for Docker, Compose, Unraid, timezone, health-check, and reverse-proxy configuration.
License
DayFront is available under the MIT License.
Media gallery
Install DayFront on Unraid in a few clicks.
Find DayFront 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/erik-a-smith/dayfront:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8080]/- Network
bridge- Shell
sh- Privileged
- false
- Extra Params
--security-opt no-new-privileges=true
Template configuration
DayFront HTTP port. Put this behind HTTPS and authentication when exposed outside a trusted LAN.
- Target
- 8080
- Default
- 8080
- Value
- 8080
Full HTTP or HTTPS URL of the CalDAV server. This environment value overrides caldav.url in config.yaml.
- Target
- DAYFRONT_CALDAV_URL
Username used to authenticate with the CalDAV server. This environment value overrides caldav.username in config.yaml.
- Target
- DAYFRONT_CALDAV_USERNAME
Password or application token used to authenticate with the CalDAV server. Stored in the local Unraid Docker template and hidden in the form. This environment value overrides caldav.password in config.yaml.
- Target
- DAYFRONT_CALDAV_PASSWORD
System timezone used for container logs and runtime behavior, for example UTC or America/Toronto.
- Target
- TZ
- Default
- UTC
- Value
- UTC
Timezone used to display and interpret calendar values. Use local for each browser's timezone, UTC, or an IANA name such as America/Toronto.
- Target
- DAYFRONT_CALENDAR_TIMEZONE
- Default
- local
- Value
- local
Set true only when DayFront is directly behind a trusted proxy that overwrites forwarded headers.
- Target
- DAYFRONT_SERVER_TRUST_PROXY
- Default
- false
- Value
- false
Optional directory containing config.yaml for advanced settings and external calendar subscriptions. Environment fields above take precedence. Mounted read-only because DayFront never modifies it.
- Target
- /config
- Default
- /mnt/user/appdata/dayfront
- Value
- /mnt/user/appdata/dayfront