10 Commits

Author SHA1 Message Date
9fa5e949fd [chore] increment major version
Two pull requests merged, which move us to a stable verion.
Since this recipe is no longer in alpha, we should treat the API as
stable.
2026-05-01 11:06:43 +00:00
cab64b3a26 [doc] describe host-port in .env
Added a short summary in .env.sample,
 copied and shortened from the README.

Reasoning being, operator looking at the config
 might not have the current README open,
 and this setting isn't intuitive from the name.
2026-05-01 10:59:18 +00:00
7ee486c156 Merge pull request 'Add compose.host-ports.yml' (#4)
Reviewed on: https://git.coopcloud.tech/coop-cloud/mumble/pulls/4
2026-05-01 10:57:41 +00:00
608f5d805a Merge pull request "Add healthcheck and backup labels" (#5)
Reviewed on: https://git.coopcloud.tech/coop-cloud/mumble/pulls/5
2026-05-01 10:41:56 +00:00
8530a5fae2 update readme to fix error 2026-04-30 12:17:39 -04:00
dde7691e53 update readme and use mv instead of cp in restore.post-hook 2026-04-30 11:04:01 -04:00
ebbd2e57dc explicitly add ENABLE_BACKUPS=true to env.sample 2026-04-30 10:36:51 -04:00
e75aba093d add healthcheck and backup labels 2026-04-28 16:01:39 +00:00
a707387872 Update readme to describe host-ports mode 2026-04-28 11:58:17 -04:00
5f66e5ba2d add compose.host-ports.yml for optional direct host port publishing 2026-04-28 15:47:12 +00:00
5 changed files with 58 additions and 4 deletions

View File

@ -1,4 +1,5 @@
TYPE=mumble
ENABLE_BACKUPS=true
DOMAIN=mumble.example.com
@ -7,6 +8,7 @@ DOMAIN=mumble.example.com
LETS_ENCRYPT_ENV=production
ENV=production
# This is here so later lines can extend it; you likely don't wanna edit
COMPOSE_FILE="compose.yml"
@ -22,6 +24,12 @@ COMPOSE_FILE="compose.yml"
## SuperUser Password
SECRET_SUPERUSER_PASSWORD_VERSION=v1
## Host-port Mode
# If enabled, the app container will bind directly to the host's port 64738,
# bypassing traefik's entrypoint.
# This is not recommended for multinode setups.
#COMPOSE_FILE="$COMPOSE_FILE:compose.host-ports.yml"
#################
# MUMBLE CONFIG #
#################

View File

@ -8,10 +8,10 @@ Low latency, high quality voice chat application.
* **Maintainer**: [@amras](https://git.coopcloud.tech/amras)
* **Category**: Apps
* **Status**: 1, alpha
* **Status**: 3, stable
* **Image**: [mumblevoip/mumble-server](https://hub.docker.com/r/mumblevoip/mumble-server), 4, official
* **Healthcheck**: No
* **Backups**: No
* **Healthcheck**: Yes
* **Backups**: Yes
* **Email**: N/A
* **Tests**: No
* **SSO**: N/A
@ -68,6 +68,23 @@ $ abra app secret insert <YOURAPPDOMAIN> server-pw v1
$ abra app deploy <YOURAPPDOMAIN> --force
```
## Host-Port Mode
Instead of modifying the Traefik config,
you can alternatively deploy Mumble with compose.host-ports.yml,
and it will bind directly to the host server port 64738,
bypassing Traefik.
This is not recommended for multinode setups, since the client would have to connect directly to whichever node is running the app container, but this does work when deployed to a single server.
With this compose file, you can deploy mumble without any changes to the Traefik config:
1. `abra app config <YOURAPPDOMAIN>` — uncomment the line:
```
COMPOSE_FILE="$COMPOSE_FILE:compose.host-ports.yml"
```
2. `abra app deploy <YOURAPPDOMAIN> --force`
[`abra`]: https://git.coopcloud.tech/coop-cloud/abra
[`coop-cloud/traefik`]: https://git.coopcloud.tech/coop-cloud/traefik
[Mumble client]:(https://www.mumble.info/downloads/)

14
compose.host-ports.yml Normal file
View File

@ -0,0 +1,14 @@
---
version: "3.8"
services:
app:
ports:
- target: 64738
published: 64738
protocol: tcp
mode: host
- target: 64738
published: 64738
protocol: udp
mode: host

View File

@ -51,6 +51,12 @@ services:
MUMBLE_CONFIG_ROLLINGSTATSWINDOW: ${ROLLING_STATS_WINDOW:-300}
MUMBLE_CONFIG_LISTENERSPERCHANNEL: ${LISTENERS_PER_CHANNEL:--1}
MUMBLE_CONFIG_LISTENERSPERUSER: ${LISTENERS_PER_USER:--1}
healthcheck:
test: ["CMD-SHELL", "bash -c 'echo > /dev/tcp/localhost/64738'"]
interval: 30s
timeout: 10s
retries: 10
start_period: 30s
deploy:
restart_policy:
condition: on-failure
@ -64,7 +70,12 @@ services:
- "traefik.udp.routers.${STACK_NAME}.entrypoints=mumble-udp"
- "traefik.udp.routers.${STACK_NAME}.service=${STACK_NAME}-udp-service"
- "traefik.udp.services.${STACK_NAME}-udp-service.loadbalancer.server.port=64738"
- "coop-cloud.${STACK_NAME}.version=0.2.0+v1.6.870-0"
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
- 'backupbot.backup.pre-hook=sqlite3 /data/mumble-server.sqlite ".backup /data/backup.sqlite"'
- "backupbot.backup.post-hook=rm -f /data/backup.sqlite"
- "backupbot.backup.volumes.mumble_data.path=backup.sqlite"
- "backupbot.restore.post-hook=mv /data/backup.sqlite /data/mumble-server.sqlite"
- "coop-cloud.${STACK_NAME}.version=1.0.0+v1.6.870-0"
secrets:
superuser-pw:

4
release/1.0.0+v1.6.870-0 Normal file
View File

@ -0,0 +1,4 @@
- Upgrade from status: 1, alpha to status: 3, stable
- Healthchecks introduced (checking for open port)
- Backups introduced (full sqlite database)
- Host-port mode can now optionally be used (see README for details)