diff --git a/etc/systemd/system/mumble-dc.service b/etc/systemd/system/mumble-dc.service
new file mode 100644
index 0000000..2570a0f
--- /dev/null
+++ b/etc/systemd/system/mumble-dc.service
@@ -0,0 +1,17 @@
+[Unit]
+Description=Mumble (Compose Service)
+Requires=docker.service
+After=docker.service
+
+[Service]
+WorkingDirectory=/opt/mumble
+ExecStart=/usr/bin/docker-compose --project-name mumble up
+ExecStop=/usr/bin/docker-compose --project-name mumble down
+TimeoutStartSec=0
+Restart=on-failure
+StartLimitIntervalSec=60
+StartLimitBurst=3
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/opt/mumble/docker-compose.yml b/opt/mumble/docker-compose.yml
new file mode 100644
index 0000000..b1b891b
--- /dev/null
+++ b/opt/mumble/docker-compose.yml
@@ -0,0 +1,60 @@
+version: "3.0"
+
+services:
+ swag:
+ container_name: swag
+ image: lscr.io/linuxserver/swag:1.32.0
+ restart: unless-stopped
+ cap_add:
+ - NET_ADMIN
+ environment:
+ PUID: 1000
+ PGID: 1000
+ TZ: Europe/Stockholm
+ URL: mumble.jilits.se
+ VALIDATION: http
+ EMAIL: admin+mumble@jilits.se
+ STAGING: "false"
+ volumes:
+ - swag_config:/config
+ - swag_etc:/config/etc
+ ports:
+ - "8009:80"
+ healthcheck:
+ test: ["CMD-SHELL", "[ -f /config/etc/letsencrypt/live/mumble.jilits.se/fullchain.pem ] || exit 1"]
+ interval: 30s
+ timeout: 10s
+ retries: 3
+
+ mumble-server:
+ container_name: mumble-server
+ image: mumblevoip/mumble-server:v1.4.287-2
+ restart: unless-stopped
+ environment:
+ MUMBLE_CONFIG_SSL_CERT: /ssl/letsencrypt/live/mumble.jilits.se/fullchain.pem
+ MUMBLE_CONFIG_SSL_KEY: /ssl/letsencrypt/live/mumble.jilits.se/privkey.pem
+ MUMBLE_CONFIG_REGISTER_NAME: The Good Shepherd
+ MUMBLE_CONFIG_REGISTER_PASSWORD: ${REGISTER_PASSWORD}
+ MUMBLE_CONFIG_REGISTER_URL: https://jilits.se
+ MUMBLE_CONFIG_REGISTER_HOSTNAME: mumble.jilits.se
+ MUMBLE_CONFIG_WELCOMETEXT: "