63 lines
1.8 KiB
Markdown
63 lines
1.8 KiB
Markdown
# the sampu Haskell blog engine
|
|
|
|
https://eversole.co
|
|
|
|
a _work-in-progress_ blog engine using simple flat-file Markdown content storage
|
|
|
|
sampu is a word in [Lojban](https://mw.lojban.org) with the English definition:
|
|
|
|
"x1 is __simple__/__unmixed__/__uncomplicated__ in property x2"
|
|
|
|
Therefore, `la sampu cu sampu lo ka samtci`!
|
|
|
|
## Stack
|
|
|
|
- [Haskell](https://www.haskell.org)
|
|
- [Twain](https://github.com/alexmingoia/twain)
|
|
- [Lucid](https://github.com/chrisdone/lucid)
|
|
- [Clay](https://github.com/sebastiaanvisser/clay)
|
|
|
|
## Goal
|
|
|
|
Provide a simple blog engine that is easily customizable via HTML fragments.
|
|
|
|
## Build and Deployment
|
|
|
|
Only Nix build instructions are provided below.
|
|
|
|
### No Containers
|
|
1) Clone this repository
|
|
2) Build the application (with flakes enabled): `nix build '.#'`
|
|
3) Set the environment variables
|
|
- File: `cp data/.env.example ./.env; $EDITOR ./.env`
|
|
- If you want to set them in a different way, you already know how.
|
|
4) Run the application: `./result/bin/sampu`
|
|
|
|
### Containers
|
|
|
|
1) Clone this repository
|
|
2) Build the container image (with flakes enabled): `nix build .#sampu-container`
|
|
3) Load the container image: `podman load -i result`
|
|
4) Run the container using your favorite orchestrator or...
|
|
5) Use a NixOS configuration:
|
|
```
|
|
virtualisation.oci-containers.containers.sampu = {
|
|
image = "sampu";
|
|
ports = [ "${SAMPUR_EXTERNAL_PORT}:3000" ];
|
|
volumes = [
|
|
"/PATH/TO/SAMPU/data:/app/data"
|
|
];
|
|
environment = {
|
|
SAMPU_PORT = "3000";
|
|
SAMPU_TITLE = "Your Blog Title Here!";
|
|
SAMPU_BASEURL = "http://example.public.tld";
|
|
};
|
|
};
|
|
```
|
|
## Development and Support
|
|
|
|
Per the permissive ISC license, you are free to do what you wish with this
|
|
software. No guarantees are made to its usability, security, or functionality.
|
|
|
|
Copyright James Eversole (james@eversole.co)
|