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