Compare commits

..

2 Commits

Author SHA1 Message Date
b8b020c6ac initial commit 2025-02-07 09:02:53 +02:00
d53940d1d4 db tag change 2025-02-07 08:59:52 +02:00
14 changed files with 211 additions and 1 deletions

View File

@@ -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}

View File

@@ -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

View File

@@ -0,0 +1 @@
docker compose --env-file ../../env/.env.stack.yeetfile --env-file ../../env/.env.yeetfile --env-file ../../env/.env.common config

View File

@@ -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"

View File

@@ -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

View File

@@ -0,0 +1 @@
docker compose --env-file ../../env/.env.stack.yeetfile --env-file ../../env/.env.common config

1
docker/YeetFile/dcc.sh Executable file
View File

@@ -0,0 +1 @@
docker compose --env-file ../env/.env.stack.yeetfile --env-file ../env/.env.common config

View File

@@ -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}

View File

@@ -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

1
docker/YeetFile/with-db/dcc.sh Executable file
View File

@@ -0,0 +1 @@
docker compose --env-file ../../env/.env.stack.yeetfile --env-file ../../env/.env.yeetfile --env-file ../../env/.env.common config

View File

@@ -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

View File

@@ -12,5 +12,5 @@ JOPLIN_RESTART_POLICY=unless-stopped
##### Joplin Server DB Container
JOPLINDB_CONTAINER_NAME=joplindb
JOPLINDB_IMAGE=postgres
JOPLINDB_TAG=16
JOPLINDB_TAG=16-alpine
JOPLINDB_RESTART_POLICY=unless-stopped

16
docker/env/.env.stack.yeetfile vendored Normal file
View File

@@ -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

71
docker/env/.env.yeetfile vendored Normal file
View File

@@ -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