commit 1ac68b12a03f320150479f3e80d8900bcd044436 Author: Zakaria Date: Tue Aug 13 08:08:39 2024 +0000 homeLab docker services diff --git a/NginxProxyManagerDocker/docker-compose.yml b/NginxProxyManagerDocker/docker-compose.yml new file mode 100644 index 0000000..3ee77d0 --- /dev/null +++ b/NginxProxyManagerDocker/docker-compose.yml @@ -0,0 +1,37 @@ +services: + app: + image: 'jc21/nginx-proxy-manager:latest' + restart: unless-stopped + ports: + # These ports are in format : + - '80:80' # Public HTTP Port + - '443:443' # Public HTTPS Port + - '81:81' # Admin Web Port + # Add any other Stream port you want to expose + # - '21:21' # FTP + environment: + # Mysql/Maria connection parameters: + DB_MYSQL_HOST: "db" + DB_MYSQL_PORT: 3306 + DB_MYSQL_USER: "Zak" + DB_MYSQL_PASSWORD: "password" + DB_MYSQL_NAME: "npm" + # Uncomment this if IPv6 is not enabled on your host + # DISABLE_IPV6: 'true' + volumes: + - ./data:/data + - ./letsencrypt:/etc/letsencrypt + depends_on: + - db + + db: + image: 'jc21/mariadb-aria:latest' + restart: unless-stopped + environment: + MYSQL_ROOT_PASSWORD: 'password' + MYSQL_DATABASE: 'npm' + MYSQL_USER: 'Zak' + MYSQL_PASSWORD: 'password' + MARIADB_AUTO_UPGRADE: '1' + volumes: + - ./mysql:/var/lib/mysql \ No newline at end of file diff --git a/authentikDocker/.env b/authentikDocker/.env new file mode 100644 index 0000000..12fac73 --- /dev/null +++ b/authentikDocker/.env @@ -0,0 +1,22 @@ +PG_USER=authentik +PG_PASS=complexPASSWORD +AUTHENTIK_SECRET_KEY=complexPASSWORD +AUTHENTIK_ERROR_REPORTING__ENABLED=true + +AUTHENTIK_EMAIL__HOST=smtp.office365.com +AUTHENTIK_EMAIL__PORT=587 +# Optionally authenticate (don't add quotation marks to your password) +AUTHENTIK_EMAIL__USERNAME=zakaria_benmoulay@outlook.com +AUTHENTIK_EMAIL__PASSWORD=emailPasswd +# Use StartTLS +AUTHENTIK_EMAIL__USE_TLS=true +# Use SSL +AUTHENTIK_EMAIL__USE_SSL=false +AUTHENTIK_EMAIL__TIMEOUT=10 +# Email address authentik will send from, should have a correct @domain +AUTHENTIK_EMAIL__FROM=zakaria_benmoulay@outlook.com + +COMPOSE_PORT_HTTP=8941 +COMPOSE_PORT_HTTPS=4443 +# Authentik Version to Pull +#ATHENTIK_TAG=2023.8.3 \ No newline at end of file diff --git a/authentikDocker/docker-compose.yml b/authentikDocker/docker-compose.yml new file mode 100644 index 0000000..ab52a46 --- /dev/null +++ b/authentikDocker/docker-compose.yml @@ -0,0 +1,86 @@ +--- + +services: + 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: + - database:/var/lib/postgresql/data + environment: + POSTGRES_PASSWORD: ${PG_PASS:?database password required} + POSTGRES_USER: ${PG_USER:-authentik} + POSTGRES_DB: ${PG_DB:-authentik} + env_file: + - .env + 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: + - redis:/data + server: + image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.6.2} + restart: unless-stopped + command: server + environment: + AUTHENTIK_REDIS__HOST: redis + AUTHENTIK_POSTGRESQL__HOST: postgresql + AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik} + AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik} + AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS} + volumes: + - ./media:/media + - ./custom-templates:/templates + env_file: + - .env + ports: + - "${COMPOSE_PORT_HTTP:-9000}:9000" + - "${COMPOSE_PORT_HTTPS:-9443}:9443" + depends_on: + - postgresql + - redis + worker: + image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2024.6.2} + restart: unless-stopped + command: worker + environment: + AUTHENTIK_REDIS__HOST: redis + AUTHENTIK_POSTGRESQL__HOST: postgresql + AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik} + AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik} + AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS} + # `user: root` and the docker socket volume are optional. + # See more for the docker socket integration here: + # https://goauthentik.io/docs/outposts/integrations/docker + # Removing `user: root` also prevents the worker from fixing the permissions + # on the mounted folders, so when removing this make sure the folders have the correct UID/GID + # (1000:1000 by default) + user: root + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ./media:/media + - ./certs:/certs + - ./custom-templates:/templates + env_file: + - .env + depends_on: + - postgresql + - redis + +volumes: + database: + driver: local + redis: + driver: local \ No newline at end of file diff --git a/codeserverDocker/docker-compose.yml b/codeserverDocker/docker-compose.yml new file mode 100644 index 0000000..77c5abc --- /dev/null +++ b/codeserverDocker/docker-compose.yml @@ -0,0 +1,20 @@ +--- +services: + code-server: + image: lscr.io/linuxserver/code-server:latest + container_name: code-server + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + - PASSWORD= #optional + - HASHED_PASSWORD= #optional + - SUDO_PASSWORD=password #optional + - SUDO_PASSWORD_HASH= #optional + - PROXY_DOMAIN=code-server.my.domain + - DEFAULT_WORKSPACE=/config/workspace #optional + volumes: + - ./config:/config + ports: + - 8590:8443 + restart: unless-stopped \ No newline at end of file diff --git a/dashyDocker/dashyDockerCommand.txt b/dashyDocker/dashyDockerCommand.txt new file mode 100644 index 0000000..342651f --- /dev/null +++ b/dashyDocker/dashyDockerCommand.txt @@ -0,0 +1,9 @@ +# Just copy and run this command! + +docker run -d \ + -p 4000:8080 \ + --volume /home/zak/dashyDocker/public/conf.yml:/app/public/conf.yml \ + --volume /home/zak/dashyDocker/icons:/app/public/item-icons/icons \ + --name dashy \ + --restart=unless-stopped \ + lissy93/dashy:latest \ No newline at end of file diff --git a/giteaDocker/docker-compose.yml b/giteaDocker/docker-compose.yml new file mode 100644 index 0000000..a39b7e3 --- /dev/null +++ b/giteaDocker/docker-compose.yml @@ -0,0 +1,40 @@ +networks: + gitea: + external: false + +services: + server: + image: gitea/gitea:1.22.1 + 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=Zakaria + - GITEA__database__PASSWD=Password + restart: always + networks: + - gitea + volumes: + - ./gitea:/data + - /etc/timezone:/etc/timezone:ro + - /etc/localtime:/etc/localtime:ro + ports: + - "3045:3000" + - "222:22" + depends_on: + - db + + db: + image: postgres:14 + restart: always + environment: + - POSTGRES_USER=Zakaria + - POSTGRES_PASSWORD=Password + - POSTGRES_DB=gitea + networks: + - gitea + volumes: + - ./postgres:/var/lib/postgresql/data \ No newline at end of file diff --git a/immichDocker/docker-compose.yml b/immichDocker/docker-compose.yml new file mode 100644 index 0000000..7754157 --- /dev/null +++ b/immichDocker/docker-compose.yml @@ -0,0 +1,76 @@ +# +# WARNING: Make sure to use the docker-compose.yml of the current release: +# +# https://github.com/immich-app/immich/releases/latest/download/docker-compose.yml +# +# The compose file on main may not be compatible with the latest release. +# + +name: immich + +services: + immich-server: + container_name: immich_server + image: ghcr.io/immich-app/immich-server:${IMMICH_VERSION:-release} + # extends: + # file: hwaccel.transcoding.yml + # service: cpu # set to one of [nvenc, quicksync, rkmpp, vaapi, vaapi-wsl] for accelerated transcoding + volumes: + # Do not edit the next line. If you want to change the media storage location on your system, edit the value of UPLOAD_LOCATION in the .env file + - ${UPLOAD_LOCATION}:/usr/src/app/upload + - /etc/localtime:/etc/localtime:ro + env_file: + - .env + ports: + - 2283:3001 + depends_on: + - redis + - database + restart: always + healthcheck: + disable: false + + immich-machine-learning: + container_name: immich_machine_learning + # For hardware acceleration, add one of -[armnn, cuda, openvino] to the image tag. + # Example tag: ${IMMICH_VERSION:-release}-cuda + image: ghcr.io/immich-app/immich-machine-learning:${IMMICH_VERSION:-release} + # extends: # uncomment this section for hardware acceleration - see https://immich.app/docs/features/ml-hardware-acceleration + # file: hwaccel.ml.yml + # service: cpu # set to one of [armnn, cuda, openvino, openvino-wsl] for accelerated inference - use the `-wsl` version for WSL2 where applicable + volumes: + - model-cache:/cache + env_file: + - .env + restart: always + healthcheck: + disable: false + + redis: + container_name: immich_redis + image: docker.io/redis:6.2-alpine@sha256:e3b17ba9479deec4b7d1eeec1548a253acc5374d68d3b27937fcfe4df8d18c7e + healthcheck: + test: redis-cli ping || exit 1 + restart: always + + database: + container_name: immich_postgres + image: docker.io/tensorchord/pgvecto-rs:pg14-v0.2.0@sha256:90724186f0a3517cf6914295b5ab410db9ce23190a2d9d0b9dd6463e3fa298f0 + environment: + POSTGRES_PASSWORD: ${DB_PASSWORD} + POSTGRES_USER: ${DB_USERNAME} + POSTGRES_DB: ${DB_DATABASE_NAME} + POSTGRES_INITDB_ARGS: '--data-checksums' + volumes: + # Do not edit the next line. If you want to change the database storage location on your system, edit the value of DB_DATA_LOCATION in the .env file + - ${DB_DATA_LOCATION}:/var/lib/postgresql/data + healthcheck: + test: pg_isready --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' || exit 1; Chksum="$$(psql --dbname='${DB_DATABASE_NAME}' --username='${DB_USERNAME}' --tuples-only --no-align --command='SELECT COALESCE(SUM(checksum_failures), 0) FROM pg_stat_database')"; echo "checksum failure count is $$Chksum"; [ "$$Chksum" = '0' ] || exit 1 + interval: 5m + start_interval: 30s + start_period: 5m + command: ["postgres", "-c", "shared_preload_libraries=vectors.so", "-c", 'search_path="$$user", public, vectors', "-c", "logging_collector=on", "-c", "max_wal_size=2GB", "-c", "shared_buffers=512MB", "-c", "wal_compression=on"] + restart: always + +volumes: + model-cache: \ No newline at end of file diff --git a/paperlessngxDocker/docker-compose.env b/paperlessngxDocker/docker-compose.env new file mode 100644 index 0000000..4d37935 --- /dev/null +++ b/paperlessngxDocker/docker-compose.env @@ -0,0 +1,42 @@ +# The UID and GID of the user used to run paperless in the container. Set this +# to your UID and GID on the host so that you have write access to the +# consumption directory. +USERMAP_UID=1000 +USERMAP_GID=1000 + +# Additional languages to install for text recognition, separated by a +# whitespace. Note that this is +# different from PAPERLESS_OCR_LANGUAGE (default=eng), which defines the +# language used for OCR. +# The container installs English, German, Italian, Spanish and French by +# default. +# See https://packages.debian.org/search?keywords=tesseract-ocr-&searchon=names&suite=buster +# for available languages. +#PAPERLESS_OCR_LANGUAGES=tur ces + +############################################################################### +# Paperless-specific settings # +############################################################################### + +# All settings defined in the paperless.conf.example can be used here. The +# Docker setup does not use the configuration file. +# A few commonly adjusted settings are provided below. + +# This is required if you will be exposing Paperless-ngx on a public domain +# (if doing so please consider security measures such as reverse proxy) +PAPERLESS_URL=https://paperless.zacksolutions.dev + +# Adjust this key if you plan to make paperless available publicly. It should +# be a very long sequence of random characters. You don't need to remember it. +#PAPERLESS_SECRET_KEY=change-me + +# Use this variable to set a timezone for the Paperless Docker containers. If not specified, defaults to UTC. +PAPERLESS_TIME_ZONE=America/New_York + +# The default language to use for OCR. Set this to the language most of your +# documents are written in. +PAPERLESS_OCR_LANGUAGE=eng + +# Set if accessing paperless via a domain subpath e.g. https://domain.com/PATHPREFIX and using a reverse-proxy like traefik or nginx +#PAPERLESS_FORCE_SCRIPT_NAME=/PATHPREFIX +#PAPERLESS_STATIC_URL=/PATHPREFIX/static/ # trailing slash required \ No newline at end of file diff --git a/paperlessngxDocker/docker-compose.yml b/paperlessngxDocker/docker-compose.yml new file mode 100644 index 0000000..af90d66 --- /dev/null +++ b/paperlessngxDocker/docker-compose.yml @@ -0,0 +1,27 @@ +services: + broker: + image: docker.io/library/redis:7 + restart: unless-stopped + volumes: + - redisdata:/data + + webserver: + image: ghcr.io/paperless-ngx/paperless-ngx:latest + restart: unless-stopped + depends_on: + - broker + ports: + - "8008:8000" + volumes: + - data:/usr/src/paperless/data + - media:/usr/src/paperless/media + - ./export:/usr/src/paperless/export + - ./consume:/usr/src/paperless/consume + env_file: docker-compose.env + environment: + PAPERLESS_REDIS: redis://broker:6379 + +volumes: + data: + media: + redisdata: \ No newline at end of file diff --git a/prowlarrDocker/docker-compose.yml b/prowlarrDocker/docker-compose.yml new file mode 100644 index 0000000..6b10583 --- /dev/null +++ b/prowlarrDocker/docker-compose.yml @@ -0,0 +1,14 @@ +--- +services: + prowlarr: + image: lscr.io/linuxserver/prowlarr:latest + container_name: prowlarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + volumes: + - ./config:/config + ports: + - 9666:9696 + restart: unless-stopped \ No newline at end of file diff --git a/qBittorrentDocker/docker-compose.yml b/qBittorrentDocker/docker-compose.yml new file mode 100644 index 0000000..1fbc835 --- /dev/null +++ b/qBittorrentDocker/docker-compose.yml @@ -0,0 +1,19 @@ +--- +services: + qbittorrent: + image: lscr.io/linuxserver/qbittorrent:latest + container_name: qbittorrent + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + - WEBUI_PORT=8780 + - TORRENTING_PORT=6881 + volumes: + - ./config:/config + - /mnt/media:/downloads #optional + ports: + - 8780:8780 + - 6881:6881 + - 6881:6881/udp + restart: unless-stopped \ No newline at end of file diff --git a/radarrDocker/docker-compose.yml b/radarrDocker/docker-compose.yml new file mode 100644 index 0000000..c4c6d81 --- /dev/null +++ b/radarrDocker/docker-compose.yml @@ -0,0 +1,16 @@ +--- +services: + radarr: + image: lscr.io/linuxserver/radarr:latest + container_name: radarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + volumes: + - ./config:/config + - /mnt/media/Movies:/movies #optional + - /mnt/media:/downloads #optional + ports: + - 7778:7878 + restart: unless-stopped \ No newline at end of file diff --git a/sonarrDocker/docker-compose.yml b/sonarrDocker/docker-compose.yml new file mode 100644 index 0000000..eb531b7 --- /dev/null +++ b/sonarrDocker/docker-compose.yml @@ -0,0 +1,16 @@ +--- +services: + sonarr: + image: lscr.io/linuxserver/sonarr:latest + container_name: sonarr + environment: + - PUID=1000 + - PGID=1000 + - TZ=Etc/UTC + volumes: + - ./config:/config + - /mnt/media/tvSeries:/tv #optional + - /mnt/media:/downloads #optional + ports: + - 8489:8989 + restart: unless-stopped \ No newline at end of file diff --git a/stirlingPDFdocker/docker-compose.yml b/stirlingPDFdocker/docker-compose.yml new file mode 100644 index 0000000..9726277 --- /dev/null +++ b/stirlingPDFdocker/docker-compose.yml @@ -0,0 +1,18 @@ +version: '3.3' +services: + stirling-pdf: + image: frooodle/s-pdf:latest + ports: + - '8585:8080' + volumes: + - ./trainingData:/usr/share/tessdata # Required for extra OCR languages + - ./extraConfigs:/configs +# - /customFiles:/customFiles/ +# - ./logs:/logs/ + environment: + - DOCKER_ENABLE_SECURITY=true # Enable security features + - SECURITY_ENABLE_LOGIN=true # Enable login + - SECURITY_INITIALLOGIN_USERNAME=admin # Set initial username + - SECURITY_INITIALLOGIN_PASSWORD=stirling # Set initial password + - LANGS=en_GB # Set language + - INSTALL_BOOK_AND_ADVANCED_HTML_OPS=false # Optional: Disable advanced HTML operations \ No newline at end of file diff --git a/vautlwardenDocker/docker-compose.yml b/vautlwardenDocker/docker-compose.yml new file mode 100644 index 0000000..28468c3 --- /dev/null +++ b/vautlwardenDocker/docker-compose.yml @@ -0,0 +1,9 @@ +services: + vaultwarden: + container_name: vaultwarden + image: vaultwarden/server:latest + restart: unless-stopped + volumes: + - ./data/:/data/ + ports: + - 8062:80 \ No newline at end of file