A fork of pds-dash for selfhosted.social
Svelte 53.7%
TypeScript 27.7%
CSS 13.9%
JavaScript 2.6%
HTML 1.2%
Dockerfile 0.6%
Just 0.2%
Other 0.1%
63 1 0

Clone this repository

https://tangled.org/baileytownsend.dev/pds-dash-fork
git@tangled.org:baileytownsend.dev/pds-dash-fork

For self-hosted knots, clone URLs may differ based on your setup.

README.md

pds-dash#

A fork of pds-dash for selfhosted.social. The top part of the readme is about this fork. See after Original Readme to see the original readme for setup

This fork is much the same but a few differences:

  • New theme
  • Uses the CDN for loading images and videos instead of com.atproto.sync.getBlob
  • Caches a couple of things like did -> handle and PDS user profile lexicon inside localstorage. Not the best, but was simpler and has a expire on get.
  • The text "Home to x accounts" only shows active accounts.
  • I did add a sponsor button for my GitHub.

An example of a caddy file you can use

    # Should be all the endpoints a PDS calls
	@pds {
		path /xrpc/*
		path /account/*
		path /.well-known/*
		path /@atproto/*
		path /oauth/*
	}

	handle @pds {
		reverse_proxy http://localhost:3000
	}
    
    # If none matches goes to landing page
	handle /* {
		root * /srv/landing
		try_files {path} /index.html
		file_server
	}

Original Readme#

a frontend dashboard with stats for your ATProto PDS.

setup#

prerequisites#

installing#

clone the repo, copy config.ts.example to config.ts and edit it to your liking.

then, install dependencies using deno:

deno install

development server#

local develompent server with hot reloading:

deno task dev

building#

to build the optimized bundle run:

deno task build

the output will be in the dist/ directory.

deploying#

we use our own CI/CD workflow at .forgejo/workflows/deploy.yaml, but it boils down to building the project bundle and deploying it to a web server. it'll probably make more sense to host it on the same domain as your PDS, but it doesn't affect anything if you host it somewhere else.

configuring#

config.ts is the main configuration file, you can find more information in the file itself.

theming#

themes are located in the themes/ directory, you can create your own theme by copying one of the existing themes and modifying it to your liking.

currently, the name of the theme is determined by the directory name, and the theme itself is defined in theme.css inside that directory.

you can switch themes by changing the theme property in config.ts.

the favicon is located at public/favicon.ico

license#

MIT