From 6ea73ac0aab5de8be26e8642f13207f2b5e8819f Mon Sep 17 00:00:00 2001 From: Thomas Vanbesien Date: Tue, 16 Dec 2025 12:51:46 +0100 Subject: [PATCH] Reorganize files --- .example.env | 13 ++++++++ .gitignore | 2 ++ .gitmodules | 4 --- configure.bash | 7 +++++ docker-compose.yaml | 31 ++++++++++--------- nextcloud-db.env | 3 -- nextcloud-db.example.env | 3 -- openproject | 1 - readme.md | 27 ++++++++++------ nginx.Dockerfile => services/nginx/Dockerfile | 0 default.conf => services/nginx/default.conf | 0 11 files changed, 56 insertions(+), 35 deletions(-) create mode 100644 .example.env create mode 100755 configure.bash delete mode 100644 nextcloud-db.env delete mode 100644 nextcloud-db.example.env delete mode 160000 openproject rename nginx.Dockerfile => services/nginx/Dockerfile (100%) rename default.conf => services/nginx/default.conf (100%) diff --git a/.example.env b/.example.env new file mode 100644 index 0000000..9afee03 --- /dev/null +++ b/.example.env @@ -0,0 +1,13 @@ +OPENPROJECT_TAG=16-slim +OPENPROJECT_HTTPS=true +OPENPROJECT_HOST__NAME=openproject.tvcloud.fr +OPENPROJECT_HSTS=true +RAILS_CACHE_STORE=memcache +OPENPROJECT_CACHE__MEMCACHE__SERVER=openproject-cache:11211 +DATABASE_URL=postgres://postgres:pswd@openproject-db/openproject?pool=20&encoding=unicode&reconnect=true +RAILS_MIN_THREADS=4 +RAILS_MAX_THREADS=16 +# set to true to enable the email receiving feature. See ./docker/cron for more options +IMAP_ENABLED=false +OPENPROJECT=openproject +OPENPROJECT_DB=openproject-db diff --git a/.gitignore b/.gitignore index 10cdeb2..ac00986 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ server.crt server.key +.env +services/nextcloud/db.env diff --git a/.gitmodules b/.gitmodules index 7de524b..e69de29 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,4 +0,0 @@ -[submodule "openproject"] - path = openproject - url = https://github.com/opf/openproject-docker-compose.git - branch = stable/16 diff --git a/configure.bash b/configure.bash new file mode 100755 index 0000000..2ee8b0f --- /dev/null +++ b/configure.bash @@ -0,0 +1,7 @@ +#!/usr/bin/env bash + +usage="Usage: $0 server_name project_root" +server_name="${1:?$usage}" +root="${2:?$usage}" +sed -Ei "s/(^[[:blank:]]*server_name [^_][^.]*\.)[^;]*/\1${server_name}/" "$root"/services/nginx/default.conf +sed -Ei "s/(^OPENPROJECT_HOST__NAME=[^.]*\.).*/\1${server_name}/" "$root"/.env diff --git a/docker-compose.yaml b/docker-compose.yaml index 4a2dadb..63e153d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -15,27 +15,29 @@ volumes: x-op-restart-policy: &restart_policy restart: unless-stopped x-op-image: &image - image: openproject/openproject:16-slim + image: openproject/openproject:${OPENPROJECT_TAG} x-op-app: &app <<: [*image, *restart_policy] environment: - OPENPROJECT_HTTPS: "true" - OPENPROJECT_HOST__NAME: "openproject.tvcloud.fr" - OPENPROJECT_HSTS: "true" - RAILS_CACHE_STORE: "memcache" - OPENPROJECT_CACHE__MEMCACHE__SERVER: "openproject-cache:11211" - DATABASE_URL: "postgres://postgres:pswd@openproject-db/openproject?pool=20&encoding=unicode&reconnect=true" + OPENPROJECT_HTTPS: "${OPENPROJECT_HTTPS}" + OPENPROJECT_HOST__NAME: "${OPENPROJECT_HOST__NAME}" + OPENPROJECT_HSTS: "${OPENPROJECT_HSTS}" + RAILS_CACHE_STORE: "${RAILS_CACHE_STORE}" + OPENPROJECT_CACHE__MEMCACHE__SERVER: "${OPENPROJECT_CACHE__MEMCACHE__SERVER}" + DATABASE_URL: "${DATABASE_URL}" RAILS_MIN_THREADS: 4 RAILS_MAX_THREADS: 16 # set to true to enable the email receiving feature. See ./docker/cron for more options - IMAP_ENABLED: "false" + IMAP_ENABLED: "${IMAP_ENABLED}" + OPENPROJECT: "${OPENPROJECT}" + OPENPROJECT_DB: "${OPENPROJECT_DB}" volumes: - - "openproject:/var/openproject/assets" + - "${OPENPROJECT}:/var/openproject/assets" services: proxy: build: - dockerfile: ./nginx.Dockerfile + context: ./services/nginx networks: - nextcloud-frontend - openproject-frontend @@ -51,10 +53,11 @@ services: nextcloud: image: nextcloud:31-fpm - env_file: - - nextcloud-db.env environment: - MYSQL_HOST=nextcloud-db + - MYSQL_PASSWORD=pswd + - MYSQL_DATABASE=nextcloud + - MYSQL_USER=nextcloud networks: - nextcloud-frontend - nextcloud-backend @@ -66,8 +69,6 @@ services: nextcloud-db: image: mariadb:11-ubi command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW - env_file: - - nextcloud-db.env environment: - MARIADB_ROOT_PASSWORD=pswd - MARIADB_AUTO_UPGRADE=1 @@ -103,7 +104,7 @@ services: <<: *restart_policy stop_grace_period: "3s" volumes: - - "openproject-db:/var/lib/postgresql/data" + - "${OPENPROJECT_DB}:/var/lib/postgresql/data" environment: POSTGRES_PASSWORD: pswd POSTGRES_DB: openproject diff --git a/nextcloud-db.env b/nextcloud-db.env deleted file mode 100644 index 008339c..0000000 --- a/nextcloud-db.env +++ /dev/null @@ -1,3 +0,0 @@ -MYSQL_PASSWORD=pswd -MYSQL_DATABASE=nextcloud -MYSQL_USER=nextcloud diff --git a/nextcloud-db.example.env b/nextcloud-db.example.env deleted file mode 100644 index 008339c..0000000 --- a/nextcloud-db.example.env +++ /dev/null @@ -1,3 +0,0 @@ -MYSQL_PASSWORD=pswd -MYSQL_DATABASE=nextcloud -MYSQL_USER=nextcloud diff --git a/openproject b/openproject deleted file mode 160000 index 6831d93..0000000 --- a/openproject +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 6831d93c1b6b5fea20f76c0a10bbf2127561ac05 diff --git a/readme.md b/readme.md index 3d3317b..5153e72 100644 --- a/readme.md +++ b/readme.md @@ -6,29 +6,38 @@ This project is a personal cloud of services: # Setup -1. Generate a self-signed certificate. +1. Generate a self-signed certificate for the proxy. ``` openssl genpkey -algorithm RSA -out server.key openssl req -new -x509 -key server.key -out server.crt -days 365 ``` -2. Make a `nextcloud-db.env` file. See `nextcloud-db.example.env`. +2. Make a `.env` file for `docker-compose.yaml`. See `.example.env`. -3. Start the services. +3. Configure the host name. ``` -docker compose up -d +./configure.bash HOSTNAME . ``` -# Update/install Joplin +4. Start the services. + +``` +sudo docker compose up --detach +``` + +# OpenProject + +- [Upgrade](https://www.openproject.org/docs/installation-and-operations/installation/docker-compose/#upgrade) +- [Backup](https://www.openproject.org/docs/installation-and-operations/installation/docker-compose/#backup) + +# Joplin + +- Update/Install: ``` wget -O - https://raw.githubusercontent.com/laurent22/joplin/dev/Joplin_install_and_update.sh | bash ``` You can then [synchronize it with NextCloud](https://joplinapp.org/help/apps/sync/nextcloud/). - -# Update/backup OpenProject - -[https://www.openproject.org/docs/installation-and-operations/installation/docker-compose/#upgrade](https://www.openproject.org/docs/installation-and-operations/installation/docker-compose/#upgrade) diff --git a/nginx.Dockerfile b/services/nginx/Dockerfile similarity index 100% rename from nginx.Dockerfile rename to services/nginx/Dockerfile diff --git a/default.conf b/services/nginx/default.conf similarity index 100% rename from default.conf rename to services/nginx/default.conf