From 751fe1e9def97fd60095df143f139438550546dd Mon Sep 17 00:00:00 2001 From: ComplementaryPogo Date: Mon, 15 Dec 2025 02:28:02 -0600 Subject: [PATCH 1/9] Dockerfile and dockerignore --- .dockerignore | 45 +++++++++++++++++++++++++++++++++++++++++++++ Dockerfile | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..3de65df --- /dev/null +++ b/.dockerignore @@ -0,0 +1,45 @@ +# Dependencies +node_modules + +# Build output +build +.svelte-kit + +# Git +.git +.gitignore + +# IDE +.vscode +.idea +*.swp +*.swo + +# Logs +logs +*.log +npm-debug.log* + +# OS files +.DS_Store +Thumbs.db + +# Docker +Dockerfile +docker-compose*.yml +.dockerignore + +# Documentation +README.md +LICENSE +*.md + +# Development/Test +.env.local +.env.*.local +coverage +.nyc_output + +# Config (mounted at runtime, not baked in) +# Keep config examples for build stage +!config/*.example.* diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..c876d7f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,47 @@ +FROM node:22-slim AS base +RUN corepack enable && corepack prepare pnpm@latest --activate +WORKDIR /app + +FROM base AS deps + +COPY package.json pnpm-lock.yaml ./ +COPY patches ./patches/ +RUN pnpm install --frozen-lockfile + +FROM base AS builder +WORKDIR /app +COPY --from=deps /app/node_modules ./node_modules +COPY . . +RUN mkdir -p src/routes/\(custom\) && \ + mkdir -p src/components/custom && \ + mkdir -p src/lib/server && \ + cp config/custom.example.css config/custom.css && \ + cp config/Home.example.svelte config/Home.svelte && \ + cp config/config.example.toml config/config.toml && \ + ln config/custom.css src/custom.css && \ + ln config/Home.svelte src/components/custom/Home.svelte && \ + ln config/config.toml src/lib/server/config.toml +RUN pnpm run build + +FROM node:22-slim AS runtime +RUN apt-get update && apt-get install -y --no-install-recommends \ + ca-certificates \ + && rm -rf /var/lib/apt/lists/* +WORKDIR /app +RUN groupadd --gid 1001 diadem && \ + useradd --uid 1001 --gid diadem --shell /bin/bash --create-home diadem +COPY --from=builder --chown=diadem:diadem /app/build ./build +COPY --from=builder --chown=diadem:diadem /app/package.json ./ +COPY --from=deps --chown=diadem:diadem /app/node_modules ./node_modules +RUN mkdir -p /app/config && chown diadem:diadem /app/config +USER diadem +ENV NODE_ENV=production +ENV HOST=0.0.0.0 +ENV PORT=3900 + +EXPOSE 3900 + +HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ + CMD node -e "fetch('http://localhost:${PORT:-3900}').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))" + +CMD ["node", "build/index.js"] From 6dc2768d4ffff8f3d2898195c32f6ad8029dc1a2 Mon Sep 17 00:00:00 2001 From: ComplementaryPogo Date: Mon, 15 Dec 2025 02:59:18 -0600 Subject: [PATCH 2/9] Docker entrypoint for DB --- .env.example | 8 ++++++ Dockerfile | 12 ++++++-- docker-compose.yml | 65 ++++++++++++++++++++++++++++++++++++++++++++ docker-entrypoint.sh | 17 ++++++++++++ 4 files changed, 100 insertions(+), 2 deletions(-) create mode 100644 .env.example create mode 100644 docker-compose.yml create mode 100644 docker-entrypoint.sh diff --git a/.env.example b/.env.example new file mode 100644 index 0000000..8fea93c --- /dev/null +++ b/.env.example @@ -0,0 +1,8 @@ +# Diadem Application +DIADEM_PORT=3900 + +# MariaDB Database (Diadem Internal) +MARIADB_ROOT_PASSWORD=changeme_root +MARIADB_DATABASE=diadem +MARIADB_USER=diadem +MARIADB_PASSWORD=changeme diff --git a/Dockerfile b/Dockerfile index c876d7f..b624c22 100644 --- a/Dockerfile +++ b/Dockerfile @@ -33,7 +33,15 @@ RUN groupadd --gid 1001 diadem && \ COPY --from=builder --chown=diadem:diadem /app/build ./build COPY --from=builder --chown=diadem:diadem /app/package.json ./ COPY --from=deps --chown=diadem:diadem /app/node_modules ./node_modules + +# Files needed for drizzle-kit db:push at runtime +COPY --from=builder --chown=diadem:diadem /app/drizzle.config.ts ./ +COPY --from=builder --chown=diadem:diadem /app/src/lib/server/db ./src/lib/server/db +COPY --from=builder --chown=diadem:diadem /app/src/lib/services ./src/lib/services + RUN mkdir -p /app/config && chown diadem:diadem /app/config +COPY --chown=diadem:diadem docker-entrypoint.sh ./ +RUN chmod +x docker-entrypoint.sh USER diadem ENV NODE_ENV=production ENV HOST=0.0.0.0 @@ -41,7 +49,7 @@ ENV PORT=3900 EXPOSE 3900 -HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ +HEALTHCHECK --interval=30s --timeout=10s --start-period=30s --retries=3 \ CMD node -e "fetch('http://localhost:${PORT:-3900}').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))" -CMD ["node", "build/index.js"] +ENTRYPOINT ["./docker-entrypoint.sh"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..d4fb93d --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,65 @@ +services: + diadem: + build: + context: . + dockerfile: Dockerfile + image: diadem:latest + container_name: diadem + restart: unless-stopped + ports: + - "${DIADEM_PORT:-3900}:3900" + environment: + - NODE_ENV=production + - HOST=0.0.0.0 + - PORT=3900 + volumes: + # Required: Mount your config file (both paths needed for runtime and db:push) + - ./config/config.toml:/app/build/server/config.toml:ro + - ./config/config.toml:/app/src/lib/server/config.toml:ro + # Optional: Persistent logs + - diadem-logs:/app/logs + depends_on: + diadem-db: + condition: service_healthy + networks: + - diadem-network + healthcheck: + test: ["CMD", "node", "-e", "fetch('http://localhost:3900').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))"] + interval: 30s + timeout: 10s + retries: 3 + start_period: 30s + + diadem-db: + image: mariadb:11.4 + container_name: diadem-db + restart: unless-stopped + environment: + MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:-changeme_root} + MARIADB_DATABASE: ${MARIADB_DATABASE:-diadem} + MARIADB_USER: ${MARIADB_USER:-diadem} + MARIADB_PASSWORD: ${MARIADB_PASSWORD:-changeme} + volumes: + - diadem-db-data:/var/lib/mysql + networks: + - diadem-network + healthcheck: + test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] + interval: 10s + timeout: 5s + retries: 5 + start_period: 30s + command: + - --character-set-server=utf8mb4 + - --collation-server=utf8mb4_unicode_ci + +volumes: + diadem-db-data: + name: diadem-db-data + diadem-logs: + name: diadem-logs + +networks: + diadem-network: + name: diadem-network + driver: bridge diff --git a/docker-entrypoint.sh b/docker-entrypoint.sh new file mode 100644 index 0000000..64e4b32 --- /dev/null +++ b/docker-entrypoint.sh @@ -0,0 +1,17 @@ +#!/bin/sh +set -e + +# Only run db:push if the database appears to be uninitialized +# This prevents accidental destructive schema changes in production +if [ "${SKIP_DB_PUSH:-}" = "true" ]; then + echo "Skipping database push (SKIP_DB_PUSH=true)" +elif [ "${FORCE_DB_PUSH:-}" = "true" ]; then + echo "Running database push (forced)..." + npx drizzle-kit push --force +else + echo "Running database push..." + npx drizzle-kit push +fi + +echo "Starting Diadem..." +exec node build/index.js From 1c424bd9f8ec4f240747fe1380e5cd11a010eba5 Mon Sep 17 00:00:00 2001 From: ComplementaryPogo Date: Mon, 15 Dec 2025 03:14:22 -0600 Subject: [PATCH 3/9] Makefile for helping push to docker easily --- Makefile | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..966d929 --- /dev/null +++ b/Makefile @@ -0,0 +1,111 @@ +# Diadem Docker Build & Release Makefile + +# Registry and image configuration (override with environment variables) +REGISTRY ?= ghcr.io +REPOSITORY ?= ccev/diadem +IMAGE_NAME ?= $(REGISTRY)/$(REPOSITORY) + +# Version tagging (defaults to git short hash) +GIT_HASH := $(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown") +GIT_DIRTY := $(shell git diff --quiet 2>/dev/null || echo "-dirty") +VERSION ?= $(GIT_HASH)$(GIT_DIRTY) + +# Additional tags +LATEST_TAG ?= latest + +# Docker build options +DOCKER_BUILD_ARGS ?= +DOCKER_PLATFORM ?= linux/amd64,linux/arm64 +DOCKERFILE ?= Dockerfile + +# Helm chart +HELM_CHART_PATH := helm/diadem + +.PHONY: help build release build-and-release tag clean lint helm-lint helm-package + +help: ## Show this help message + @echo "Diadem Docker Build & Release" + @echo "" + @echo "Usage: make [target]" + @echo "" + @echo "Configuration (override with environment variables):" + @echo " REGISTRY = $(REGISTRY)" + @echo " REPOSITORY = $(REPOSITORY)" + @echo " IMAGE_NAME = $(IMAGE_NAME)" + @echo " VERSION = $(VERSION)" + @echo "" + @echo "Targets:" + @awk 'BEGIN {FS = ":.*##"; printf ""} /^[a-zA-Z_-]+:.*?##/ { printf " %-15s %s\n", $$1, $$2 }' $(MAKEFILE_LIST) + +build: ## Build image for local platform only + docker build \ + --tag $(IMAGE_NAME):$(VERSION) \ + --tag $(IMAGE_NAME):$(LATEST_TAG) \ + --file $(DOCKERFILE) \ + $(DOCKER_BUILD_ARGS) \ + . + +release: ## Push locally built image to registry + docker push $(IMAGE_NAME):$(VERSION) + docker push $(IMAGE_NAME):$(LATEST_TAG) + +build-and-release: ## Build multi-platform image and push to registry + docker buildx build \ + --platform $(DOCKER_PLATFORM) \ + --tag $(IMAGE_NAME):$(VERSION) \ + --tag $(IMAGE_NAME):$(LATEST_TAG) \ + --file $(DOCKERFILE) \ + --push \ + $(DOCKER_BUILD_ARGS) \ + . + +tag: ## Tag an existing image with a new tag (e.g., make tag VERSION=abc123 NEW_TAG=v1.0.0) + @test -n "$(NEW_TAG)" || (echo "NEW_TAG is required" && exit 1) + docker buildx imagetools create \ + --tag $(IMAGE_NAME):$(NEW_TAG) \ + $(IMAGE_NAME):$(VERSION) + +clean: ## Remove local images + -docker rmi $(IMAGE_NAME):$(VERSION) 2>/dev/null + -docker rmi $(IMAGE_NAME):$(LATEST_TAG) 2>/dev/null + +lint: ## Lint Dockerfile with hadolint + @command -v hadolint >/dev/null 2>&1 && hadolint $(DOCKERFILE) || \ + docker run --rm -i hadolint/hadolint < $(DOCKERFILE) + +helm-lint: ## Lint Helm chart + helm lint $(HELM_CHART_PATH) + +helm-package: ## Package Helm chart + helm package $(HELM_CHART_PATH) + +helm-template: ## Render Helm chart templates + helm template diadem $(HELM_CHART_PATH) + +# Docker Compose targets +.PHONY: up down logs + +up: ## Start services with docker-compose + docker compose up -d + +down: ## Stop services with docker-compose + docker compose down + +logs: ## View docker-compose logs + docker compose logs -f + +# Development helpers +.PHONY: setup-buildx info + +setup-buildx: ## Set up Docker buildx for multi-platform builds + docker buildx create --name diadem-builder --use 2>/dev/null || docker buildx use diadem-builder + docker buildx inspect --bootstrap + +info: ## Show build configuration + @echo "Registry: $(REGISTRY)" + @echo "Repository: $(REPOSITORY)" + @echo "Image: $(IMAGE_NAME)" + @echo "Version: $(VERSION)" + @echo "Git Hash: $(GIT_HASH)" + @echo "Platforms: $(DOCKER_PLATFORM)" + @echo "Dockerfile: $(DOCKERFILE)" From 67b61889bbd67687f32bb77f53e5f63fe08215df Mon Sep 17 00:00:00 2001 From: ComplementaryPogo Date: Mon, 15 Dec 2025 03:16:16 -0600 Subject: [PATCH 4/9] Use DIADEM_DOCKER prefix actually --- Makefile | 72 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 36 insertions(+), 36 deletions(-) diff --git a/Makefile b/Makefile index 966d929..ba23f38 100644 --- a/Makefile +++ b/Makefile @@ -1,22 +1,22 @@ # Diadem Docker Build & Release Makefile # Registry and image configuration (override with environment variables) -REGISTRY ?= ghcr.io -REPOSITORY ?= ccev/diadem -IMAGE_NAME ?= $(REGISTRY)/$(REPOSITORY) +DIADEM_DOCKER_REGISTRY ?= ghcr.io +DIADEM_DOCKER_REPOSITORY ?= ccev/diadem +DIADEM_DOCKER_IMAGE ?= $(DIADEM_DOCKER_REGISTRY)/$(DIADEM_DOCKER_REPOSITORY) # Version tagging (defaults to git short hash) GIT_HASH := $(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown") GIT_DIRTY := $(shell git diff --quiet 2>/dev/null || echo "-dirty") -VERSION ?= $(GIT_HASH)$(GIT_DIRTY) +DIADEM_DOCKER_VERSION ?= $(GIT_HASH)$(GIT_DIRTY) # Additional tags -LATEST_TAG ?= latest +DIADEM_DOCKER_LATEST_TAG ?= latest # Docker build options -DOCKER_BUILD_ARGS ?= -DOCKER_PLATFORM ?= linux/amd64,linux/arm64 -DOCKERFILE ?= Dockerfile +DIADEM_DOCKER_BUILD_ARGS ?= +DIADEM_DOCKER_PLATFORM ?= linux/amd64,linux/arm64 +DIADEM_DOCKER_FILE ?= Dockerfile # Helm chart HELM_CHART_PATH := helm/diadem @@ -29,49 +29,49 @@ help: ## Show this help message @echo "Usage: make [target]" @echo "" @echo "Configuration (override with environment variables):" - @echo " REGISTRY = $(REGISTRY)" - @echo " REPOSITORY = $(REPOSITORY)" - @echo " IMAGE_NAME = $(IMAGE_NAME)" - @echo " VERSION = $(VERSION)" + @echo " DIADEM_DOCKER_REGISTRY = $(DIADEM_DOCKER_REGISTRY)" + @echo " DIADEM_DOCKER_REPOSITORY = $(DIADEM_DOCKER_REPOSITORY)" + @echo " DIADEM_DOCKER_IMAGE = $(DIADEM_DOCKER_IMAGE)" + @echo " DIADEM_DOCKER_VERSION = $(DIADEM_DOCKER_VERSION)" @echo "" @echo "Targets:" @awk 'BEGIN {FS = ":.*##"; printf ""} /^[a-zA-Z_-]+:.*?##/ { printf " %-15s %s\n", $$1, $$2 }' $(MAKEFILE_LIST) build: ## Build image for local platform only docker build \ - --tag $(IMAGE_NAME):$(VERSION) \ - --tag $(IMAGE_NAME):$(LATEST_TAG) \ - --file $(DOCKERFILE) \ - $(DOCKER_BUILD_ARGS) \ + --tag $(DIADEM_DOCKER_IMAGE):$(DIADEM_DOCKER_VERSION) \ + --tag $(DIADEM_DOCKER_IMAGE):$(DIADEM_DOCKER_LATEST_TAG) \ + --file $(DIADEM_DOCKER_FILE) \ + $(DIADEM_DOCKER_BUILD_ARGS) \ . release: ## Push locally built image to registry - docker push $(IMAGE_NAME):$(VERSION) - docker push $(IMAGE_NAME):$(LATEST_TAG) + docker push $(DIADEM_DOCKER_IMAGE):$(DIADEM_DOCKER_VERSION) + docker push $(DIADEM_DOCKER_IMAGE):$(DIADEM_DOCKER_LATEST_TAG) build-and-release: ## Build multi-platform image and push to registry docker buildx build \ - --platform $(DOCKER_PLATFORM) \ - --tag $(IMAGE_NAME):$(VERSION) \ - --tag $(IMAGE_NAME):$(LATEST_TAG) \ - --file $(DOCKERFILE) \ + --platform $(DIADEM_DOCKER_PLATFORM) \ + --tag $(DIADEM_DOCKER_IMAGE):$(DIADEM_DOCKER_VERSION) \ + --tag $(DIADEM_DOCKER_IMAGE):$(DIADEM_DOCKER_LATEST_TAG) \ + --file $(DIADEM_DOCKER_FILE) \ --push \ - $(DOCKER_BUILD_ARGS) \ + $(DIADEM_DOCKER_BUILD_ARGS) \ . -tag: ## Tag an existing image with a new tag (e.g., make tag VERSION=abc123 NEW_TAG=v1.0.0) +tag: ## Tag an existing image with a new tag (e.g., make tag NEW_TAG=v1.0.0) @test -n "$(NEW_TAG)" || (echo "NEW_TAG is required" && exit 1) docker buildx imagetools create \ - --tag $(IMAGE_NAME):$(NEW_TAG) \ - $(IMAGE_NAME):$(VERSION) + --tag $(DIADEM_DOCKER_IMAGE):$(NEW_TAG) \ + $(DIADEM_DOCKER_IMAGE):$(DIADEM_DOCKER_VERSION) clean: ## Remove local images - -docker rmi $(IMAGE_NAME):$(VERSION) 2>/dev/null - -docker rmi $(IMAGE_NAME):$(LATEST_TAG) 2>/dev/null + -docker rmi $(DIADEM_DOCKER_IMAGE):$(DIADEM_DOCKER_VERSION) 2>/dev/null + -docker rmi $(DIADEM_DOCKER_IMAGE):$(DIADEM_DOCKER_LATEST_TAG) 2>/dev/null lint: ## Lint Dockerfile with hadolint - @command -v hadolint >/dev/null 2>&1 && hadolint $(DOCKERFILE) || \ - docker run --rm -i hadolint/hadolint < $(DOCKERFILE) + @command -v hadolint >/dev/null 2>&1 && hadolint $(DIADEM_DOCKER_FILE) || \ + docker run --rm -i hadolint/hadolint < $(DIADEM_DOCKER_FILE) helm-lint: ## Lint Helm chart helm lint $(HELM_CHART_PATH) @@ -102,10 +102,10 @@ setup-buildx: ## Set up Docker buildx for multi-platform builds docker buildx inspect --bootstrap info: ## Show build configuration - @echo "Registry: $(REGISTRY)" - @echo "Repository: $(REPOSITORY)" - @echo "Image: $(IMAGE_NAME)" - @echo "Version: $(VERSION)" + @echo "Registry: $(DIADEM_DOCKER_REGISTRY)" + @echo "Repository: $(DIADEM_DOCKER_REPOSITORY)" + @echo "Image: $(DIADEM_DOCKER_IMAGE)" + @echo "Version: $(DIADEM_DOCKER_VERSION)" @echo "Git Hash: $(GIT_HASH)" - @echo "Platforms: $(DOCKER_PLATFORM)" - @echo "Dockerfile: $(DOCKERFILE)" + @echo "Platforms: $(DIADEM_DOCKER_PLATFORM)" + @echo "Dockerfile: $(DIADEM_DOCKER_FILE)" From c83e29420ac54885da2f9c0da9a321d2a158237f Mon Sep 17 00:00:00 2001 From: ComplementaryPogo Date: Mon, 15 Dec 2025 05:09:32 -0600 Subject: [PATCH 5/9] Config file paths # Conflicts: # src/lib/services/config/configNode.server.ts --- docker-compose.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index d4fb93d..a10caa6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,9 +13,8 @@ services: - HOST=0.0.0.0 - PORT=3900 volumes: - # Required: Mount your config file (both paths needed for runtime and db:push) - - ./config/config.toml:/app/build/server/config.toml:ro - - ./config/config.toml:/app/src/lib/server/config.toml:ro + # Required: Mount your config file + - ./config/config.toml:/app/config/config.toml:ro # Optional: Persistent logs - diadem-logs:/app/logs depends_on: From c393db2c37681b44bd1f219a526e4dbd355267c2 Mon Sep 17 00:00:00 2001 From: ComplementaryPogo Date: Mon, 15 Dec 2025 05:18:15 -0600 Subject: [PATCH 6/9] Revert "Config file paths" This reverts commit 305ad680cf6a5a87add6a48cb37bbc64f5530f18. --- docker-compose.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index a10caa6..d4fb93d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -13,8 +13,9 @@ services: - HOST=0.0.0.0 - PORT=3900 volumes: - # Required: Mount your config file - - ./config/config.toml:/app/config/config.toml:ro + # Required: Mount your config file (both paths needed for runtime and db:push) + - ./config/config.toml:/app/build/server/config.toml:ro + - ./config/config.toml:/app/src/lib/server/config.toml:ro # Optional: Persistent logs - diadem-logs:/app/logs depends_on: From 843488f51961abcd1ecfaeca0719d42afb88552c Mon Sep 17 00:00:00 2001 From: ComplementaryPogo Date: Tue, 30 Dec 2025 16:30:46 -0600 Subject: [PATCH 7/9] Add logs directory --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index b624c22..86e3342 100644 --- a/Dockerfile +++ b/Dockerfile @@ -39,7 +39,7 @@ COPY --from=builder --chown=diadem:diadem /app/drizzle.config.ts ./ COPY --from=builder --chown=diadem:diadem /app/src/lib/server/db ./src/lib/server/db COPY --from=builder --chown=diadem:diadem /app/src/lib/services ./src/lib/services -RUN mkdir -p /app/config && chown diadem:diadem /app/config +RUN mkdir -p /app/config /app/logs && chown diadem:diadem /app/config /app/logs COPY --chown=diadem:diadem docker-entrypoint.sh ./ RUN chmod +x docker-entrypoint.sh USER diadem From d587e653beddbca89263a33d4a98ab89939696ec Mon Sep 17 00:00:00 2001 From: ComplementaryPogo Date: Wed, 31 Dec 2025 02:01:19 -0600 Subject: [PATCH 8/9] Don't try to cache the .gitkeep file --- src/lib/serviceWorker/offline.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/serviceWorker/offline.ts b/src/lib/serviceWorker/offline.ts index ce568fb..ec89cf0 100644 --- a/src/lib/serviceWorker/offline.ts +++ b/src/lib/serviceWorker/offline.ts @@ -12,7 +12,7 @@ const CACHE = `cache-${version}`; const ASSETS = [ ...build, // the app itself - ...files // everything in `static` + ...files.filter(f => !f.endsWith('.gitkeep')) // everything in `static` except .gitkeep ]; export function makeOfflineAvailable() { From eda49bb30ef69eafa422804ff7ed046d74e66890 Mon Sep 17 00:00:00 2001 From: Malte <42342921+ccev@users.noreply.github.com> Date: Sun, 1 Feb 2026 00:01:13 +0100 Subject: [PATCH 9/9] Delete docker-compose.yml --- docker-compose.yml | 65 ---------------------------------------------- 1 file changed, 65 deletions(-) delete mode 100644 docker-compose.yml diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index d4fb93d..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,65 +0,0 @@ -services: - diadem: - build: - context: . - dockerfile: Dockerfile - image: diadem:latest - container_name: diadem - restart: unless-stopped - ports: - - "${DIADEM_PORT:-3900}:3900" - environment: - - NODE_ENV=production - - HOST=0.0.0.0 - - PORT=3900 - volumes: - # Required: Mount your config file (both paths needed for runtime and db:push) - - ./config/config.toml:/app/build/server/config.toml:ro - - ./config/config.toml:/app/src/lib/server/config.toml:ro - # Optional: Persistent logs - - diadem-logs:/app/logs - depends_on: - diadem-db: - condition: service_healthy - networks: - - diadem-network - healthcheck: - test: ["CMD", "node", "-e", "fetch('http://localhost:3900').then(r => process.exit(r.ok ? 0 : 1)).catch(() => process.exit(1))"] - interval: 30s - timeout: 10s - retries: 3 - start_period: 30s - - diadem-db: - image: mariadb:11.4 - container_name: diadem-db - restart: unless-stopped - environment: - MARIADB_ROOT_PASSWORD: ${MARIADB_ROOT_PASSWORD:-changeme_root} - MARIADB_DATABASE: ${MARIADB_DATABASE:-diadem} - MARIADB_USER: ${MARIADB_USER:-diadem} - MARIADB_PASSWORD: ${MARIADB_PASSWORD:-changeme} - volumes: - - diadem-db-data:/var/lib/mysql - networks: - - diadem-network - healthcheck: - test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"] - interval: 10s - timeout: 5s - retries: 5 - start_period: 30s - command: - - --character-set-server=utf8mb4 - - --collation-server=utf8mb4_unicode_ci - -volumes: - diadem-db-data: - name: diadem-db-data - diadem-logs: - name: diadem-logs - -networks: - diadem-network: - name: diadem-network - driver: bridge