add Container Koito

This commit is contained in:
Kevin Heyer 2025-06-15 20:22:55 +02:00
parent d34893d8a8
commit 680badad92
7 changed files with 81 additions and 0 deletions

View file

@ -0,0 +1,4 @@
container_koito_version: latest
container_koito_domain: music.heyer.systems
container_koito_directory: /opt/docker/koito
container_koito_db_password: "super_secret_db_password"

View file

@ -0,0 +1,27 @@
---
- name: Ensure data directories exist
ansible.builtin.file:
path: "{{ container_koito_directory }}/data/{{ item }}"
state: directory
mode: '0755'
loop:
- "db"
- "koito"
become: false
- name: Deploy Docker Compose and .env files
ansible.builtin.template:
src: "{{ item.src }}"
dest: "{{ container_koito_directory }}/{{ item.dest }}"
mode: '0644'
loop:
- { src: 'docker-compose.yml.j2', dest: 'docker-compose.yml' }
- { src: '.env.j2', dest: '.env' }
become: false
- name: Start Container
community.docker.docker_compose_v2:
project_src: "{{ container_koito_directory }}"
pull: always
docker_host: "unix:///run/user/1000/docker.sock"
become: false

View file

@ -0,0 +1,3 @@
KOITO_VERSION={{ container_koito_version }}
KOITO_DOMAIN={{ container_koito_domain }}
KOITO_DB_PASSWORD={{ container_koito_db_password}}

View file

@ -0,0 +1,47 @@
---
services:
koito:
image: gabehf/koito:${KOITO_VERSION}
container_name: koito
depends_on:
- db
networks:
- traefik
- koito
environment:
- KOITO_DATABASE_URL=postgres://postgres:${KOITO_DB_PASSWORD}@db:5432/koitodb?sslmode=disable
- KOITO_ALLOWED_HOSTS=${KOITO_DOMAIN}
volumes:
- ./data/koito:/etc/koito
labels:
- "traefik.enable=true"
- "traefik.docker.network=traefik"
- "traefik.http.routers.koito.entrypoints=http"
- "traefik.http.routers.koito.rule=Host(`${KOITO_DOMAIN}`)"
- "traefik.http.middlewares.koito-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.koito.middlewares=koito-https-redirect"
- "traefik.http.routers.koito-secure.entrypoints=https"
- "traefik.http.routers.koito-secure.rule=Host(`${KOITO_DOMAIN}`)"
- "traefik.http.routers.koito-secure.tls=true"
- "traefik.http.routers.koito-secure.service=koito"
- "traefik.http.services.koito.loadbalancer.server.port=4110"
restart: unless-stopped
db:
image: postgres:16
container_name: koito-db
restart: unless-stopped
networks:
- koito
environment:
POSTGRES_DB: koitodb
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${KOITO_DB_PASSWORD}
volumes:
- ./data/db:/var/lib/postgresql/data
networks:
traefik:
external: true
koito:
driver: bridge