From 09941567053e6b3ca4a2e7ad25c018f53fa7654d Mon Sep 17 00:00:00 2001 From: tajniak81 <13187254+tajniak81@users.noreply.github.com> Date: Mon, 26 Oct 2026 14:46:31 +0100 Subject: [PATCH] Docker, Docker-AIO: private registry, data volumes set from .env Images now default to the registry 10.2.1.10:5500/admin instead of ghcr.io/dariuszjaniak, in the compose files, the .env examples and the READMEs. Each data volume's source comes from .env: WARP_DATA_VOLUME, WARP_POSTGRES_VOLUME, SEAWEED_DATA_VOLUME and SEAWEED_ADMIN_VOLUME. Empty keeps the named volume; a host path bind-mounts that directory, which must be writable by UID 10001 where the homeserver or the AIO container uses it. Each .env example lists the ones its compose file mounts. Co-Authored-By: Claude Opus 5.5 --- Docker-AIO/.env.pocketbase.example | 6 ++++++ Docker-AIO/.env.pocketbase.prod.example | 8 +++++++- Docker-AIO/.env.pocketbase.s3.example | 6 ++++++ Docker-AIO/.env.pocketbase.s3.prod.example | 8 +++++++- Docker-AIO/.env.pocketbase.seaweedfs.example | 8 ++++++++ .../.env.pocketbase.seaweedfs.prod.example | 10 +++++++++- .../.env.pocketbase.seaweedfs.split.example | 10 ++++++++++ ...env.pocketbase.seaweedfs.split.prod.example | 12 +++++++++++- Docker-AIO/.env.postgresql.example | 6 ++++++ Docker-AIO/.env.postgresql.prod.example | 8 +++++++- Docker-AIO/.env.sqlite.example | 6 ++++++ Docker-AIO/.env.sqlite.prod.example | 8 +++++++- Docker-AIO/README.md | 2 +- Docker-AIO/docker-compose.pocketbase.prod.yml | 6 +++--- .../docker-compose.pocketbase.s3.prod.yml | 6 +++--- Docker-AIO/docker-compose.pocketbase.s3.yml | 2 +- ...ocker-compose.pocketbase.seaweedfs.prod.yml | 8 ++++---- ...compose.pocketbase.seaweedfs.split.prod.yml | 10 +++++----- ...cker-compose.pocketbase.seaweedfs.split.yml | 6 +++--- .../docker-compose.pocketbase.seaweedfs.yml | 4 ++-- Docker-AIO/docker-compose.pocketbase.yml | 2 +- Docker-AIO/docker-compose.postgresql.prod.yml | 6 +++--- Docker-AIO/docker-compose.postgresql.yml | 2 +- Docker-AIO/docker-compose.sqlite.prod.yml | 6 +++--- Docker-AIO/docker-compose.sqlite.yml | 2 +- Docker/.env.pocketbase.example | 6 ++++++ Docker/.env.pocketbase.prod.example | 8 +++++++- Docker/.env.pocketbase.s3.example | 6 ++++++ Docker/.env.pocketbase.s3.prod.example | 8 +++++++- Docker/.env.pocketbase.seaweedfs.example | 8 ++++++++ Docker/.env.pocketbase.seaweedfs.prod.example | 10 +++++++++- Docker/.env.pocketbase.seaweedfs.split.example | 10 ++++++++++ ...env.pocketbase.seaweedfs.split.prod.example | 12 +++++++++++- Docker/.env.postgresql.example | 8 ++++++++ Docker/.env.postgresql.prod.example | 10 +++++++++- Docker/.env.sqlite.example | 6 ++++++ Docker/.env.sqlite.prod.example | 8 +++++++- Docker/README.md | 2 +- Docker/docker-compose.pocketbase.prod.yml | 10 +++++----- Docker/docker-compose.pocketbase.s3.prod.yml | 10 +++++----- Docker/docker-compose.pocketbase.s3.yml | 2 +- ...ocker-compose.pocketbase.seaweedfs.prod.yml | 12 ++++++------ ...compose.pocketbase.seaweedfs.split.prod.yml | 18 +++++++++--------- ...cker-compose.pocketbase.seaweedfs.split.yml | 10 +++++----- Docker/docker-compose.pocketbase.seaweedfs.yml | 4 ++-- Docker/docker-compose.pocketbase.yml | 2 +- Docker/docker-compose.postgresql.prod.yml | 12 ++++++------ Docker/docker-compose.postgresql.yml | 4 ++-- Docker/docker-compose.sqlite.prod.yml | 10 +++++----- Docker/docker-compose.sqlite.yml | 2 +- 50 files changed, 264 insertions(+), 92 deletions(-) diff --git a/Docker-AIO/.env.pocketbase.example b/Docker-AIO/.env.pocketbase.example index d72f79c..9136e20 100644 --- a/Docker-AIO/.env.pocketbase.example +++ b/Docker-AIO/.env.pocketbase.example @@ -20,6 +20,12 @@ WARP_PORT=8008 WARP_ADMIN_PORT=8009 WARP_WEB_PORT=8080 +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/.env.pocketbase.prod.example b/Docker-AIO/.env.pocketbase.prod.example index 2f82c52..f52523c 100644 --- a/Docker-AIO/.env.pocketbase.prod.example +++ b/Docker-AIO/.env.pocketbase.prod.example @@ -22,9 +22,15 @@ WARP_WEB_PORT=8080 # The image is pulled from $WARP_REGISTRY/warp-aio-pocketbase at this tag. # Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/.env.pocketbase.s3.example b/Docker-AIO/.env.pocketbase.s3.example index 21cb014..321dbc5 100644 --- a/Docker-AIO/.env.pocketbase.s3.example +++ b/Docker-AIO/.env.pocketbase.s3.example @@ -23,6 +23,12 @@ WARP_PORT=8008 WARP_ADMIN_PORT=8009 WARP_WEB_PORT=8080 +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/.env.pocketbase.s3.prod.example b/Docker-AIO/.env.pocketbase.s3.prod.example index f3e06f3..0026c30 100644 --- a/Docker-AIO/.env.pocketbase.s3.prod.example +++ b/Docker-AIO/.env.pocketbase.s3.prod.example @@ -25,9 +25,15 @@ WARP_WEB_PORT=8080 # The image is pulled from $WARP_REGISTRY/warp-aio-pocketbase-s3 at this tag. # Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/.env.pocketbase.seaweedfs.example b/Docker-AIO/.env.pocketbase.seaweedfs.example index 389789b..d15375e 100644 --- a/Docker-AIO/.env.pocketbase.seaweedfs.example +++ b/Docker-AIO/.env.pocketbase.seaweedfs.example @@ -22,6 +22,14 @@ WARP_PORT=8008 WARP_ADMIN_PORT=8009 WARP_WEB_PORT=8080 +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= +# SeaweedFS's data (seaweed-data). +SEAWEED_DATA_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/.env.pocketbase.seaweedfs.prod.example b/Docker-AIO/.env.pocketbase.seaweedfs.prod.example index 1f2ddac..8b620be 100644 --- a/Docker-AIO/.env.pocketbase.seaweedfs.prod.example +++ b/Docker-AIO/.env.pocketbase.seaweedfs.prod.example @@ -24,9 +24,17 @@ WARP_WEB_PORT=8080 # The image is pulled from $WARP_REGISTRY/warp-aio-pocketbase-seaweedfs at this tag. # Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= +# SeaweedFS's data (seaweed-data). +SEAWEED_DATA_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/.env.pocketbase.seaweedfs.split.example b/Docker-AIO/.env.pocketbase.seaweedfs.split.example index b5fef3b..c5f7f34 100644 --- a/Docker-AIO/.env.pocketbase.seaweedfs.split.example +++ b/Docker-AIO/.env.pocketbase.seaweedfs.split.example @@ -23,6 +23,16 @@ WARP_PORT=8008 WARP_ADMIN_PORT=8009 WARP_WEB_PORT=8080 +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= +# SeaweedFS's data (seaweed-data). +SEAWEED_DATA_VOLUME= +# SeaweedFS's admin UI state (seaweed-admin). +SEAWEED_ADMIN_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/.env.pocketbase.seaweedfs.split.prod.example b/Docker-AIO/.env.pocketbase.seaweedfs.split.prod.example index 97eff93..2298b37 100644 --- a/Docker-AIO/.env.pocketbase.seaweedfs.split.prod.example +++ b/Docker-AIO/.env.pocketbase.seaweedfs.split.prod.example @@ -25,9 +25,19 @@ WARP_WEB_PORT=8080 # The image is pulled from $WARP_REGISTRY/warp-aio-pocketbase-seaweedfs-split at this tag. # Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= +# SeaweedFS's data (seaweed-data). +SEAWEED_DATA_VOLUME= +# SeaweedFS's admin UI state (seaweed-admin). +SEAWEED_ADMIN_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/.env.postgresql.example b/Docker-AIO/.env.postgresql.example index 02a6de3..ea2d607 100644 --- a/Docker-AIO/.env.postgresql.example +++ b/Docker-AIO/.env.postgresql.example @@ -20,6 +20,12 @@ WARP_PORT=8008 WARP_ADMIN_PORT=8009 WARP_WEB_PORT=8080 +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/.env.postgresql.prod.example b/Docker-AIO/.env.postgresql.prod.example index b3447d8..f20fb10 100644 --- a/Docker-AIO/.env.postgresql.prod.example +++ b/Docker-AIO/.env.postgresql.prod.example @@ -22,9 +22,15 @@ WARP_WEB_PORT=8080 # The image is pulled from $WARP_REGISTRY/warp-aio-postgresql at this tag. # Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/.env.sqlite.example b/Docker-AIO/.env.sqlite.example index 12ee21c..7fd025d 100644 --- a/Docker-AIO/.env.sqlite.example +++ b/Docker-AIO/.env.sqlite.example @@ -20,6 +20,12 @@ WARP_PORT=8008 WARP_ADMIN_PORT=8009 WARP_WEB_PORT=8080 +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/.env.sqlite.prod.example b/Docker-AIO/.env.sqlite.prod.example index 87b7112..8d4f365 100644 --- a/Docker-AIO/.env.sqlite.prod.example +++ b/Docker-AIO/.env.sqlite.prod.example @@ -22,9 +22,15 @@ WARP_WEB_PORT=8080 # The image is pulled from $WARP_REGISTRY/warp-aio at this tag. # Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The container runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------------- aio # false runs the container without the admin panel or the web client. diff --git a/Docker-AIO/README.md b/Docker-AIO/README.md index 2584678..1aa92f7 100644 --- a/Docker-AIO/README.md +++ b/Docker-AIO/README.md @@ -125,7 +125,7 @@ The database driver and connection string come from the image. ## Prod files The `.prod.yml` files pull `$WARP_REGISTRY/:$WARP_VERSION` -(defaults `ghcr.io/dariuszjaniak` and `latest`). Push the images first, +(defaults `10.2.1.10:5500/admin` and `latest`). Push the images first, from the repository root: ```sh diff --git a/Docker-AIO/docker-compose.pocketbase.prod.yml b/Docker-AIO/docker-compose.pocketbase.prod.yml index eb7ea37..b818af6 100644 --- a/Docker-AIO/docker-compose.pocketbase.prod.yml +++ b/Docker-AIO/docker-compose.pocketbase.prod.yml @@ -18,7 +18,7 @@ # docker compose -f docker-compose.pocketbase.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the image comes from WARP_REGISTRY (default -# ghcr.io/dariuszjaniak) at tag WARP_VERSION (default latest). Pin +# 10.2.1.10:5500/admin) at tag WARP_VERSION (default latest). Pin # WARP_VERSION to a release in production, and update with # # docker compose -f docker-compose.pocketbase.prod.yml pull && docker compose -f docker-compose.pocketbase.prod.yml up -d @@ -27,12 +27,12 @@ name: warp-aio-pocketbase services: warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-aio-pocketbase:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-aio-pocketbase:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped env_file: .env volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker-AIO/docker-compose.pocketbase.s3.prod.yml b/Docker-AIO/docker-compose.pocketbase.s3.prod.yml index 36dfec9..0f0f904 100644 --- a/Docker-AIO/docker-compose.pocketbase.s3.prod.yml +++ b/Docker-AIO/docker-compose.pocketbase.s3.prod.yml @@ -22,7 +22,7 @@ # docker compose -f docker-compose.pocketbase.s3.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the image comes from WARP_REGISTRY (default -# ghcr.io/dariuszjaniak) at tag WARP_VERSION (default latest). Pin +# 10.2.1.10:5500/admin) at tag WARP_VERSION (default latest). Pin # WARP_VERSION to a release in production, and update with # # docker compose -f docker-compose.pocketbase.s3.prod.yml pull && docker compose -f docker-compose.pocketbase.s3.prod.yml up -d @@ -31,7 +31,7 @@ name: warp-aio-pocketbase-s3 services: warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-aio-pocketbase-s3:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-aio-pocketbase-s3:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped extra_hosts: @@ -49,7 +49,7 @@ services: # true for SeaweedFS and MinIO, false for AWS S3 proper. WARP_PB_S3_FORCE_PATH_STYLE: ${WARP_PB_S3_FORCE_PATH_STYLE:-true} volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker-AIO/docker-compose.pocketbase.s3.yml b/Docker-AIO/docker-compose.pocketbase.s3.yml index f84da31..535e639 100644 --- a/Docker-AIO/docker-compose.pocketbase.s3.yml +++ b/Docker-AIO/docker-compose.pocketbase.s3.yml @@ -45,7 +45,7 @@ services: # true for SeaweedFS and MinIO, false for AWS S3 proper. WARP_PB_S3_FORCE_PATH_STYLE: ${WARP_PB_S3_FORCE_PATH_STYLE:-true} volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker-AIO/docker-compose.pocketbase.seaweedfs.prod.yml b/Docker-AIO/docker-compose.pocketbase.seaweedfs.prod.yml index 5d279da..8cb3c08 100644 --- a/Docker-AIO/docker-compose.pocketbase.seaweedfs.prod.yml +++ b/Docker-AIO/docker-compose.pocketbase.seaweedfs.prod.yml @@ -25,7 +25,7 @@ # docker compose -f docker-compose.pocketbase.seaweedfs.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the image comes from WARP_REGISTRY (default -# ghcr.io/dariuszjaniak) at tag WARP_VERSION (default latest). Pin +# 10.2.1.10:5500/admin) at tag WARP_VERSION (default latest). Pin # WARP_VERSION to a release in production, and update with # # docker compose -f docker-compose.pocketbase.seaweedfs.prod.yml pull && docker compose -f docker-compose.pocketbase.seaweedfs.prod.yml up -d @@ -34,7 +34,7 @@ name: warp-aio-pocketbase-seaweedfs services: warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-aio-pocketbase-seaweedfs:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-aio-pocketbase-seaweedfs:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped env_file: .env @@ -50,8 +50,8 @@ services: WARP_PB_S3_ACCESS_KEY: ${WARP_PB_S3_ACCESS_KEY:?set WARP_PB_S3_ACCESS_KEY in .env} WARP_PB_S3_SECRET: ${WARP_PB_S3_SECRET:?set WARP_PB_S3_SECRET in .env} volumes: - - warp-data:/data - - seaweed-data:/seaweed/data + - ${WARP_DATA_VOLUME:-warp-data}:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/seaweed/data ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker-AIO/docker-compose.pocketbase.seaweedfs.split.prod.yml b/Docker-AIO/docker-compose.pocketbase.seaweedfs.split.prod.yml index 7f50052..8e51174 100644 --- a/Docker-AIO/docker-compose.pocketbase.seaweedfs.split.prod.yml +++ b/Docker-AIO/docker-compose.pocketbase.seaweedfs.split.prod.yml @@ -27,7 +27,7 @@ # docker compose -f docker-compose.pocketbase.seaweedfs.split.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the image comes from WARP_REGISTRY (default -# ghcr.io/dariuszjaniak) at tag WARP_VERSION (default latest). Pin +# 10.2.1.10:5500/admin) at tag WARP_VERSION (default latest). Pin # WARP_VERSION to a release in production, and update with # # docker compose -f docker-compose.pocketbase.seaweedfs.split.prod.yml pull && docker compose -f docker-compose.pocketbase.seaweedfs.split.prod.yml up -d @@ -36,7 +36,7 @@ name: warp-aio-pocketbase-seaweedfs services: warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-aio-pocketbase-seaweedfs-split:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-aio-pocketbase-seaweedfs-split:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped env_file: .env @@ -57,9 +57,9 @@ services: WEED_ADMIN_READONLY_USER: ${SEAWEED_ADMIN_READONLY_USER:-} WEED_ADMIN_READONLY_PASSWORD: ${SEAWEED_ADMIN_READONLY_PASSWORD:-} volumes: - - warp-data:/data - - seaweed-data:/seaweed/data - - seaweed-admin:/seaweed/admin + - ${WARP_DATA_VOLUME:-warp-data}:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/seaweed/data + - ${SEAWEED_ADMIN_VOLUME:-seaweed-admin}:/seaweed/admin ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker-AIO/docker-compose.pocketbase.seaweedfs.split.yml b/Docker-AIO/docker-compose.pocketbase.seaweedfs.split.yml index 8cd996c..8bedbb3 100644 --- a/Docker-AIO/docker-compose.pocketbase.seaweedfs.split.yml +++ b/Docker-AIO/docker-compose.pocketbase.seaweedfs.split.yml @@ -56,9 +56,9 @@ services: WEED_ADMIN_READONLY_USER: ${SEAWEED_ADMIN_READONLY_USER:-} WEED_ADMIN_READONLY_PASSWORD: ${SEAWEED_ADMIN_READONLY_PASSWORD:-} volumes: - - warp-data:/data - - seaweed-data:/seaweed/data - - seaweed-admin:/seaweed/admin + - ${WARP_DATA_VOLUME:-warp-data}:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/seaweed/data + - ${SEAWEED_ADMIN_VOLUME:-seaweed-admin}:/seaweed/admin ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker-AIO/docker-compose.pocketbase.seaweedfs.yml b/Docker-AIO/docker-compose.pocketbase.seaweedfs.yml index 981a9f9..f8147eb 100644 --- a/Docker-AIO/docker-compose.pocketbase.seaweedfs.yml +++ b/Docker-AIO/docker-compose.pocketbase.seaweedfs.yml @@ -48,8 +48,8 @@ services: WARP_PB_S3_ACCESS_KEY: ${WARP_PB_S3_ACCESS_KEY:?set WARP_PB_S3_ACCESS_KEY in .env} WARP_PB_S3_SECRET: ${WARP_PB_S3_SECRET:?set WARP_PB_S3_SECRET in .env} volumes: - - warp-data:/data - - seaweed-data:/seaweed/data + - ${WARP_DATA_VOLUME:-warp-data}:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/seaweed/data ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker-AIO/docker-compose.pocketbase.yml b/Docker-AIO/docker-compose.pocketbase.yml index 5627d4d..1918b07 100644 --- a/Docker-AIO/docker-compose.pocketbase.yml +++ b/Docker-AIO/docker-compose.pocketbase.yml @@ -28,7 +28,7 @@ services: restart: unless-stopped env_file: .env volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker-AIO/docker-compose.postgresql.prod.yml b/Docker-AIO/docker-compose.postgresql.prod.yml index 0eef14c..af96438 100644 --- a/Docker-AIO/docker-compose.postgresql.prod.yml +++ b/Docker-AIO/docker-compose.postgresql.prod.yml @@ -16,7 +16,7 @@ # docker compose -f docker-compose.postgresql.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the image comes from WARP_REGISTRY (default -# ghcr.io/dariuszjaniak) at tag WARP_VERSION (default latest). Pin +# 10.2.1.10:5500/admin) at tag WARP_VERSION (default latest). Pin # WARP_VERSION to a release in production, and update with # # docker compose -f docker-compose.postgresql.prod.yml pull && docker compose -f docker-compose.postgresql.prod.yml up -d @@ -25,14 +25,14 @@ name: warp-aio-postgresql services: warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-aio-postgresql:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-aio-postgresql:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped # PostgreSQL stops after the homeserver; give both time. stop_grace_period: 30s env_file: .env volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker-AIO/docker-compose.postgresql.yml b/Docker-AIO/docker-compose.postgresql.yml index 956da85..f7f92d1 100644 --- a/Docker-AIO/docker-compose.postgresql.yml +++ b/Docker-AIO/docker-compose.postgresql.yml @@ -28,7 +28,7 @@ services: stop_grace_period: 30s env_file: .env volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker-AIO/docker-compose.sqlite.prod.yml b/Docker-AIO/docker-compose.sqlite.prod.yml index cb80e5f..8bb4ebc 100644 --- a/Docker-AIO/docker-compose.sqlite.prod.yml +++ b/Docker-AIO/docker-compose.sqlite.prod.yml @@ -14,7 +14,7 @@ # docker compose -f docker-compose.sqlite.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the image comes from WARP_REGISTRY (default -# ghcr.io/dariuszjaniak) at tag WARP_VERSION (default latest). Pin +# 10.2.1.10:5500/admin) at tag WARP_VERSION (default latest). Pin # WARP_VERSION to a release in production, and update with # # docker compose -f docker-compose.sqlite.prod.yml pull && docker compose -f docker-compose.sqlite.prod.yml up -d @@ -23,12 +23,12 @@ name: warp-aio-sqlite services: warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-aio:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-aio:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped env_file: .env volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker-AIO/docker-compose.sqlite.yml b/Docker-AIO/docker-compose.sqlite.yml index 6eab93d..7cd0047 100644 --- a/Docker-AIO/docker-compose.sqlite.yml +++ b/Docker-AIO/docker-compose.sqlite.yml @@ -24,7 +24,7 @@ services: restart: unless-stopped env_file: .env volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" - "${WARP_ADMIN_PORT:-8009}:8009" diff --git a/Docker/.env.pocketbase.example b/Docker/.env.pocketbase.example index be1ea1c..c027488 100644 --- a/Docker/.env.pocketbase.example +++ b/Docker/.env.pocketbase.example @@ -21,6 +21,12 @@ WARP_PORT=8008 WARP_ADMIN_PORT=8009 WARP_WEB_PORT=8080 +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------ homeserver # Part of every user and room ID: it cannot be changed later. diff --git a/Docker/.env.pocketbase.prod.example b/Docker/.env.pocketbase.prod.example index 2e48904..dfef386 100644 --- a/Docker/.env.pocketbase.prod.example +++ b/Docker/.env.pocketbase.prod.example @@ -23,9 +23,15 @@ WARP_WEB_PORT=8080 # The images are pulled from $WARP_REGISTRY/warp, warp-admin and warp-web # at this tag. Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------ homeserver # Part of every user and room ID: it cannot be changed later. diff --git a/Docker/.env.pocketbase.s3.example b/Docker/.env.pocketbase.s3.example index 889d239..454e3f5 100644 --- a/Docker/.env.pocketbase.s3.example +++ b/Docker/.env.pocketbase.s3.example @@ -24,6 +24,12 @@ WARP_PORT=8008 WARP_ADMIN_PORT=8009 WARP_WEB_PORT=8080 +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------- media (S3) # Media goes to this bucket; the database stays in /data/pb_data. The bucket diff --git a/Docker/.env.pocketbase.s3.prod.example b/Docker/.env.pocketbase.s3.prod.example index ea0b965..209fa97 100644 --- a/Docker/.env.pocketbase.s3.prod.example +++ b/Docker/.env.pocketbase.s3.prod.example @@ -26,9 +26,15 @@ WARP_WEB_PORT=8080 # The images are pulled from $WARP_REGISTRY/warp, warp-admin and warp-web # at this tag. Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------- media (S3) # Media goes to this bucket; the database stays in /data/pb_data. The bucket diff --git a/Docker/.env.pocketbase.seaweedfs.example b/Docker/.env.pocketbase.seaweedfs.example index 58dd22c..e4adbb5 100644 --- a/Docker/.env.pocketbase.seaweedfs.example +++ b/Docker/.env.pocketbase.seaweedfs.example @@ -23,6 +23,14 @@ WARP_PORT=8008 WARP_ADMIN_PORT=8009 WARP_WEB_PORT=8080 +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= +# SeaweedFS's data (seaweed-data). +SEAWEED_DATA_VOLUME= + # -------------------------------------------------------------- seaweedfs # Media goes to this bucket in SeaweedFS, created on start; the database diff --git a/Docker/.env.pocketbase.seaweedfs.prod.example b/Docker/.env.pocketbase.seaweedfs.prod.example index 4eb2dd8..901811f 100644 --- a/Docker/.env.pocketbase.seaweedfs.prod.example +++ b/Docker/.env.pocketbase.seaweedfs.prod.example @@ -25,9 +25,17 @@ WARP_WEB_PORT=8080 # The images are pulled from $WARP_REGISTRY/warp, warp-admin and warp-web # at this tag. Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= +# SeaweedFS's data (seaweed-data). +SEAWEED_DATA_VOLUME= + # -------------------------------------------------------------- seaweedfs # Media goes to this bucket in SeaweedFS, created on start; the database diff --git a/Docker/.env.pocketbase.seaweedfs.split.example b/Docker/.env.pocketbase.seaweedfs.split.example index 8dc8373..b37c37c 100644 --- a/Docker/.env.pocketbase.seaweedfs.split.example +++ b/Docker/.env.pocketbase.seaweedfs.split.example @@ -24,6 +24,16 @@ WARP_PORT=8008 WARP_ADMIN_PORT=8009 WARP_WEB_PORT=8080 +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= +# SeaweedFS's data (seaweed-data). +SEAWEED_DATA_VOLUME= +# SeaweedFS's admin UI state (seaweed-admin). +SEAWEED_ADMIN_VOLUME= + # -------------------------------------------------------------- seaweedfs # Media goes to this bucket in SeaweedFS, created on start; the database diff --git a/Docker/.env.pocketbase.seaweedfs.split.prod.example b/Docker/.env.pocketbase.seaweedfs.split.prod.example index 1c4739b..aa85517 100644 --- a/Docker/.env.pocketbase.seaweedfs.split.prod.example +++ b/Docker/.env.pocketbase.seaweedfs.split.prod.example @@ -26,9 +26,19 @@ WARP_WEB_PORT=8080 # The images are pulled from $WARP_REGISTRY/warp, warp-admin and warp-web # at this tag. Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= +# SeaweedFS's data (seaweed-data). +SEAWEED_DATA_VOLUME= +# SeaweedFS's admin UI state (seaweed-admin). +SEAWEED_ADMIN_VOLUME= + # -------------------------------------------------------------- seaweedfs # Media goes to this bucket in SeaweedFS, created on start; the database diff --git a/Docker/.env.postgresql.example b/Docker/.env.postgresql.example index 753f8ab..f667bda 100644 --- a/Docker/.env.postgresql.example +++ b/Docker/.env.postgresql.example @@ -25,6 +25,14 @@ WARP_WEB_PORT=8080 # it later does not change the database's password. WARP_POSTGRES_PASSWORD=change-me +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= +# PostgreSQL's data directory (postgres-data). +WARP_POSTGRES_VOLUME= + # ------------------------------------------------------------ homeserver # Part of every user and room ID: it cannot be changed later. diff --git a/Docker/.env.postgresql.prod.example b/Docker/.env.postgresql.prod.example index 6bd8360..2c86dcf 100644 --- a/Docker/.env.postgresql.prod.example +++ b/Docker/.env.postgresql.prod.example @@ -25,7 +25,7 @@ WARP_WEB_PORT=8080 # The images are pulled from $WARP_REGISTRY/warp, warp-admin and warp-web # at this tag. Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest # PostgreSQL's password, used when its database is first set up; changing @@ -33,6 +33,14 @@ WARP_VERSION=latest # Required: this file refuses to start without it. WARP_POSTGRES_PASSWORD= +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= +# PostgreSQL's data directory (postgres-data). +WARP_POSTGRES_VOLUME= + # ------------------------------------------------------------ homeserver # Part of every user and room ID: it cannot be changed later. diff --git a/Docker/.env.sqlite.example b/Docker/.env.sqlite.example index 4e880e6..34a190e 100644 --- a/Docker/.env.sqlite.example +++ b/Docker/.env.sqlite.example @@ -21,6 +21,12 @@ WARP_PORT=8008 WARP_ADMIN_PORT=8009 WARP_WEB_PORT=8080 +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------ homeserver # Part of every user and room ID: it cannot be changed later. diff --git a/Docker/.env.sqlite.prod.example b/Docker/.env.sqlite.prod.example index 9a1f305..ac5878f 100644 --- a/Docker/.env.sqlite.prod.example +++ b/Docker/.env.sqlite.prod.example @@ -23,9 +23,15 @@ WARP_WEB_PORT=8080 # The images are pulled from $WARP_REGISTRY/warp, warp-admin and warp-web # at this tag. Pin a release in production. -WARP_REGISTRY=ghcr.io/dariuszjaniak +WARP_REGISTRY=10.2.1.10:5500/admin WARP_VERSION=latest +# Where the data lives. Empty keeps the named volume in brackets; a +# host path (starting with . or /) bind-mounts that directory instead. +# The homeserver runs as UID 10001, so its directory must be writable by it. +# The homeserver's /data (warp-data). +WARP_DATA_VOLUME= + # ------------------------------------------------------------ homeserver # Part of every user and room ID: it cannot be changed later. diff --git a/Docker/README.md b/Docker/README.md index a39b4ae..aa84ac6 100644 --- a/Docker/README.md +++ b/Docker/README.md @@ -65,7 +65,7 @@ authentication. Both SeaweedFS files share a project and the ## Prod files The `.prod.yml` files pull `$WARP_REGISTRY/warp`, `warp-admin` and -`warp-web` at tag `$WARP_VERSION` (defaults `ghcr.io/dariuszjaniak` and +`warp-web` at tag `$WARP_VERSION` (defaults `10.2.1.10:5500/admin` and `latest`). Push the images there first: ```sh diff --git a/Docker/docker-compose.pocketbase.prod.yml b/Docker/docker-compose.pocketbase.prod.yml index aac6efb..d1c7ec2 100644 --- a/Docker/docker-compose.pocketbase.prod.yml +++ b/Docker/docker-compose.pocketbase.prod.yml @@ -18,7 +18,7 @@ # docker compose -f docker-compose.pocketbase.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the images come from WARP_REGISTRY (default -# ghcr.io/dariuszjaniak) at tag WARP_VERSION (default latest). Pin +# 10.2.1.10:5500/admin) at tag WARP_VERSION (default latest). Pin # WARP_VERSION to a release in production, and update with # # docker compose -f docker-compose.pocketbase.prod.yml pull && docker compose -f docker-compose.pocketbase.prod.yml up -d @@ -27,7 +27,7 @@ name: warp-pocketbase services: warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped # The signing key is created on first start and kept in the volume: @@ -40,12 +40,12 @@ services: WARP_DB_DRIVER: pocketbase WARP_DB_CONNECTION_STRING: /data/pb_data volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" admin: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-admin:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-admin:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: @@ -57,7 +57,7 @@ services: - "${WARP_ADMIN_PORT:-8009}:8009" web: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-web:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-web:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: diff --git a/Docker/docker-compose.pocketbase.s3.prod.yml b/Docker/docker-compose.pocketbase.s3.prod.yml index 5de51e5..e1354ac 100644 --- a/Docker/docker-compose.pocketbase.s3.prod.yml +++ b/Docker/docker-compose.pocketbase.s3.prod.yml @@ -22,7 +22,7 @@ # docker compose -f docker-compose.pocketbase.s3.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the homeserver, admin panel and web client images -# come from WARP_REGISTRY (default ghcr.io/dariuszjaniak) at tag +# come from WARP_REGISTRY (default 10.2.1.10:5500/admin) at tag # WARP_VERSION (default latest). Pin WARP_VERSION to a release in # production, and update with # @@ -32,7 +32,7 @@ name: warp-pocketbase-s3 services: warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped extra_hosts: @@ -64,12 +64,12 @@ services: # true for SeaweedFS and MinIO, false for AWS S3 proper. WARP_PB_S3_FORCE_PATH_STYLE: ${WARP_PB_S3_FORCE_PATH_STYLE:-true} volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" admin: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-admin:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-admin:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: @@ -81,7 +81,7 @@ services: - "${WARP_ADMIN_PORT:-8009}:8009" web: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-web:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-web:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: diff --git a/Docker/docker-compose.pocketbase.s3.yml b/Docker/docker-compose.pocketbase.s3.yml index 35cc2b5..cb68db5 100644 --- a/Docker/docker-compose.pocketbase.s3.yml +++ b/Docker/docker-compose.pocketbase.s3.yml @@ -59,7 +59,7 @@ services: # true for SeaweedFS and MinIO, false for AWS S3 proper. WARP_PB_S3_FORCE_PATH_STYLE: ${WARP_PB_S3_FORCE_PATH_STYLE:-true} volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" diff --git a/Docker/docker-compose.pocketbase.seaweedfs.prod.yml b/Docker/docker-compose.pocketbase.seaweedfs.prod.yml index 8213f82..84fe18e 100644 --- a/Docker/docker-compose.pocketbase.seaweedfs.prod.yml +++ b/Docker/docker-compose.pocketbase.seaweedfs.prod.yml @@ -26,7 +26,7 @@ # docker compose -f docker-compose.pocketbase.seaweedfs.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the homeserver, admin panel and web client images -# come from WARP_REGISTRY (default ghcr.io/dariuszjaniak) at tag +# come from WARP_REGISTRY (default 10.2.1.10:5500/admin) at tag # WARP_VERSION (default latest), and SeaweedFS from SEAWEED_IMAGE. Pin # WARP_VERSION to a release in production, and update with # @@ -46,7 +46,7 @@ services: AWS_ACCESS_KEY_ID: ${WARP_PB_S3_ACCESS_KEY:?set WARP_PB_S3_ACCESS_KEY in .env} AWS_SECRET_ACCESS_KEY: ${WARP_PB_S3_SECRET:?set WARP_PB_S3_SECRET in .env} volumes: - - seaweed-data:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/data ports: # For aws-cli and the like; the homeserver uses the compose network. - "${SEAWEED_S3_BIND:-127.0.0.1}:${SEAWEED_S3_PORT:-8333}:8333" @@ -73,7 +73,7 @@ services: - echo "s3.bucket.create -name $$WARP_PB_S3_BUCKET" | weed shell -master=seaweedfs:9333 >/dev/null warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: @@ -100,12 +100,12 @@ services: WARP_PB_S3_ACCESS_KEY: ${WARP_PB_S3_ACCESS_KEY:?set WARP_PB_S3_ACCESS_KEY in .env} WARP_PB_S3_SECRET: ${WARP_PB_S3_SECRET:?set WARP_PB_S3_SECRET in .env} volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" admin: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-admin:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-admin:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: @@ -117,7 +117,7 @@ services: - "${WARP_ADMIN_PORT:-8009}:8009" web: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-web:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-web:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: diff --git a/Docker/docker-compose.pocketbase.seaweedfs.split.prod.yml b/Docker/docker-compose.pocketbase.seaweedfs.split.prod.yml index 1226403..a6dfcab 100644 --- a/Docker/docker-compose.pocketbase.seaweedfs.split.prod.yml +++ b/Docker/docker-compose.pocketbase.seaweedfs.split.prod.yml @@ -32,7 +32,7 @@ # docker compose -f docker-compose.pocketbase.seaweedfs.split.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the homeserver, admin panel and web client images -# come from WARP_REGISTRY (default ghcr.io/dariuszjaniak) at tag +# come from WARP_REGISTRY (default 10.2.1.10:5500/admin) at tag # WARP_VERSION (default latest), and SeaweedFS from SEAWEED_IMAGE. Pin # WARP_VERSION to a release in production, and update with # @@ -50,7 +50,7 @@ services: master -ip=seaweedfs-master -ip.bind=0.0.0.0 -mdir=/data -volumeSizeLimitMB=1024 -metricsPort=9324 volumes: - - seaweed-data:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/data healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:9333/cluster/status >/dev/null || exit 1"] interval: 10s @@ -70,7 +70,7 @@ services: seaweedfs-master: condition: service_healthy volumes: - - seaweed-data:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/data healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:8080/healthz >/dev/null || exit 1"] interval: 10s @@ -90,7 +90,7 @@ services: seaweedfs-volume: condition: service_healthy volumes: - - seaweed-data:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/data healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:8888/healthz >/dev/null || exit 1"] interval: 10s @@ -167,7 +167,7 @@ services: WEED_ADMIN_READONLY_USER: ${SEAWEED_ADMIN_READONLY_USER:-} WEED_ADMIN_READONLY_PASSWORD: ${SEAWEED_ADMIN_READONLY_PASSWORD:-} volumes: - - seaweed-admin:/data + - ${SEAWEED_ADMIN_VOLUME:-seaweed-admin}:/data ports: - "${SEAWEED_ADMIN_BIND:-127.0.0.1}:${SEAWEED_ADMIN_PORT:-23646}:23646" healthcheck: @@ -178,7 +178,7 @@ services: start_period: 15s warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: @@ -203,12 +203,12 @@ services: WARP_PB_S3_ACCESS_KEY: ${WARP_PB_S3_ACCESS_KEY:?set WARP_PB_S3_ACCESS_KEY in .env} WARP_PB_S3_SECRET: ${WARP_PB_S3_SECRET:?set WARP_PB_S3_SECRET in .env} volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" admin: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-admin:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-admin:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: @@ -220,7 +220,7 @@ services: - "${WARP_ADMIN_PORT:-8009}:8009" web: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-web:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-web:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: diff --git a/Docker/docker-compose.pocketbase.seaweedfs.split.yml b/Docker/docker-compose.pocketbase.seaweedfs.split.yml index 20eb3e7..08d22f1 100644 --- a/Docker/docker-compose.pocketbase.seaweedfs.split.yml +++ b/Docker/docker-compose.pocketbase.seaweedfs.split.yml @@ -43,7 +43,7 @@ services: master -ip=seaweedfs-master -ip.bind=0.0.0.0 -mdir=/data -volumeSizeLimitMB=1024 -metricsPort=9324 volumes: - - seaweed-data:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/data healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:9333/cluster/status >/dev/null || exit 1"] interval: 10s @@ -63,7 +63,7 @@ services: seaweedfs-master: condition: service_healthy volumes: - - seaweed-data:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/data healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:8080/healthz >/dev/null || exit 1"] interval: 10s @@ -83,7 +83,7 @@ services: seaweedfs-volume: condition: service_healthy volumes: - - seaweed-data:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/data healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:8888/healthz >/dev/null || exit 1"] interval: 10s @@ -160,7 +160,7 @@ services: WEED_ADMIN_READONLY_USER: ${SEAWEED_ADMIN_READONLY_USER:-} WEED_ADMIN_READONLY_PASSWORD: ${SEAWEED_ADMIN_READONLY_PASSWORD:-} volumes: - - seaweed-admin:/data + - ${SEAWEED_ADMIN_VOLUME:-seaweed-admin}:/data ports: - "${SEAWEED_ADMIN_BIND:-127.0.0.1}:${SEAWEED_ADMIN_PORT:-23646}:23646" healthcheck: @@ -198,7 +198,7 @@ services: WARP_PB_S3_ACCESS_KEY: ${WARP_PB_S3_ACCESS_KEY:?set WARP_PB_S3_ACCESS_KEY in .env} WARP_PB_S3_SECRET: ${WARP_PB_S3_SECRET:?set WARP_PB_S3_SECRET in .env} volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" diff --git a/Docker/docker-compose.pocketbase.seaweedfs.yml b/Docker/docker-compose.pocketbase.seaweedfs.yml index a62b6da..6c49940 100644 --- a/Docker/docker-compose.pocketbase.seaweedfs.yml +++ b/Docker/docker-compose.pocketbase.seaweedfs.yml @@ -39,7 +39,7 @@ services: AWS_ACCESS_KEY_ID: ${WARP_PB_S3_ACCESS_KEY:?set WARP_PB_S3_ACCESS_KEY in .env} AWS_SECRET_ACCESS_KEY: ${WARP_PB_S3_SECRET:?set WARP_PB_S3_SECRET in .env} volumes: - - seaweed-data:/data + - ${SEAWEED_DATA_VOLUME:-seaweed-data}:/data ports: # For aws-cli and the like; the homeserver uses the compose network. - "${SEAWEED_S3_BIND:-127.0.0.1}:${SEAWEED_S3_PORT:-8333}:8333" @@ -95,7 +95,7 @@ services: WARP_PB_S3_ACCESS_KEY: ${WARP_PB_S3_ACCESS_KEY:?set WARP_PB_S3_ACCESS_KEY in .env} WARP_PB_S3_SECRET: ${WARP_PB_S3_SECRET:?set WARP_PB_S3_SECRET in .env} volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" diff --git a/Docker/docker-compose.pocketbase.yml b/Docker/docker-compose.pocketbase.yml index 40935df..b2f6c82 100644 --- a/Docker/docker-compose.pocketbase.yml +++ b/Docker/docker-compose.pocketbase.yml @@ -36,7 +36,7 @@ services: WARP_DB_DRIVER: pocketbase WARP_DB_CONNECTION_STRING: /data/pb_data volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" diff --git a/Docker/docker-compose.postgresql.prod.yml b/Docker/docker-compose.postgresql.prod.yml index ee4e8a4..645a7ac 100644 --- a/Docker/docker-compose.postgresql.prod.yml +++ b/Docker/docker-compose.postgresql.prod.yml @@ -14,7 +14,7 @@ # docker compose -f docker-compose.postgresql.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the images come from WARP_REGISTRY (default -# ghcr.io/dariuszjaniak) at tag WARP_VERSION (default latest). Pin +# 10.2.1.10:5500/admin) at tag WARP_VERSION (default latest). Pin # WARP_VERSION to a release in production, and update with # # docker compose -f docker-compose.postgresql.prod.yml pull && docker compose -f docker-compose.postgresql.prod.yml up -d @@ -32,7 +32,7 @@ services: # C sorts by byte, which is what room and event IDs are compared by. POSTGRES_INITDB_ARGS: --encoding=UTF8 --lc-collate=C --lc-ctype=C volumes: - - postgres-data:/var/lib/postgresql/data + - ${WARP_POSTGRES_VOLUME:-postgres-data}:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U warp -d warp"] interval: 5s @@ -40,7 +40,7 @@ services: retries: 20 warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: @@ -56,12 +56,12 @@ services: WARP_DB_DRIVER: postgres WARP_DB_CONNECTION_STRING: postgres://warp:${WARP_POSTGRES_PASSWORD:?set WARP_POSTGRES_PASSWORD}@postgres:5432/warp?sslmode=disable volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" admin: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-admin:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-admin:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: @@ -73,7 +73,7 @@ services: - "${WARP_ADMIN_PORT:-8009}:8009" web: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-web:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-web:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: diff --git a/Docker/docker-compose.postgresql.yml b/Docker/docker-compose.postgresql.yml index 53d64b7..14ba4e9 100644 --- a/Docker/docker-compose.postgresql.yml +++ b/Docker/docker-compose.postgresql.yml @@ -26,7 +26,7 @@ services: # C sorts by byte, which is what room and event IDs are compared by. POSTGRES_INITDB_ARGS: --encoding=UTF8 --lc-collate=C --lc-ctype=C volumes: - - postgres-data:/var/lib/postgresql/data + - ${WARP_POSTGRES_VOLUME:-postgres-data}:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -U warp -d warp"] interval: 5s @@ -52,7 +52,7 @@ services: WARP_DB_DRIVER: postgres WARP_DB_CONNECTION_STRING: postgres://warp:${WARP_POSTGRES_PASSWORD:-warp}@postgres:5432/warp?sslmode=disable volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" diff --git a/Docker/docker-compose.sqlite.prod.yml b/Docker/docker-compose.sqlite.prod.yml index 0e203ef..d2fb007 100644 --- a/Docker/docker-compose.sqlite.prod.yml +++ b/Docker/docker-compose.sqlite.prod.yml @@ -14,7 +14,7 @@ # docker compose -f docker-compose.sqlite.prod.yml exec warp warp create-account --username admin --admin # # Nothing is built here: the images come from WARP_REGISTRY (default -# ghcr.io/dariuszjaniak) at tag WARP_VERSION (default latest). Pin +# 10.2.1.10:5500/admin) at tag WARP_VERSION (default latest). Pin # WARP_VERSION to a release in production, and update with # # docker compose -f docker-compose.sqlite.prod.yml pull && docker compose -f docker-compose.sqlite.prod.yml up -d @@ -23,7 +23,7 @@ name: warp-sqlite services: warp: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped # The signing key is created on first start and kept in the volume: @@ -35,12 +35,12 @@ services: environment: WARP_DB_DRIVER: sqlite volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008" admin: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-admin:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-admin:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: @@ -52,7 +52,7 @@ services: - "${WARP_ADMIN_PORT:-8009}:8009" web: - image: ${WARP_REGISTRY:-ghcr.io/dariuszjaniak}/warp-web:${WARP_VERSION:-latest} + image: ${WARP_REGISTRY:-10.2.1.10:5500/admin}/warp-web:${WARP_VERSION:-latest} pull_policy: always restart: unless-stopped depends_on: diff --git a/Docker/docker-compose.sqlite.yml b/Docker/docker-compose.sqlite.yml index 46c6f23..f37bba1 100644 --- a/Docker/docker-compose.sqlite.yml +++ b/Docker/docker-compose.sqlite.yml @@ -31,7 +31,7 @@ services: environment: WARP_DB_DRIVER: sqlite volumes: - - warp-data:/data + - ${WARP_DATA_VOLUME:-warp-data}:/data ports: - "${WARP_PORT:-8008}:8008"