diff --git a/.github/workflows/pullpreview.yml b/.github/workflows/pullpreview.yml index 63990de45fc..718e8448e90 100644 --- a/.github/workflows/pullpreview.yml +++ b/.github/workflows/pullpreview.yml @@ -44,6 +44,7 @@ jobs: - name: Prepare docker-compose files run: | cp ./docker/pullpreview/docker-compose.yml ./docker-compose.pullpreview.yml + cp ./docker/pullpreview/Caddyfile ./Caddyfile cp ./docker/prod/Dockerfile ./Dockerfile - uses: pullpreview/action@v6 with: @@ -54,7 +55,8 @@ jobs: instance_type: xlarge ports: 80,443,8080 default_port: 443 - ttl: 10d + ttl: 8d + dns: my.opf.run env: AWS_ACCESS_KEY_ID: "${{ secrets.AWS_ACCESS_KEY_ID }}" AWS_SECRET_ACCESS_KEY: "${{ secrets.AWS_SECRET_ACCESS_KEY }}" diff --git a/docker/pullpreview/Caddyfile b/docker/pullpreview/Caddyfile new file mode 100644 index 00000000000..3e9a2f1edaa --- /dev/null +++ b/docker/pullpreview/Caddyfile @@ -0,0 +1,5 @@ +{$PULLPREVIEW_PUBLIC_DNS} { + # Websocket proxy for hocuspocus + reverse_proxy /hocuspocus hocuspocus:1234 + reverse_proxy web:8080 +} \ No newline at end of file diff --git a/docker/pullpreview/docker-compose.yml b/docker/pullpreview/docker-compose.yml index 7be578a1adf..8bb3c2b6f04 100644 --- a/docker/pullpreview/docker-compose.yml +++ b/docker/pullpreview/docker-compose.yml @@ -23,6 +23,9 @@ x-defaults: &defaults environment: - "DATABASE_URL=postgresql://app:p4ssw0rd@db:5432/app?encoding=utf8&pool=5&timeout=5000&reconnect=true" - "OPENPROJECT_RAILS__CACHE__STORE=file_store" + - "OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__URL=wss://${PULLPREVIEW_PUBLIC_DNS}/hocuspocus" + - "OPENPROJECT_COLLABORATIVE__EDITING__HOCUSPOCUS__SECRET=secret12345" + - "OPENPROJECT_ADDITIONAL__HOSTS=web" - "RAILS_ENV=production" - "SECRET_KEY_BASE=d4e74f017910ac56c6ebad01165b7e1b37f4c9c02e9716836f8670cdc8d65a231e64e4f6416b19c8" networks: @@ -32,17 +35,21 @@ services: proxy: image: caddy:2 restart: unless-stopped - command: "caddy reverse-proxy --from '${PULLPREVIEW_URL}' --to web:8080" + command: "caddy run --config /etc/caddy/Caddyfile" networks: - frontend - backend depends_on: - web + - hocuspocus + environment: + - "PULLPREVIEW_PUBLIC_DNS=${PULLPREVIEW_PUBLIC_DNS}" ports: - "80:80" - "443:443" volumes: - "caddy_data:/data" + - "./Caddyfile:/etc/caddy/Caddyfile:ro" db: image: postgres:17 @@ -71,3 +78,17 @@ services: command: "./docker/prod/worker --seed --set attachment_max_size=262144,host_name=${PULLPREVIEW_PUBLIC_DNS}" depends_on: - db + + hocuspocus: + image: openproject/hocuspocus:latest + depends_on: + - web + networks: + - frontend + - backend + environment: + - NODE_TLS_REJECT_UNAUTHORIZED=0 + - SECRET=secret12345 + - OPENPROJECT_URL=http://web:8080 + expose: + - "1234"