From 60784b616501e34e493711defef3344daa520c44 Mon Sep 17 00:00:00 2001 From: QYG2297248353 Date: Fri, 17 Jan 2025 06:26:01 +0000 Subject: [PATCH] Processed apps directory via GitHub Actions --- appstore/kavita/0.8.4/.env | 15 ++++++ appstore/kavita/0.8.4/data.yml | 38 +++++++++++++++ appstore/kavita/0.8.4/docker-compose.yml | 28 +++++++++++ appstore/kavita/0.8.4/envs/default.env | 2 + appstore/kavita/0.8.4/envs/global.env | 2 + appstore/kavita/0.8.4/scripts/init.sh | 17 +++++++ appstore/kavita/0.8.4/scripts/uninstall.sh | 10 ++++ appstore/kavita/0.8.4/scripts/upgrade.sh | 17 +++++++ appstore/kavita/README.md | 34 +++++++++++++ appstore/kavita/data.yml | 14 ++++++ appstore/kavita/logo.png | Bin 0 -> 17644 bytes appstore/komga/1.18.0/.env | 15 ++++++ appstore/komga/1.18.0/data.yml | 38 +++++++++++++++ appstore/komga/1.18.0/docker-compose.yml | 26 ++++++++++ appstore/komga/1.18.0/envs/default.env | 2 + appstore/komga/1.18.0/envs/global.env | 2 + appstore/komga/1.18.0/scripts/init.sh | 19 ++++++++ appstore/komga/1.18.0/scripts/uninstall.sh | 10 ++++ appstore/komga/1.18.0/scripts/upgrade.sh | 19 ++++++++ appstore/komga/README.md | 49 +++++++++++++++++++ appstore/komga/data.yml | 14 ++++++ appstore/komga/logo.png | Bin 0 -> 43731 bytes appstore/shiori/data.yml | 6 +-- appstore/stash/0.27.2/.env | 18 +++++++ appstore/stash/0.27.2/data.yml | 54 +++++++++++++++++++++ appstore/stash/0.27.2/docker-compose.yml | 40 +++++++++++++++ appstore/stash/0.27.2/envs/default.env | 2 + appstore/stash/0.27.2/envs/global.env | 2 + appstore/stash/0.27.2/scripts/init.sh | 17 +++++++ appstore/stash/0.27.2/scripts/uninstall.sh | 10 ++++ appstore/stash/0.27.2/scripts/upgrade.sh | 17 +++++++ appstore/stash/README.md | 23 +++++++++ appstore/stash/data.yml | 14 ++++++ appstore/stash/logo.png | Bin 0 -> 11361 bytes dockge/kavita/.env | 15 ++++++ dockge/kavita/docker-compose.yml | 28 +++++++++++ dockge/kavita/envs/default.env | 2 + dockge/kavita/envs/global.env | 2 + dockge/komga/.env | 15 ++++++ dockge/komga/docker-compose.yml | 26 ++++++++++ dockge/komga/envs/default.env | 2 + dockge/komga/envs/global.env | 2 + dockge/stash/.env | 18 +++++++ dockge/stash/docker-compose.yml | 40 +++++++++++++++ dockge/stash/envs/default.env | 2 + dockge/stash/envs/global.env | 2 + 46 files changed, 725 insertions(+), 3 deletions(-) create mode 100644 appstore/kavita/0.8.4/.env create mode 100644 appstore/kavita/0.8.4/data.yml create mode 100644 appstore/kavita/0.8.4/docker-compose.yml create mode 100644 appstore/kavita/0.8.4/envs/default.env create mode 100644 appstore/kavita/0.8.4/envs/global.env create mode 100644 appstore/kavita/0.8.4/scripts/init.sh create mode 100644 appstore/kavita/0.8.4/scripts/uninstall.sh create mode 100644 appstore/kavita/0.8.4/scripts/upgrade.sh create mode 100644 appstore/kavita/README.md create mode 100644 appstore/kavita/data.yml create mode 100644 appstore/kavita/logo.png create mode 100644 appstore/komga/1.18.0/.env create mode 100644 appstore/komga/1.18.0/data.yml create mode 100644 appstore/komga/1.18.0/docker-compose.yml create mode 100644 appstore/komga/1.18.0/envs/default.env create mode 100644 appstore/komga/1.18.0/envs/global.env create mode 100644 appstore/komga/1.18.0/scripts/init.sh create mode 100644 appstore/komga/1.18.0/scripts/uninstall.sh create mode 100644 appstore/komga/1.18.0/scripts/upgrade.sh create mode 100644 appstore/komga/README.md create mode 100644 appstore/komga/data.yml create mode 100644 appstore/komga/logo.png create mode 100644 appstore/stash/0.27.2/.env create mode 100644 appstore/stash/0.27.2/data.yml create mode 100644 appstore/stash/0.27.2/docker-compose.yml create mode 100644 appstore/stash/0.27.2/envs/default.env create mode 100644 appstore/stash/0.27.2/envs/global.env create mode 100644 appstore/stash/0.27.2/scripts/init.sh create mode 100644 appstore/stash/0.27.2/scripts/uninstall.sh create mode 100644 appstore/stash/0.27.2/scripts/upgrade.sh create mode 100644 appstore/stash/README.md create mode 100644 appstore/stash/data.yml create mode 100644 appstore/stash/logo.png create mode 100644 dockge/kavita/.env create mode 100644 dockge/kavita/docker-compose.yml create mode 100644 dockge/kavita/envs/default.env create mode 100644 dockge/kavita/envs/global.env create mode 100644 dockge/komga/.env create mode 100644 dockge/komga/docker-compose.yml create mode 100644 dockge/komga/envs/default.env create mode 100644 dockge/komga/envs/global.env create mode 100644 dockge/stash/.env create mode 100644 dockge/stash/docker-compose.yml create mode 100644 dockge/stash/envs/default.env create mode 100644 dockge/stash/envs/global.env diff --git a/appstore/kavita/0.8.4/.env b/appstore/kavita/0.8.4/.env new file mode 100644 index 000000000..b1caf9807 --- /dev/null +++ b/appstore/kavita/0.8.4/.env @@ -0,0 +1,15 @@ +# 数据持久化路径 [必填] +KAVITA_ROOT_PATH=/home/kavita + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=5000 + +# 自定义挂载目录 1 +CUSTOM_MOUNT_DIRECTORY_1= + +# 自定义挂载目录 2 +CUSTOM_MOUNT_DIRECTORY_2= + +# 自定义挂载目录 3 +CUSTOM_MOUNT_DIRECTORY_3= + diff --git a/appstore/kavita/0.8.4/data.yml b/appstore/kavita/0.8.4/data.yml new file mode 100644 index 000000000..20612acc4 --- /dev/null +++ b/appstore/kavita/0.8.4/data.yml @@ -0,0 +1,38 @@ +additionalProperties: + formFields: + - default: "/home/kavita" + edit: true + envKey: KAVITA_ROOT_PATH + labelZh: 数据持久化路径 + labelEn: Data persistence path + required: true + type: text + - default: 5000 + edit: true + envKey: PANEL_APP_PORT_HTTP + labelZh: WebUI 端口 + labelEn: WebUI port + required: true + rule: paramPort + type: number + - default: "" + edit: true + envKey: CUSTOM_MOUNT_DIRECTORY_1 + labelEn: Custom mount directory 1 + labelZh: 自定义挂载目录 1 + required: false + type: text + - default: "" + edit: true + envKey: CUSTOM_MOUNT_DIRECTORY_2 + labelEn: Custom mount directory 2 + labelZh: 自定义挂载目录 2 + required: false + type: text + - default: "" + edit: true + envKey: CUSTOM_MOUNT_DIRECTORY_3 + labelEn: Custom mount directory 3 + labelZh: 自定义挂载目录 3 + required: false + type: text diff --git a/appstore/kavita/0.8.4/docker-compose.yml b/appstore/kavita/0.8.4/docker-compose.yml new file mode 100644 index 000000000..6694222ff --- /dev/null +++ b/appstore/kavita/0.8.4/docker-compose.yml @@ -0,0 +1,28 @@ +networks: + 1panel-network: + external: true +services: + kavita: + container_name: kavita + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + - DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + image: jvmilazz0/kavita:0.8.4 + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:5000 + restart: always + volumes: + - ${KAVITA_ROOT_PATH}/manga:/manga + - ${KAVITA_ROOT_PATH}/comics:/comics + - ${KAVITA_ROOT_PATH}/books:/books + - ${KAVITA_ROOT_PATH}/config:/kavita/config + - ${CUSTOM_MOUNT_DIRECTORY_1:-./default_mount_1}:${CUSTOM_MOUNT_DIRECTORY_1:-/default_mount_1} + - ${CUSTOM_MOUNT_DIRECTORY_2:-./default_mount_2}:${CUSTOM_MOUNT_DIRECTORY_2:-/default_mount_2} + - ${CUSTOM_MOUNT_DIRECTORY_3:-./default_mount_3}:${CUSTOM_MOUNT_DIRECTORY_3:-/default_mount_3} diff --git a/appstore/kavita/0.8.4/envs/default.env b/appstore/kavita/0.8.4/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/appstore/kavita/0.8.4/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/appstore/kavita/0.8.4/envs/global.env b/appstore/kavita/0.8.4/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/appstore/kavita/0.8.4/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/appstore/kavita/0.8.4/scripts/init.sh b/appstore/kavita/0.8.4/scripts/init.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/appstore/kavita/0.8.4/scripts/init.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/kavita/0.8.4/scripts/uninstall.sh b/appstore/kavita/0.8.4/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/appstore/kavita/0.8.4/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/kavita/0.8.4/scripts/upgrade.sh b/appstore/kavita/0.8.4/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/appstore/kavita/0.8.4/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/kavita/README.md b/appstore/kavita/README.md new file mode 100644 index 000000000..bab026dab --- /dev/null +++ b/appstore/kavita/README.md @@ -0,0 +1,34 @@ +# Kavita + +自托管数字图书馆 + +![Kavita](https://file.lifebus.top/imgs/kavita_cover.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 简介 + +Kavita 是一个开源、自托管的数字图书馆管理系统,主要用于管理和阅读漫画、漫画书和电子书。 +它旨在提供一种简洁且用户友好的体验,用于组织和访问个人数字阅读材料收藏。 + +## 特性 + +### 图书馆管理 + +将您的数字阅读材料组织成带有自定义标签和过滤器的图书馆。 + +### 同步阅读 + +在您的浏览器中直接阅读数字材料,享受可定制的阅读体验。 + +### 自定义过滤器 + +创建自定义过滤器,根据您自己的标准组织您的库。 + +### 用户管理 + +创建具有不同权限的多个用户以访问您的图书馆,每个用户都有自己独立的进度跟踪。 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/appstore/kavita/data.yml b/appstore/kavita/data.yml new file mode 100644 index 000000000..02185dc1b --- /dev/null +++ b/appstore/kavita/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: kavita + name: Kavita + tags: + - WebSite + - Local + shortDescZh: 自托管数字图书馆 + shortDescEn: Self-hosted digital library + type: website + crossVersionUpdate: true + limit: 0 + website: https://www.kavitareader.com/ + github: https://github.com/Kareadita/Kavita/ + document: https://wiki.kavitareader.com/getting-started/ diff --git a/appstore/kavita/logo.png b/appstore/kavita/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..86de849d69db8c00347d4cdc539aae4defd9cb72 GIT binary patch literal 17644 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 .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + chmod -R 777 "$KOMGA_ROOT_PATH" + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/komga/1.18.0/scripts/uninstall.sh b/appstore/komga/1.18.0/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/appstore/komga/1.18.0/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/komga/1.18.0/scripts/upgrade.sh b/appstore/komga/1.18.0/scripts/upgrade.sh new file mode 100644 index 000000000..5c62cfe9b --- /dev/null +++ b/appstore/komga/1.18.0/scripts/upgrade.sh @@ -0,0 +1,19 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + chmod -R 777 "$KOMGA_ROOT_PATH" + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/komga/README.md b/appstore/komga/README.md new file mode 100644 index 000000000..aea84dd30 --- /dev/null +++ b/appstore/komga/README.md @@ -0,0 +1,49 @@ +# Komga + +漫画、漫画、蓝光光盘、杂志和电子书的媒体服务器 + +![Komga](https://file.lifebus.top/imgs/komga_cover.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 简介 + +🚀 浏览桌面、平板和手机上的响应式 Web 界面中的图书馆、系列和书籍 + +🚀 整理您的图书馆,创建收藏和阅读列表 + +🚀 编辑您系列和书籍的元数据 + +🚀 自动导入嵌入式元数据 + +🚀 多模式阅读器 + +🚀 管理多个用户,具有每个图书馆的访问控制、年龄限制和标签限制 + +🚀 提供 REST API,许多社区工具和脚本可以与 Komga 交互 + +🚀 OPDS v1 和 v2 支持 + +🚀 将 Kobo 与您的 Kobo 电子书同步 + +🚀 KOReader 同步 + +🚀 下载书籍文件,完整系列或阅读列表 + +🚀 重复文件检测 + +🚀 重复页面检测与删除 + +🚀 从您的图书馆外部直接将书籍导入系列文件夹 + +🚀 导入 ComicRack cbl阅读列表 + +## 支持的媒体文件类型 + ++ 漫画书存档:CBZ 和 CBR ++ 电子书,格式为EPUB ++ PDF 文件 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/appstore/komga/data.yml b/appstore/komga/data.yml new file mode 100644 index 000000000..50fa45244 --- /dev/null +++ b/appstore/komga/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: komga + name: Komga + tags: + - WebSite + - Local + shortDescZh: 漫画、漫画、蓝光光盘、杂志和电子书的媒体服务器 + shortDescEn: A media server for comics, manga, magazines and electronic books + type: website + crossVersionUpdate: true + limit: 0 + website: https://komga.org/ + github: https://github.com/gotson/komga/ + document: https://komga.org/docs/introduction/ diff --git a/appstore/komga/logo.png b/appstore/komga/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..71d3b91bd792fcf1ec21487fc1ff106428955524 GIT binary patch literal 43731 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%0AF&pfxdz~4K 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 .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/stash/0.27.2/scripts/uninstall.sh b/appstore/stash/0.27.2/scripts/uninstall.sh new file mode 100644 index 000000000..c86c4fbca --- /dev/null +++ b/appstore/stash/0.27.2/scripts/uninstall.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/stash/0.27.2/scripts/upgrade.sh b/appstore/stash/0.27.2/scripts/upgrade.sh new file mode 100644 index 000000000..07fb8c3fe --- /dev/null +++ b/appstore/stash/0.27.2/scripts/upgrade.sh @@ -0,0 +1,17 @@ +#!/bin/bash + +if [ -f .env ]; then + source .env + + # setup-1 add default values + CURRENT_DIR=$(pwd) + sed -i '/^ENV_FILE=/d' .env + sed -i '/^GLOBAL_ENV_FILE=/d' .env + echo "ENV_FILE=${CURRENT_DIR}/.env" >> .env + echo "GLOBAL_ENV_FILE=${CURRENT_DIR}/envs/global.env" >> .env + + echo "Check Finish." + +else + echo "Error: .env file not found." +fi diff --git a/appstore/stash/README.md b/appstore/stash/README.md new file mode 100644 index 000000000..78c321e24 --- /dev/null +++ b/appstore/stash/README.md @@ -0,0 +1,23 @@ +# Stash + +组织和刮削你的色情内容 + +![Stash](https://file.lifebus.top/imgs/stasho_cover.png) + +![](https://img.shields.io/badge/%E6%96%B0%E7%96%86%E8%90%8C%E6%A3%AE%E8%BD%AF%E4%BB%B6%E5%BC%80%E5%8F%91%E5%B7%A5%E4%BD%9C%E5%AE%A4-%E6%8F%90%E4%BE%9B%E6%8A%80%E6%9C%AF%E6%94%AF%E6%8C%81-blue) + +## 简介 + +Stash 是一个用 Go 语言编写的网页应用程序,用于为您存储和组织色情收藏。它是自托管的,并遵循 AGPL-3.0 许可协议发布。 + ++ Stash 从互联网收集您收藏中的视频信息,并通过使用社区构建的插件扩展,支持大量内容制作者和网站。 + ++ Stash 支持多种视频和图像格式。 + ++ 您可以标记视频,稍后找到它们。 + ++ Stash 提供关于表演者、标签、工作室等统计信息。 + +--- + +![Ms Studio](https://file.lifebus.top/imgs/ms_blank_001.png) diff --git a/appstore/stash/data.yml b/appstore/stash/data.yml new file mode 100644 index 000000000..bfdb97dbb --- /dev/null +++ b/appstore/stash/data.yml @@ -0,0 +1,14 @@ +additionalProperties: + key: stash + name: Stash + tags: + - WebSite + - Local + shortDescZh: 组织和刮削你的色情内容 + shortDescEn: Organize and scrape your adult content + type: website + crossVersionUpdate: true + limit: 0 + website: https://stashapp.cc/ + github: https://github.com/stashapp/stash/ + document: https://docs.stashapp.cc/ diff --git a/appstore/stash/logo.png b/appstore/stash/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ea145b18152040a0119a242e7ecfc513a05f7ffd GIT binary patch literal 11361 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 E0i^W{t^fc4 literal 0 HcmV?d00001 diff --git a/dockge/kavita/.env b/dockge/kavita/.env new file mode 100644 index 000000000..b1caf9807 --- /dev/null +++ b/dockge/kavita/.env @@ -0,0 +1,15 @@ +# 数据持久化路径 [必填] +KAVITA_ROOT_PATH=/home/kavita + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=5000 + +# 自定义挂载目录 1 +CUSTOM_MOUNT_DIRECTORY_1= + +# 自定义挂载目录 2 +CUSTOM_MOUNT_DIRECTORY_2= + +# 自定义挂载目录 3 +CUSTOM_MOUNT_DIRECTORY_3= + diff --git a/dockge/kavita/docker-compose.yml b/dockge/kavita/docker-compose.yml new file mode 100644 index 000000000..6694222ff --- /dev/null +++ b/dockge/kavita/docker-compose.yml @@ -0,0 +1,28 @@ +networks: + 1panel-network: + external: true +services: + kavita: + container_name: kavita + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + - DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true + image: jvmilazz0/kavita:0.8.4 + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:5000 + restart: always + volumes: + - ${KAVITA_ROOT_PATH}/manga:/manga + - ${KAVITA_ROOT_PATH}/comics:/comics + - ${KAVITA_ROOT_PATH}/books:/books + - ${KAVITA_ROOT_PATH}/config:/kavita/config + - ${CUSTOM_MOUNT_DIRECTORY_1:-./default_mount_1}:${CUSTOM_MOUNT_DIRECTORY_1:-/default_mount_1} + - ${CUSTOM_MOUNT_DIRECTORY_2:-./default_mount_2}:${CUSTOM_MOUNT_DIRECTORY_2:-/default_mount_2} + - ${CUSTOM_MOUNT_DIRECTORY_3:-./default_mount_3}:${CUSTOM_MOUNT_DIRECTORY_3:-/default_mount_3} diff --git a/dockge/kavita/envs/default.env b/dockge/kavita/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/dockge/kavita/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/dockge/kavita/envs/global.env b/dockge/kavita/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/dockge/kavita/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/dockge/komga/.env b/dockge/komga/.env new file mode 100644 index 000000000..b9f7e3f0c --- /dev/null +++ b/dockge/komga/.env @@ -0,0 +1,15 @@ +# 数据持久化路径 [必填] +KOMGA_ROOT_PATH=/home/komga + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=25600 + +# 自定义挂载目录 1 +CUSTOM_MOUNT_DIRECTORY_1= + +# 自定义挂载目录 2 +CUSTOM_MOUNT_DIRECTORY_2= + +# 自定义挂载目录 3 +CUSTOM_MOUNT_DIRECTORY_3= + diff --git a/dockge/komga/docker-compose.yml b/dockge/komga/docker-compose.yml new file mode 100644 index 000000000..6af8bec7a --- /dev/null +++ b/dockge/komga/docker-compose.yml @@ -0,0 +1,26 @@ +networks: + 1panel-network: + external: true +services: + komga: + container_name: komga + env_file: + - ./envs/global.env + - .env + environment: + - TZ=Asia/Shanghai + image: gotson/komga:1.18.0 + labels: + createdBy: Apps + networks: + - 1panel-network + ports: + - ${PANEL_APP_PORT_HTTP}:25600 + restart: always + user: 1000:1000 + volumes: + - ${KOMGA_ROOT_PATH}/config:/config + - ${KOMGA_ROOT_PATH}/data:/data + - ${CUSTOM_MOUNT_DIRECTORY_1:-./default_mount_1}:${CUSTOM_MOUNT_DIRECTORY_1:-/default_mount_1} + - ${CUSTOM_MOUNT_DIRECTORY_2:-./default_mount_2}:${CUSTOM_MOUNT_DIRECTORY_2:-/default_mount_2} + - ${CUSTOM_MOUNT_DIRECTORY_3:-./default_mount_3}:${CUSTOM_MOUNT_DIRECTORY_3:-/default_mount_3} diff --git a/dockge/komga/envs/default.env b/dockge/komga/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/dockge/komga/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/dockge/komga/envs/global.env b/dockge/komga/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/dockge/komga/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai diff --git a/dockge/stash/.env b/dockge/stash/.env new file mode 100644 index 000000000..f259f9393 --- /dev/null +++ b/dockge/stash/.env @@ -0,0 +1,18 @@ +# 数据持久化路径 [必填] +STASH_ROOT_PATH=/home/stash + +# 网络模式 [必填] +NETWORK_MODE=host + +# WebUI 端口 [必填] +PANEL_APP_PORT_HTTP=9999 + +# 自定义挂载目录 1 +CUSTOM_MOUNT_DIRECTORY_1= + +# 自定义挂载目录 2 +CUSTOM_MOUNT_DIRECTORY_2= + +# 自定义挂载目录 3 +CUSTOM_MOUNT_DIRECTORY_3= + diff --git a/dockge/stash/docker-compose.yml b/dockge/stash/docker-compose.yml new file mode 100644 index 000000000..824e14519 --- /dev/null +++ b/dockge/stash/docker-compose.yml @@ -0,0 +1,40 @@ +networks: + 1panel-network: + external: true +services: + stash: + container_name: stash + env_file: + - ./envs/global.env + - .env + environment: + - STASH_PORT=${PANEL_APP_PORT_HTTP:-9999} + - TZ=Asia/Shanghai + - STASH_STASH=/data/ + - STASH_GENERATED=/generated/ + - STASH_METADATA=/metadata/ + - STASH_CACHE=/cache/ + - HTTPS_PROXY=${HTTP_PROXY:-} + image: stashapp/stash:v0.27.2 + labels: + createdBy: Apps + logging: + driver: json-file + options: + max-file: '10' + max-size: 2m + network_mode: ${NETWORK_MODE:-host} + ports: + - ${PANEL_APP_PORT_HTTP}:${PANEL_APP_PORT_HTTP} + restart: always + volumes: + - /etc/localtime:/etc/localtime + - ${STASH_ROOT_PATH}/config:/root/.stash + - ${STASH_ROOT_PATH}/data:/data + - ${STASH_ROOT_PATH}/metadata:/metadata + - ${STASH_ROOT_PATH}/cache:/cache + - ${STASH_ROOT_PATH}/blobs:/blobs + - ${STASH_ROOT_PATH}/generated:/generated + - ${CUSTOM_MOUNT_DIRECTORY_1:-./default_mount_1}:${CUSTOM_MOUNT_DIRECTORY_1:-/default_mount_1} + - ${CUSTOM_MOUNT_DIRECTORY_2:-./default_mount_2}:${CUSTOM_MOUNT_DIRECTORY_2:-/default_mount_2} + - ${CUSTOM_MOUNT_DIRECTORY_3:-./default_mount_3}:${CUSTOM_MOUNT_DIRECTORY_3:-/default_mount_3} diff --git a/dockge/stash/envs/default.env b/dockge/stash/envs/default.env new file mode 100644 index 000000000..cd05f46e6 --- /dev/null +++ b/dockge/stash/envs/default.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +ENV_FILE=.env diff --git a/dockge/stash/envs/global.env b/dockge/stash/envs/global.env new file mode 100644 index 000000000..e10989fe4 --- /dev/null +++ b/dockge/stash/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai