move docker-compose config into config.scm

This commit is contained in:
bart 2024-12-27 16:26:17 -06:00
parent c82826e021
commit 84edee1124
2 changed files with 228 additions and 113 deletions

View file

@ -1,7 +1,8 @@
;; Indicate which modules to import to access the variables
;; used in this configuration.
(use-modules (gnu))
(use-service-modules cups desktop networking ssh xorg docker dbus)
(use-package-modules databases)
(use-service-modules cups desktop networking ssh xorg docker dbus databases)
(operating-system
(locale "en_US.utf8")
@ -16,7 +17,7 @@
(comment "bartronx7")
(group "users")
(home-directory "/home/bartronx7")
(supplementary-groups '("wheel" "netdev" "audio" "video" "www-data" "docker")))
(supplementary-groups '("wheel" "netdev" "audio" "video" "docker")))
%base-user-accounts))
;; Below is the list of system services. To search for available
@ -34,11 +35,125 @@
(service containerd-service-type)
(service docker-service-type (docker-configuration
(environment-variables (list
"TMPDIR=/tmp/dockerd")))))
"TMPDIR=/tmp/dockerd"))))
;; (service postgresql-service-type
;; (postgresql-configuration
;; (postgresql postgresql-16)
;; (data-directory "/data/postgres")))
(service oci-container-service-type (list
(oci-container-configuration
(image "miniflux/miniflux:latest")
(provision "miniflux")
(network "sandbox")
(requirement '(pg_db))
(ports '(
("8081" . "8080")))
(environment (list
'("DATABASE_URL" . "postgres://miniflux:99uskas0_l@pg_db/miniflux?sslmode=disable")
'("RUN_MIGRATIONS" . "1")
'("CREATE_ADMIN" . "1")
'("ADMIN_USERNAME" . "admin")
'("ADMIN_PASSWORD" . "982#@2gGGHjf"))))))
(service oci-container-service-type (list
(oci-container-configuration
(image "postgres:17-alpine")
(provision "pg_db")
(network "sandbox")
(ports '(
("5432" . "5432")))
(environment (list
'("POSTGRES_USER" . "miniflux")
'("POSTGRES_PASSWORD" . "99uskas0_l")
'("POSTGRES_DB" . "miniflux")))
(volumes (list
'("/data/docker/volumes/pg_db" . "/var/lib/postgresql/data"))))))
(service oci-container-service-type (list
(oci-container-configuration
(image "codeberg.org/forgejo/forgejo:9")
(provision "forgejo")
(network "sandbox")
(ports '(
("3000" . "3000")
("2222" . "22")))
(environment (list
'("USER_UID" . "1000")
'("USER_GID" . "1000")))
(volumes (list
'("/data/docker/volumes/forgejo" . "/data")
'("/etc/timezone" . "/etc/timezone:ro")
'("/etc/localtime" . "/etc/localtime:ro"))))))
(service oci-container-service-type (list
(oci-container-configuration
(image "packetriot/pktriot:latest")
(provision "pktriot")
(network "sandbox")
(volumes (list
'("/data/docker/volumes/pktriot" . "/data:rw"))))))
(service oci-container-service-type (list
(oci-container-configuration
(image "plexinc/pms-docker")
(provision "plex")
(network "sandbox")
(ports '(
("32400" . "32400")
("8324" . "8324")
("32469" . "32469")
("1900" . "1900")
("32410" . "32410")
("32412" . "32412")
("32413" . "32413")
("32414" . "32414")))
(environment (list
'("TZ" . "America/Chicago")
'("PLEX_CLAIM:" . "claim-7-N1LVT5AMco6ayhy4Tm")
'("ADVERTISE_IP:" . "http://192.168.1.3:32400/")))
(volumes (list
'("/data/docker/volumes/plex/config" . "/config")
'("/data/docker/volumes/plex/transcode" . "/transcode")
'("/data" . "/data:rw"))))))
(service oci-container-service-type (list
(oci-container-configuration
(image "ghcr.io/ente-io/server")
(provision "ente")
(requirement '(pg_db))
(network "sandbox")
(ports '(
("8090" . "8080")
("2112" . "2112")))
(environment (list
'("ENTE_CREDENTIALS_FILE" . "/credentials.yaml")))
(volumes (list
'("/data/docker/volumes/ente/logs" . "/var/logs")
'("/data/docker/volumes/ente/museum.yaml" . "/museum.yaml:ro")
'("/data/docker/volumes/ente/credentials.yaml" . "/credentials.yaml:ro")
'("/data" . "/data:ro"))))))
(service oci-container-service-type (list
(oci-container-configuration
(image "minio/minio")
(provision "minio")
(network "sandbox")
(ports '(
("3200" . "3200")
("3201" . "3201")))
(environment (list
'("MINIO_USER" . "test")))
(volumes (list
'("/data/docker/volumes/ente/minio_data" . "/data"))))))
;; This is the default list of services we
;; are appending to.
%base-services))
(service oci-container-service-type (list
(oci-container-configuration
(image "minio/mc")
(provision "minio-provision")
(requirement '(minio)')
(network "sandbox")
(entrypoint "sh /provision.sh")
(environment (list
'("MINIO_USER" . "test")))
(volumes (list
'("/data/docker/volumes/ente/minio_data" . "/data")
'("/data/docker/volumes/ente/minio-provision.sh" . "/provision.sh:ro")))))))
%base-services))
(bootloader (bootloader-configuration
(bootloader grub-bootloader)

View file

@ -31,117 +31,117 @@ services:
- 'traefik.http.routers.api.service=api@internal'
# - 'traefik.http.routers.api.middlewares=authelia@docker'
pktriot:
image: packetriot/pktriot:latest
container_name: pktriot
restart: unless-stopped
volumes:
- /data/docker/volumes/pktriot:/data:rw
# pktriot:
# image: packetriot/pktriot:latest
# container_name: pktriot
# restart: unless-stopped
# volumes:
# - /data/docker/volumes/pktriot:/data:rw
mariadb:
image: mariadb:10.6
container_name: mariadb
restart: always
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- /data/docker/volumes/mariadb:/var/lib/mysql:rw
environment:
- MYSQL_ROOT_PASSWORD=fji9_+jK12dEW
- MYSQL_PASSWORD=Z67dJ0rKBSU74ZwvqIsd
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
# mariadb:
# image: mariadb:10.6
# container_name: mariadb
# restart: always
# command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
# volumes:
# - /data/docker/volumes/mariadb:/var/lib/mysql:rw
# environment:
# - MYSQL_ROOT_PASSWORD=fji9_+jK12dEW
# - MYSQL_PASSWORD=Z67dJ0rKBSU74ZwvqIsd
# - MYSQL_DATABASE=nextcloud
# - MYSQL_USER=nextcloud
#
# nextcloud:
# image: nextcloud:30.0.4
# container_name: nextcloud
# restart: always
# ports:
# - 8088:80
# links:
# - mariadb
# volumes:
# - /data/docker/volumes/nextcloud:/var/www/html
# - /data:/data:rw
# - /docs/documents:/documents:rw
# environment:
# - MYSQL_PASSWORD=Z67dJ0rKBSU74ZwvqIsd
# - MYSQL_DATABASE=nextcloud
# - MYSQL_USER=nextcloud
# - MYSQL_HOST=mariadb
# labels:
# - traefik.enable=true
# - traefik.http.routers.nextcloud.entrypoints=web,websecure
# - traefik.http.routers.nextcloud.rule=Host(`nextcloud.akeley.tech`)
# - traefik.http.routers.nextcloud.tls=true
# - traefik.http.routers.nextcloud.tls.certresolver=myresolver
nextcloud:
image: nextcloud:30.0.4
container_name: nextcloud
restart: always
ports:
- 8088:80
links:
- mariadb
volumes:
- /data/docker/volumes/nextcloud:/var/www/html
- /data:/data:rw
- /docs/documents:/documents:rw
environment:
- MYSQL_PASSWORD=Z67dJ0rKBSU74ZwvqIsd
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=mariadb
labels:
- traefik.enable=true
- traefik.http.routers.nextcloud.entrypoints=web,websecure
- traefik.http.routers.nextcloud.rule=Host(`nextcloud.akeley.tech`)
- traefik.http.routers.nextcloud.tls=true
- traefik.http.routers.nextcloud.tls.certresolver=myresolver
# plex:
# image: plexinc/pms-docker
# container_name: plex
# init: true
# hostname: excellon
# restart: always
# ports:
# - 32400:32400
# - 8324:8324
# - 32469:32469
# - 1900:1900
# - 32410:32410
# - 32412:32412
# - 32413:32413
# - 32414:32414
# environment:
# TZ: "America/Chicago"
# PLEX_CLAIM: "claim-7-N1LVT5AMco6ayhy4Tm"
# ADVERTISE_IP: "http://192.168.1.3:32400/"
# volumes:
# - /data/docker/volumes/plex/config:/config
# - /data/docker/volumes/plex/transcode:/transcode
# - /data:/data:rw
plex:
image: plexinc/pms-docker
container_name: plex
init: true
hostname: excellon
restart: always
ports:
- 32400:32400
- 8324:8324
- 32469:32469
- 1900:1900
- 32410:32410
- 32412:32412
- 32413:32413
- 32414:32414
environment:
TZ: "America/Chicago"
PLEX_CLAIM: "claim-7-N1LVT5AMco6ayhy4Tm"
ADVERTISE_IP: "http://192.168.1.3:32400/"
volumes:
- /data/docker/volumes/plex/config:/config
- /data/docker/volumes/plex/transcode:/transcode
- /data:/data:rw
# forgejo:
# image: codeberg.org/forgejo/forgejo:9
# container_name: forgejo
# environment:
# - USER_UID=1000
# - USER_GID=1000
# restart: always
# volumes:
# - /data/docker/volumes/forgejo:/data
# - /etc/timezone:/etc/timezone:ro
# - /etc/localtime:/etc/localtime:ro
# ports:
# - '3000:3000'
# - '222:22'
forgejo:
image: codeberg.org/forgejo/forgejo:9
container_name: forgejo
environment:
- USER_UID=1000
- USER_GID=1000
restart: always
volumes:
- /data/docker/volumes/forgejo:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- '3000:3000'
- '222:22'
miniflux:
image: miniflux/miniflux:latest
container_name: miniflux
ports:
- "8081:8080"
depends_on:
pg_db:
condition: service_healthy
environment:
- DATABASE_URL=postgres://miniflux:99uskas0_l@pg_db/miniflux?sslmode=disable
- RUN_MIGRATIONS=1
- CREATE_ADMIN=1
- ADMIN_USERNAME=admin
- ADMIN_PASSWORD=982#@2gGGHjf
pg_db:
image: postgres:17-alpine
container_name: pg_db
environment:
- POSTGRES_USER=miniflux
- POSTGRES_PASSWORD=99uskas0_l
- POSTGRES_DB=miniflux
volumes:
- /data/docker/volumes/pg_db:/var/lib/postgresql/data
healthcheck:
test: ["CMD", "pg_isready", "-U", "miniflux"]
interval: 10s
start_period: 30s
# miniflux:
# image: miniflux/miniflux:latest
# container_name: miniflux
# ports:
# - "8081:8080"
# depends_on:
# pg_db:
# condition: service_healthy
# environment:
# - DATABASE_URL=postgres://miniflux:99uskas0_l@pg_db/miniflux?sslmode=disable
# - RUN_MIGRATIONS=1
# - CREATE_ADMIN=1
# - ADMIN_USERNAME=admin
# - ADMIN_PASSWORD=982#@2gGGHjf
#
# pg_db:
# image: postgres:17-alpine
# container_name: pg_db
# environment:
# - POSTGRES_USER=miniflux
# - POSTGRES_PASSWORD=99uskas0_l
# - POSTGRES_DB=miniflux
# volumes:
# - /data/docker/volumes/pg_db:/var/lib/postgresql/data
# healthcheck:
# test: ["CMD", "pg_isready", "-U", "miniflux"]
# interval: 10s
# start_period: 30s
# whoami:
# image: "traefik/whoami"