From a50e5d21b0430a734929bc17017cc8c394b25524 Mon Sep 17 00:00:00 2001 From: RATDAD Date: Wed, 17 Dec 2025 19:53:38 -0500 Subject: Initial Commit --- stacks/dav/.davis.env.template | 60 ++++++++++++++++++++++++++++++++++++++++++ stacks/dav/.db.env.template | 3 +++ stacks/dav/.env.template | 14 ++++++++++ stacks/dav/.gitignore | 4 +++ stacks/dav/compose.yml | 39 +++++++++++++++++++++++++++ 5 files changed, 120 insertions(+) create mode 100644 stacks/dav/.davis.env.template create mode 100644 stacks/dav/.db.env.template create mode 100644 stacks/dav/.env.template create mode 100644 stacks/dav/.gitignore create mode 100644 stacks/dav/compose.yml (limited to 'stacks/dav') diff --git a/stacks/dav/.davis.env.template b/stacks/dav/.davis.env.template new file mode 100644 index 0000000..67d9a7e --- /dev/null +++ b/stacks/dav/.davis.env.template @@ -0,0 +1,60 @@ +# +# +# DAViS Environment Variables + +# General settings +APP_ENV=prod # or dev +CALDAV_ENABLED=true +CARDDAV_ENABLED=true +WEBDAV_ENABLED=false +PUBLIC_CALENDARS_ENABLED=true +BIRTHDAY_REMINDER_OFFSET=PT9H +APP_TIMEZONE=America/New_York +LOG_FILE_PATH="%kernel.logs_dir%/%kernel.environment%.log" + +# Database +DATABASE_DRIVER=postgresql +DB_DATABASE=davis +DB_USER=davis_user +DB_PASSWORD=davis_password +DATABASE_URL=${DATABASE_DRIVER}://${DB_USER}:${DB_PASSWORD}@${_DB_CONTAINER}:5432/${DB_DATABASE}?serverVersion=15&charset=UTF-8 + +# For the Davis admin interface +ADMIN_LOGIN=admin +ADMIN_PASSWORD=admin +ADMIN_AUTH_BYPASS=false + +# DAV auth settings +AUTH_METHOD=Basic # Basic or IMAP or LDAP + +# Basic HTTP auth settings +AUTH_REALM=SabreDAV + +# IMAP auth settings +# IMAP_AUTH_URL=imap.mydomain.com:993 +# IMAP_ENCRYPTION_METHOD=ssl +# IMAP_CERTIFICATE_VALIDATION=true +# IMAP_AUTH_USER_AUTOCREATE=false + +# LDAP auth settings +# LDAP_AUTH_URL=ldap://127.0.0.1:3890 +# LDAP_DN_PATTERN=uid=%u,ou=users,dc=domain,dc=com +# LDAP_MAIL_ATTRIBUTE=mail +# LDAP_AUTH_USER_AUTOCREATE=false +# LDAP_CERTIFICATE_CHECKING_STRATEGY=try # never, hard, demand, try, or allow + +# WebDAV settings +WEBDAV_TMP_DIR=/webdav/tmp +WEBDAV_PUBLIC_DIR=/webdav/public +WEBDAV_HOMES_DIR= + +# Mail settings +# INVITE_FROM_ADDRESS=no-reply@example.org +# MAIL_HOST=smtp.myprovider.com +# MAIL_PORT=587 +# MAIL_USERNAME=userdav +# MAIL_PASSWORD=test +# MAILER_DSN=smtp://${MAIL_USERNAME}:${MAIL_PASSWORD}@${MAIL_HOST}:${MAIL_PORT} + +# Trust the immediate proxy for X-Forwarded-* headers including HTTPS detection +SYMFONY_TRUSTED_PROXIES=REMOTE_ADDR diff --git a/stacks/dav/.db.env.template b/stacks/dav/.db.env.template new file mode 100644 index 0000000..bd9bc9e --- /dev/null +++ b/stacks/dav/.db.env.template @@ -0,0 +1,3 @@ +POSTGRES_PASSWORD=${DB_PASSWORD} +POSTGRES_DB=${DB_DATABASE} +POSTGRES_USER=${DB_USER} diff --git a/stacks/dav/.env.template b/stacks/dav/.env.template new file mode 100644 index 0000000..2183497 --- /dev/null +++ b/stacks/dav/.env.template @@ -0,0 +1,14 @@ +# +# +# Stack Compose Variables + +# Namespace +_STACK= +_CONTAINER= +_DB_CONTAINER= + +# Network +_NET= + +# Volumes +# _DB_VOLUME= diff --git a/stacks/dav/.gitignore b/stacks/dav/.gitignore new file mode 100644 index 0000000..dff03c1 --- /dev/null +++ b/stacks/dav/.gitignore @@ -0,0 +1,4 @@ +# Ignore .env files +*.env +.database/ +.database/** diff --git a/stacks/dav/compose.yml b/stacks/dav/compose.yml new file mode 100644 index 0000000..7e59600 --- /dev/null +++ b/stacks/dav/compose.yml @@ -0,0 +1,39 @@ +name: ${_STACK} + +networks: + net: + name: ${_NET} + external: true + intra: + +volumes: + data: + name: ${_DB_DATA_VOLUME} + external: true + +services: + db: + container_name: ${_DB_CONTAINER} # Required for now. + image: postgres:16-alpine + networks: + - intra + env_file: + - .env + - .davis.env + - .db.env + volumes: + - ${data:-.database/}:/var/lib/postgresql/data + + davis: + container_name: ${_CONTAINER} + image: ghcr.io/tchapi/davis-standalone:latest + env_file: + - .davis.env + - .env + networks: + - net + - intra + expose: + - 9000 + depends_on: + - db -- cgit v1.2.3-70-g09d2