Skip to content

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

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.