Added healthcheck and made some changes to loosen ties to MariaDB

Erik Thomsen 2024-09-03 14:20:43 -04:00
parent 655a53478a
commit c85e78c54c

@ -1,7 +1,7 @@
> [!WARNING] > [!WARNING]
> <p align=center>⚠️ 💩 ⚠️</p> > <p align=center>⚠️ 💩 ⚠️</p>
> >
> <p align=center>Our builds are based upon MariaDB client libraries since that is what Debian provides.</p> > <p align=center>Although MySQL database works fine, be aware that our builds are based upon MariaDB client libraries since that is what Debian provides.</p>
> >
> <p align=center>⚠️ 💩 ⚠️</p> > <p align=center>⚠️ 💩 ⚠️</p>
@ -53,10 +53,9 @@ mysql://dbuser:yourpassword@192.168.1.10:3306/vaultwarden
```yaml ```yaml
version: "3.7" version: "3.7"
services: services:
mariadb: vaultwarden-db:
image: "mariadb" image: "mariadb" # or "mysql"
container_name: "mariadb" container_name: "vaultwarden-db"
hostname: "mariadb"
restart: always restart: always
env_file: env_file:
- ".env" - ".env"
@ -68,21 +67,30 @@ services:
- "MYSQL_PASSWORD=<vaultwarden_pw>" - "MYSQL_PASSWORD=<vaultwarden_pw>"
- "MYSQL_DATABASE=vaultwarden" - "MYSQL_DATABASE=vaultwarden"
- "MYSQL_USER=<vaultwarden_user>" - "MYSQL_USER=<vaultwarden_user>"
healthcheck:
test: mariadb-admin ping -h 127.0.0.1 -u $$MYSQL_USER --password=$$MYSQL_PASSWORD
start_period: 5s
interval: 5s
timeout: 5s
retries: 55
vaultwarden: vaultwarden:
image: "vaultwarden/server:latest" image: "vaultwarden/server:latest"
container_name: "vaultwarden" container_name: "vaultwarden"
hostname: "vaultwarden" hostname: "vaultwarden"
depends_on:
vaultwarden-db:
condition: service_healthy
restart: always restart: always
env_file: env_file:
- ".env" - ".env"
volumes: volumes:
- "vaultwarden_vol:/data/" - "vaultwarden_vol:/data/"
environment: environment:
## Had issues when using single parentheses around the mysql URL as in the plain docker example - DATABASE_URL=mysql://<vaultwarden_user>:${VAULTWARDEN_MYSQL_PASSWORD}@vaultwarden-db/vaultwarden
- "DATABASE_URL=mysql://<vaultwarden_user>:<vaultwarden_pw>@mariadb/vaultwarden" - ADMIN_TOKEN=<some_random_token_as_per_above_explanation> # https://github.com/dani-garcia/vaultwarden/wiki/Enabling-admin-page
- "ADMIN_TOKEN=<some_random_token_as_per_above_explanation>" - RUST_BACKTRACE=1
- "RUST_BACKTRACE=1"
ports: ports:
- "80:80" - "80:80"
@ -108,7 +116,7 @@ volumes:
CREATE DATABASE vaultwarden CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE DATABASE vaultwarden CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
``` ```
2a. Create a new database user and grant rights to database (MariaDB, MySQL): 2. Create a new database user and grant rights to database (MariaDB, MySQL):
```sql ```sql
CREATE USER 'vaultwarden'@'localhost' IDENTIFIED BY 'yourpassword'; CREATE USER 'vaultwarden'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL ON `vaultwarden`.* TO 'vaultwarden'@'localhost'; GRANT ALL ON `vaultwarden`.* TO 'vaultwarden'@'localhost';