Create & scan cute qr codes easily πΎ
An app to create beautiful QR codes and scan various QR code types.
Desktop (Chrome/Edge):
Mobile (Android):
iOS (Safari):
Once installed, MiniQR will work offline and provide a native app-like experience.
Try it out here β¨
https://github.com/user-attachments/assets/c6db8fd5-ec36-43be-b6e3-a42e1b7dc3cb
https://github.com/user-attachments/assets/863f9330-2645-4d23-88aa-04f5f5beaa67
https://github.com/user-attachments/assets/e160d60d-3c7f-4bbb-908c-efd11fec20e8
https://github.com/user-attachments/assets/5ad58b35-0a16-43a4-839a-e2197bfc273a
https://github.com/user-attachments/assets/fef17e6a-c226-4136-9501-8d3e951671e0
https://github.com/lyqht/mini-qr/assets/35736525/991b2d7e-f168-4354-9091-1678d2c1bddb
Mini-QR can easily be self-hosted using Docker. We provide a docker-compose.yml file and a production-ready multi-stage Dockerfile.
wget https://github.com/lyqht/mini-qr/raw/main/docker-compose.yml
docker compose up -d
This will pull the latest production image from GitHub Container Registry and start the app at http://localhost:8081.
docker compose up -d --build
Or build and run manually:
docker build -t mini-qr .
docker run -d -p 8081:8080 mini-qr
Variable | Description | Default |
---|---|---|
BASE_PATH |
Base path for deployment | / |
VITE_HIDE_CREDITS |
Set to "true" to hide credits in the footer |
"false" |
VITE_DEFAULT_PRESET |
Name of the default QR code preset to load (e.g., "lyqht" ) |
"" |
VITE_DEFAULT_DATA_TO_ENCODE |
Default data to encode when the app first loads | "" |
VITE_QR_CODE_PRESETS |
JSON string defining custom QR code presets. E.g., '[{"name":"c1","data":"hi"}]' |
"[]" |
VITE_FRAME_PRESET |
Name of the default frame preset to load (e.g., "default" ) |
"" |
VITE_FRAME_PRESETS |
JSON string defining custom frame presets. E.g., '[{"name":"fA","text":"QR"}]' |
"[]" |
VITE_DISABLE_LOCAL_STORAGE |
Set to "true" to disable loading saved settings from local storage on startup |
"false" |
nginx.conf
or mount your own static files by uncommenting the volumes
section in docker-compose.yml
..dockerignore
file is included for smaller, faster builds.BASE_PATH=/your-path
to deploy the app under a subdirectory (e.g., for hosting at domain.com/your-path
).VITE_DISABLE_LOCAL_STORAGE=true
Deploy at root path (default):
docker compose up -d
Deploy at subdirectory /mini-qr
:
BASE_PATH=/mini-qr docker compose up -d
For custom builds with specific BASE_PATH:
docker build --build-arg BASE_PATH=/mini-qr -t mini-qr .
docker run -d -p 8081:8080 mini-qr
Translations and bug fixes are welcome!
[!NOTE]
For other issues, please create an issue/ raise it on the discussion board before working on them, as they may be rejected if they are not aligned with @lyqhtβs goals for this project.
See CONTRIBUTING.md for more details.
Thank you for everyone here for taking their time out to improve MiniQR π§‘