This commit is contained in:
ponzischeme89
2026-08-17 13:13:10 +12:00
parent 12b27c77c3
commit 43ab18854c
39 changed files with 1707 additions and 1528 deletions
-57
View File
@@ -57,9 +57,6 @@ services:
# keeps the release credential out of `docker inspect` while preserving the
# existing CI/backend publish API.
MEMBY_RELEASE_PUBLISH_TOKEN_FILE: "/run/secrets/memby_release_publish_token"
# The gateway relays authenticated Admin Console actions to this private service.
# The builder port is not published and the signing secrets never reach the browser.
MEMBY_RELEASE_BUILDER_URL: "http://memby-builder:8090"
# Hourly incremental import: enough for episodes landing through the day, and
# films appearing weekly ride along.
MEMBY_SYNC_INTERVAL: "${MEMBY_SYNC_INTERVAL:-1h}"
@@ -118,51 +115,6 @@ services:
retries: 3
start_period: 10s
# An isolated Android toolchain. Its small controller waits for an authenticated
# Admin Console request; the same image remains directly runnable as the CLI fallback.
# It fetches the newest semantic GitHub tag,
# builds with the repository's Gradle wrapper, verifies the existing signing
# certificate, and publishes through the gateway's atomic release endpoint.
memby-builder:
build:
context: ./builder
args:
ANDROID_COMMAND_LINE_TOOLS_VERSION: "15859902"
ANDROID_COMMAND_LINE_TOOLS_SHA256: "4e4c464f145a7512b57d088ac6c278c03c9eea610886b35a5e0804e74eedf583"
ANDROID_PLATFORM: "35"
ANDROID_BUILD_TOOLS: "35.0.0"
environment:
MEMBY_SOURCE_REPOSITORY: "${MEMBY_SOURCE_REPOSITORY:-https://github.com/ponzischeme89/memby.git}"
MEMBY_RELEASE_TAG: "${MEMBY_RELEASE_TAG:-}"
MEMBY_RELEASE_NOTES: "${MEMBY_RELEASE_NOTES:-}"
MEMBY_RELEASE_MANDATORY: "${MEMBY_RELEASE_MANDATORY:-false}"
MEMBY_SKIP_APP_TESTS: "${MEMBY_SKIP_APP_TESTS:-false}"
MEMBY_SOURCE_URL: "${MEMBY_SOURCE_URL:-}"
MEMBY_RELEASE_PUBLISH_URL: "http://server:32768/admin/api/release"
command: ["serve"]
restart: unless-stopped
expose:
- "8090"
volumes:
- memby-gradle-cache:/home/memby/.gradle
- memby-releases:/data/releases
secrets:
- memby_android_keystore
- memby_android_keystore_password
- memby_android_key_alias
- memby_android_key_password
- memby_release_publish_token
depends_on:
server:
condition: service_healthy
mem_limit: "${MEMBY_BUILDER_MEMORY_LIMIT:-4g}"
healthcheck:
test: ["CMD", "curl", "--fail", "--silent", "http://127.0.0.1:8090/healthz"]
interval: 30s
timeout: 5s
retries: 3
start_period: 5s
# The operations console: a React application built at image time and served by nginx.
#
# Deliberately not published. The household's reverse proxy sends one hostname to the
@@ -218,16 +170,7 @@ volumes:
memby-postgres:
memby-releases:
memby-logs:
memby-gradle-cache:
secrets:
memby_android_keystore:
file: "${MEMBY_SECRETS_DIR:-./secrets}/memby-release.jks"
memby_android_keystore_password:
file: "${MEMBY_SECRETS_DIR:-./secrets}/memby-keystore-password"
memby_android_key_alias:
file: "${MEMBY_SECRETS_DIR:-./secrets}/memby-key-alias"
memby_android_key_password:
file: "${MEMBY_SECRETS_DIR:-./secrets}/memby-key-password"
memby_release_publish_token:
file: "${MEMBY_SECRETS_DIR:-./secrets}/memby-release-publish-token"