Make HopWeb deployment settings configurable for production reverse proxies

Hop-State: A_06FN53JE9D7CAMGNCD3YMB8
Hop-Proposal: R_06FN53H8KYJKYP7K5TMCPT8
Hop-Task: T_06FN50V05VH5V9WE9QQF9KR
Hop-Attempt: AT_06FN50V05RGZYCX0EKTK6Q0
This commit is contained in:
Hop
2026-07-11 12:01:25 -07:00
parent 1e01cd2882
commit e31008c066
3 changed files with 51 additions and 8 deletions
+12
View File
@@ -7,3 +7,15 @@ HOP_GITEA_WEBHOOK_SECRET=hopweb-local-webhook-secret-change-me
# POST /api/v1/repositories/link.
GITEA_API_TOKEN=
# Optional deployment overrides. The defaults preserve localhost development.
GITEA_DOMAIN=localhost
GITEA_ROOT_URL=http://localhost:3000/
GITEA_SSH_DOMAIN=localhost
GITEA_HTTP_BIND=0.0.0.0
GITEA_HTTP_PORT=3000
GITEA_SSH_BIND=0.0.0.0
GITEA_SSH_PORT=2222
HOP_HTTP_BIND=0.0.0.0
HOP_HTTP_PORT=8080
GITEA_DISABLE_SSH=false
GITEA_DISABLE_REGISTRATION=false
+9 -8
View File
@@ -30,16 +30,17 @@ services:
GITEA__database__NAME: gitea
GITEA__database__USER: hopweb
GITEA__database__PASSWD: ${POSTGRES_PASSWORD}
GITEA__server__DOMAIN: localhost
GITEA__server__ROOT_URL: http://localhost:3000/
GITEA__server__SSH_DOMAIN: localhost
GITEA__server__SSH_PORT: "2222"
GITEA__service__DISABLE_REGISTRATION: "false"
GITEA__server__DOMAIN: ${GITEA_DOMAIN:-localhost}
GITEA__server__ROOT_URL: ${GITEA_ROOT_URL:-http://localhost:3000/}
GITEA__server__SSH_DOMAIN: ${GITEA_SSH_DOMAIN:-localhost}
GITEA__server__SSH_PORT: ${GITEA_SSH_PORT:-2222}
GITEA__server__DISABLE_SSH: ${GITEA_DISABLE_SSH:-false}
GITEA__service__DISABLE_REGISTRATION: ${GITEA_DISABLE_REGISTRATION:-false}
GITEA__security__INSTALL_LOCK: "true"
GITEA__webhook__ALLOWED_HOST_LIST: control-plane
ports:
- "3000:3000"
- "2222:22"
- "${GITEA_HTTP_BIND:-0.0.0.0}:${GITEA_HTTP_PORT:-3000}:3000"
- "${GITEA_SSH_BIND:-0.0.0.0}:${GITEA_SSH_PORT:-2222}:22"
volumes:
- gitea-data:/data
networks: [hopweb]
@@ -60,7 +61,7 @@ services:
GITEA_BASE_URL: http://gitea:3000
GITEA_API_TOKEN: ${GITEA_API_TOKEN:-}
ports:
- "8080:8080"
- "${HOP_HTTP_BIND:-0.0.0.0}:${HOP_HTTP_PORT:-8080}:8080"
healthcheck:
test: ["CMD", "wget", "-qO-", "http://localhost:8080/readyz"]
interval: 5s
+30
View File
@@ -0,0 +1,30 @@
# Production deployment
Run the Compose stack behind an HTTPS reverse proxy. Keep the Gitea HTTP port
and Hop control-plane port bound to loopback; only publish Gitea's SSH port if
the deployment has a DNS-only hostname that can reach it without an HTTP
proxy.
Start from `.env.example`, replace every secret, and set at least:
```dotenv
GITEA_DOMAIN=git.example.com
GITEA_ROOT_URL=https://git.example.com/
GITEA_HTTP_BIND=127.0.0.1
HOP_HTTP_BIND=127.0.0.1
GITEA_SSH_BIND=127.0.0.1
GITEA_DISABLE_SSH=true
GITEA_DISABLE_REGISTRATION=true
```
Start the services and install the Hop-native Gitea assets:
```sh
docker compose --env-file .env up --build -d
./deploy/gitea/install-hop-native.sh
```
The reverse proxy should forward the public hostname to the configured
`GITEA_HTTP_BIND:GITEA_HTTP_PORT`, preserve the `Host` header, and set
`X-Forwarded-Proto` to `https`. Persistent repository and database data live in
the named Compose volumes.