Self-Hosted Digital Wallet
DockWallet stores and manages your Apple Wallet passes on infrastructure you control. No cloud subscriptions. No third-party access. Deploy in minutes with Docker.
Boarding Pass
SFO → ZRH
Flight
DW 042
Passenger
C. Heinrich
Seat
14A
Gate
B12
Stored on DockWallet · dockwallet.app
100%
Self-Hosted
Multi-User
Admin Control
.pkpass
Native Format
Android
Sync App
What you get
One docker compose up and you're running. Backend, frontend, and PostgreSQL, all wired together and ready.
Create accounts for your household or team. The admin dashboard gives you full visibility over users, passes, and system health.
Secure accounts with multi-factor authentication or hardware passkeys. Your passes are private by design.
Upload .pkpass files directly, import via URL, or scan a QR code with your device camera. All roads lead to your wallet.
QR, Aztec, PDF417, and Code128 — rendered natively from your pass data, always accurate and ready to scan.
A dedicated Android app connects to your DockWallet instance and keeps passes synced across all your devices automatically.
Setup
DockWallet is designed for self-hosters. No cloud accounts, no config complexity — point it at your server and go.
Copy the docker-compose.yml from the repository into a directory on your server.
.env fileSet DB_USER, DB_PASSWORD, and JWT_SECRET. The database healthcheck ensures the backend only starts when Postgres is ready.
Run the command. Log in with the default admin credentials and start adding passes.
docker-compose.yml
services: frontend: image: cheinisch/dockwallet-frontend:latest restart: unless-stopped ports: - "8080:80" depends_on: - backend backend: image: cheinisch/dockwallet-backend:latest restart: unless-stopped environment: DB_HOST: db DB_NAME: dockwallet DB_USER: ${DB_USER} DB_PASSWORD: ${DB_PASSWORD} JWT_SECRET: ${JWT_SECRET} depends_on: db: condition: service_healthy db: image: postgres:16-alpine restart: unless-stopped environment: POSTGRES_DB: dockwallet POSTGRES_USER: ${DB_USER} POSTGRES_PASSWORD: ${DB_PASSWORD} volumes: - postgres_data:/var/lib/postgresql/data volumes: postgres_data:
.env
DB_USER=dockwallet DB_PASSWORD=your_secure_password JWT_SECRET=your_jwt_secret
Terminal
$ docker compose up -d
→ Open http://your-server:8080 · Login: admin@local / admin
Android App
The DockWallet Android app connects directly to your self-hosted instance. Passes sync automatically across every device — no intermediary, no data leaving your infrastructure.
cheinisch/dockwallet-appDockWallet
3 passes synced
Boarding
SFO → ZRH
Event
WWDC 2025
Loyalty
Coffee Card
Open Source
DockWallet is fully open source. Inspect it, contribute to it, or run it on air-gapped hardware. Self-hosting means you're in control — and the code proves it.