Skip to content

williamblair333/qr-forge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑ qr-forge

License: GPL-3.0 Python 3.12 FastAPI Dockerized

qrforge screenshot

Self-hosted WiFi & text QR code generator (FastAPI, Docker, Debian)

Generate WiFi QR codes (WPA/WPA2, nopass) and text/URL QR codes via a FastAPI backend, Debian-slim Docker image, and responsive dark web UI for local or cloud deployments.


✨ Features

β–Έ /       β†’ Beautiful HTML UI (dark mode)
β–Έ /qr     β†’ PNG API endpoint
β–Έ Debian  β†’ python:3.12-slim-bookworm
β–Έ Docker  β†’ Fully isolated dependency stack
β–Έ Cloud   β†’ Identical behavior across all environments

🧩 Architecture Overview

qrforge
β”‚
β”œβ”€β”€ app/
β”‚   β”œβ”€β”€ main.py         # FastAPI server + routing
β”‚   β”œβ”€β”€ __init__.py
β”‚   └── templates/
β”‚       └── index.html  # Dark UI template
β”‚
β”œβ”€β”€ Dockerfile          # Debian-slim base container
β”œβ”€β”€ docker-compose.yml  # Production-ready service definition
β”œβ”€β”€ requirements.txt
└── README.md

πŸš€ Quick Start β€” docker compose (recommended)

Start the stack

docker compose up --build --detach

Check status

docker compose ps

Open the UI

http://localhost:8002/

Stop the service

docker compose down

πŸš€ Quick Start β€” docker run

Build

docker build --tag qrforge:1.0.0 .

Run

docker run   --rm   --name qrforge   --publish 8002:8002   qrforge:1.0.0

Visit

http://localhost:8002/

Stop:

docker stop qrforge

🎨 HTML UI

A minimal zero-learning-curve interface.

β–Έ Enter text/URL
β–Έ Adjust scale & border
β–Έ Generate QR
β–Έ Save

Open it:

http://localhost:8002/

πŸ“‘ API Reference β€” GET /qr

Parameters

data   (required)  β†’ string to encode
scale  (optional)  β†’ default 5
border (optional)  β†’ default 4

Basic example

curl --get   --data-urlencode "data=https://example.com"   http://localhost:8002/qr   --output qr.png

Custom QR

curl --get   --data-urlencode "data=Hello qrforge"   --data "scale=10"   --data "border=2"   http://localhost:8002/qr   --output qr_custom.png

🧠 Internals

FastAPI + segno

FastAPI   β†’ Web server, routing, HTML rendering
segno     β†’ High-accuracy QR generation
uvicorn   β†’ High-performance ASGI server

Flow

HTML β†’ User inputs
main.py β†’ Validates & builds QR
segno β†’ Generates PNG in-memory
Response β†’ image/png

Zero disk writes. Zero temp files.


βš™οΈ Config

Default port

8002

Change port

Edit Dockerfile CMD + docker-compose.yml β†’ then rebuild.


☁️ Cloud Deployment Strategy

VM (Debian recommended)

docker compose up --build --detach

Expose 8002 β†’ Access externally.

Managed container environments

Build β†’ Push β†’ Deploy β†’ Map port 8002 β†’ Done

Stateless β†’ horizontally scalable instantly.


πŸ“Š Logs

docker compose logs qrforge
docker logs qrforge

πŸ›  Troubleshooting

Service not starting

docker compose logs qrforge

Nothing at :8002

docker compose ps

QR too dense

scale=10
border=4

πŸ”§ Dev Workflow

git init
git add .
git commit -m "Initial qrforge implementation"

git remote add origin git@your.git/qrforge.git
git push --set-upstream origin main

Feature branches:

git checkout -b feature/update-ui

🏷️ Possible Enhancements (future)

  • πŸ”’ Optional password protection
  • πŸŒ“ Light/Dark theme toggle
  • πŸ“¦ Docker Hub automated builds
  • πŸ“ˆ Health endpoints
  • πŸ“œ QR history log
  • πŸ–ΌοΈ SVG output

⚠️ License

This work is licensed under the GNU General Public License version 3. See LICENSE.


⚠️ Disclaimer

Software is provided AS‑IS. Production security posture is your responsibility.


Keywords

qr, qr code, qr-code, qr-generator, wifi qr, wifi-qr, wifi password qr, wpa qr, wpa-qr, wifi qrcode, self-hosted qr, fastapi qr, docker qr, debian qr code generator, web qr generator, local-first qr service

βœ”οΈ End of File

About

Self-hosted QR code generator with WiFi support (WPA/WPA2, nopass), FastAPI backend, responsive dark UI, and Dockerized Debian image for local or cloud usage.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors