2024-02-17 13:44:55 -06:00
2024-02-17 08:34:26 -06:00
2024-02-24 13:11:31 -06:00

purr

purr.eversole.co

a simple web application offering customizable password generation and time-limited sharing of secrets.

TECH STACK

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 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 examples/.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/Purr

Containers

  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. Pick option 5, 6, or use your favorite process to manage containers and ENV
  5. 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}";
  };
};
  1. Docker Stack
    1. Copy the docker-stack.yml example and edit as needed.
      1. cp examples/docker-stack.yml ./; $EDITOR ./docker-stack.yml
    2. Set environment variables:
      • cp examples/.env.example ./.env; $EDITOR ./.env
      • Or set them in the docker-stack.yml environment declaration.
    3. Deploy: 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)

Description
a simple web application offering customizable password generation and time-limited sharing of secrets.
Readme
Languages
Haskell 88.8%
Nix 7.3%
JavaScript 3.9%