A fork of pds-dash for selfhosted.social
1# pds-dash
2
3A fork of
4[pds-dash](https://git.witchcraft.systems/scientific-witchery/pds-dash) for
5[selfhosted.social](https://selfhosted.social). The top part of the readme is
6about this fork. See after [Original Readme](#original-readme) to see the
7original readme for setup
8
9This fork is much the same but a few differences:
10
11- [New theme](/src/lib/assets/theme.css)
12- Uses the CDN for loading images and videos instead of
13 `com.atproto.sync.getBlob`
14- Caches a couple of things like did -> handle and PDS user profile lexicon
15 inside localstorage. Not the best, but was simpler and has a expire on get.
16- The text "Home to x accounts" only shows active accounts.
17- I did add a sponsor button for my GitHub.
18
19An example of a caddy file you can use
20
21```caddyfile
22 # Should be all the endpoints a PDS calls
23 @pds {
24 path /xrpc/*
25 path /account/*
26 path /.well-known/*
27 path /@atproto/*
28 path /oauth/*
29 }
30
31 handle @pds {
32 reverse_proxy http://localhost:3000
33 }
34
35 # If none matches goes to landing page
36 handle /* {
37 root * /srv/landing
38 try_files {path} /index.html
39 file_server
40 }
41```
42
43# Original Readme
44
45a frontend dashboard with stats for your ATProto PDS.
46
47## setup
48
49### prerequisites
50
51- [deno](https://deno.com/manual/getting_started/installation)
52
53### installing
54
55clone the repo, copy `config.ts.example` to `config.ts` and edit it to your
56liking.
57
58then, install dependencies using deno:
59
60```sh
61deno install
62```
63
64### development server
65
66local develompent server with hot reloading:
67
68```sh
69deno task dev
70```
71
72### building
73
74to build the optimized bundle run:
75
76```sh
77deno task build
78```
79
80the output will be in the `dist/` directory.
81
82## deploying
83
84we use our own CI/CD workflow at
85[`.forgejo/workflows/deploy.yaml`](.forgejo/workflows/deploy.yaml), but it boils
86down to building the project bundle and deploying it to a web server. it'll
87probably make more sense to host it on the same domain as your PDS, but it
88doesn't affect anything if you host it somewhere else.
89
90## configuring
91
92[`config.ts`](config.ts) is the main configuration file, you can find more
93information in the file itself.
94
95## theming
96
97themes are located in the `themes/` directory, you can create your own theme by
98copying one of the existing themes and modifying it to your liking.
99
100currently, the name of the theme is determined by the directory name, and the
101theme itself is defined in `theme.css` inside that directory.
102
103you can switch themes by changing the `theme` property in `config.ts`.
104
105the favicon is located at [`public/favicon.ico`](public/favicon.ico)
106
107## license
108
109MIT