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 ;; Indicate which modules to import to access the variables
;; used in this configuration. ;; used in this configuration.
(use-modules (gnu)) (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 (operating-system
(locale "en_US.utf8") (locale "en_US.utf8")
@ -16,7 +17,7 @@
(comment "bartronx7") (comment "bartronx7")
(group "users") (group "users")
(home-directory "/home/bartronx7") (home-directory "/home/bartronx7")
(supplementary-groups '("wheel" "netdev" "audio" "video" "www-data" "docker"))) (supplementary-groups '("wheel" "netdev" "audio" "video" "docker")))
%base-user-accounts)) %base-user-accounts))
;; Below is the list of system services. To search for available ;; Below is the list of system services. To search for available
@ -34,11 +35,125 @@
(service containerd-service-type) (service containerd-service-type)
(service docker-service-type (docker-configuration (service docker-service-type (docker-configuration
(environment-variables (list (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 (service oci-container-service-type (list
;; are appending to. (oci-container-configuration
%base-services)) (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 (bootloader-configuration
(bootloader grub-bootloader) (bootloader grub-bootloader)

View file

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