My homegrown website and (micro-)blogging engine that powers https://max.bossi.ng
| testData | ||
| .gitignore | ||
| generator.go | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| README.md | ||
| routes.go | ||
| state.go | ||
serf - My Custom CMS
serf is a custom Content Management System which powers my website, max.bossi.ng. It supports:
- A Blog System
- Based on a simple directory structure with plain text files
- Supports a web-frontend, plaintext.casa and JSON.
- A link shortener
- Static file hosting
- No web-interface whatsoever, everything is configured through plain-text files that live on the server
- If one of the files change, it automatically reloads
Setup
- Copy
testDatato your preferred place, it provides the basic scaffolding forserfto work - Edit
metadata.jsonaccording to your needs - Execute the binary with the path to your data dir as the only argument
- Put a reverse proxy before it
Faq
How scalable is this?
I dont fucking know. it should ne pretty performant, its written in go after all. If you have so much traffic that it starts to lag (why are you using this anyway then?) replicate it and put it behind a load balancer. serf does not keep internal atate but rather uses the data directory as a source of truth, and because it does not write to the data directory you can plug as many simultainiously running instances onto the same data directory.
Rewrite it in rust
fuck you.
I want custom styles!
edit data/assets/styles/*.css.
I want custom pages
edit data/templates/*.
I want feature xyz!
ask nicely or implement it yourself.