# luna

> Luna is a self-hosted, open-source calendar frontend that aggregates CalDAV, iCal, and Google Calendar into one web app with customizable themes.

- **Category:** Calendar & Contacts
- **Open source:** oss
- **Languages:** Typescript, Go, Svelte
- **Platforms:** Docker Compose, Linux
- **Tags:** PostgreSQL, Calendar, Google Calendar, Caldav, Aggregator, Bun, Go, Front end, Themes, Dark mode, Self Hosted, Ical

## Description

Luna is a self-hosted calendar aggregator and frontend that consolidates multiple calendar sources — CalDAV servers, iCal files, and Google Calendar — into one web application. It supports user management with registration and login, customizable themes and fonts with many built-in options, and a dark mode. The project is nearing a 1.0.0 release but is not yet officially released; the developer notes that recurring event support and mobile screen size support are still incomplete. Deployment is via Docker Compose (building images locally with make) or baremetal using bun, Go, and PostgreSQL 16+. No first-party Docker images are published yet, though community images exist. The backend requires PostgreSQL and stores data with encryption. Authentication is built-in username/password with JWT tokens; OAuth 2.0 is supported for connecting to calendar sources, not for user login. The API uses bearer tokens or cookies. There is no LDAP, OIDC, SAML, or 2FA support yet — these are listed as future plans.

## Links

- [Homepage](https://github.com/Opisek/luna)
- [GitHub Repository](https://github.com/Opisek/luna)
- [Development Roadmap](https://todo.opisek.net/share/dvEazOyRLEYThqxohVosnqKskYLyoZ4nS8rQ63G1/auth?view=280)
- [Deployment Guide](https://github.com/Opisek/luna/blob/main/documentation/deployment.md)
- [Security & Privacy](https://github.com/Opisek/luna/blob/main/documentation/security.md)
- [API Documentation](https://github.com/Opisek/luna/blob/main/documentation/api.md)

---
Source: https://selfhost.directory/project/luna