68 lines
2.0 KiB
Markdown
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)
|