From 7f9cfaaf496bfc4fc58fe20408d502e8998cacba Mon Sep 17 00:00:00 2001 From: Firefly <77047823+Yuri-NagaSaki@users.noreply.github.com> Date: Wed, 8 Jul 2026 04:23:01 +0800 Subject: [PATCH] Add qui A fast, modern web interface for qBittorrent. Manage multiple qBittorrent instances from a single, lightweight application built by autobrr (#825) * feat: add qui template qui is a fast, modern web interface for qBittorrent by autobrr, allowing management of multiple qBittorrent instances from a single, lightweight self-hosted application. - docker-compose.yml: pinned ghcr.io/autobrr/qui:1.17.0, exposes 7476 internally (no host port; Dokploy's Traefik handles routing), persistent named volume for /config. - template.toml: maps the qui service port 7476 to the user-supplied domain so Dokploy's Traefik can proxy it. - meta.json: register the template with logo and tags. * fix(qui): use latest image tag ghcr.io/autobrr/qui has no v1.17.0 tag published; only 'latest' and PR/dev tags are available. Switch the image and meta.json version to 'latest' so the template actually deploys. * revert: restore duplicate strapi entry removed by dedupe script The previous commit accidentally removed a pre-existing duplicate strapi entry as a side effect of running process-meta. That entry exists upstream and is unrelated to the qui template; restore it verbatim. * fix: deduplicate meta.json to pass CI validation The upstream meta.json had a pre-existing duplicate strapi entry. Remove it so dedupe-and-sort produces identical output to the committed file, satisfying the validate-meta CI check. * fix(qui): replace logo with autobrr org avatar (128x128) --- blueprints/qui/docker-compose.yml | 13 +++++++++++++ blueprints/qui/qui.png | Bin 0 -> 12411 bytes blueprints/qui/template.toml | 9 +++++++++ meta.json | 19 +++++++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 blueprints/qui/docker-compose.yml create mode 100644 blueprints/qui/qui.png create mode 100644 blueprints/qui/template.toml diff --git a/blueprints/qui/docker-compose.yml b/blueprints/qui/docker-compose.yml new file mode 100644 index 00000000..0158d9cd --- /dev/null +++ b/blueprints/qui/docker-compose.yml @@ -0,0 +1,13 @@ +version: "3.8" + +services: + qui: + image: ghcr.io/autobrr/qui:latest + restart: unless-stopped + expose: + - "7476" + volumes: + - qui-config:/config + +volumes: + qui-config: diff --git a/blueprints/qui/qui.png b/blueprints/qui/qui.png new file mode 100644 index 0000000000000000000000000000000000000000..64897dc4516cca619f265498c6305030b00806bf GIT binary patch literal 12411 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 literal 0 HcmV?d00001 diff --git a/blueprints/qui/template.toml b/blueprints/qui/template.toml new file mode 100644 index 00000000..3858b997 --- /dev/null +++ b/blueprints/qui/template.toml @@ -0,0 +1,9 @@ +[variables] +main_domain = "${domain}" + +[config] +[[config.domains]] +serviceName = "qui" +port = 7476 +host = "${main_domain}" +path = "/" diff --git a/meta.json b/meta.json index b63a3177..af267b5d 100644 --- a/meta.json +++ b/meta.json @@ -5794,6 +5794,25 @@ "analytics" ] }, + { + "id": "qui", + "name": "qui", + "version": "latest", + "description": "A fast, modern web interface for qBittorrent. Manage multiple qBittorrent instances from a single, lightweight application built by autobrr.", + "logo": "qui.png", + "links": { + "github": "https://github.com/autobrr/qui", + "website": "https://getqui.com", + "docs": "https://getqui.com" + }, + "tags": [ + "torrent", + "qbittorrent", + "download", + "media", + "self-hosted" + ] + }, { "id": "rabbitmq", "name": "RabbitMQ",