From 5ecfebaa84edb04699ad096c28d1f07dab7f7a87 Mon Sep 17 00:00:00 2001 From: Kevin Heyer Date: Sat, 29 Mar 2025 15:02:09 +0000 Subject: [PATCH 1/4] add Monica container --- monica/.env-example | 9 ++++++++ monica/README.md | 0 monica/docker-compose.yml | 48 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 57 insertions(+) create mode 100644 monica/.env-example create mode 100644 monica/README.md create mode 100644 monica/docker-compose.yml diff --git a/monica/.env-example b/monica/.env-example new file mode 100644 index 0000000..f92d47b --- /dev/null +++ b/monica/.env-example @@ -0,0 +1,9 @@ +# Monica +MONICA_VERSION=4.1.2 +APPKEY= # generate with echo -n 'base64:'; openssl rand -base64 32 +MONICA_DOMAIN=monica.example.com + +# MySQL +MONICA_MYSQL_VERSION=11 +MONICA_MYSQL_USER=monica_user +MONICA_MYSQL_PASSWORD=securepassword123 \ No newline at end of file diff --git a/monica/README.md b/monica/README.md new file mode 100644 index 0000000..e69de29 diff --git a/monica/docker-compose.yml b/monica/docker-compose.yml new file mode 100644 index 0000000..b054cdf --- /dev/null +++ b/monica/docker-compose.yml @@ -0,0 +1,48 @@ +--- +services: + app: + image: monica:${MONICA_VERSION:-latest} + container_name: monica + restart: always + networks: + - traefik + - monica + environment: + - APP_KEY=${MONICA_APPKEY:?error} + - DB_HOST=db + - DB_USERNAME=${MONICA_MYSQL_USER:?error} + - DB_PASSWORD=${MONICA_MYSQL_PASSWORD:?error} + labels: + - "traefik.enable=true" + - "traefik.docker.network=traefik" + - "traefik.http.routers.monica.entrypoints=http" + - "traefik.http.routers.monica.rule=Host(`${MONICA_DOMAIN:?error}`)" + - "traefik.http.middlewares.monica-https-redirect.redirectscheme.scheme=https" + - "traefik.http.routers.monica.middlewares=monica-https-redirect" + - "traefik.http.routers.monica-secure.entrypoints=https" + - "traefik.http.routers.monica-secure.rule=Host(`${MONICA_DOMAIN:?error}`)" + - "traefik.http.routers.monica-secure.tls=true" + - "traefik.http.routers.monica-secure.service=monica" + - "traefik.http.services.monica.loadbalancer.server.port=80" + volumes: + - data:/var/www/html/storage + depends_on: + - db + + db: + image: mariadb:${MONICA_MYSQL_VERSION:-11} + container_name: monica-db + restart: always + networks: + - monica + environment: + - MYSQL_RANDOM_ROOT_PASSWORD=true + - MYSQL_DATABASE=monica + - MYSQL_USER=${MONICA_MYSQL_USER:?error} + - MYSQL_PASSWORD=${MONICA_MYSQL_PASSWORD:?error} + volumes: + - db:/var/lib/mysql + +volumes: + data: + db: \ No newline at end of file From 75c9adab18029f73dc02367552f215dddc219e99 Mon Sep 17 00:00:00 2001 From: Kevin Heyer Date: Sat, 29 Mar 2025 15:07:50 +0000 Subject: [PATCH 2/4] correct appkey variable --- monica/.env-example | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monica/.env-example b/monica/.env-example index f92d47b..47fc5d5 100644 --- a/monica/.env-example +++ b/monica/.env-example @@ -1,6 +1,6 @@ # Monica MONICA_VERSION=4.1.2 -APPKEY= # generate with echo -n 'base64:'; openssl rand -base64 32 +MONICA_APPKEY= # generate with echo -n 'base64:'; openssl rand -base64 32 MONICA_DOMAIN=monica.example.com # MySQL From bfe0384cfaa5a9a7c8b40e75e1454dd62b0cfc56 Mon Sep 17 00:00:00 2001 From: Kevin Heyer Date: Sat, 29 Mar 2025 15:08:35 +0000 Subject: [PATCH 3/4] define networks --- monica/docker-compose.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/monica/docker-compose.yml b/monica/docker-compose.yml index b054cdf..cfde330 100644 --- a/monica/docker-compose.yml +++ b/monica/docker-compose.yml @@ -43,6 +43,12 @@ services: volumes: - db:/var/lib/mysql +networks: + traefik: + external: true + monica: + driver: bridge + volumes: data: db: \ No newline at end of file From ebc5fa4be651e45ad194f16f96621b6e22f2fecc Mon Sep 17 00:00:00 2001 From: Kevin Heyer Date: Sat, 29 Mar 2025 15:24:21 +0000 Subject: [PATCH 4/4] add env vars for reverse proxies --- monica/docker-compose.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/monica/docker-compose.yml b/monica/docker-compose.yml index cfde330..3cb80dc 100644 --- a/monica/docker-compose.yml +++ b/monica/docker-compose.yml @@ -9,6 +9,8 @@ services: - monica environment: - APP_KEY=${MONICA_APPKEY:?error} + - APP_URL=https://${MONICA_DOMAIN:?error} + - APP_TRUSTED_PROXIES=* - DB_HOST=db - DB_USERNAME=${MONICA_MYSQL_USER:?error} - DB_PASSWORD=${MONICA_MYSQL_PASSWORD:?error}