From b8b020c6ac60de4431e98f49312f3d67c5cb569a Mon Sep 17 00:00:00 2001 From: Gurulandia Date: Fri, 7 Feb 2025 09:02:53 +0200 Subject: [PATCH] initial commit --- .../behind-proxy-with-db/compose.override.yml | 35 +++++++++ .../YeetFile/behind-proxy-with-db/compose.yml | 9 +++ docker/YeetFile/behind-proxy-with-db/dcc.sh | 1 + .../behind-proxy/compose.override.yml | 15 ++++ docker/YeetFile/behind-proxy/compose.yml | 7 ++ docker/YeetFile/behind-proxy/dcc.sh | 1 + docker/YeetFile/dcc.sh | 1 + docker/YeetFile/with-db/compose.override.yml | 24 +++++++ docker/YeetFile/with-db/compose.yml | 9 +++ docker/YeetFile/with-db/dcc.sh | 1 + docker/compose/yeetfile.yaml | 20 ++++++ docker/env/.env.stack.yeetfile | 16 +++++ docker/env/.env.yeetfile | 71 +++++++++++++++++++ 13 files changed, 210 insertions(+) create mode 100644 docker/YeetFile/behind-proxy-with-db/compose.override.yml create mode 100644 docker/YeetFile/behind-proxy-with-db/compose.yml create mode 100755 docker/YeetFile/behind-proxy-with-db/dcc.sh create mode 100644 docker/YeetFile/behind-proxy/compose.override.yml create mode 100644 docker/YeetFile/behind-proxy/compose.yml create mode 100755 docker/YeetFile/behind-proxy/dcc.sh create mode 100755 docker/YeetFile/dcc.sh create mode 100644 docker/YeetFile/with-db/compose.override.yml create mode 100644 docker/YeetFile/with-db/compose.yml create mode 100755 docker/YeetFile/with-db/dcc.sh create mode 100644 docker/compose/yeetfile.yaml create mode 100644 docker/env/.env.stack.yeetfile create mode 100644 docker/env/.env.yeetfile diff --git a/docker/YeetFile/behind-proxy-with-db/compose.override.yml b/docker/YeetFile/behind-proxy-with-db/compose.override.yml new file mode 100644 index 0000000..42eeaaf --- /dev/null +++ b/docker/YeetFile/behind-proxy-with-db/compose.override.yml @@ -0,0 +1,35 @@ +services: + api: + environment: + YEETFILE_DB_HOST: db + YEETFILE_DOMAIN: "${YEETFILE_HOSTNAME}.$DOMAINNAME1" + labels: + - "traefik.enable=true" + ## HTTP Routers + - "traefik.http.routers.${YEETFILE_HOSTNAME}-rtr.entrypoints=https" + - "traefik.http.routers.${YEETFILE_HOSTNAME}-rtr.rule=Host(`${YEETFILE_HOSTNAME}.$DOMAINNAME1`)" + ## Middlewares + # - "traefik.http.routers.${YEETFILE_HOSTNAME}-rtr.middlewares=chain-authelia@file" + - "traefik.http.routers.${YEETFILE_HOSTNAME}-rtr.middlewares=chain-no-auth@file" + ## HTTP Services + - "traefik.http.routers.${YEETFILE_HOSTNAME}-rtr.service=${YEETFILE_HOSTNAME}-svc" + - "traefik.http.services.${YEETFILE_HOSTNAME}-svc.loadbalancer.server.port=8090" + depends_on: + db: + condition: service_healthy + db: + image: ${YEETFILEDB_IMAGE}:${YEETFILEDB_TAG} + container_name: ${YEETFILEDB_CONTAINER_NAME} + restart: ${YEETFILEDB_RESTART_POLICY} + environment: + POSTGRES_HOST_AUTH_METHOD: ${POSTGRES_HOST_AUTH_METHOD:-md5} + POSTGRES_USER: ${YEETFILE_DB_USER:-postgres} + POSTGRES_PASSWORD: ${YEETFILE_DB_PASS:-postgres} + POSTGRES_DB: ${YEETFILE_DB_NAME:-yeetfile} + expose: + - 5432 + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U postgres" ] + interval: 3s + networks: + - ${YEETFILE_NETWORk_ID} \ No newline at end of file diff --git a/docker/YeetFile/behind-proxy-with-db/compose.yml b/docker/YeetFile/behind-proxy-with-db/compose.yml new file mode 100644 index 0000000..646e8c0 --- /dev/null +++ b/docker/YeetFile/behind-proxy-with-db/compose.yml @@ -0,0 +1,9 @@ +# Docker Compose v2.20 or greater required to use "include" +include: +#################### NETWORKS #################### + - ../../compose/networks/proxy.yaml + - ../../compose/networks/socket-proxy.yaml +#################### SERVICES #################### + - ../../compose/postgres.yaml + - ../../compose/yeetfile.yaml + \ No newline at end of file diff --git a/docker/YeetFile/behind-proxy-with-db/dcc.sh b/docker/YeetFile/behind-proxy-with-db/dcc.sh new file mode 100755 index 0000000..34d1ad0 --- /dev/null +++ b/docker/YeetFile/behind-proxy-with-db/dcc.sh @@ -0,0 +1 @@ +docker compose --env-file ../../env/.env.stack.yeetfile --env-file ../../env/.env.yeetfile --env-file ../../env/.env.common config \ No newline at end of file diff --git a/docker/YeetFile/behind-proxy/compose.override.yml b/docker/YeetFile/behind-proxy/compose.override.yml new file mode 100644 index 0000000..b3a0e77 --- /dev/null +++ b/docker/YeetFile/behind-proxy/compose.override.yml @@ -0,0 +1,15 @@ +services: + api: + environment: + YEETFILE_DOMAIN: "${YEETFILE_HOSTNAME}.$DOMAINNAME1" + labels: + - "traefik.enable=true" + ## HTTP Routers + - "traefik.http.routers.${YEETFILE_HOSTNAME}-rtr.entrypoints=https" + - "traefik.http.routers.${YEETFILE_HOSTNAME}-rtr.rule=Host(`${YEETFILE_HOSTNAME}.$DOMAINNAME1`)" + ## Middlewares +# - "traefik.http.routers.${YEETFILE_HOSTNAME}-rtr.middlewares=chain-authelia@file" + - "traefik.http.routers.${YEETFILE_HOSTNAME}-rtr.middlewares=chain-no-auth@file" + ## HTTP Services + - "traefik.http.routers.${YEETFILE_HOSTNAME}-rtr.service=${YEETFILE_HOSTNAME}-svc" + - "traefik.http.services.${YEETFILE_HOSTNAME}-svc.loadbalancer.server.port=8090" diff --git a/docker/YeetFile/behind-proxy/compose.yml b/docker/YeetFile/behind-proxy/compose.yml new file mode 100644 index 0000000..50d5ca2 --- /dev/null +++ b/docker/YeetFile/behind-proxy/compose.yml @@ -0,0 +1,7 @@ +# Docker Compose v2.20 or greater required to use "include" +include: +#################### NETWORKS #################### + - ../../compose/networks/proxy.yaml + - ../../compose/networks/socket-proxy.yaml +#################### SERVICES #################### + - ../../compose/yeetfile.yaml diff --git a/docker/YeetFile/behind-proxy/dcc.sh b/docker/YeetFile/behind-proxy/dcc.sh new file mode 100755 index 0000000..b083a10 --- /dev/null +++ b/docker/YeetFile/behind-proxy/dcc.sh @@ -0,0 +1 @@ +docker compose --env-file ../../env/.env.stack.yeetfile --env-file ../../env/.env.common config \ No newline at end of file diff --git a/docker/YeetFile/dcc.sh b/docker/YeetFile/dcc.sh new file mode 100755 index 0000000..a29b32a --- /dev/null +++ b/docker/YeetFile/dcc.sh @@ -0,0 +1 @@ +docker compose --env-file ../env/.env.stack.yeetfile --env-file ../env/.env.common config \ No newline at end of file diff --git a/docker/YeetFile/with-db/compose.override.yml b/docker/YeetFile/with-db/compose.override.yml new file mode 100644 index 0000000..0960441 --- /dev/null +++ b/docker/YeetFile/with-db/compose.override.yml @@ -0,0 +1,24 @@ +services: + api: + environment: + YEETFILE_ALLOW_INSECURE_LINKS: 1 + YEETFILE_DB_HOST: db + depends_on: + db: + condition: service_healthy + db: + image: ${YEETFILEDB_IMAGE}:${YEETFILEDB_TAG} + container_name: ${YEETFILEDB_CONTAINER_NAME} + restart: ${YEETFILEDB_RESTART_POLICY} + environment: + POSTGRES_HOST_AUTH_METHOD: ${POSTGRES_HOST_AUTH_METHOD:-md5} + POSTGRES_USER: ${YEETFILE_DB_USER:-postgres} + POSTGRES_PASSWORD: ${YEETFILE_DB_PASS:-postgres} + POSTGRES_DB: ${YEETFILE_DB_NAME:-yeetfile} + expose: + - 5432 + healthcheck: + test: [ "CMD-SHELL", "pg_isready -U postgres" ] + interval: 3s + networks: + - ${YEETFILE_NETWORk_ID} \ No newline at end of file diff --git a/docker/YeetFile/with-db/compose.yml b/docker/YeetFile/with-db/compose.yml new file mode 100644 index 0000000..d7fddab --- /dev/null +++ b/docker/YeetFile/with-db/compose.yml @@ -0,0 +1,9 @@ +# Docker Compose v2.20 or greater required to use "include" +include: +#################### NETWORKS #################### + - ../compose/networks/proxy.yaml + - ../compose/networks/socket-proxy.yaml +#################### SERVICES #################### + - ../compose/postgres.yaml + - ../compose/yeetfile.yaml + \ No newline at end of file diff --git a/docker/YeetFile/with-db/dcc.sh b/docker/YeetFile/with-db/dcc.sh new file mode 100755 index 0000000..34d1ad0 --- /dev/null +++ b/docker/YeetFile/with-db/dcc.sh @@ -0,0 +1 @@ +docker compose --env-file ../../env/.env.stack.yeetfile --env-file ../../env/.env.yeetfile --env-file ../../env/.env.common config \ No newline at end of file diff --git a/docker/compose/yeetfile.yaml b/docker/compose/yeetfile.yaml new file mode 100644 index 0000000..5424d29 --- /dev/null +++ b/docker/compose/yeetfile.yaml @@ -0,0 +1,20 @@ +services: + api: + image: ${YEETFILE_IMAGE}:${YEETFILE_TAG} + container_name: ${YEETFILE_CONTAINER_NAME} + restart: ${YEETFILE_RESTART_POLICY} + security_opt: + - no-new-privileges:true + networks: + - ${YEETFILE_NETWORk_ID} + #ports: + # - 8090:${YEETFILE_PORT:-8090} + environment: + UID: ${UID:-1000} + GID: ${GID:-1000} + TZ: ${TZ} + YEETFILE_SERVER_SECRET: 2N1oTtwOHTyEbTFtz0yDLuzq3DhgjIWmSKw4gNcH8Vk= + env_file: + - path: ../env/.env.yeetfile + volumes: + - ${DOCKERDIR}/yeetfile/uploads:/app/uploads diff --git a/docker/env/.env.stack.yeetfile b/docker/env/.env.stack.yeetfile new file mode 100644 index 0000000..355bdbb --- /dev/null +++ b/docker/env/.env.stack.yeetfile @@ -0,0 +1,16 @@ +COMPOSE_PROJECT_NAME=yeetfile + +YEETFILE_NETWORk_ID=proxy +YEETFILE_HOSTNAME=yeetfile + +##### YeetFile Container +YEETFILE_CONTAINER_NAME=yeetfile +YEETFILE_IMAGE=ghcr.io/benbusby/yeetfile +YEETFILE_TAG=latest +YEETFILE_RESTART_POLICY=unless-stopped + +##### YeetFile DB Container +YEETFILEDB_CONTAINER_NAME=yeetfiledb +YEETFILEDB_IMAGE=postgres +YEETFILEDB_TAG=16-alpine +YEETFILEDB_RESTART_POLICY=unless-stopped diff --git a/docker/env/.env.yeetfile b/docker/env/.env.yeetfile new file mode 100644 index 0000000..3c3543f --- /dev/null +++ b/docker/env/.env.yeetfile @@ -0,0 +1,71 @@ +# Enable (1) or disable (0) debug mode on the server (do not use in production) +YEETFILE_DEBUG=0 + +# Store files in B2 or locally on the machine running the server +# b2 or local +YEETFILE_STORAGE=local + +# The host for running the YeetFile server +YEETFILE_HOST=0.0.0.0 + +# The port for running the YeetFile server +YEETFILE_PORT=8090 + +# Database + +# The YeetFile PostgreSQL database host +YEETFILE_DB_HOST=10.0.6.178 + +# The YeetFile PostgreSQL database port +YEETFILE_DB_PORT=5432 + +# The PostgreSQL user to access the YeetFile database +YEETFILE_DB_USER=yeetfile + +# The password for the PostgreSQL user +YEETFILE_DB_PASS=yeetfile + +# The name of the database that YeetFile will use +YEETFILE_DB_NAME=yeetfile + +# Unlimited storage and send +YEETFILE_DEFAULT_USER_STORAGE=-1 +YEETFILE_DEFAULT_USER_SEND=-1 + +# The secret value used for encrypting user password hints +# 32-byte value, base64 encoded +#YEETFILE_SERVER_SECRET=2N1oTtwOHTyEbTFtz0yDLuzq3DhgjIWmSKw4gNcH8Vk= + +# The domain that the YeetFile instance is hosted on +# A valid domain string beginning with http:// or https:// +#YEETFILE_DOMAIN=yeetfile.lab.gurulandia.eu + +# The user ID or email of the user to set as admin +# A valid YeetFile email or account ID +YEETFILE_INSTANCE_ADMIN=8322619287182227 + +# Allows YeetFile Send links to include the key in a URL param +# 0 (disabled) or 1 (enabled) +YEETFILE_ALLOW_INSECURE_LINKS=0 + +# Disables anonymous (not logged in) interactions +#1 to enable lockdown, 0 to allow anonymous usage +YEETFILE_LOCKDOWN=0 + +# The email address to use for correspondence +YEETFILE_EMAIL_ADDR=yeetfile@mail.gurulandia.eu + +# The host of the email address being used +YEETFILE_EMAIL_HOST=smtp.eu.mailgun.org + +# The port of the email host +YEETFILE_EMAIL_PORT=587 + +# The SMTP login for the email address +YEETFILE_EMAIL_USER=sender@mail.gurulandia.eu + +# The SMTP password for the email address +YEETFILE_EMAIL_PASSWORD=fd2481f27f76e35110ddf9b7b04ad09f-667818f5-87cb2de3 + +# The no-reply email address for correspondence +YEETFILE_EMAIL_NO_REPLY=noreply@mail.gurulandia.eu \ No newline at end of file