diff --git a/fs/principal/home/dockeruser/.env.example b/fs/principal/home/dockeruser/.env.example deleted file mode 100644 index 93fc6c75..00000000 --- a/fs/principal/home/dockeruser/.env.example +++ /dev/null @@ -1,8 +0,0 @@ -AUTHENTIK_ERROR_REPORTING__ENABLED=true - -GITEA_USER_UID=1000 -GITEA_USER_GID=1000 -GITEA_DB_NAME=gitea - -NEXTCLOUD_DB_DATABASE=nextcloud -NEXTCLOUD_DB_NAME=nextcloud diff --git a/fs/principal/home/dockeruser/docker-compose.yml b/fs/principal/home/dockeruser/docker-compose.yml index e31e79bf..6094d772 100644 --- a/fs/principal/home/dockeruser/docker-compose.yml +++ b/fs/principal/home/dockeruser/docker-compose.yml @@ -1,394 +1,86 @@ -version: "3.9" - -# volumes: -# nextcloud: -# nextcloud-db: -# authentik-db: -# driver: local -# authentik-geoip: -# driver: local -# uptime-kuma: - -secrets: - mariadb_root_password: - file: "./path/to/screts/mariadbrootpassword.txt" - nextcloud_db_user: - file: "./path/to/screts/nextclouddbuser.txt" - nextcloud_db_password: - file: "./path/to/screts/nextclouddbpassword.txt" - authetik_db_user: - file: "./path/to/screts/authetikdbuser.txt" - authentik_db_password: - file: "./path/to/screts/authentikdbpassword.txt" - -services: - db: - image: mariadb:10.5 - restart: always - ports: - - 3306:3306 - volumes: - - ./db:/var/lib/mysql - secrets: - - mariadb_root_password - - nextcloud_db_user - - nextcloud_db_password - environment: - - MARIADB_ROOT_PASSWORD_FILE=/run/secrets/mariadb_root_password - - MARIADB_USER_FILE=/run/secrets/nextcloud_db_user - - MARIADB_PASSWORD_FILE=/run/secrets/nextcloud_db_password - - MARIADB_DATABASE=${NEXTCLOUD_DB_NAME:?nextcloud database name required} - # entrypoint: | - # sh -c " - # echo 'CREATE DATABASE IF NOT EXISTS ${GITEA_DATABASE};' > /docker-entrypoint-initdb.d/init.sql; - # /usr/local/bin/docker-entrypoint.sh --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci - # " - - adminer: - image: adminer - restart: always - ports: - - 8088:8080 - - nextcloud: - image: nextcloud:24-fpm - restart: always - ports: - - 8080:80 - depends_on: - - db - volumes: - - ./nextcloud:/var/www/html - secrets: - - nextcloud_db_password - - nextcloud_db_user - environment: - - MYSQL_PASSWORD=/run/secrets/nextcloud_db_password - - MYSQL_USER=/run/secrets/nextcloud_db_user - - MYSQL_DATABASE=${NEXTCLOUD_DB_NAME:?nextcloud database name required} - - MYSQL_HOST=db - - NEXTCLOUD_TRUSTED_DOMAINS=${NEXTCLOUD_TRUSTED_DOMAINS} - - PHP_UPLOAD_LIMIT=${NEXTCLOUD_UPLOAD_LIMIT:-50G} - - dash: - image: mauricenino/dashdot:latest - restart: unless-stopped - privileged: true - environment: - - DASHDOT_SHOW_HOST=true - - DASHDOT_ENABLE_CPU_TEMPS=true - - DASHDOT_ENABLE_STORAGE_SPLIT_VIEW=true - ports: - - "7676:3001" - volumes: - - /:/mnt/host:ro - - homarr: - image: ghcr.io/ajnart/homarr:0.9.2 - restart: unless-stopped - volumes: - - ./homarr/configs:/app/data/configs - - ./homarr/icons:/app/public/icons - ports: - - "7575:7575" - - # authentik-db: - # image: postgres:12-alpine - # restart: unless-stopped - # healthcheck: - # test: ["CMD", "pg_isready"] - # start_period: 20s - # interval: 30s - # retries: 5 - # timeout: 5s - # volumes: - # - authentik-db:/var/lib/postgresql/data - # environment: - # - POSTGRES_PASSWORD=/run/secrets/authentik_db_password - # - POSTGRES_USER=/run/secrets/authentik_db_user - # - POSTGRES_DB=${AUTHENTIK_DB_NAME:-authentik} - # # - POSTGRES_DB=${AUTHENTIK_DB_NAME:?authentik database name required} - # # env_file: - # # - .env - - # authentik-redis: - # image: redis:alpine - # restart: unless-stopped - # healthcheck: - # test: ["CMD-SHELL", "redis-cli ping | grep PONG"] - # start_period: 20s - # interval: 30s - # retries: 5 - # timeout: 3s - - # authentik-server: - # image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2022.6.1} - # restart: unless-stopped - # command: server - # environment: - # AUTHENTIK_REDIS__HOST: authentik-redis - # AUTHENTIK_POSTGRESQL__HOST: authentik-db - # AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik} - # AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik} - # AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS} - # AUTHENTIK_SECRET_KEY: m39XwRw99dUL76rYIMY6Z7xBLxMLpCJiWHyMnYCpSQWIj4KVqq - # # AUTHENTIK_ERROR_REPORTING__ENABLED: "true" - # # WORKERS: 2 - # volumes: - # - ./media:/media - # - ./custom-templates:/templates - # - authentik-geoip:/geoip - # # env_file: - # # - .env - # ports: - # - 9000:9000 - # - 9443:9443 - - # authentik-worker: - # image: ${AUTHENTIK_IMAGE:-ghcr.io/goauthentik/server}:${AUTHENTIK_TAG:-2022.6.1} - # restart: unless-stopped - # command: worker - # environment: - # AUTHENTIK_REDIS__HOST: authentik-redis - # AUTHENTIK_POSTGRESQL__HOST: authentik-db - # AUTHENTIK_POSTGRESQL__USER: ${PG_USER:-authentik} - # AUTHENTIK_POSTGRESQL__NAME: ${PG_DB:-authentik} - # AUTHENTIK_POSTGRESQL__PASSWORD: ${PG_PASS} - # # AUTHENTIK_ERROR_REPORTING__ENABLED: "true" - # # This is optional, and can be removed. If you remove this, the following will happen - # # - The permissions for the /media folders aren't fixed, so make sure they are 1000:1000 - # # - The docker socket can't be accessed anymore - # user: root - # volumes: - # - ./media:/media - # - ./certs:/certs - # - /var/run/docker.sock:/var/run/docker.sock - # - ./custom-templates:/templates - # - authentik-geoip:/geoip - # # env_file: - # # - .env - - # authentik-geoipupdate: - # image: "maxmindinc/geoipupdate:latest" - # volumes: - # - "authentik-geoip:/usr/share/GeoIP" - # environment: - # GEOIPUPDATE_EDITION_IDS: "GeoLite2-City" - # GEOIPUPDATE_FREQUENCY: "8" - # # env_file: - # # - .env - - gitea: - image: gitea/gitea:1.16.8 - environment: - - USER_UID=${GITEA_USER_UID} - - USER_GID=${GITEA_USER_GID} - - GITEA__database__DB_TYPE=mysql - - GITEA__database__HOST=db:3306 - - GITEA__database__NAME=${GITEA_DATABASE} - - GITEA__database__USER=${MARIADB_USER} - - GITEA__database__PASSWD=${MARIADB_PASSWORD} - restart: always - volumes: - - ./gitea:/data - - /etc/timezone:/etc/timezone:ro - - /etc/localtime:/etc/localtime:ro - ports: - - "3000:3000" - - "222:22" - depends_on: - - db - - dozzle: - image: amir20/dozzle:latest - volumes: - - /var/run/docker.sock:/var/run/docker.sock - ports: - - 9999:8080 - - uptime-kuma: - image: louislam/uptime-kuma:1 - restart: unless-stopped - volumes: - - ./uptime-kuma:/app/data - ports: - - 3001:3001 - - navidrome: - image: deluan/navidrome:latest - user: 1001:1001 - restart: unless-stopped - volumes: - - /home/hipy/Music:/music:ro - - /home/hipy/navidrom/data:/data:rw - ports: - - "4533:4533" - environment: - - ND_LOGLEVEL=info - - ND_CONFIGFILE=/data/navidrome.toml - immich-server: - image: altran1502/immich-server:release - container_name: immich-server - entrypoint: ["/bin/sh", "./start-server.sh"] - volumes: - - ${UPLOAD_LOCATION}:/usr/src/app/upload - environment: - - NODE_ENV=production - - DB_USERNAME=${DB_USERNAME:?immich server db username not set} - - DB_PASSWORD=${DB_PASSWORD:?immich server db password not set} - - DB_DATABASE_NAME=${DB_DATABASE_NAME:?server db name not set} - - JWT_SECRET=${JWT_SECRET} - - ENABLE_MAPBOX=${ENABLE_MAPBOX} - - MAPBOX_KEY=${MAPBOX_KEY} - depends_on: - - immich-redis - - immich-database - restart: unless-stopped - - immich-microservices: - image: altran1502/immich-server:release - entrypoint: ["/bin/sh", "./start-microservices.sh"] - volumes: - - ${UPLOAD_LOCATION}:/usr/src/app/upload - environment: - - NODE_ENV=production - - DB_USERNAME=${DB_USERNAME} - - DB_PASSWORD=${DB_PASSWORD} - - DB_DATABASE_NAME=${DB_DATABASE_NAME} - - JWT_SECRET=${JWT_SECRET} - - ENABLE_MAPBOX=${ENABLE_MAPBOX} - - MAPBOX_KEY=${MAPBOX_KEY} - depends_on: - - immich-redis - - immich-database - restart: unless-stopped - - immich-machine-learning: - image: altran1502/immich-machine-learning:release - entrypoint: ["/bin/sh", "./entrypoint.sh"] - volumes: - - ${UPLOAD_LOCATION}:/usr/src/app/upload - environment: - - NODE_ENV=production - depends_on: - - immich-database - restart: unless-stopped - - immich-web: - image: altran1502/immich-web:release - entrypoint: ["/bin/sh", "./entrypoint.sh"] - environment: - - PUBLIC_TZ=${TZ} - restart: unless-stopped - - immich-redis: - container_name: immich_redis - image: redis:6.2 - restart: unless-stopped - mem_limit: 2G - - immich-database: - container_name: immich_postgres - image: postgres:14 - environment: - POSTGRES_PASSWORD: ${DB_PASSWORD} - POSTGRES_USER: ${DB_USERNAME} - POSTGRES_DB: ${DB_DATABASE_NAME} - PG_DATA: /var/lib/postgresql/data - volumes: - - pgdata:/var/lib/postgresql/data - restart: unless-stopped - - immich-proxy: - container_name: immich_proxy - image: altran1502/immich-proxy:release - ports: - - 8080:8080 - logging: - driver: none - depends_on: - - immich-server - restart: unless-stopped - sharelatex: - restart: always - image: sharelatex/sharelatex - container_name: sharelatex - depends_on: - sharelatex-mongo: - condition: service_healthy - sharelatex-redis: - condition: service_started - ports: - - 80:80 - links: - - sharelatex-mongo - - sharelatex-redis - volumes: - - ~/sharelatex_data:/mnt/vault/sharelatex - environment: - SHARELATEX_APP_NAME: Overleaf Community Edition - SHARELATEX_MONGO_URL: mongodb://sharelatex-mongo/sharelatex - SHARELATEX_REDIS_HOST: sharelatex-redis - REDIS_HOST: sharelatex-redis - ENABLED_LINKED_FILE_TYPES: 'project_file,project_output_file' - ENABLE_CONVERSIONS: 'true' - EMAIL_CONFIRMATION_DISABLED: 'true' - TEXMFVAR: /var/lib/sharelatex/tmp/texmf-var - SHARELATEX_SITE_URL: https://tex.wupp.dev - SHARELATEX_NAV_TITLE: LaTeX MAMADÍSIMO - SHARELATEX_HEADER_IMAGE_URL: https://cdn.overleaf.com/img/ol-brand/overleaf_og_logo.png - SHARELATEX_ADMIN_EMAIL: soporte@wupp.dev - SHARELATEX_LEFT_FOOTER: '[{"text": "ShareLaTeX"},{"text": "Más información aquí"} ]' - SHARELATEX_RIGHT_FOOTER: '[{"text": "WTF! Una polla con peluca"} ]' - sharelatex-mongo: - restart: always - image: mongo:4.4 - container_name: sharelatex_mongo - expose: - - 27017 - volumes: - - ~/mongo_data:/mnt/vault/sharelatex-db - healthcheck: - test: echo 'db.stats().ok' | mongo localhost:27017/test --quiet - interval: 10s - timeout: 10s - retries: 5 - sharelatex-redis: - restart: always - image: redis:5 - container_name: sharelatex_redis - expose: - - 6379 - volumes: - - ~/redis_data:/data - mailserver: - image: docker.io/mailserver/docker-mailserver:latest - container_name: mailserver - # If the FQDN for your mail-server is only two labels (eg: example.com), - # you can assign this entirely to `hostname` and remove `domainname`. - hostname: mail - domainname: wupp.dev - env_file: mailserver.env - # More information about the mail-server ports: - # https://docker-mailserver.github.io/docker-mailserver/edge/config/security/understanding-the-ports/ - # To avoid conflicts with yaml base-60 float, DO NOT remove the quotation marks. - ports: - - "25:25" # SMTP (explicit TLS => STARTTLS) - - "143:143" # IMAP4 (explicit TLS => STARTTLS) - - "465:465" # ESMTP (implicit TLS) - - "587:587" # ESMTP (explicit TLS => STARTTLS) - - "993:993" # IMAP4 (implicit TLS) - volumes: - - ./docker-data/dms/mail-data/:/var/mail/ - - ./docker-data/dms/mail-state/:/var/mail-state/ - - ./docker-data/dms/mail-logs/:/var/log/mail/ - - ./docker-data/dms/config/:/tmp/docker-mailserver/ - - /etc/localtime:/etc/localtime:ro - restart: always - stop_grace_period: 1m - cap_add: - - NET_ADMIN - healthcheck: - test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1" - timeout: 3s - retries: 0 +version: "3.9" + +services: + nextcloud-db: + image: postgres + restart: unless-stopped + volumes: + - /var/lib/nextcloud/postgresql/data:/var/lib/postgresql:Z + environment: + - POSTGRES_USER=user + - POSTGRES_PASSWORD=psswd + - POSTGRES_DB=nextcloud + + nextcloud-redis: + image: redis + container_name: nextcloud-redis + command: redis-server + + nextcloud: + image: nextcloud:fpm + container_name: nextcloud + restart: unless-stopped + depends_on: + - nextcloud-db + - nextcloud-redis + environment: + - POSTGRES_HOST=nextcloud-db + - NEXTCLOUD_TRUSTED_DOMAINS=cloud.wupp.dev + - REDIS_HOST=nextcloud-redis + - REDIS_HOST_PORT=6379 + - PHP_MEMORY_LIMIT=50G + - PHP_UPLOAD_LIMIT=50G + ports: + - 26848:9000 + volumes: + - /var/www/nextcloud:/var/www/html + - /var/www/nextcloud/manual-php.ini:/usr/local/etc/php/conf.d/manual-php.ini + + nextcloud-cron: + image: nextcloud:fpm + container_name: nextcloud-cron + restart: unless-stopped + depends_on: + - db + - nextcloud-redis + volumes: + - /var/www/nextcloud:/var/www/html + entrypoint: /cron.sh + + nextcloud-imaginary: + image: nextcloud/aio-imaginary:latest + restart: unless-stopped + ports: + - 22394:9000 + command: -concurrency 20 -enable-url-source -return-size + cap_add: + - SYS_NICE + + mailserver: + image: mailserver/docker-mailserver + container_name: mailserver + restart: unless-stopped + env_file: mailserver.env + ports: + - "25:25" # SMTP (explicit TLS => STARTTLS) + - "143:143" # IMAP4 (explicit TLS => STARTTLS) + - "465:465" # ESMTP (implicit TLS) + - "587:587" # ESMTP (explicit TLS => STARTTLS) + - "993:993" # IMAP4 (implicit TLS) + - "11334:11334" # RSPAMD web + volumes: + - /var/dms/mail-data/:/var/mail/ + - /var/dms/mail-state/:/var/mail-state/ + - /var/dms/mail-logs/:/var/log/mail/ + - /var/dms/config/:/tmp/docker-mailserver/ + - /etc/localtime:/etc/localtime:ro + - /etc/letsencrypt:/etc/letsencrypt + - /etc/rspamd/local.d/worker-controller.inc:/etc/rspamd/local.d/worker-controller.inc + hostname: mail.wupp.dev + stop_grace_period: 1m + cap_add: + - NET_ADMIN + healthcheck: + test: "ss --listening --tcp | grep -P 'LISTEN.+:smtp' || exit 1" + timeout: 3s + retries: 0