From 8366aef3ad7a244a5821a3a787d6b423154a75de Mon Sep 17 00:00:00 2001
From: anima
Date: Sat, 10 Jun 2023 23:32:22 +0200
Subject: [PATCH] inital setup
---
.env.sample | 5 ++++
.gitignore | 2 ++
README.md | 68 +++++++++++++++++++++++++++++++++++++++++++++-
docker-compose.yml | 27 ++++++++++++++++++
4 files changed, 101 insertions(+), 1 deletion(-)
create mode 100644 .env.sample
create mode 100644 .gitignore
create mode 100644 docker-compose.yml
diff --git a/.env.sample b/.env.sample
new file mode 100644
index 0000000..77c46b2
--- /dev/null
+++ b/.env.sample
@@ -0,0 +1,5 @@
+TAG=
+BASEDIR=
+
+# generate token: < /dev/urandom tr -dc A-Za-z0-9 | head -c32;echo;
+ADMIN_TOKEN=
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..cf073d9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+files/
+.env
\ No newline at end of file
diff --git a/README.md b/README.md
index 30bf53f..4c32620 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,68 @@
-# compose-vaultwarden
+# Basic Vaultwarden docker-compose config
+* can be run on single node setup or in swarm
+## howto
+### single node
+#### start container
+```bash
+docker compose up -d
+```
+
+#### stop container (and remove)
+```bash
+docker compose down
+```
+
+#### view logs
+```bash
+docker compose logs -f
+```
+
+#### reload config
+```bash
+docker compose restart
+```
+
+### swarm
+#### start aka deploy
+```bash
+docker stack deploy -c docker-compose.yml caddy
+```
+
+#### stop container aka service
+```bash
+docker service rm caddy_caddy
+```
+
+#### view logs
+```bash
+docker service logs caddy_caddy -f
+```
+
+#### reload config (no downtime if replica 2 or more)
+```bash
+docker service update caddy_caddy --force
+```
+
+## example caddy config
+```
+vault.example.com {
+ header {
+ Strict-Transport-Security max-age=31536000;
+ X-XSS-Protection "1; mode=block"
+ X-Frame-Options DENY
+ X-Robots-Tag none
+ -Server
+ }
+ reverse_proxy vaultwarden:80 {
+ header_up X-Real-IP {remote_host}
+ }
+
+ # disable /admin page via domain (diable for inital config)
+ handle /admin {
+ respond 403
+ }
+
+ reverse_proxy 10.1.16.1:80
+}
+```
\ No newline at end of file
diff --git a/docker-compose.yml b/docker-compose.yml
new file mode 100644
index 0000000..353c240
--- /dev/null
+++ b/docker-compose.yml
@@ -0,0 +1,27 @@
+# https://docs.docker.com/compose/compose-file/compose-file-v3/
+---
+version: "3.9"
+services:
+ vault:
+ image: vaultwarden/server:${TAG:-latest}
+ container_name: vault
+ env_file: .env
+ restart: unless-stopped
+ ports:
+ - 80:80
+ deploy:
+ replicas: 1
+ placement:
+ max_replicas_per_node: 1
+ update_config:
+ parallelism: 1
+ delay: 10s
+ volumes:
+ - ${BASEDIR:-./files/}:/data/
+ networks:
+ - backend
+
+networks:
+ frontend:
+ name: ${INTRANET:-backend}
+ external: true
\ No newline at end of file