This guide gets you from zero to a running Open Schedule instance in under 10 minutes.
| Tool | Minimum version | Notes |
|---|---|---|
| Java | 25 | Eclipse Temurin recommended |
| Maven | 3.9+ | Or use the included ./mvnw wrapper |
| Docker | 24+ | With Docker Compose v2 |
| Git | any |
git clone https://github.com/alphnology/open-schedule.git
cd open-schedulecp .env.dist .envFor local development the defaults in .env.dist work out of the box — Mailpit handles email and MinIO handles storage with known credentials. You do not need to edit .env to start developing.
See configuration.md for the full variable reference.
docker compose up -dThis starts:
- PostgreSQL 18 on port
5433 - Mailpit on ports
1026(SMTP) and8026(web UI) - MinIO on port
9000(S3 API) - MinIO Console on port
9001
Wait ~10 seconds for PostgreSQL to be ready. Check status with:
docker compose ps./mvnw spring-boot:run -PdevVaadin hot-reload is active. Frontend and backend changes are reflected without restarting.
Open the project in IntelliJ IDEA or VS Code and run Application.java with the dev Spring profile active:
-Dspring.profiles.active=dev
| URL | Description |
|---|---|
http://localhost:51675 |
Application |
http://localhost:8026 |
Mailpit — all outbound emails appear here |
http://localhost:9000 |
MinIO S3 API |
http://localhost:9001 |
MinIO Console |
The dev profile loads seed data from src/main/resources/db/migration/dev/V9.9.9__dev_data.sql.
Check that file for the default admin username and password. It is safe to use these locally; never deploy dev seed data to production.
# Stop all services
docker compose down
# Stop services and remove volumes (full reset)
docker compose down -v
# View application logs (when running via docker-compose-dev.yml)
docker compose logs -f app-open-schedule
# Build production JAR
./mvnw clean package -DskipTests -Pproduction
# Run all tests
./mvnw test- Configuration reference — all environment variables
- Email setup — configure email providers
- Storage setup — configure object storage
- Deployment guide — deploy to production