Skip to content

Setup

Docker (sqlite)

services:
  echolog:
    image: cr.jdbnet.co.uk/public/echolog:latest
    container_name: echolog
    restart: unless-stopped
    ports:
      - "5000:5000"
    volumes:
      - echolog-data:/data
    environment:
      - DB_TYPE=sqlite
      - SQLITE_DB=/data/echolog.db
      - SECRET_KEY=change-me
      - TZ=Europe/London
      - LOGIN_ENABLED=false
      # Uncomment below to enable login protection
      # - LOGIN_ENABLED=true
      # - LOGIN_USERNAME=admin
      # - LOGIN_PASSWORD=change-me

volumes:
  echolog-data:

Docker (mariadb)

services:
  mysql:
    image: mariadb:latest
    container_name: echolog-mysql
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=root_password
      - MYSQL_DATABASE=echolog
      - MYSQL_USER=echolog
      - MYSQL_PASSWORD=echolog_password
    volumes:
      - mysql-data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost"]
      timeout: 20s
      retries: 10

  echolog:
    image: cr.jdbnet.co.uk/public/echolog:latest
    container_name: echolog
    restart: unless-stopped
    ports:
      - "5000:5000"
    depends_on:
      mysql:
        condition: service_healthy
    environment:
      - DB_TYPE=mysql
      - MYSQL_HOST=mysql
      - MYSQL_USER=echolog
      - MYSQL_PASSWORD=echolog_password
      - MYSQL_DATABASE=echolog
      - SECRET_KEY=change-me
      - TZ=Europe/London
      - LOGIN_ENABLED=false
      # Uncomment below to enable login protection
      # - LOGIN_ENABLED=true
      # - LOGIN_USERNAME=admin
      # - LOGIN_PASSWORD=change-me

volumes:
  mysql-data:

Kubernetes

apiVersion: apps/v1
kind: Deployment
metadata:
  name: echolog
  namespace: echolog
spec:
  replicas: 1
  selector:
    matchLabels:
      app: echolog
  template:
    metadata:
      labels:
        app: echolog
    spec:
      containers:
        - name: echolog
          image: cr.jdbnet.co.uk/public/echolog:latest
          imagePullPolicy: Always
          ports:
            - containerPort: 5000
              name: "echolog"
          env:
            - name: MYSQL_HOST
              value: "mysqlhost"
            - name: MYSQL_USER
              value: "username"
            - name: MYSQL_PASSWORD
              value: "password"
            - name: MYSQL_DATABASE
              value: "database"
            - name: SECRET_KEY
              value: "change-me"
            - name: TZ
              value: "Europe/London"
---
apiVersion: v1
kind: Service
metadata:
  name: echolog-ingress-service
  namespace: echolog
spec:
  selector:
    app: echolog
  ports:
    - protocol: TCP
      port: 80
      targetPort: 5000
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: echolog-ingress
  namespace: echolog
spec:
  rules:
  - host: echolog.jdb143.uk
    http:
      paths:
      - pathType: Prefix
        path: "/"
        backend:
          service:
            name: echolog-ingress-service
            port:
              number: 80