~radioalice/e-worm.club

a club for e-wroms
set index title to window location
don't navigate away from editor on save
6354fe13 — Zach Sherman 13 days ago
fix downloading raw files

refs

frond
browse  log 

clone

read-only
https://git.sr.ht/~radioalice/e-worm.club
read/write
git@git.sr.ht:~radioalice/e-worm.club

You can also use your local clone with git send-email.

#e-worm club

Forked from https://sr.ht/~alexwennerberg/flounder-old/

An internet (http and gemini) home for you and your friends sort of like http://tilde.club if non-nerds could use it

Everyone has their own little site and can use it for whatever they want to write / whatever files they want to host. Non-nerds can also customize the colors and fonts really easily due to some nicely scoped CSS variables (http only).

live demo

I'm writing this for people who already know and trust each other, so I ignore a lot of security precautions that you'd require if you had potentialy malicious users.

#Deployment

e-worm relies on agate for static file (gemini) hosting and nginx for forwarding http traffic to your server + user files

e-worm's ultimate goal is to be able to be easily self-hosted. To that end, there are a series of nix files that (with light modification) should make deploying this a cinch for NixOS users. The problem is that only nerds know how to use NixOS, but I want this to be deployed by non-nerds.

So here's a rough outline of things you'll need to configure nginx to do if you're not on NixOS:

  • xss protection in production
  • tls in production
  • block /user (this prevents xss. Images and especially svgs are attack vectors for xss)
  • proxy {user}.e-worm.club to e-worm.club/user/{user} with default path being index.gmi
  • proxy {user}.e-worm.club/static/style.css to e-worm.club/static/style.css
  • limit body to 32KB

Checkout nix/config.nix for a starting point. And def hmu (email linked at https://zach.e-worm.club) if you need help! And nix/http_service.nix has everything you'd need for a systemd unit service.

#Development

Requires sqlite3 libraries

To run the development server:

# create a config file (you're gonna want to change the default values)
$ cp example_config.toml config.toml && vim config.toml
$ cargo build .
# Apply the schema
$ sqlite3 < schema.sql db/sqlite3.db
# Run development server
$ ./target/debug/worm run --config config.toml

hmu if you're confused about anything and if > 0 people want to contribute I'll open a mailing list or something

Do not follow this link