diff --git a/README.md b/README.md index bda9708..21266bf 100644 --- a/README.md +++ b/README.md @@ -14,14 +14,13 @@ ## Description -This is my collection of docker compose files that I'm either currently using or -have used on my homelab at some point. +This is my collection of docker compose files that I'm either currently using or have used on my homelab at some point. ## Usage ```sh git clone -n --depth=1 --filter=tree:0 \ - https://git.danesi.dev/cdanesi/docker.git + https://git.danesi.dev/cdanesi/docker.git cd docker git sparse-checkout set --no-cone / git checkout @@ -32,8 +31,7 @@ git sparse-checkout add / ## Support -I offer no support for these files. This is what works for me. These are for -reference purposes only. +I offer no support for these files. This is what works for me. These are for reference purposes only. ## Contributing @@ -43,5 +41,4 @@ reference purposes only. ## Project status -This is an ongoing project. I probably don't update existing compose files, but -I'll add new stuff as it gets added to my homelab. +This is an ongoing project. I probably don't update existing compose files, but I'll add new stuff as it gets added to my homelab. diff --git a/gitea/docker-compose.yml b/gitea/docker-compose.yml new file mode 100644 index 0000000..5f89ed8 --- /dev/null +++ b/gitea/docker-compose.yml @@ -0,0 +1,47 @@ +services: + server: + image: docker.gitea.com/gitea:1.26.2 + container_name: gitea + environment: + - USER_UID=1000 + - USER_GID=1000 + - GITEA__database__DB_TYPE=postgres + - GITEA__database__HOST=db:5432 + - GITEA__database__NAME=gitea + - GITEA__database__USER=gitea + - GITEA__database__PASSWD=${GITEA_DB_PASSWORD} + - GITEA__server__ROOT_URL=https://git.danesi.dev/ + - GITEA__server__DOMAIN=git.danesi.dev + - GITEA__server__SSH_DOMAIN=git.danesi.dev + - GITEA__server__SSH_PORT=222 + restart: unless-stopped + networks: + - gitea + - proxy + volumes: + - /srv/gitea/data:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + expose: + - "3000" + ports: + - "222:22" + depends_on: + - db + + db: + image: docker.io/library/postgres:14 + restart: unless-stopped + environment: + - POSTGRES_USER=gitea + - POSTGRES_PASSWORD=${GITEA_DB_PASSWORD} + - POSTGRES_DB=gitea + networks: + - gitea + volumes: + - /srv/gitea/postgres:/var/lib/postgresql/data + +networks: + gitea: + proxy: + external: true diff --git a/linkstack/docker-compose.yml b/linkstack/docker-compose.yml index f87de96..3ed77aa 100644 --- a/linkstack/docker-compose.yml +++ b/linkstack/docker-compose.yml @@ -1,10 +1,12 @@ --- services: linkstack: - hostname: "linkstack" image: "linkstackorg/linkstack:latest" + container_name: linkstack + network_mode: bridge environment: TZ: "America/New_York" + SERVER_ADMIN: ${SERVER_ADMIN} # admin email HTTP_SERVER_NAME: ${HTTP_SERVER_NAME} # fqdn, no protocol HTTPS_SERVER_NAME: ${HTTPS_SERVER_NAME} # fqdn, no protocol @@ -12,9 +14,10 @@ services: PHP_MEMORY_LIMIT: "256M" UPLOAD_MAX_FILESIZE: "8M" volumes: - - "linkstack_data:/htdocs" + - linkstack_data:/htdocs ports: - - "8190:443" + - "127.0.0.1:8000:80" + # - '127.0.0.1:8190:443' restart: unless-stopped volumes: diff --git a/linkwarden/docker-compose.yml b/linkwarden/docker-compose.yml index 857bd51..da65f6d 100644 --- a/linkwarden/docker-compose.yml +++ b/linkwarden/docker-compose.yml @@ -5,17 +5,35 @@ services: env_file: .env restart: always volumes: - - ./pgdata:/var/lib/postgresql/data + - /srv/linkwarden/pgdata:/var/lib/postgresql/data + networks: + - linkwarden_net linkwarden: + restart: "no" + mem_limit: 1024m + cpus: 0.75 + # pids_limit: 150 + container_name: linkwarden env_file: .env environment: - DATABASE_URL=postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/postgres - restart: always + # restart: always image: ghcr.io/linkwarden/linkwarden:latest ports: - - 3000:3000 + - 127.0.0.1:3000:3000 volumes: - - ./data:/data/data + - /srv/linkwarden/data:/data/data depends_on: - - postgres \ No newline at end of file + - postgres + networks: + - linkwarden_net + +networks: + linkwarden_net: + driver: bridge + driver_opts: + com.docker.network.driver.mtu: 1450 + ipam: + config: + - subnet: 172.31.50.0/24 diff --git a/nginx-pm/docker-compose.yml b/nginx-pm/docker-compose.yml index 3eca563..21ae71e 100644 --- a/nginx-pm/docker-compose.yml +++ b/nginx-pm/docker-compose.yml @@ -1,26 +1,36 @@ ---- services: app: image: "jc21/nginx-proxy-manager:latest" + container_name: nginx-proxy-manager restart: unless-stopped + ports: - # These ports are in format : - "80:80" # Public HTTP Port - "443:443" # Public HTTPS Port - - "81:81" # Admin Web Port - - "22:22" # SSH + - "127.0.0.1:81:81" # Admin Web Port # Add any other Stream port you want to expose # - '21:21' # FTP - # Uncomment the next line if you uncomment anything in the section - # environment: - # Uncomment this if you want to change the location of - # the SQLite DB file within the container - # DB_SQLITE_FILE: "/data/database.sqlite" + extra_hosts: + - "host.docker.internal:host-gateway" - # Uncomment this if IPv6 is not enabled on your host - # DISABLE_IPV6: 'true' + networks: + - proxy + - default + + environment: + TZ: "America/New_York" + DISABLE_IPV6: "true" + + healthcheck: + test: ["CMD", "/usr/bin/check-health"] + interval: 10s + timeout: 3s volumes: - - ./data:/data - - ./letsencrypt:/etc/letsencrypt \ No newline at end of file + - /srv/npm/data:/data + - /srv/npm/letsencrypt:/etc/letsencrypt + +networks: + proxy: + external: true diff --git a/paperless-ngx/docker-compose.yml b/paperless-ngx/docker-compose.yml index 1dd9b8a..79bfbca 100644 --- a/paperless-ngx/docker-compose.yml +++ b/paperless-ngx/docker-compose.yml @@ -1,62 +1,35 @@ -# Docker Compose file for running paperless from the docker container registry. -# This file contains everything paperless needs to run. -# Paperless supports amd64, arm and arm64 hardware. -# All compose files of paperless configure paperless in the following way: -# -# - Paperless is (re)started on system boot, if it was running before shutdown. -# - Docker volumes for storing data are managed by Docker. -# - Folders for importing and exporting files are created in the same directory -# as this file and mounted to the correct folders inside the container. -# - Paperless listens on port 8000. -# -# SQLite is used as the database. The SQLite file is stored in the data volume. -# -# In addition to that, this Docker Compose file adds the following optional -# configurations: -# -# - Apache Tika and Gotenberg servers are started with paperless and paperless -# is configured to use these services. These provide support for consuming -# Office documents (Word, Excel, Power Point and their LibreOffice counter- -# parts. -# -# To install and update paperless with this file, do the following: -# -# - Copy this file as 'docker-compose.yml' and the files 'docker-compose.env' -# and '.env' into a folder. -# - Run 'docker compose pull'. -# - Run 'docker compose up -d'. -# -# For more extensive installation and update instructions, refer to the -# documentation. ---- services: broker: image: docker.io/library/redis:8 restart: unless-stopped volumes: - redisdata:/data + webserver: image: ghcr.io/paperless-ngx/paperless-ngx:latest + container_name: paperless-webserver restart: unless-stopped depends_on: - broker - gotenberg - tika - ports: - - "8000:8000" volumes: - /srv/paperless/data:/usr/src/paperless/data - /srv/paperless/media:/usr/src/paperless/media - - ./export:/usr/src/paperless/export - - ./consume:/usr/src/paperless/consume - - /etc/timezone:/etc/timezone - - /etc/localtime:/etc/localtime + - /srv/paperless/export:/usr/src/paperless/export + - /srv/paperless/consume:/usr/src/paperless/consume + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro env_file: docker-compose.env environment: PAPERLESS_REDIS: redis://broker:6379 PAPERLESS_TIKA_ENABLED: 1 PAPERLESS_TIKA_GOTENBERG_ENDPOINT: http://gotenberg:3000 PAPERLESS_TIKA_ENDPOINT: http://tika:9998 + networks: + - default + - proxy + gotenberg: image: docker.io/gotenberg/gotenberg:8.20 restart: unless-stopped @@ -66,10 +39,14 @@ services: - "gotenberg" - "--chromium-disable-javascript=true" - "--chromium-allow-list=file:///tmp/.*" + tika: image: docker.io/apache/tika:latest restart: unless-stopped + volumes: - data: - media: - redisdata: \ No newline at end of file + redisdata: + +networks: + proxy: + external: true diff --git a/uptime-kuma/docker-compose.yml b/uptime-kuma/docker-compose.yml index e1c62b1..339fdfa 100644 --- a/uptime-kuma/docker-compose.yml +++ b/uptime-kuma/docker-compose.yml @@ -1,14 +1,17 @@ --- services: uptime-kuma: - image: louislam/uptime-kuma:1 + image: louislam/uptime-kuma:2 container_name: uptime-kuma + network_mode: bridge volumes: - - ./data:/app/data + - /srv/uptime-kuma/data:/app/data ports: - - 3001:3001 + - 127.0.0.1:3001:3001 environment: - - UID - - GID + - UID=1000 + - GID=1000 - TZ=America/New_York + #- SSL_KEY=/data/privkey.pem + #- SSL_CERT=/etc/letsencrypt/live/status.charlesdanesi.com/fullchain.pem restart: unless-stopped diff --git a/vaultwarden/docker-compose.yml b/vaultwarden/docker-compose.yml index 07334a4..7231404 100644 --- a/vaultwarden/docker-compose.yml +++ b/vaultwarden/docker-compose.yml @@ -4,23 +4,24 @@ services: image: vaultwarden/server:latest container_name: vaultwarden restart: unless-stopped + network_mode: bridge environment: TZ: America/Detroit SIGNUPS_ALLOWED: "false" WEBSOCKET_ENABLED: "true" - ADMIN_TOKEN: "${ADMIN_TOKEN}" + # ADMIN_TOKEN: "${ADMIN_TOKEN}" DOMAIN: "${DOMAIN}" SHOW_PASSWORD_HINT: "false" USE_SYSLOG: "false" LOG_FILE: /var/log/vaultwarden/vaultwarden.log - LOG_LEVEL: "debug" + LOG_LEVEL: "warn" EXTENDED_LOGGING: "true" volumes: - - ./data/:/data + - /srv/vaultwarden/data/:/data - /var/log/vaultwarden:/var/log/vaultwarden ports: - - 8090:80 - - 3012:3012 + - 127.0.0.1:8090:80 + - 127.0.0.1:3012:3012 logging: driver: json-file options: diff --git a/veloren/docker-compose.yml b/veloren/docker-compose.yml index a4aedfb..07baead 100644 --- a/veloren/docker-compose.yml +++ b/veloren/docker-compose.yml @@ -10,7 +10,7 @@ services: - "14005:14005" restart: always volumes: - - "./userdata:/opt/userdata" + - "/srv/veloren/userdata:/opt/userdata" environment: - RUST_LOG=debug,common::net=info