Deployment
The repository docker_unyport ships both the source tree and a working containerized runtime model. The deployment story is intentionally simple: one Go application, one main listening port and a small settings directory next to the binary.
Repository layout
The important paths are:
docker-compose.ymlunyport/backend/unyport/frontend/public/unyport/backend/settings/settings.yamlunyport/backend/settings/config.yamlunyport/backend/settings/users.json
Development mode
The bundled compose file starts a golang:alpine container and builds the project at startup.
Development characteristics:
- Frontend assets are served from disk through
UNYPORT_ASSETS - Go module and build caches are mounted as named volumes
- The default exposed port is
8800:8800 - The container resolves
host.docker.internalthroughhost-gateway
Production mode
The same compose logic also prepares a production binary:
- Frontend assets are copied into
server/assets - The binary is built with
-tags prod - Symbols are stripped
upx --lzmaIs applied in the container
The README describes this as the compact package path, while development keeps live assets on disk.
Runtime files
At runtime, UnyPort expects:
settings/settings.yamlsettings/config.yamlsettings/users.json
Operationally, it also writes:
logs/unyport.loglogs/startup-history.jsonlsettings/branding.yamlWhen custom branding is saved
HTTPS and HTTP/3
By default, the application listens on plain HTTP :8800.
Optional HTTPS and QUIC behavior is controlled from settings/settings.yaml:
security_extra.httpshttp3.enabledhttp3.cert_filehttp3.key_filehttp3.porthttp3.redirect_http
When HTTP/3 is enabled correctly, UnyPort can serve TLS on the configured port and redirect :8800 toward that TLS listener.
Reverse proxy and first login
For Internet-facing deployments, the usual pattern is:
- Bind
UnyPortlocally or to a controlled host address - Put Nginx or another reverse proxy in front
- Enable secure cookie behavior with
security_extra.https: true - Replace OAuth placeholders before enabling public OAuth login
- Change seeded or demo credentials immediately
This keeps the deployment minimal without pretending that a demo configuration is production-ready.