2 Frontend
Spongy edited this page 2024-10-14 11:55:25 -04:00

Contents

  1. Authentik
  2. Jellyfin
  3. Kavita
  4. Gitea

Authentik - SSO

Compose snippet
services:
  postgresql:
    container_name: postgresql
    image: docker.io/library/postgres:16-alpine
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -d $${POSTGRES_DB} -U $${POSTGRES_USER}"]
      start_period: 20s
      interval: 30s
      retries: 5
      timeout: 5s
    volumes:
      - /data/postgresql:/var/lib/postgresql/data
    env_file:
      - ./env/authentik
  redis:
    container_name: redis
    image: docker.io/library/redis:alpine
    command: --save 60 1 --loglevel warning
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "redis-cli ping | grep PONG"]
      start_period: 20s
      interval: 30s
      retries: 5
      timeout: 3s
    volumes:
      - /data/redis:/data
  server:
    container_name: authentik_server
    image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.8.3}
    restart: unless-stopped
    command: server
    environment:
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_POSTGRESQL__HOST: postgresql
    volumes:
      - /data/authentik/media:/media
      - /data/authentik/custom-templates:/templates
    env_file:
      - ./env/authentik
    ports:
      - "9000:9000"
      - "9443:9443"
    depends_on:
      - postgresql
      - redis
  worker:
    container_name: authentik_worker
    image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.8.3}
    restart: unless-stopped
    command: worker
    environment:
      AUTHENTIK_REDIS__HOST: redis
      AUTHENTIK_POSTGRESQL__HOST: postgresql
    user: root
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /data/authentik/media:/media
      - /data/certs:/certs
      - /data/authentik/custom-templates:/templates
    env_file:
      - ./env/authentik
    depends_on:
      - postgresql
      - redis

Jellyfin - Netflix like media player

Compose snippet
services:
 jellyfin:
    container_name: jellyfin
    image: ghcr.io/hotio/jellyfin
    restart: unless-stopped
    ports:
      - "8096:8096"
    environment:
      - PUID=950
      - PGID=950
    volumes:
      - /docker/config/jellyfin:/app/config
      - /data/media:/data/media

Kavita - Book library

Compose snippet
services:
  kavita:
    container_name: kavita
    image: jvmilazz0/kavita:latest
    restart: unless-stopped
    ports:
      - "5000:5000"
    environment:
      - PUID=950
      - GUID=950
    volumes:
      - /docker/config/kavita:/app/config
      - /data/media:/data/media

Gitea - Git server

Compose snippet
services:
 gitea:
    container_name: gitea
    image: gitea/gitea:latest
    restart: unless-stopped
    ports:
      - "3000:3000"
      - "222:22"
    environment:
      - USER_UID=950
      - USER_GID=950
    volumes:
      - /data/files/gitea:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    depends_on:
      - db
  db:
    image: mysql:8
    restart: unless-stopped
    environment:
      - MYSQL_ROOT_PASSWORD=gitea
      - MYSQL_USER=gitea
      - MYSQL_PASSWORD=gitea
      - MYSQL_DATABASE=gitea
    volumes:
      - /data/files/mysql:/var/lib/mysql