All apps Β· 0 apps
PoopiePay
Docker app from akshaybhandare's Repository
Overview
Readme
View on GitHubβ‘ PoopiePay
A fast, minimalist, and ultra-lightweight UPI QR Code Generator with a persistent file data saver. Designed to run as a single compiled binary or a tiny ~12MB Docker container, perfect for self-hosting on Unraid, Linux, or macOS.
β¨ Features
- β‘ Single Binary: Everything (web server, minimalist UI, and QR engine) is compiled directly into a single ~4.8MB binary with zero runtime dependencies.
- π± 3 Simple Inputs:
- UPI ID: Payee address (e.g.
merchant@okhdfcbankor9876543210@paytm). - Remarks: Transaction note (e.g.
Groceries,Dinner,Invoice #12). - Amount: Transaction amount in INR (
βΉ).
- UPI ID: Payee address (e.g.
- πΎ Automatic File Data Saver:
- Automatically remembers and pre-populates your UPI ID and Remarks so you only have to type the amount for quick counter payments.
- Changes to UPI ID or Remarks immediately persist to
data/data.json(and browserlocalStorage). - Stores recent payment history in the same JSON file.
- π· 1-Tap Customer Experience:
- Generates standard
upi://pay?pa=...&am=...&tn=...&cu=INRQR codes. - Customers scan with Google Pay, PhonePe, Paytm, BHIM, Cred, or Navi and just hit Pay.
- Generates standard
- π¨ Minimalist & Modern UI:
- Live real-time QR generation as you type.
- Quick amount chips (
+βΉ50,+βΉ100,+βΉ500,+βΉ1000,Clear). - Copy UPI Deep-Link button for messaging or sharing.
- Download High-Res QR button (PNG).
- Clean collapsible transaction history.
- π¦ Hostable on Unraid:
- Maps to
/mnt/user/appdata/poopiepay:/data. - Docker container size is only ~12MB!
- Maps to
π Quick Start
Option 1: Run Pre-compiled Binary Directly (No Docker required)
On macOS:
PORT=8080 ./poopiepay
On Linux (x86_64 / Unraid console):
PORT=8080 ./poopiepay-linux-amd64
On ARM Linux (Raspberry Pi / ARM Unraid):
PORT=8080 ./poopiepay-linux-arm64
Open your browser to: http://localhost:8080
Option 2: Docker / Docker Compose
Run with docker-compose:
docker compose up -d
Or run directly with Docker:
docker run -d \
--name poopiepay \
--restart unless-stopped \
-p 8080:8080 \
-v $(pwd)/data:/data \
poopiepay
π₯οΈ Unraid Deployment Guide
In Unraid:
- Open the Docker tab and click Add Container.
- Fill in:
- Name:
poopiepay - Repository: Build locally or use your image tag.
- Port: Host
8080β Container8080. - Path: Host
/mnt/user/appdata/poopiepayβ Container/data.
- Name:
- Click Apply.
- Access via
http://<your-unraid-ip>:8080.
Your settings and recent payment history are saved in /mnt/user/appdata/poopiepay/data.json.
π οΈ Building from Source
Requirements: Go 1.20+ (standard library only).
# Build native binary and Linux cross-compilations in one command:
./build.sh
This generates:
poopiepay(Native macOS Mach-O executable)poopiepay-linux-amd64(Static Linux ELF binary for Unraid/x86_64)poopiepay-linux-arm64(Static Linux ELF binary for ARM64)
π Project Structure
PoopiePay/
βββ main.go # Single Go web server & file data saver (stdlib only)
βββ static/
β βββ index.html # Modern minimalist single-page app
β βββ qrcode.min.js # Bundled 19KB client QR engine (no CDN required)
βββ data/
β βββ data.json # Persistent JSON file storage
βββ Dockerfile # Multi-stage build producing ~12MB container
βββ docker-compose.yml # Ready for Docker / Unraid
βββ build.sh # Single-command cross-compiler
βββ PLANNING.md # Architecture and specification
βββ README.md # Documentation
π Security & Performance
- Zero pip / npm bloat: 100% built on Go standard library.
- Atomic file writes: Uses temporary files and atomic renames to prevent file corruption during power cuts or server restarts.
- Air-gapped & Offline: All static assets are embedded into the binary. No external CDN requests needed at runtime.
Install PoopiePay on Unraid in a few clicks.
Find PoopiePay 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.
Related apps
Explore more like this
Explore allDetails
ghcr.io/akshaybhandare/poopiepay:latestRuntime arguments
- Web UI
http://[IP]:[PORT:8080]- Network
bridge- Shell
sh- Privileged
- false
Template configuration
Port used by the PoopiePay web interface.
- Target
- 8080
- Default
- 8080
Persistent directory for storing PoopiePay data.json (saved UPI ID, remarks, and recent transactions).
- Target
- /data
- Default
- /mnt/user/appdata/poopiepay