Skip to content

Commit cd8ebd4

Browse files
authored
Create docker-compose-gluetun-traefik-authentik-oidc.yml
1 parent f7a5477 commit cd8ebd4

File tree

1 file changed

+87
-0
lines changed

1 file changed

+87
-0
lines changed
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
services:
2+
3+
guacd:
4+
image: guacamole/guacd
5+
container_name: guacamole-guacd
6+
restart: always
7+
depends_on:
8+
- gluetun
9+
volumes:
10+
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/guacamole/guacd/drive:/drive:rw
11+
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/guacamole/guacd/record:/record:rw
12+
network_mode: container:gluetun
13+
14+
postgres:
15+
image: postgres:16-alpine
16+
container_name: guacamole-db
17+
restart: always
18+
depends_on:
19+
- gluetun
20+
environment:
21+
- PGDATA=/var/lib/postgresql/data/guacamole
22+
- POSTGRES_DB=guacamole_db
23+
- POSTGRES_USER=guacamole_user
24+
- POSTGRES_PASSWORD=ChooseYourOwnPasswordHere1234
25+
volumes:
26+
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/guacamole/psql/init:/docker-entrypoint-initdb.d:z
27+
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/guacamole/psql/data:/var/lib/postgresql/data:Z
28+
network_mode: container:gluetun
29+
30+
guacamole:
31+
image: guacamole/guacamole
32+
container_name: guacamole-ui
33+
restart: always
34+
depends_on:
35+
- guacd
36+
- postgres
37+
- gluetun
38+
environment:
39+
- GUACD_HOSTNAME=localhost
40+
- POSTGRESQL_HOSTNAME=localhost
41+
- POSTGRESQL_DATABASE=guacamole_db
42+
- POSTGRESQL_USER=guacamole_user
43+
- POSTGRESQL_PASSWORD=ChooseYourOwnPasswordHere1234
44+
- OPENID_ENABLED=true
45+
- OPENID_AUTHORIZATION_ENDPOINT=https://authentik.example.com/application/o/authorize/
46+
- OPENID_JWKS_ENDPOINT=https://authentik.example.com/application/o/guacamole-oidc/jwks/
47+
- OPENID_ISSUER=https://authentik.example.com/application/o/guacamole-oidc/
48+
- OPENID_CLIENT_ID=<masked>
49+
- OPENID_REDIRECT_URI=https://guacamole.example.com/guacamole
50+
- OPENID_USERNAME_CLAIM_TYPE=preferred_username
51+
- OPENID_SCOPE=openid email profile
52+
network_mode: container:gluetun
53+
54+
gluetun:
55+
image: qmcgaw/gluetun:latest
56+
container_name: gluetun
57+
cap_add:
58+
- NET_ADMIN
59+
expose:
60+
- 8080 # guacamole
61+
- 5432 # psql guac
62+
environment:
63+
- VPN_SERVICE_PROVIDER=custom
64+
- VPN_TYPE=wireguard
65+
- DNS_ADDRESS=1.1.1.1,1.0.0.1
66+
- WIREGUARD_ENDPOINT_IP=127.0.0.1 # add your wan ipv4 here of wg server
67+
- WIREGUARD_ENDPOINT_PORT=51820
68+
- WIREGUARD_PUBLIC_KEY='<PUBKEY>' # add your wg public key here
69+
- WIREGUARD_PRIVATE_KEY='<PRIVKEY>' # add your wg private key here
70+
- WIREGUARD_PRESHARED_KEY='<PSK>' # add your wg pre-shared key here
71+
- WIREGUARD_ADDRESSES='0.0.0.0/32' # add your client ipv4/ipv6 here
72+
volumes:
73+
- ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/gluetun/configs/gluetun:/gluetun
74+
restart: always
75+
networks:
76+
- proxy
77+
labels:
78+
- traefik.enable=true
79+
- traefik.docker.network=proxy
80+
- traefik.http.routers.guacamole.rule=Host(`guacamole.example.com`) && PathPrefix(`/guacamole`) || Host(`guacamole.example.com`) && PathPrefix(`/outpost.goauthentik.io`)
81+
- traefik.http.routers.guacamole.service=guacamole
82+
- traefik.http.services.guacamole.loadbalancer.server.port=8080
83+
- traefik.http.routers.guacamole.middlewares=authentik@docker
84+
85+
networks:
86+
proxy:
87+
external: true

0 commit comments

Comments
 (0)