Skip to content

Releases: cheinisch/dockwallet

Version 0.2.0

Choose a tag to compare

@cheinisch cheinisch released this 27 Jun 21:16

DockWallet v0.2.0 — Favorites & Sync Improvements

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


What's New

Favorites

  • Mark passes as favorites with a single tap/click
  • Favorite passes are always sorted to the top within each section (upcoming / past)
  • Favorite state syncs to the Android app via the existing sync API

Android Sync Improvements

  • last_sync timestamp is now tracked per device for more reliable delta sync
  • Indexed queries on updated_at ensure faster sync responses as pass libraries grow
  • Sync token registration includes device name for easier management

Pass Metadata

  • event_date is now stored and evaluated separately from expiration_date, enabling more accurate expiry detection for event tickets
  • Subtitle field added to pass storage for richer display in grid cards

Fixes & Improvements

  • Database migrations are additive and non-destructive — existing installations upgrade automatically on container restart
  • Sync endpoint stability improvements

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.


Upgrading from v0.1.x

docker compose pull && docker compose up -d

Database migrations run automatically on startup. No manual steps required.


Requirements

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

Known Limitations

  • Pass signature verification checks for Apple issuer presence in the PKCS#7 structure but does not perform full cryptographic chain validation
  • No push notifications for pass updates

Bump backend & frontend versions to 0.0.2

Choose a tag to compare

@cheinisch cheinisch released this 14 Jun 09:34
Update package.json versions for both dockwallet-backend and dockwallet-frontend from 0.0.1 to 0.0.2. No other changes included — prepares a new patch release for both packages.

First Release

Choose a tag to compare

@cheinisch cheinisch released this 14 Jun 09:31

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.