From d76790c22cbee1bdaa2a69811d0a14c57d9a9a27 Mon Sep 17 00:00:00 2001 From: Joakim Svensson Date: Wed, 31 Dec 2025 16:04:08 +0000 Subject: [PATCH] Docker file och compose --- Dockerfile | 33 +++++++++++++++++++++++++++++ docker-compose.yaml | 50 ++++++++++++++++++++++++++++++++++++++++++++ docker-compose.yaml~ | 49 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 132 insertions(+) create mode 100644 Dockerfile create mode 100644 docker-compose.yaml create mode 100644 docker-compose.yaml~ diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..26dc6215 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,33 @@ +############################ +# 1) Builder: bygg HedgeDoc +############################ +FROM node:18-alpine AS builder + +WORKDIR /build + +# H??mta din branch som tarball (ingen git beh??vs) +ADD https://git.sa6anw.se/sa6anw/hedgedoc/archive/refs/heads/hedgeagent/1.10.5.tar.gz /tmp/hedgedoc.tar.gz + +RUN tar -xzf /tmp/hedgedoc.tar.gz --strip-components=1 \ + && rm /tmp/hedgedoc.tar.gz + +# Installera deps + bygg frontend/backend +RUN corepack enable \ + && yarn install --immutable \ + && yarn build + + +######################################## +# 2) Runtime: officiell HedgeDoc-image +######################################## +FROM quay.io/hedgedoc/hedgedoc:1.10.5 + +USER root + +# Ers??tt upstream-koden +RUN rm -rf /hedgedoc + +# Kopiera f??rdigbyggd app med r??tt UID/GID +COPY --from=builder --chown=10000:10000 /build /hedgedoc + +USER 10000 diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 00000000..0183103d --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,50 @@ +services: + database: + image: postgres:13.4-alpine + environment: + - POSTGRES_USER=hedgedoc + - POSTGRES_PASSWORD=password + - POSTGRES_DB=hedgedoc + volumes: + - ./db:/var/lib/postgresql/data + restart: always + networks: + - internal + + app: + build: . + image: hedgedoc-hedgeagent:1.10.5 + container_name: hedgedoc + environment: + CMD_DB_URL: postgres://hedgedoc:password@database:5432/hedgedoc + CMD_PORT: "3000" + CMD_HOST: "0.0.0.0" + CMD_DOMAIN: hedgedoc.sa6anw.se + CMD_URL_ADDPORT: "false" + CMD_PROTOCOL_USESSL: "true" + CMD_EMAIL: "true" + CMD_ALLOW_EMAIL_REGISTER: "true" + volumes: + - ./uploads:/hedgedoc/public/uploads + restart: always + depends_on: + - database +# Since I use Caddy I don't need this +# ports: +# - "3000:3000" + +## If you use Caddy like I do keep below + networks: + - internal + - proxy + + labels: + caddy: hedgedoc.sa6anw.se + caddy.reverse_proxy: "{{upstreams 3000}}" + +networks: + internal: + internal: true + proxy: + external: true +## If you don't, you can deleta all of this diff --git a/docker-compose.yaml~ b/docker-compose.yaml~ new file mode 100644 index 00000000..46f3b436 --- /dev/null +++ b/docker-compose.yaml~ @@ -0,0 +1,49 @@ +services: + database: + image: postgres:13.4-alpine + environment: + - POSTGRES_USER=hedgedoc + - POSTGRES_PASSWORD=password + - POSTGRES_DB=hedgedoc + volumes: + - ./db:/var/lib/postgresql/data + restart: always + networks: + - internal + + app: + image: hedgedoc-hedgeagent:1.10.5 + container_name: hedgedoc + environment: + CMD_DB_URL: postgres://hedgedoc:password@database:5432/hedgedoc + CMD_PORT: "3000" + CMD_HOST: "0.0.0.0" + CMD_DOMAIN: hedgedoc.sa6anw.se + CMD_URL_ADDPORT: "false" + CMD_PROTOCOL_USESSL: "true" + CMD_EMAIL: "true" + CMD_ALLOW_EMAIL_REGISTER: "true" + volumes: + - ./uploads:/hedgedoc/public/uploads + restart: always + depends_on: + - database +# Since I use Caddy I don't need this +# ports: +# - "3000:3000" + +## If you use Caddy like I do keep below + networks: + - internal + - proxy + + labels: + caddy: hedgedoc.sa6anw.se + caddy.reverse_proxy: "{{upstreams 3000}}" + +networks: + internal: + internal: true + proxy: + external: true +## If you don't, you can deleta all of this