d4rk notes
Projects

Echo Reminder

Self-hosted reminder service with a Python web app, persistent data volume, health checks, timezone-aware runtime config, and Docker Compose deployment.

dami2026-06-02pythonremindersdockerself-hosted

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.