diff --git a/apps/autobrr/1.83.0/.env.sample b/apps/autobrr/1.83.0/.env.sample new file mode 100644 index 000000000..7146a71bb --- /dev/null +++ b/apps/autobrr/1.83.0/.env.sample @@ -0,0 +1,4 @@ +CONTAINER_NAME=autobrr-compose-check +PANEL_APP_PORT_HTTP=7474 +TZ=Asia/Shanghai +APP_DATA_DIR=./data diff --git a/apps/autobrr/1.83.0/data.yml b/apps/autobrr/1.83.0/data.yml new file mode 100644 index 000000000..d7382ed9f --- /dev/null +++ b/apps/autobrr/1.83.0/data.yml @@ -0,0 +1,51 @@ +additionalProperties: + formFields: + - default: 7474 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Web Port + labelZh: Web 端口 + label: + en: Web Port + zh: Web 端口 + zh-Hant: Web 連接埠 + ja: Web ポート + ko: 웹 포트 + ru: Веб-порт + ms: Port Web + pt-br: Porta Web + required: true + rule: paramPort + type: number + - default: Asia/Shanghai + edit: true + envKey: TZ + labelEn: Timezone + labelZh: 时区 + label: + en: Timezone + zh: 时区 + zh-Hant: 時區 + ja: タイムゾーン + ko: 시간대 + ru: Часовой пояс + ms: Zon Waktu + pt-br: Fuso Horário + required: true + type: text + - default: ./data + edit: true + envKey: APP_DATA_DIR + labelEn: Data Directory + labelZh: 数据目录 + label: + en: Data Directory + zh: 数据目录 + zh-Hant: 資料目錄 + ja: データディレクトリ + ko: 데이터 디렉터리 + ru: Каталог данных + ms: Direktori Data + pt-br: Diretório de Dados + required: true + type: text diff --git a/apps/autobrr/1.83.0/docker-compose.yml b/apps/autobrr/1.83.0/docker-compose.yml new file mode 100644 index 000000000..84564113e --- /dev/null +++ b/apps/autobrr/1.83.0/docker-compose.yml @@ -0,0 +1,20 @@ +services: + autobrr: + image: "ghcr.io/autobrr/autobrr:v1.83.0" + container_name: ${CONTAINER_NAME} + restart: unless-stopped + user: "1000:1000" + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:7474" + volumes: + - "${APP_DATA_DIR}:/config" + environment: + - TZ=${TZ} + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/autobrr/1.83.0/scripts/init.sh b/apps/autobrr/1.83.0/scripts/init.sh new file mode 100644 index 000000000..771c05f38 --- /dev/null +++ b/apps/autobrr/1.83.0/scripts/init.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +ENV_FILE="${ENV_FILE:-$ROOT_DIR/.env}" + +read_env_value() { + local value="" + [[ -f "$ENV_FILE" ]] || return 0 + value="$(sed -n "s/^APP_DATA_DIR=//p" "$ENV_FILE" | tail -n 1)" + value="${value#\"}" + value="${value%\"}" + value="${value#\'}" + value="${value%\'}" + printf '%s\n' "$value" +} + +data_dir_value="${APP_DATA_DIR:-$(read_env_value)}" +data_dir_value="${data_dir_value:-./data}" +data_dir_is_absolute=false +case "$data_dir_value" in + /) echo "refusing to use / as APP_DATA_DIR" >&2; exit 1 ;; + /*) data_dir="$data_dir_value"; data_dir_is_absolute=true ;; + *) data_dir="$ROOT_DIR/${data_dir_value#./}" ;; +esac + +data_dir="$(readlink -f -- "$data_dir")" +case "$data_dir" in + /) echo "refusing to use / as APP_DATA_DIR" >&2; exit 1 ;; +esac +if [[ "$data_dir_is_absolute" == false && "$data_dir" != "$ROOT_DIR/"* ]]; then + echo "refusing relative APP_DATA_DIR outside the app directory" >&2 + exit 1 +fi + +mkdir -p -- "$data_dir" +chown -R 1000:1000 -- "$data_dir" diff --git a/apps/autobrr/1.83.0/scripts/uninstall.sh b/apps/autobrr/1.83.0/scripts/uninstall.sh new file mode 100644 index 000000000..ab8a8d674 --- /dev/null +++ b/apps/autobrr/1.83.0/scripts/uninstall.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker-compose down --volumes diff --git a/apps/autobrr/1.83.0/scripts/upgrade.sh b/apps/autobrr/1.83.0/scripts/upgrade.sh new file mode 100644 index 000000000..71e688940 --- /dev/null +++ b/apps/autobrr/1.83.0/scripts/upgrade.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +exec "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/init.sh" diff --git a/apps/autobrr/README.md b/apps/autobrr/README.md new file mode 100644 index 000000000..e9c57e576 --- /dev/null +++ b/apps/autobrr/README.md @@ -0,0 +1,54 @@ +# Autobrr + +## 产品介绍 + +Autobrr 是面向种子和 Usenet 的下载自动化工具。它监控索引站的实时公告,并将符合条件的发布内容发送到 qBittorrent、Deluge、Radarr、Sonarr 等下载客户端。 + +## 主要功能 + +- 通过 Web UI 配置 IRC 索引站、过滤规则和下载客户端。 +- 使用内置 SQLite 数据库,不需要额外的数据库服务。 +- 保留配置、SQLite 数据库和日志,重启后继续使用。 + +## 访问说明 + +- 默认 Web 端口:`7474` +- 容器内部端口:`7474` +- 安装完成后在浏览器打开 1Panel 中配置的端口,并完成 Autobrr 的初始设置。 + +## 数据与备份 + +- 配置和 SQLite 数据库位于应用的 `Data Directory` 中。 +- 升级或迁移前请备份整个数据目录,包括 `autobrr.db`、`autobrr.db-wal` 和 `autobrr.db-shm`。 +- 卸载会停止并移除容器,但不会删除数据目录。 + +## 版本 + +- `latest` 跟随官方 Autobrr 最新发布镜像。 +- 固定版本目录用于可重复部署。 + +## 许可证 + +Autobrr 上游项目采用 GPL-2.0-only 许可证。 + +## Introduction + +Autobrr is download automation for torrents and Usenet. It watches real-time indexer announcements and sends matching releases to clients such as qBittorrent, Deluge, Radarr, and Sonarr. + +## Features + +- Configure IRC indexers, filters, and download clients from the Web UI. +- Use the built-in SQLite database without an additional database service. +- Retain configuration, SQLite data, and logs across restarts. + +## Access + +- Default web port: `7474` +- Container port: `7474` +- Open the port configured in 1Panel after installation and complete Autobrr's initial setup. + +## Data and Backup + +- Configuration and the SQLite database are stored in the application `Data Directory`. +- Before upgrading or migrating, back up the entire data directory, including `autobrr.db`, `autobrr.db-wal`, and `autobrr.db-shm`. +- Uninstall stops and removes containers but keeps the data directory. diff --git a/apps/autobrr/data.yml b/apps/autobrr/data.yml new file mode 100644 index 000000000..6f26d0980 --- /dev/null +++ b/apps/autobrr/data.yml @@ -0,0 +1,31 @@ +name: Autobrr +tags: + - Media +title: 适用于种子和 Usenet 的下载自动化工具 +description: 适用于种子和 Usenet 的下载自动化工具 +additionalProperties: + key: autobrr + name: Autobrr + tags: + - Media + shortDescZh: 适用于种子和 Usenet 的下载自动化工具 + shortDescEn: Download automation for torrents and Usenet + description: + en: An automation tool that watches indexer announcements and sends matching releases to download clients. + zh: 监控索引站公告并将符合条件的发布内容发送到下载客户端的自动化工具。 + zh-Hant: 監控索引站公告並將符合條件的發布內容傳送到下載客戶端的自動化工具。 + ja: インデクサーの告知を監視し、条件に合うリリースをダウンロードクライアントへ送信する自動化ツールです。 + ko: 인덱서 공지를 감시하고 조건에 맞는 릴리스를 다운로드 클라이언트로 보내는 자동화 도구입니다. + ru: Инструмент автоматизации, который отслеживает анонсы индексаторов и передает подходящие релизы клиентам загрузки. + ms: Alat automasi yang memantau pengumuman pengindeks dan menghantar keluaran sepadan kepada klien muat turun. + pt-br: Ferramenta de automacao que monitora anuncios de indexadores e envia lancamentos correspondentes aos clientes de download. + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://autobrr.com/ + document: https://autobrr.com/installation/docker + github: https://github.com/autobrr/autobrr + architectures: + - amd64 + - arm64 diff --git a/apps/autobrr/latest/.env.sample b/apps/autobrr/latest/.env.sample new file mode 100644 index 000000000..7146a71bb --- /dev/null +++ b/apps/autobrr/latest/.env.sample @@ -0,0 +1,4 @@ +CONTAINER_NAME=autobrr-compose-check +PANEL_APP_PORT_HTTP=7474 +TZ=Asia/Shanghai +APP_DATA_DIR=./data diff --git a/apps/autobrr/latest/data.yml b/apps/autobrr/latest/data.yml new file mode 100644 index 000000000..d7382ed9f --- /dev/null +++ b/apps/autobrr/latest/data.yml @@ -0,0 +1,51 @@ +additionalProperties: + formFields: + - default: 7474 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelEn: Web Port + labelZh: Web 端口 + label: + en: Web Port + zh: Web 端口 + zh-Hant: Web 連接埠 + ja: Web ポート + ko: 웹 포트 + ru: Веб-порт + ms: Port Web + pt-br: Porta Web + required: true + rule: paramPort + type: number + - default: Asia/Shanghai + edit: true + envKey: TZ + labelEn: Timezone + labelZh: 时区 + label: + en: Timezone + zh: 时区 + zh-Hant: 時區 + ja: タイムゾーン + ko: 시간대 + ru: Часовой пояс + ms: Zon Waktu + pt-br: Fuso Horário + required: true + type: text + - default: ./data + edit: true + envKey: APP_DATA_DIR + labelEn: Data Directory + labelZh: 数据目录 + label: + en: Data Directory + zh: 数据目录 + zh-Hant: 資料目錄 + ja: データディレクトリ + ko: 데이터 디렉터리 + ru: Каталог данных + ms: Direktori Data + pt-br: Diretório de Dados + required: true + type: text diff --git a/apps/autobrr/latest/docker-compose.yml b/apps/autobrr/latest/docker-compose.yml new file mode 100644 index 000000000..981fbc6d6 --- /dev/null +++ b/apps/autobrr/latest/docker-compose.yml @@ -0,0 +1,20 @@ +services: + autobrr: + image: "ghcr.io/autobrr/autobrr:latest" + container_name: ${CONTAINER_NAME} + restart: unless-stopped + user: "1000:1000" + networks: + - 1panel-network + ports: + - "${PANEL_APP_PORT_HTTP}:7474" + volumes: + - "${APP_DATA_DIR}:/config" + environment: + - TZ=${TZ} + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true diff --git a/apps/autobrr/latest/scripts/init.sh b/apps/autobrr/latest/scripts/init.sh new file mode 100644 index 000000000..771c05f38 --- /dev/null +++ b/apps/autobrr/latest/scripts/init.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env bash +set -euo pipefail + +ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" +ENV_FILE="${ENV_FILE:-$ROOT_DIR/.env}" + +read_env_value() { + local value="" + [[ -f "$ENV_FILE" ]] || return 0 + value="$(sed -n "s/^APP_DATA_DIR=//p" "$ENV_FILE" | tail -n 1)" + value="${value#\"}" + value="${value%\"}" + value="${value#\'}" + value="${value%\'}" + printf '%s\n' "$value" +} + +data_dir_value="${APP_DATA_DIR:-$(read_env_value)}" +data_dir_value="${data_dir_value:-./data}" +data_dir_is_absolute=false +case "$data_dir_value" in + /) echo "refusing to use / as APP_DATA_DIR" >&2; exit 1 ;; + /*) data_dir="$data_dir_value"; data_dir_is_absolute=true ;; + *) data_dir="$ROOT_DIR/${data_dir_value#./}" ;; +esac + +data_dir="$(readlink -f -- "$data_dir")" +case "$data_dir" in + /) echo "refusing to use / as APP_DATA_DIR" >&2; exit 1 ;; +esac +if [[ "$data_dir_is_absolute" == false && "$data_dir" != "$ROOT_DIR/"* ]]; then + echo "refusing relative APP_DATA_DIR outside the app directory" >&2 + exit 1 +fi + +mkdir -p -- "$data_dir" +chown -R 1000:1000 -- "$data_dir" diff --git a/apps/autobrr/latest/scripts/uninstall.sh b/apps/autobrr/latest/scripts/uninstall.sh new file mode 100644 index 000000000..ab8a8d674 --- /dev/null +++ b/apps/autobrr/latest/scripts/uninstall.sh @@ -0,0 +1,2 @@ +#!/bin/bash +docker-compose down --volumes diff --git a/apps/autobrr/latest/scripts/upgrade.sh b/apps/autobrr/latest/scripts/upgrade.sh new file mode 100644 index 000000000..71e688940 --- /dev/null +++ b/apps/autobrr/latest/scripts/upgrade.sh @@ -0,0 +1,4 @@ +#!/usr/bin/env bash +set -euo pipefail + +exec "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/init.sh" diff --git a/apps/autobrr/logo.png b/apps/autobrr/logo.png new file mode 100644 index 000000000..724db8ad8 Binary files /dev/null and b/apps/autobrr/logo.png differ