49 lines
1.5 KiB
YAML
49 lines
1.5 KiB
YAML
services:
|
|
guacd:
|
|
image: guacamole/guacd:1.6.0
|
|
environment:
|
|
LOG_LEVEL: ${RDP_ACCESS_GUACD_LOG_LEVEL:-info}
|
|
|
|
guacamole:
|
|
image: guacamole/guacamole:1.6.0
|
|
depends_on:
|
|
- guacd
|
|
environment:
|
|
GUACD_HOSTNAME: guacd
|
|
GUACD_PORT: "4822"
|
|
volumes:
|
|
- ${RDP_ACCESS_RUNTIME_DIR}/config:/etc/guacamole:ro
|
|
|
|
certgen:
|
|
image: alpine:3.20
|
|
environment:
|
|
RDP_ACCESS_CERT_NAME: ${RDP_ACCESS_CERT_NAME}
|
|
RDP_ACCESS_CERT_SAN: ${RDP_ACCESS_CERT_SAN}
|
|
RDP_ACCESS_HOST_UID: ${RDP_ACCESS_HOST_UID}
|
|
RDP_ACCESS_HOST_GID: ${RDP_ACCESS_HOST_GID}
|
|
volumes:
|
|
- ${RDP_ACCESS_RUNTIME_DIR}/tls:/tls
|
|
entrypoint: /bin/sh
|
|
command:
|
|
- -ec
|
|
- >-
|
|
apk add --no-cache openssl >/dev/null &&
|
|
(test -s /tls/cert.pem && test -s /tls/key.pem &&
|
|
openssl x509 -checkend 3600 -noout -in /tls/cert.pem) ||
|
|
(umask 077 &&
|
|
openssl req -x509 -newkey rsa:3072 -sha256 -nodes -days 1
|
|
-keyout /tls/key.pem -out /tls/cert.pem
|
|
-subj /CN=$${RDP_ACCESS_CERT_NAME}
|
|
-addext subjectAltName=$${RDP_ACCESS_CERT_SAN} &&
|
|
chown $${RDP_ACCESS_HOST_UID}:$${RDP_ACCESS_HOST_GID} /tls /tls/cert.pem /tls/key.pem)
|
|
|
|
gateway:
|
|
image: nginx:1.27-alpine
|
|
depends_on:
|
|
- guacamole
|
|
ports:
|
|
- ${RDP_ACCESS_BIND}:${RDP_ACCESS_HTTP_PORT}:8443
|
|
volumes:
|
|
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
|
- ${RDP_ACCESS_RUNTIME_DIR}/tls:/etc/nginx/tls:ro
|