purr/README.md

68 lines
2.0 KiB
Markdown

# purr
[purr.eversole.co](https://purr.eversole.co)
a simple web application offering customizable password generation
and time-limited sharing of secrets.
## TECH STACK
- [Haskell](https://www.haskell.org)
- [Scotty](https://hackage.haskell.org/package/scotty)
- [HTMX](https://htmx.org)
- [SQLite](https://www.sqlite.org)
## GOALS
- Provide a minimal and clean interface for generating and sharing passwords.
- Generate sufficiently memorable but secure passwords for use with accounts
that don't offer better authentication methods.
- Share text secrets with others without disclosing the secret in the
message itself.
- Maintain a clean and organized codebase that can be extended to include more
utilities than originally anticipated.
## WHY TRUST PURR.EVERSOLE.CO?
You shouldn't. This is free and open-source software which you can run on your
own hardware!
## DEPLOYMENT
Only Nix build instructions targeting containers are provided below,
but this project can be built and run without containers or Nix by using Cabal.
1) Clone this repository
2) Build the container image (with flakes enabled): `nix build .#purr-container`
3) Load the container image
- podman load -i result
4) NixOS configuration:
```
virtualisation.oci-containers.containers.purr = {
image = "purr";
ports = [ "${PURR_EXTERNAL_PORT}:3000" ];
volumes = [
"/PATH/TO/PURR/data:/app/data"
];
environment = {
PURRNOFILE = "true";
ENVIRONMENT = "production";
APPLICATIONHOST = "localhost";
APPLICATIONPORT = "3000";
DATADIR = "/app/";
LINKLENGTH = "24";
ADMINEMAIL = "${YOUR_EMAIL}";
};
};
```
5) Docker Stack
1) Set environment variables in docker-stack.yml or mount a .env file.
2) `docker stack deploy -c docker-stack.yml purr`
## DEVELOPMENT & 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)