Skip to content

First Release

Choose a tag to compare

@cheinisch cheinisch released this 14 Jun 09:31
· 8 commits to main since this release

DockWallet v0.0.1 — Initial Release 🎉

DockWallet is a self-hosted, Docker-based digital wallet for managing Apple Wallet passes (.pkpass) — accessible via browser and Android app.


🚀 Features

Pass Management

  • Upload .pkpass files via file picker, drag & drop, or URL import
  • QR code scanner for importing passes directly from booking confirmations
  • Supports all Apple Wallet pass types: Boarding Pass, Event Ticket, Coupon, Store Card, Generic
  • Automatic extraction of pass colors, logos, strip images and background images from the .pkpass archive
  • Barcode rendering for all formats: QR Code, PDF417, Code128, Aztec
  • Pass signature verification (Apple PKCS#7)
  • Automatic detection of voided and expired passes

Pass Display

  • Compact ticket-style grid view with authentic pass colors
  • Boarding passes shown as realistic paper tickets with perforation line and IATA route display
  • Generic passes (parking, cinema cards, loyalty cards, event tickets) shown in native Apple/Google Wallet style with logo, strip image and field grid
  • Detail overlay with sidebar showing back fields, metadata and signature status
  • Separate sections for upcoming and expired/voided passes

Multi-User & Authentication

  • JWT-based login with username/email + password
  • Multi-factor authentication (TOTP)
  • Passkey support (WebAuthn / FIDO2)
  • Email verification and password reset flows
  • Account deletion with token confirmation

Admin Dashboard

  • User management: create, edit, delete users
  • Toggle active status, admin role, reset MFA and passkeys
  • System status panel showing Frontend version, Backend version and uptime
  • Docker Hub update detection via backend proxy (compares image push date with container start time)

Infrastructure

  • Single docker compose up deployment
  • PostgreSQL database with UUID primary keys throughout
  • Nginx-served frontend with API reverse proxy
  • Automatic database migrations on startup
  • Docker images: cheinisch/dockwallet-frontend and cheinisch/dockwallet-backend

🐳 Quick Start

curl -o docker-compose.yml https://raw.githubusercontent.com/cheinisch/dockwallet/main/docker-compose.yml
docker compose up -d

Open http://your-server:8080 and log in with:

  • Username: admin
  • Password: changeme

⚠️ Change the default admin password immediately after first login.


📋 Requirements

  • Docker & Docker Compose
  • A server with port 8080 available (configurable)

🗄️ Tech Stack

Component Technology
Backend Node.js 22, Express, PostgreSQL
Frontend React 18, Vite, Tailwind CSS
Auth JWT, bcrypt, TOTP (otplib), WebAuthn
Barcodes qrcode, bwip-js
Infrastructure Docker, Nginx, PostgreSQL 16

⚠️ Known Limitations

  • Pass signature verification checks for Apple issuer presence in the PKCS#7 structure but does not perform full cryptographic chain validation — passes with valid Apple signatures may show as unverified if the certificate chain cannot be resolved
  • Android sync app is functional but not yet included in this release
  • No push notifications for pass updates

🔄 Upgrading

docker compose pull && docker compose up -d

The admin dashboard will notify you when a new image is available on Docker Hub.