From 34c1d631e05e5a7c01e435babdf4084f49f7b648 Mon Sep 17 00:00:00 2001 From: Seyitxan Akay Date: Wed, 7 Oct 2026 04:10:06 +0200 Subject: [PATCH 1/2] Add QRDock compose example Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- examples/qrdock/README.md | 17 +++++++++++++++++ examples/qrdock/docker-compose.yml | 24 ++++++++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 examples/qrdock/README.md create mode 100644 examples/qrdock/docker-compose.yml diff --git a/examples/qrdock/README.md b/examples/qrdock/README.md new file mode 100644 index 000000000..be2894ab0 --- /dev/null +++ b/examples/qrdock/README.md @@ -0,0 +1,17 @@ +# References + +- https://github.com/seyitwb-svg/qrdock +- https://seyitwb-svg.github.io/qrdock/ + +# Notes + +QRDock is a self-hosted QR code generator where every code is a short link you control. Printed codes stay retargetable — change the destination URL anytime without reprinting. It includes per-link scan analytics, a 14-day scan chart, PNG/SVG export, an instant anonymous QR endpoint (`/qr.png?text=...`), and Pro custom colors (`?fg=`). Runs on Python + FastAPI + SQLite in ~50 MB RAM. + +### Spawning up QRDock + +1. Start the stack: `docker compose up -d` — the image builds from the GitHub repo on first run (~1 min). +2. Open `http://localhost:8128` (or `qrdock.example.com` with Traefik), register an account, and create your first link. +3. Print the PNG/SVG QR code; retarget its destination later from the dashboard. + +> [!NOTE] +> No build context needed locally — Compose pulls the Dockerfile straight from the repo. To pin a release, replace the `build:` context with `https://github.com/seyitwb-svg/qrdock.git#v1.0.0`. diff --git a/examples/qrdock/docker-compose.yml b/examples/qrdock/docker-compose.yml new file mode 100644 index 000000000..812f363b4 --- /dev/null +++ b/examples/qrdock/docker-compose.yml @@ -0,0 +1,24 @@ +--- +services: + + qrdock: + image: qrdock + build: + context: https://github.com/seyitwb-svg/qrdock.git + container_name: qrdock + restart: always + ports: + - 8128:8000/tcp # web ui + expose: + - 8000 + volumes: + - ${DOCKER_VOLUME_STORAGE:-/mnt/docker-volumes}/qrdock:/data + environment: + - TZ=Europe/Berlin + labels: + - traefik.enable=true + - traefik.http.routers.qrdock.rule=Host(`qrdock.example.com`) + - traefik.http.routers.qrdock.entrypoints=websecure + - traefik.http.routers.qrdock.tls.certresolver=cloudflare + - traefik.http.routers.qrdock.services.qrdock.loadbalancer.server.port=8000 + - traefik.http.services.qrdock.loadbalancer.server.port=8000 From 3d8305f08e90d82fe20f529b90ecf3fdad54f4fb Mon Sep 17 00:00:00 2001 From: Seyitxan Akay Date: Wed, 7 Oct 2026 04:10:34 +0200 Subject: [PATCH 2/2] Add QRDock to URL Shorteners list Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 737a19a2f..550c32cc8 100644 --- a/README.md +++ b/README.md @@ -330,6 +330,7 @@ A [pastebin](https://en.wikipedia.org/wiki/Pastebin) is a type of online content - [YOURLS](examples/yourls) - The de-facto standard self hosted URL shortener in PHP. - [Kutt](examples/kutt) - Kutt is a modern URL shortener with support for custom domains, link editing, statistics, users management and more. +- [QRDock](examples/qrdock) - Self-hosted QR code generator where codes double as retargetable short links with scan analytics, built on FastAPI + SQLite. ### Blogging Platforms and Homepages