selfhostable, read-only reddit client
18
fork

Configure Feed

Select the types of activity you want to include in your feed.

1### lurker 2 3lurker is a selfhostable, read-only reddit client. it is 4better than old-reddit because: 5 6- it renders well on mobile 7- it respects `prefers-color-scheme` 8- no account necessary to subscribe to subreddits 9- no account necessary for over-18 content 10 11i host a version for myself and a few friends. reach out to 12me if you would like an invite. 13 14### features 15 16- minimal use of client-side javascript 17- account-based subscription system 18- pagination 19- invite-only user management 20- comment collapsing, jump-to-next/prev comment 21- "search on undelete" url for deleted comments 22- over-18, spoiler images are hidden by default 23 24i use lurker daily, and above features are pretty good for 25my use. i do not intend to add much more, i don't like 26writing js. 27 28### gallery 29 30| ![login](./img/login.png) | ![search](./img/search.png) | ![subreddit](./img/subreddit.png) | 31| ------------------------- | -------------------------------- | --------------------------------- | 32| login | search | subreddit view | 33 34| ![subs](./img/subs.png) | ![gallery](./img/gallery.png) | ![comments](./img/comments.png) | 35| ------------------------- | -------------------------------- | --------------------------------- | 36| subscriptions page | inline post thumbnail expand | comments view | 37 38| ![collapse](./img/collapse.png) | ![invite](./img/invite.png) | ![light](./img/light.png) | ![mobile](./img/mobile.png) | 39| ------------------------------- | -------------------------------- | -------------------------- | --------------------------- | 40| collapse comments | admin dashboard & invites table | light mode | mobile optimized page | 41 42### setup 43 44you can run lurker as a systemd service on nixos: 45 46```nix 47inputs.lurker.url= "git+https://git.peppe.rs/web/lurker"; 48 . 49 . 50 . 51services.lurker = { 52 enable = true; 53 port = 9495; 54}; 55``` 56 57or with the docker image: 58 59```bash 60# pull the latest image from gh container registry 61$ docker pull ghcr.io/oppiliappan/lurker:latest 62 63# the image will be marked as created on 1970, this is a 64# quirk of using nix, it should not affect usage 65$ docker image ls 66REPOSITORY TAG IMAGE ID CREATED SIZE 67ghcr.io/oppiliappan/lurker latest ba3733164889 54 years ago 186MB 68 69# start lurker in a container 70# 71# lurker stores data in /data, 72# so create a volume on the host accordingly: 73$ docker run -v /your/host/lurker-data:/data ghcr.io/oppiliappan/lurker:latest 74``` 75 76or with just [bun](https://bun.sh/): 77 78```bash 79bun run src/index.js 80``` 81 82### usage 83 84the instance is open to registrations when first started. 85you can head to /register and create an account. this 86account will be an admin account. you can click on your 87username at the top-right to view the dashboard and to 88invite other users to your instance. copy the link and send 89it to your friends! 90 91### technical 92 93lurker uses an sqlite db to store accounts, invites and 94subscriptions. it creates `lurker.db` in the current 95directory. there is no way to configure this right now. 96 97to hack on lurker: 98 99```bash 100nix shell .# # get a devshell 101nix build .#lurker # build the thing 102``` 103 104### todo 105 106- [ ] avoid js to toggle details in views/index.pug 107- [ ] highlights for op, sticky etc. 108- [ ] open in reddit/reply in reddit link 109- [ ] subscription manager: reorder, mass add 110- [ ] support crossposts 111- [x] collapse even singular comments 112- [x] details tag on safari 113- [x] expand/collapse comments 114- [x] fix gallery thumbnails 115- [x] fix spacing between comments 116- [x] fix title rendering in views/comments.pug 117- [x] pass query params into templates, add into pagination 118- [x] placeholder for unresolvable thumbnails 119- [x] set home to sum of subs 120- [x] styles for info-containers 121- [x] support 'more comments'