···49 - pds
50```
510000000000000000000000000000000000000000000052## Caddy setup
5354For the reverse proxy I use caddy. This part is what overwrites the endpoints and proxies them to PDS gatekeeper to add
···49 - pds
50```
5152+For Coolify, if you're using Traefik as your proxy you'll need to make sure the labels for the container are set up correctly. A full example can be found at [./examples/coolify-compose.yml](./examples/coolify-compose.yml).
53+54+```yml
55+gatekeeper:
56+ container_name: gatekeeper
57+ image: 'fatfingers23/pds_gatekeeper:latest'
58+ restart: unless-stopped
59+ volumes:
60+ - '/pds:/pds'
61+ environment:
62+ - 'PDS_DATA_DIRECTORY=${PDS_DATA_DIRECTORY:-/pds}'
63+ - 'PDS_BASE_URL=http://pds:3000'
64+ - GATEKEEPER_HOST=0.0.0.0
65+ depends_on:
66+ - pds
67+ healthcheck:
68+ test:
69+ - CMD
70+ - timeout
71+ - '1'
72+ - bash
73+ - '-c'
74+ - 'cat < /dev/null > /dev/tcp/0.0.0.0/8080'
75+ interval: 10s
76+ timeout: 5s
77+ retries: 3
78+ start_period: 10s
79+ labels:
80+ - traefik.enable=true
81+ - 'traefik.http.routers.pds-gatekeeper.rule=Host(`yourpds.com`) && (Path(`/xrpc/com.atproto.server.getSession`) || Path(`/xrpc/com.atproto.server.updateEmail`) || Path(`/xrpc/com.atproto.server.createSession`) || Path(`/xrpc/com.atproto.server.createAccount`) || Path(`/@atproto/oauth-provider/~api/sign-in`))'
82+ - traefik.http.routers.pds-gatekeeper.entrypoints=https
83+ - traefik.http.routers.pds-gatekeeper.tls=true
84+ - traefik.http.routers.pds-gatekeeper.priority=100
85+ - traefik.http.routers.pds-gatekeeper.middlewares=gatekeeper-cors
86+ - traefik.http.services.pds-gatekeeper.loadbalancer.server.port=8080
87+ - traefik.http.services.pds-gatekeeper.loadbalancer.server.scheme=http
88+ - 'traefik.http.middlewares.gatekeeper-cors.headers.accesscontrolallowmethods=GET,POST,PUT,DELETE,OPTIONS,PATCH'
89+ - 'traefik.http.middlewares.gatekeeper-cors.headers.accesscontrolallowheaders=*'
90+ - 'traefik.http.middlewares.gatekeeper-cors.headers.accesscontrolalloworiginlist=*'
91+ - traefik.http.middlewares.gatekeeper-cors.headers.accesscontrolmaxage=100
92+ - traefik.http.middlewares.gatekeeper-cors.headers.addvaryheader=true
93+ - traefik.http.middlewares.gatekeeper-cors.headers.accesscontrolallowcredentials=true
94+```
95+96## Caddy setup
9798For the reverse proxy I use caddy. This part is what overwrites the endpoints and proxies them to PDS gatekeeper to add