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)
|