Skip to content

Dev: unify local ports behind single nginx proxy #121

@moodyjmz

Description

@moodyjmz

Currently the dev stack exposes two ports — Nextcloud on :8081 and EuroOffice DocumentServer on :8080. This creates a cross-origin iframe, which among other things causes iOS Safari to block keyboard input inside the editor (iOS enforces stricter keyboard policies for cross-origin frames).

Production always proxies EuroOffice through the same Nextcloud origin, so the dev environment doesn't match prod.

Proposed change

Add a lightweight nginx container that sits in front of both services on a single port:

  • /ds/* → EuroOffice DocumentServer (internal only, no external port)
  • /* → Nextcloud (internal only, no external port)

Everything exposed on :8081. Same-origin by default for all contributors.

What changes

  • develop/docker-compose.yml — add nginx service, remove external ports from eo and nextcloud
  • develop/setup/nginx-proxy.conf — new file, simple location-based routing with X-Forwarded-Prefix: /ds
  • develop/Makefilerefresh-urls sets DocumentServerUrl to http://<ip>:8081/ds and DocumentServerInternalUrl to http://eo
  • Remove develop/setup/eo-proxy.conf (temporary workaround, superseded)

Benefits

  • iOS keyboard works out of the box — no manual proxy setup for contributors
  • make mobile / make refresh-urls workflow unchanged
  • Matches production topology
  • Android emulator, LAN devices, desktop all unaffected (same port, same flow)

Breaking

Existing dev installs need make wipe-nc && make local after pulling the change.

Branch: feat/single-origin-dev-proxy


Created with Claude Code

Metadata

Metadata

Assignees

Labels

Type

No type
No fields configured for issues without a type.

Projects

Status
📄 To do

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions