Modern conference schedule management — open source, self-hostable, production-ready.
Open Schedule is a free, self-hostable web application for managing conference and event agendas. Built with Java 25, Spring Boot 4, and Vaadin 25, it gives organizers a powerful admin interface and attendees a clean, interactive schedule experience — all in a single deployable JAR.
Originally built for JconfDominicana 2025, it is now a general-purpose platform for any event format.
Quick look: sessions, speakers, rooms, tracks, live ratings, favorites, news, QR codes, vCards, PWA support, S3-compatible photo storage, and multi-provider email configurable from environment variables and an admin UI.
| Category | Features |
|---|---|
| Admin | Session CRUD, speaker management, room & track organization, tag system, attendee tracking, news/announcements, mail settings |
| Public | Interactive schedule, speaker profiles, session ratings, favorites, QR share, vCard download |
| Infrastructure | PostgreSQL, Flyway migrations, S3-compatible storage (MinIO / AWS S3 / SeaweedFS), multi-provider email with admin-managed runtime settings |
| Platform | Docker deployment, Traefik reverse proxy, Let's Encrypt SSL, PWA, dark mode |
| Layer | Technology |
|---|---|
| Language | Java 25 |
| Framework | Spring Boot 4.x |
| UI | Vaadin 25 (server-side) |
| Database | PostgreSQL 15 + Flyway |
| Storage | MinIO (default dev) via S3-compatible client |
| Jakarta Mail · Postal HTTP API | |
| Proxy | Traefik v3 + Let's Encrypt |
| Container | Docker + Docker Compose |
git clone https://github.com/alphnology/open-schedule.git
cd open-schedule
cp .env.dist .env
# Edit .env — set DB_PASSWORD, EMAIL_*, STORAGE_*, EVENT_WEBSITE at minimum
docker compose -f docker-compose-dev.yml up -dOpen http://localhost:51675
git clone https://github.com/alphnology/open-schedule.git
cd open-schedule
cp .env.dist .env # Uses Mailpit + MinIO defaults — no edits needed for dev
# Start infrastructure services
docker compose up -d
# Run the application (hot reload enabled)
./mvnw spring-boot:run -PdevService URLs:
| Service | URL |
|---|---|
| Application | http://localhost:51675 |
| Mailpit (email catcher) | http://localhost:8025 |
| MinIO S3 API | http://localhost:9000 |
| MinIO Console | http://localhost:9001 |
| Guide | Description |
|---|---|
| Getting Started | Local dev setup, prerequisites, IDE workflow |
| Configuration | All environment variables with defaults and examples |
| Email Setup | SMTP, SendGrid, Mailjet, Postal — provider configuration guide plus admin UI workflow |
| Storage Setup | MinIO, AWS S3, SeaweedFS — object storage configuration |
| Deployment | Production deployment with Docker Compose and Traefik |
| Architecture | System design, layers, data model, security |
| Contributing | How to contribute, code style, PR workflow |
| Troubleshooting | Common issues and solutions |
All configuration is done through environment variables. Copy .env.dist to .env and fill in your values.
# Minimum required for production
DB_PASSWORD=your-secure-password
STORAGE_ENDPOINT=http://your-minio:9000
EMAIL_PROVIDER_TYPE=SENDGRID
EMAIL_SMTP_HOST=smtp.sendgrid.net
EMAIL_SMTP_PASSWORD=SG.your-api-key
[email protected]
EVENT_WEBSITE=https://yourconference.com
APP_URL=https://schedule.yourconference.comSee docs/configuration.md for the full reference.
We welcome contributions of all kinds — bug reports, feature requests, documentation improvements, and code.
- Fork the repository
- Create a feature branch:
git checkout -b feat/your-feature - Commit with Conventional Commits:
git commit -m "feat: add session export" - Push and open a Pull Request against
main
See docs/contributing.md for the full guide including setup, code style, and review expectations.
MIT — see LICENSE for details.
Built and maintained by Alphnology

