Getting Started
Get JDB-NET Calendar up and running in minutes with Docker Compose. This guide provides everything you need for a complete setup including database and notifications.
Quick Start
The fastest way to get JDB-NET Calendar running is with Docker Compose. We'll set up:
- JDB-NET Calendar - The main application
- MariaDB - Database for storing events and tasks
- Gotify - Push notification server (optional but recommended)
Prerequisites
Make sure you have the following installed:
- Docker (version 20.10 or higher)
- Docker Compose (version 2.0 or higher)
Complete Installation
Option 1: Full Setup (Recommended)
This setup includes JDB-NET Calendar, MariaDB database, and Gotify notifications:
version: '3.8'
services:
# MariaDB Database
mariadb:
image: mariadb:10.11
container_name: jdbnet-calendar-db
restart: always
environment:
- MYSQL_ROOT_PASSWORD=your-root-password
- MYSQL_DATABASE=calendar_db
- MYSQL_USER=calendar_user
- MYSQL_PASSWORD=your-database-password
volumes:
- mariadb_data:/var/lib/mysql
networks:
- calendar-network
# Gotify Notification Server
gotify:
image: gotify/server:latest
container_name: jdbnet-calendar-gotify
restart: always
ports:
- "8080:80"
environment:
- GOTIFY_DEFAULTUSER_PASS=your-gotify-admin-password
volumes:
- gotify_data:/app/data
networks:
- calendar-network
# JDB-NET Calendar Application
calendar:
image: docker.jdbnet.co.uk/public/calendar:latest
container_name: jdbnet-calendar
ports:
- "80:5000"
restart: always
depends_on:
- mariadb
- gotify
environment:
# Required Configuration
- SECRET_KEY=your-very-secret-key-change-this
- DB_HOST=mariadb
- DB_PORT=3306
- DB_USER=calendar_user
- DB_PASSWORD=your-database-password
- DB_NAME=calendar_db
# Optional Gotify Configuration
- GOTIFY_ENABLED=true
- GOTIFY_URL=http://gotify
- GOTIFY_TOKEN=your-gotify-app-token
networks:
- calendar-network
volumes:
mariadb_data:
gotify_data:
networks:
calendar-network:
driver: bridge
Option 2: Calendar Only (Existing Database)
If you already have a MySQL/MariaDB database:
version: '3.8'
services:
calendar:
image: docker.jdbnet.co.uk/public/calendar:latest
container_name: jdbnet-calendar
ports:
- "80:5000"
restart: always
environment:
- SECRET_KEY=your-very-secret-key-change-this
- DB_HOST=your-database-host
- DB_PORT=3306
- DB_USER=your-database-username
- DB_PASSWORD=your-database-password
- DB_NAME=calendar_db
# Optional Gotify Configuration
- GOTIFY_ENABLED=false
Option 3: Database Only
If you just need a MariaDB database:
version: '3.8'
services:
mariadb:
image: mariadb:10.11
container_name: jdbnet-calendar-db
restart: always
ports:
- "3306:3306"
environment:
- MYSQL_ROOT_PASSWORD=your-root-password
- MYSQL_DATABASE=calendar_db
- MYSQL_USER=calendar_user
- MYSQL_PASSWORD=your-database-password
volumes:
- mariadb_data:/var/lib/mysql
volumes:
mariadb_data:
Start Services
# Start all services
docker compose up -d
# Check status
docker compose ps
# View logs
docker compose logs -f calendar
Congratulations! 🎉 You now have JDB-NET Calendar running with a complete setup including database and notifications.