Echo Reminder
Self-hosted reminder service with a Python web app, persistent data volume, health checks, timezone-aware runtime config, and Docker Compose deployment.
Status
live
Difficulty
intermediate
Time Required
20m
Last Tested
2026-06-01
Overview
Echo Reminder is a self-hosted reminder app packaged as a Python service and deployed through Docker Compose.
The project is built around a simple operational goal: keep reminders available as a small always-on service, with persistent data mounted outside the container and a health check that proves the app is still responding.
What It Does
- Runs a Python reminder service in a container
- Publishes the app on host port 1980
- Stores runtime data under the mounted echo-data directory
- Reads environment settings from .env
- Uses Europe/Dublin as the configured runtime timezone
- Exposes a /health endpoint for container health checks
- Keeps deployment reproducible through a Compose file and prebuilt image tag
Architecture
The Compose service is named echo and runs the ghcr.io/dhaevyd/echo-reminder image. The container listens internally on port 8080, while the host exposes it on port 1980.
The app joins the shared proxy network, mounts ./echo-data into /data, and uses a Python one-liner health check to call http://127.0.0.1:8080/health from inside the container.
Why It Matters
Reminder apps are only useful when they are boringly reliable. Echo keeps the deployment small: one app container, one data mount, one health check, one clear host port, and a timezone-aware environment.
Current Status
The project has Compose deployment, persistent storage, health checking, and documentation notes for reminder UX improvements. The next useful documentation step is a user-facing guide that explains reminder creation, notification paths, data backup, and restore behavior.