···11+# pds-home
22+33+This is a static homepage for my Personal Data Server, [pds.jeanmachine.dev](https://pds.jeanmachine.dev).
44+55+My PDS uses the [typescript implementation](https://github.com/bluesky-social/atproto/tree/main/packages/pds) provided by Bluesky PBC, and uses their container image. To set this up, I made the following changes to my Caddyfile (located at `/pds/caddy/etc/caddy/Caddyfile`) and Docker compose file (locatede at `/pds/compose.yaml`). I store this repository at `/pds/static` on my PDS server.
66+77+Caddyfile:
88+99+```caddy
1010+# important to seperate the wildcard from the root.
1111+*.pds.jeanmachine.dev {
1212+ tls {
1313+ on_demand
1414+ }
1515+ reverse_proxy http://localhost:3000
1616+}
1717+1818+pds.jeanmachine.dev {
1919+ tls {
2020+ on_demand
2121+ }
2222+ # this is where I store the static site.
2323+ @static path / /index.css /favicon.ico /assets/* /fonts/*
2424+ handle @static {
2525+ root * /static
2626+ file_server
2727+ }
2828+ # handle everything that isnt the static site/it's assets with the regular proxy
2929+ handle {
3030+ reverse_proxy http://localhost:3000
3131+ }
3232+}
3333+```
3434+3535+Docker Compose:
3636+3737+```yaml
3838+volumes:
3939+ - type: bind
4040+ source: /pds/caddy/data
4141+ target: /data
4242+ - type: bind
4343+ source: /pds/caddy/etc/caddy
4444+ target: /etc/caddy
4545+ - type: bind # this is the new binding in my compose; everything else is the same.
4646+ source: /pds/static
4747+ target: /static
4848+```