summaryrefslogtreecommitdiff
path: root/stacks/dav
diff options
context:
space:
mode:
authorRATDAD <lambda@disroot.org>2025-12-17 19:53:38 -0500
committerRATDAD <lambda@disroot.org>2025-12-17 19:53:38 -0500
commita50e5d21b0430a734929bc17017cc8c394b25524 (patch)
tree8a61bac5b36ca8725f3fdf64d30073b081c7d643 /stacks/dav
downloadrds-platform-a50e5d21b0430a734929bc17017cc8c394b25524.tar.gz
rds-platform-a50e5d21b0430a734929bc17017cc8c394b25524.tar.bz2
rds-platform-a50e5d21b0430a734929bc17017cc8c394b25524.zip
Initial Commit
Diffstat (limited to 'stacks/dav')
-rw-r--r--stacks/dav/.davis.env.template60
-rw-r--r--stacks/dav/.db.env.template3
-rw-r--r--stacks/dav/.env.template14
-rw-r--r--stacks/dav/.gitignore4
-rw-r--r--stacks/dav/compose.yml39
5 files changed, 120 insertions, 0 deletions
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