PoopiePay

PoopiePay

Docker app from akshaybhandare's Repository

Overview

PoopiePay is a fast, ultra-minimalist, Bauhaus-styled UPI QR Code Generator with a persistent file data saver. Designed to run as a single static binary (~12MB Docker image) with zero heavy dependencies. Easily generate real-time UPI QR codes for GPay, PhonePe, Paytm, BHIM, Cred, and Navi payments. Automatically pre-populates payee UPI ID and transaction notes from persistent disk storage.

⚑ 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:
    1. UPI ID: Payee address (e.g. merchant@okhdfcbank or 9876543210@paytm).
    2. Remarks: Transaction note (e.g. Groceries, Dinner, Invoice #12).
    3. Amount: Transaction amount in INR (β‚Ή).
  • πŸ’Ύ 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 browser localStorage).
    • Stores recent payment history in the same JSON file.
  • πŸ“· 1-Tap Customer Experience:
    • Generates standard upi://pay?pa=...&am=...&tn=...&cu=INR QR codes.
    • Customers scan with Google Pay, PhonePe, Paytm, BHIM, Cred, or Navi and just hit Pay.
  • 🎨 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!

πŸš€ 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:

  1. Open the Docker tab and click Add Container.
  2. Fill in:
    • Name: poopiepay
    • Repository: Build locally or use your image tag.
    • Port: Host 8080 β†’ Container 8080.
    • Path: Host /mnt/user/appdata/poopiepay β†’ Container /data.
  3. Click Apply.
  4. 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.

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

Details

Repository
ghcr.io/akshaybhandare/poopiepay:latest
Last Updated2026-09-27
First Seen2026-09-27

Runtime arguments

Web UI
http://[IP]:[PORT:8080]
Network
bridge
Shell
sh
Privileged
false

Template configuration

WebUI PortPorttcp

Port used by the PoopiePay web interface.

Target
8080
Default
8080
AppData PathPathrw

Persistent directory for storing PoopiePay data.json (saved UPI ID, remarks, and recent transactions).

Target
/data
Default
/mnt/user/appdata/poopiepay