Luna is a self-hosted calendar frontend and aggregator: one web app that pulls all of your calendars together into a single view. It speaks CalDAV, plain iCal feeds and the Google Calendar API, so a CalDAV account from your mail provider, a Nextcloud instance and a read-only holiday feed can sit side by side without you opening three tabs. Different accounts are separate sources inside one interface, and Luna keeps its own user management on top.
The second half of the idea is customisation. Themes, fonts and the layout of the calendar grid are all configurable, with a set of built-in colour schemes and a documented theme format for anything that is not included.
docker-compose.yml that ships in the repository.Luna is a three-container stack: a Svelte frontend on port 8080, an API backend on port 3000 and PostgreSQL 16. The repository includes a sample docker-compose.yml with the expected environment — PUBLIC_URL for the address users visit, API_URL for the frontend’s link to the backend, and the usual DB_* credentials — plus bind mounts for the database and for Luna’s data directory. There are no first-party Docker images yet: run make in the repository root with Docker and Make installed to build them, and point the compose file at those builds. Community-built images are published on Docker Hub, but they carry no warranty from the author.
The compose file is an example, not a production recipe: it publishes the frontend port directly and uses the placeholder passwords luna/luna for the database, so put it behind a TLS-terminating reverse proxy and change the credentials before it is reachable from anywhere.
Luna is honest about being unfinished. The author describes it as nearing a usable 1.0.0 with no release date set, and the deployment guide warns to keep frequent backups and to assume the database may have to be recreated on updates while breaking changes are still landing. Recurring-event support and small-screen layouts are named as the notable gaps. Read that warning as literal: it is an ambitious side project by a single developer, suitable for testing and personal use, not for a calendar you cannot afford to rebuild.
No licence file is published in the repository and the project states no licence, so it is not open source in the formal sense — by default the code stays under the author’s copyright with no grant to reuse or redistribute it. Running it for yourself is one thing; depending on it, forking it or shipping it needs the author’s permission first. If an unencumbered licence matters, use one of the alternatives below instead.
People who already self-host their mail or calendars and want a single, good-looking frontend over several CalDAV and ICS sources, and who are comfortable editing a compose file and building images themselves. Anyone who needs a stable, licensed, supported calendar server today should look elsewhere — the CalDAV servers below are mature, and Luna is the view on top rather than a replacement for the storage.