PassForge

PassForge

Docker app from JPetovello's Repository

Overview

PassForge is a privacy-focused password analysis and secure passphrase generation tool. Evaluate password strength using zxcvbn and entropy analysis, check passwords against the Have I Been Pwned Pwned Passwords database using the k-Anonymity range API, and generate cryptographically secure passphrases from the official EFF large and short wordlists. Password breach checks are privacy-preserving: PassForge hashes the password locally and sends only the first 5 characters of the SHA-1 hash to Have I Been Pwned. The plaintext password is never sent to HIBP. PassForge also provides configurable passphrase length, wordlists, separators, entropy targets, batch generation, dark mode, and Progressive Web App support. Redis is optional. By default, PassForge uses in-memory rate-limit storage and requires no additional services.

PassForge

A lightweight, secure web application for evaluating password strength, calculating entropy, checking against known data breaches via the Have I Been Pwned API, and generating secure passphrases. Built with Flask, Python, and Tailwind CSS, featuring local k-Anonymity privacy protection.

Features

  • Password Strength Evaluation: Powered by zxcvbn for robust, pattern-based strength checks with detailed cracking scenario breakdowns.
  • Breach Detection: Checks passwords securely using the Have I Been Pwned (HIBP) API via k-Anonymity (only the first 5 characters of the SHA-1 hash are sent).
  • Entropy Calculation: Real-time mathematical entropy calculation based on character set size and length.
  • Secure Passphrase Generator: Generates memorable, high-entropy passphrases using the EFF Large and Short Wordlists with custom separators and batch options.
  • Progressive Web App (PWA) Support: Installable directly to mobile or desktop home screens with offline static asset caching via service worker.
  • Dark Mode & System Theme Sync: Automatically detects system color preferences with manual toggle override and localStorage persistence.
  • Privacy-First: Passwords are analyzed by your PassForge instance. For HIBP breach checks, PassForge hashes the password locally and sends only the first 5 characters of the SHA-1 hash to Have I Been Pwned; the plaintext password is never sent to HIBP.

Installation

Unraid (Community Applications)

PassForge is available through Unraid Community Applications. Search for PassForge in the Unraid Apps tab to install it.

Environment Variables

Variable Default Description
PORT 5000 Port the internal Gunicorn / Flask web server listens on.
REDIS_URL (blank) Full Redis connection URI (e.g., redis://:secret@192.0.2.10:6379/0). Overrides individual host/port variables when populated.
REDIS_HOST (blank) Redis host or IP address. Used when REDIS_URL is empty or omitted.
REDIS_PORT 6379 Redis port number. Used when REDIS_URL is empty or omitted.
REDIS_PASSWORD (blank) Optional Redis authentication password (for host/port configuration).
REDIS_DB 0 Redis database index.

Redis Connection Resolution Logic

The application establishes its cache and rate-limiting store using a tiered fallback strategy:

  1. Explicit URL (REDIS_URL): Checked first. If present and non-empty, the app connects directly via this URI.
  2. Host & Port Fallback (REDIS_HOST / REDIS_PORT): If REDIS_URL is an empty string ("") or unset, the app builds a connection string formatted as redis://:[PASSWORD]@[HOST]:[PORT]/[DB].
  3. In-Memory Mode (memory://): If no Redis URL or host is configured, PassForge uses in-memory rate-limit storage. If Redis is explicitly configured but unavailable, PassForge does not automatically fall back to in-memory storage.

License

This project is licensed under the GNU Affero General Public License v3.0 - see the LICENSE file for details.

Install PassForge on Unraid in a few clicks.

Find PassForge in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for PassForge Review the template variables and paths Click Install

Requirements


No additional services are required. Internet access is required only for Have I Been Pwned breach checks. Password analysis and passphrase generation remain available independently of HIBP.

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/jpetovello/passforge:latest
Last Updated2026-09-12
First Seen2026-09-12

Runtime arguments

Web UI
http://[IP]:[PORT:5000]
Network
bridge
Shell
bash
Privileged
false

Template configuration

WebUIPorttcp

Host port used to access the PassForge web interface.

Target
5000
Default
5000
Redis URLVariable

Optional Redis connection URL for shared rate-limit storage. Leave as memory:// to use PassForge's built-in in-memory storage.

Target
REDIS_URL
Default
memory://