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 00000000..b1caf980 --- /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 00000000..20612acc --- /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 00000000..6694222f --- /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 00000000..cd05f46e --- /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 00000000..e10989fe --- /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 00000000..07fb8c3f --- /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 00000000..c86c4fbc --- /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 00000000..07fb8c3f --- /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 00000000..bab026da --- /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 00000000..02185dc1 --- /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 zcmVHq)$8FWQhbW?9;ba!ELWdL_~cP?peYja~^aAhuUa%Y?FJQ@H1AOJ~3 zK~#90?A>{M9d*4v@aHpg&dJ(zp$kwD6c9wjrL;{_xKIV#CTS~rsfw})-d@O3L~!F? zZ>|1ZP`oTn(%#BtQLYPBu}e~lT&Y5nv{=1@Ruo*JNZYi8G}~EbKEFTGvNdf^k~8z2 zne)8=qRBZk5A*uw%yYi8iK>E#g6o_eYvR)fQd2TwO;up3SUN!z6QG!=q7wjXf{IQM zMF}893M~;JA;5SAVgSa!Zjq$`;;;Kz8bHtMe)f_883kTaASIAqRqca?K2hlc+%8e+ zg5X6Jbg3&{0_=&YyJuHnV(%|!EKPg0O^9ghgav@eoWK(XO?VU-5(EP$OV_#ISs zT9*8-x4-Cjk6du&fa!2VVaEbMG(t;uu1IvhIQcZok{Kd81Bw{{-UXn@bhbQ^2Jke1 z9f0m|Eo+Bc)c5PnXW!UsIv7!yumBJp#oR3`V&e)YpY6I*uHw!HWEOxo1F%eIqt|c% z{854J5Nw0G9sSAuPd;+N@{H+VL_x&@K=dk$cC4A4Nu|!UM9zha*(#U;ezOm&K0tOT zuuW7SD~RE-AJ3}WXF3#7P_O_{UR%8F_GxL2&jNIgC@uu>PVn1(l>J$OhXL6db2D4k z&sp|&(}9RgVF94LvUuxV3TlCtHI3u<3~F9f2< zVgaB?TY(kUFWV=bqp;>faghqjF?e$vqSs3UXoupbE@X3g<=!33vD`HsipVQ002Dck zcC0DRq%-egf*Li$!%2 z1m^=tn9f9zk_7bUqSiWF-Jh(RQ~$i_KtyB30zjcv-PUvxMBfL*bGllRC!JE6K3 zG5K!Gthzs%4ns5=EC3WLi?%nuG2_aIMdhCXeW&R>L<;;$AZwxey_U+lznRWMlr0tj z3cUI4w@$K9P$R%)fW8NSn9f9W1UmrzPRw$?&j%e*(6IneAT4RXwWvo5-Y=>j1#lsF z=01f>Mg$M3%6)yw;s^Nb0tzA)01A|vZL4Oex|gfsBLW;_IuB6}yaZsqi2Lo0VskTe~JqJ;&3a%Sw@x!1mE zIt)bv3jmGT;%&E2%Q*J65V;P(1k-tlBJ2PJcUx+IeM7}HyG)0naAN_WQ5$?14?YLr zN&p3h;}GSOq$uvP)cM-_Im`ZTIt+yq3jmE+bz9R(u<%JJ{uSKu6Pc6-@O=mJ#Rn^D zpD`VV!i5EZvR2i$@)S#~n{@ETJ#o`{i0EZ$DDJgm`jz#w>i=Ro421&=01azl`|9bg zIG^S>exkrjD{yz*)fMaJ)IV=J3j3K%T2ymb<3&kbhVJ@<`3LRWn@IT`53?=`2JPI6Evw!-mSbcGE$~A1nZQ z;8oN8^#Cl>d59>mRDo~B-J%=U&AIA;=`iFi7J!JW>S$gls;j`q^Ab^(6nNeS>Nix> zJzzQud4~lcqG}#n^(M95CIItIXCb1nlC>GN>UlT8Xkr0~m?dl1+C3-kzCl#J0N%cr zh{i~PeSmzjwW9Xhrn69Pu>eHK{H;xIwJqEQV3z4DL=-jpbJ()9WmerEO(&t;U;&7L zxm#AmN)nTAP{9iDX?;ZGoqkcQDBd;o7T!`g{8#`&Zo#%yXIrj&FMxNL&O$_aCGEEs^-AJvP%JZ@g^1_~zLP2GzjpK4H};wiLc?PL2!ZOYjpx9U`v9D7Itvle zFrKmnA6Z{s_bbyu=;&Ag0_;^M`h6Wh!gL-YqAX>g`sI>c)4s&Z1%rzPAfV4!FKNai6~E;F0R#4-PZU4(?RkbX8;UYvUaWAJAL=(A@X^!h!Ii#Q5Af> z^x3KZ#!CgwU;!}T{o9+4NoMdp2re?6g^0)`1-3Y9e{gfFBFcqREX!@H*}C#P(?Oz!1t5p2+ZsP0mh}jLDW=re=`2J<5mY3QAJ%jygWHmb$PXgWJE}XHK505g*m0*d z1~qL>p8?PaKul*LBFZBI#W$-un!aW_NSLtzj8aW|;}=!H!AC@7h$uc&-PU}w=^SCj z`v8oP08-W7d@G>Wna)B)L;xVGXI1R2P$pO#AB2VjZmEJQ>!1eG7`E{I+B%Na}4rlW)b&jHB7 zlC^8?sp<5$!JR)5QE-WVa9S$${kdCK@RIB-umB800O_5+XSFCkWI78G5e-M)UsN#p z&J|d}{o63Ofre4l)^rO5A2*$Yh={Tyz!lruC*NT@N6@hV97R<})7K#2%_fM5!l$mf zz41RyhX^tjfFr2xXkIRg&zR0ZL`0({*H^bS{k!QDLB*>8hEUz!cpV_Ona)8(L^<*4 zmWsM>m<|y%EC8=l)!uZK0C$47_a!2V3I*iamWtZ{G94sHSO8w7x~=Il2<`z7jSvw< zjjJM;x0cubkLe&m!2)nlbz9>HAo6|ik-kJkQI%2XC9M_pKQSF72v`6BEZEk3uI1`a z0Ti0fLPSKK8W6~PHdfTOnGRxF-WPzH$5y>bZMPl3RMT0Ah{$^i?6WPWV#DlZPn*tS zQeGeHe*gBSW7KjtfjfU9qP!u%F|KQGs(N(g6w_Hu%G&}kcgsD6NeAm7c(ds&L`3Af zQzT~psA|*70@FcE$;$#DfRrS9?*uT%bQU5aGDXjm3D&nIPcQq<%L1^Vqv@+E_=xEo zL_}oVk_BzeUosuSguFWmu%^B7YK7csItLLE1&HXiE#>vAO~>$4UKN0v_QrV%*$7_i zPeeqol~$FS*2>z4Ob78x-V}iOTbtf$Ti6O!?_K=F&)GYc~Jls z?N~F}Nu_rHc!TLIL_`#5e=V?a&W~r+?K2(3Ymq+*a0OOanN<2daOY1%M8i8d<=_WP z)~>Zp2k~0u3&8faDPI*}p6MJ!L=+ARyr*yao-dlt;k8H~0;q0lS`5Jh$kS^)iHK;_ z6sniBRM!8Hy6SYxa<_pe{Sgt-=o}D{*&EAie{VX77b1BGVD6UYQp<9G z4DS4ih-mc2spaKOWY)x!(e#cFdYSpXJqZ9HC7zGXTGQ4p2b34Hd=^YF2gD#oqqXaL3q6tj_C@PrpIRG3zPOuS;iR%BWd2H42(`^9|_yVwG z?OIz^?*+i?kch_U-BV7-n@gu2_VY8w9gFjM(jQSS6szriD-2f!1ik?DoVfc205eVJ zAc_J3uw?q-N76nxeMay8Kirs*6<6W9V!-QIX9Al0UG5Jl1XlTUm3zb|;ze-lv-seZJoqj{m}7)KJw0&vle zHRBcX4bwS@qU!j<@i?}y4AToIU|K<$={Q7@C8~{cw=|cU&M}lg7Jx)5eX{_^o6bQL zWoMU7$J@s9&y2`pZzw9zFPRQ8l)x2$>W-$_0Qi_+B9EO~Iu)mu1o|8$qDT;+VNplZ zyG-YJy+9R!6zFXy!9`UUj+K~i*~FD z%(Poz3IJ^9ivXsWjzN?!itIQF?YQX}MEPV|K|1|;(;*ItnGOH|)$NUM1LPXhIcVfQ z^u&PC^?(0tJ|beYViKCCmJ&sVDwZv3Z@hDTMg3Ezvjk!W;NUg?fhZ$HL_{8nI{~@R zjqw6d-QGN3fO)2K5D^jiq^720<%On07%c!x)~>Yy{kq8vL_|b>Q&_jGzzU=LV58IS zJ=6DICBWNEW*`E9{(%$@^d^zXI8Zg6<`p7>MBGN%xI!f2;W$c`N@dX9Gk{dufd*+~ zMo<{X2OXq%`{NyxFGD%*H5I{F`xm3hmVQT$EhxGO(vA?Si>2$Dm{s5q=NTxFA z+~0##I%7J{uu=!JCQ}*i{CyC%@jl+}+di!HGxOVTon&IoMh+Uew%#PbL=)>aN)^sCeQ!c&F>ZaJ_E3LYvb_( zt@V4orfF9O$$OqhdhKpFzw3c^WyZeqr!kAgY*3>l*;l-oY-Lc7v% zf7^rf4_`p)-shn&rA?>uoeHk2e!Tfuzt`(~0dQ=50f4cS9!wbA`R{`MBWXGc4WX>G z$aI8Zi2!Bef`8Y;vT=oZ_yx|qu#Au4xX&k%y61W5OL=!fV~J$kXwLvtwXHlwRj%}N zoyMsm^}ueRkH_bNs-!r9NfSyCkK2LUd5H)L5;07kR2quQyb|%jtObb}BxoBmg2FaF zvZ1{W(huxL;4aDWm_n9Tw>6#Q=Q@2IF=AQ&21Q;yeZ+aDkKg=5pr|m8qQblynw~jS z0*FS-eLe~InLb#jm6(p=rvwC_1K`_paeSKrsBUXI35t*SwZ5QmclMf&KtvQe&hPW` zv-7G29jj0FYh`{O0{C|T2_M%N2<|Rkn@dDAQhEB>8Mj^M(|)bYmjbY8>m6@^;Br6K z6*St*GyRE(MoN3~^RrV0SNnA?fG-8WvFw|Whu{7I@KQe_qS46T&&~t{pYmfxo)>_H z?W?B)_?Xx0AtEA*h>y>IbdBe?%J;kgIB-9KeEs%ML_{=l1$Hdm;Ppy8EdUqoSTkOr z|KjC3h=_{cF`5rHp?ad(o6@L3CA|lEGRm+ooYR(Hl z_4cMW3vf}cmrF!Ml&7i}wKtxT>xJfi2EdW)Jy|Xh5m9~;7pTkiLSwmH*hM?mj88x> z%jGhO{Lnv;!hzl-G8qS|rqjGaM39KvC>vLZL_DW|uAWJyGU)CZKq~D(gS0UtD2(HS zMoX@&+P3oFT4y(O=W2;L{ia@!PF)V5B$vx1@>*|S68pRQkWL3{=MMm?iexH-&iy?| zr8B1E3@ddoYciGL&ff=N8y_@!3Y1!o{n1=5Gp7YW6`tO;h{y}wJ;8tOxGK59K4@%IG^d9Fa#jGU+E<+q$XU5s9+4k183(Q#j$KwN?U;@*tT1GZDsKC{ zaAs9Ui;$D-pWf2h((P2d8UvssroD_hnM^{b}#l^W;7LlJ~F&mcU$xXI$ zE)lm)M;KNZGDa1*eco77_2|kexmZw63V_6{D*+VbVp&9fD=RHB9bs4^K-oCYo(YmO zW#bAV;pkJ55|;5nIZ+_-+?))Ut3v=+=4d%YzAGtCVA6yV#N&40c3vWafR&JjH9S9ZaPLJ94Y}s z*d?T zA|e_)_rs%o=co!mbz9R(0+f$-r9?zTlne4t)oo2Djpm)Bn*k793V^ryA|fI(OBAC! z3^3Y5082*sJ|ZF_${`UQ)joN|1z^$k#y0|Z$7ohYL_|b6H*?X}JKiwTH;uReIAb{D zkcfzga!wq}x_G2-8u=jr(f5z|Jw!xAnDr9_dPmh=|BbI%o0L z#^Xowju90A2kyn-+5bdDL_uSvZCN~$H;m{`exkaFyMKzJ{(%$@^d^zXI8Zg6<`p7> zMBGN%xI!f2;kfZ;DwRQZ&j3C863b5{;0n-tNr3!Q(2!77)o&j*T@4v8&5As|=aYEmd?TfQ600ONZ zT^^#~%48h4Za8*XskCD{!mz@SF{-%j2>`^(eqWu{L8BE|VL>J@7=0v)s_&m&XgUHB z5gnw88UaKx{A65KGXUE=CeH*gZOqAt0wxx-VOilgvo#U7O-C437&1l`w>=G#;}&)_ zy)&CvW>o-0F>h>vh=QxEw8(UXVTk}`Ye6Cg3EIYtpswA_@~7e&0Q80gx<@B@hu2Q9y{kces}vwE)b2bj@)9 z&d6CHA|fL4fxLBI+v=%Dd&N-;K+H~`pW8r0L`38Ri6L{;^8k)o0Myc9Pa+^9BBB5i zYxD&`R5$}bL_`!ydenXR5evZl_FE?@@Rr;MA|fIpADn&hmfI#A>6b?=0C6PFKicn! zh=?fAtW-h#+#~+-NWW0Q9B=Xv5fPCeR4|GHpeXky4iOO%`9V~VxGx{F0GzX9O&q|x zJWE7GL_|K2bLMVYG30Z9hAaTbW}LGD1pgVSL_|b%G$qA}DQ6A!iy;eux-O^xiHL}z zK!$#z?~%>{;NyRZh=`&jp=@`S}_%I_Z zY4sUqOd6&R|pZ)De{lV z;IGE#xOnoLUj2jDju^*26T)+N>F5r9$P*2P z38(*wh=?LdqTEK00jk8P6n?4AR;1)s-goY?mO|&KVB{XHgKw$JVZo9iLTXO#c|AOJ~3K~#1BsRG>x2295o z7RQGfVHqD33@SJdc)0+`G?QT{JW^@LbcDPWhHW2)j8VmHPubI{z$-HVQw=5|A|fK+ z41Vdi&e^dh4q&3;G!znvxNSN@-U`FE4@1VN;_R@t~h z2uF+WL;JQ;R3p&Yk4k98V@{g!YwA9iG zrh^a>5s`ny(g_ySVgVo`BFZD8I>7?m@uq_i5fPDpT(u@x0A~P*h=}ru2xkC@h=}rz zC?;5d@Om90BBDH^A|;jp#ioN05fPD}++xdR0U#nG$}6H$Yza_gItURF5&1_2MHZAZ z07OJYd8XI`X8?$Zi1JO51p%KSNkl}HUy3XMe1;?u5m6pdAjSefL`0Nl1h8WOY|}v~ zTvDkFx_btYN;^vLZL_8c_o#VqlVH_V6403P=fCYfEmP%#NxxWX= zRE8h!K2TL84{q~RI%7J{usA;a6}Is~!J&Z70zf0u-7^4wtou(D=sqxDI>xX#KFkQq z_@F@H3;>NxD(#q#khj9H?Zc2Us<`cGglx-n0wN+J@}C8OwUM%xh;zcolrU`jFl3A> zZhIObhXsH}q-7zTh=}rt9y|wt1%QZ% zD31t`v7q4HBZ!EI@=L!3px<-~A|fL4Rlfy6pXn4tL`3APJ_}$0AR;2lFVbfT4*?Jn z5#<@T-%`#15D^jO8LQ6%w8wM|A|fL4kEr%qqS9qL2oVtx`AGCdO9d7^b8FcpyAeDBYs;1*anus6~w^25(5Q%uqbeybkeE27fpWMyy;jgfb4+@Tq#&%oX>3w?uxTeEUICS?6 zfFJArQw6#Y1pmq193N(cWqeRzIOBI6v(I|ug5?8ILFo>&v2Y?s=sNh-tsZzEMeaI6Hh2w)L*woTzfrB#uqRJTn zA|j$ZAg=vN0kAEw01y!oAZ$c0KAP95fM>@ z3DEPv1)t~w4i*3f6u@7MrXnIDB2TH{Plx{d)sF#u#y}P#A|mpO>QDthSpbNLh@wob zm-qFrDgg4Qp&Ct1JLSL_|?$DGomb(4X4>HvmZ^ ziHL}Z$ZP#2yQV&O=pQc^fJZJ^o&oR&Baw)Rh{#h4{Qmw+E^!Y1+j`9}1v~wZL_|bH zUK5em?Bick0HDGGKtx0oMXEl+}+n$b2 z4%@dMRsdv(7ZDK=QFsY7n*wn7i--UqOeHb!E6}LSdjicGj02IW31Auc$ zG^Da|g%B~FBL9dCZu_9)_%I_Z^D4 z)8Sq-d;!qm7eYitL;<2Y_5u)di+&Cuos&RBL`3AZWV&SFh&KQ_BsSa&*3G%?$R}AIy3eiv zC>|VJ8j6bUo&oS<-G8b;_kjV^F^0wQVMbWS2l+!Go3nXcRt4a}%GzHl@ch^!Q52-o zj_C+_D-7E{3>l+}+nx@3uC=oEH`%-}+d}{?Y!}Dgc8o)Rxf) zqNqs3ZPO9*Rv5N@7&1l`w>=HYeqWt+0Z5hfKLmgWnetrOxI&1SPLY2^2Dg3CaeSB& zmhnNJ>$el}pJn^vtP8;Avv2HGfKLa^bBTBilP8s;AQ6M`liqV8f`Y{0HV?yPUK}6( z3fuS~uj$X$&sf@*?W;#LVg%R#VBUx`QKTIDkS7`n#|M!q)`k(idPK{P$&UcIBYF=J z5fORKMGWgk@`e!=fP+s5>=;obA|fL4m_B-NADy+4%>V#Ul^>7vJw!xA%DjA0f+Y42g({$a9*ut)GnaO(QMHCO?h$#0I=-527_SuoXZ^Q)v z00gpjH18uKBBI<9!4F6CzEKqb+s%9zJPbfYL}Z$4sr`e|ym3?oVEvqBe+SSun)ebB z5mC-;*-&xKuF<@4R0ZIm?~UQTL_|b1Rx z0RS(KWf??7L^NXi-7Z}}mIaKd06cQRl>>l`>hc33A|e_cRs2uuf`;T+mNC{t0I=ZP zJ=SFq5fRY{h&$$e@0bg~hKh#m0G=G{a)^kCC@W94Ry2(Hmi%Kb005vW_vT_bL_|b1 z9R2THEF~ueAXX5&7r>Z~MGz4Y(Xf)5(eLJBK{+V^>t`(O1oX$bSQZfx5gm#CVDLUX zV;9TCLI6NqU8R%X9=XNC1c>h}jn6aT^7RI0_455Rsg&M^!P9Oe2}f zAf0xQaa^dYd?FZ;&ji+g~f|{9{iy_ILH6w=acM+JVcRKamMfY^txB#^p!=#u@gt>5PLt`wk$P%J`6sh_WWQyLEO$cPAkYyXhz<>tHq0D$Yt?OrUGh{h(B%HTlnz+pc>&@;ekf1W-hbwD&l)QKpkyk|6aR>U>&2K;^erz};AsJ9o!!u_0^S~&D1g#w7wPoyHwPjj0|ZU$=3I5a z%T;(<001B^nOgxIe%%of8I^GyUiVKFOari`$?KJPUI5n3zHYZD?)G{;L^LvoP68yN zU{S@lT4vV1;PrZ9UatTE(sB7}ETdNgNcge7d~*4}e93eKGRThEC@Ct$ z<{2mB?Ps5c!h+%d)JC%J?;l9vH%~l`olpH0e|z=??A!Mediw|9Wbu3fA{vn-Z1?Ma ztVsO&22j=B^j`uj^<`xNGVql@n~p$vrl25>^D5tt#Wm+)d|Bz3mi5w0y;!&L7kIS& zH%KPaIZ8;Box+>mWIBQgO)V95^?t0#ml*&6h`G*}9m~EFoCP5AR5F>y!;kzDkF`C4 zs`(XIxL^)!+aA#}GMNlEv~Iv!?MhF@^!Pvj@jJ6kI2{^r-}d@BF|V8`?; z0633GeYYz1E;XfOHfPMR4@-Z0^4U*OC=PdiXpKJ8B002P7 ziGK+|pWo{x%6FanUcwzsYmvzue)m5o<6z~gA7by`7Y!sM%6q*rEB#f!SL%BKc<{WX z|9}dg6i8&iAOG|$ezM`w!+yTL^)XKS6PY5ob=~aicKf|r-wOZ$BvPrb0^nB-A_H0< z>cHO4S02&v(o4PA^iYSvL_~S5OET7fnpm-s0`R~EpXd_NZ<<&)QNGJ$GT6AO?d5;3 z+sL#1iA+(^uWmf|S|eYGjT8U?NEZ*>roi*2)=!kr+O|D`fn*8;$rK)If5LPeqWq+I zwp7zAO|9No0oZ)@jlBRqZ)*KS`7D`C<2O$}jsN@2)BN^NWQag-y1(N3epBl=RsaBC zc17ns3jE4s2BLhm^Y?$l&ZqurItEdml3&lP-1l9R35*ti35>rbMuKWRD!QNBrujnA460R*G~w9anWsX&wI9G-{=ViOY` zCX>m)aU9bzh=vx`&rX%wT4vS#(R2(TAO!#bV7bcy{fFroxh5sS*~COdVIifF{Oo)| zZRg9TLmU#AE!;Z0p&N>SGo2&XcVUI8^7-cBXmNb2;vt{g_PK)lMoRFo|M{% zzi%oaVmeCBh~T!C%G&=ko#XWaR{#LODeeCpfWMf|kt;Gjj>MJIITJucbQIR~LL{!7 z4k?S7j*?4%>m86Um<}-%Q4Q3L#LKEW8W)I4v~Ccj3inU_aCY{<-8BI1ae;JXj&=|c zjZEBvlv=Q+7s5KT6!s}ak^1Hj0ID*twX*gh(>aC`*a83m)$NVn1?0n~a}Z@ilP-`} zXukvOOT*olhQ5%5``7-#-%<7~z&gGV)`^9XW8#o030NgIG+{vs137U?Gz9&2OGW(^ zrc)eApyyfaL}HnfN?!vw!;u0DC>T73i7AO!j<2c0eLe|yXAd$@_5cGc149zP zKBXAe+sDB^sR$TiM<1>4h7@UvPIWZU&$Qc+uFI>m6p@mHs^R0O|OfOplQXeh7{n>z{C zsl`Y?up8QwU$X&{un?a=8P-|+lcvb&vu(G|bck$(;%u6h%DTU~8qCWmh{nP?u@D6x zKLOTp`E!Y=91}<4>Jzy0r-;&<*3YUB#bxZFC;$L3yK?WX3bdQfL6mdFHsY5a2kY4A zmjIcRK;k3ELnek}@{wqSwwF9NtakJ4oHV3)+=2 z9mN}EF%*1kI`4`}QPuCbnEBwGy5E@&lC99p002NsMg5Zse9m+ZA}>ghjl{*%06T&g zyIDZNV%`#)qDvv44%5yb2w4FDfK3&3w*%T@ItP&#o)=NU#4>qc|l5S#Hy!+``)(##1~E-yfrdW1gWC2wY+wN=^UdK+5!Lob|Q8I zfTv97Ao7BJYBA#PooqVB=!gv7=;xH^9LgYiot>qU`i$uiV-e~CuztqUK81TJfRyPh zL|(9Glp%ipB-1fQEOx;}*zYVe9fQa#Ny~9By}#o6e$zq5BGd%{09q>=el3dsFr94d*ue#&nFa3Vi_pfSHw@-vID4(>aK|5$H;|96oBPe?pm-f2e8L<79y|MZy$%m zM~(-IgVzG2$VTEr$HP8*oarb;9@2j}PW*~6Uh+4TP~8f6I8_~ub42A40CCeG!hNdObQA!9b!su<^QS<{f>%t4awrYOg)NnJzc3vnS0Ysa0HCU^`34ca#dHoL zuene6BE7j2+HK}h!cuA@Hg^*2xA9v)MW2W++gM(|(sYhoid+EzfaFl-U{)D2|JMU&M;COzH%}9kW8#R-D1-HmGDs}UcPJtnktZ`H1OH+= zgcl+?0{{REx7~4?>)MY4;7!OWuV`lq&hLBS{Jsa;nI6-!WI`PFsl~A0Qo@J%P(JE% zATuAVsC~wC5HCcw002N$NAp5aU59YrP?c!Zw8w$&PQu-tg6>WZo-Z)qK$9+Xzy$zE zp#>?hfI=HmWUXn%H)n)zVG_4`c+@ml0(007{}v+DM#A0^@}a#wfC5g;kUdv3GnprhX7t}{jB=GxGFUO`b=jbA|lWATfm}x-}wV9004kZm9>v6^dkVgd5$U(5d}e7 zMLxKpvaa29kRV_IIH$H^D-Xo&dna)8(M7g0VpK7hF{g&w*LBj$tgpK9( zD;4q|rgIPx(U{%TT3P!|(;gu;D{8+4=+{i=AR?mC5ye+pD(b#!I!93D{e1w2 zQ`6COiz;p~or8#ovM12SjTQ9`rgH=tX8?xLQeO8d5#_NXBBGE`;NF=P`*<$bFjxSF zp@0@YJMCIPdG;s~QP2r~)SvA9_;M_FO-Bhj9sQo= zd*boSe>r1m+H{sM;0!>PemP@lx@6asj{x%Drn3+c(d&rZ*FVsC8F&8K;|#zE2_OsF zoBmUPPnga^L_~lnR?V#Jtmm}<$glv6QgvJ77a+3SbPgh-e5Qh%Tg&S{YdS|5@esf$ zwN%!BK@=QxL`0^De1SXv(c=uj7}c~j*Q)4BuuKsV`9&4@WNSs;ZKi{S84ExTRJS!< z2Ep9`Y|~kYh$7Ar=)Z2PsOJgUW5fcGBQKqV0`ubR1~~aE9qDL_}dGz%ybwRU2k6d)joCsNtFG9#}uC{x9NK zm4N=-bQU6_5Zh`c;uYNadxHhQBOA}X_QjI%``!zY`%GscA_}4V`;sLWuAi~A({zxi z;voQ!2_RK%jmvr0Kq8_n3GQeuuls}o+(CJW1;8iO9nDulbq#o#AQ91#WCW<&SW&me zbdY?&0^p+s?M?5ofFA)EZ#oMRQNSDkWJya!?SrO+!6pH;Uvz73G|08TcYg@`C1 z{_MC|^x&Mj-LPX@Tr)=oO>nrM?G94t}aq2k$Hq2i3bYD^`q4ERMS%`?d zque=u+cAYf|Ro0clj2;MJ%h@vASihti&S$DJPAoL0rfB>r5y7D}=tos2R zYdQ-N(HQMj)ep5+*8j|O5PB^h0tldua~d9vxjI9D|23V3h-mcmAtw`mJ9qxU#2J79 z6F{ok8iXkAY^LV8|Nu-Hz3EE z&O$_V&|Vd}y0yG^gXtiYJr;lvn%A~^YD}E}22f)<3lZfzeaOiqu6*#krT;LUghqx1 zAfyD4>h`98QQ%ep#isKRQQjE<^s}uM^>-)_O@W; zJZ{0Q-%!!8-Ei`y-&O$_fk)OcU z&$P^{`=jY3WDW}e0RXDn8s9Bq-2&)4O=lq@Zz%99Tl9tv<@H-kXCd=g0O(~epC17E z26)*ZQIzZw;ETo2P5tltFS&$Q0}%ig02;!g9czl6RAw2Vp9V0|bRHrawf!o3bE&3R z-d}Njzv(a(EGz(YM2olHHO`U#S{2*`pv-h0BFb8?3K|Or(qDVvf=_gr4nx7j0zkuB zv}4WWOgep|D6RugXgUuO9Z_0=yWLFu3lE;R^dF|fP_VH8P}UZ0z2gmzZQlUJQm_aR z1xX6P4^-V1t(6UbG98A(fdzm@Y~JI|C&nDTkwt*WxRe6-z;eITI=kUH(_tuFSO93$ z<~`ngVl1Pd0dO@~1c?09uZlZuv2Wf`am_B%VJMtf0BFqSwXL2SL#7rY%fPD!h`iJd z!96iYZ(cX2{&~}3DBM^8C}-wwX)Y};aIXgBMgS+6&O;O-yP>)|k;>f0v-&AlSO6&J zsy3}GuqMby75D@oXPM4J6kX7a0P@s= zZO!LeE|vlMegL-VJVYVj0`fBz+_9;=b|atAM_yq8AYW8(Z+bHvEEC`g1xiilAqt=a z0=-u(_l^y-mpyGd3`HLc0QqY1*1N_zR{w`pPz%M|P3IvBfTu)p4_s@_#&fTI(R3Kf zA1nZ5OwG1cGhEkQD!@kp6r0XNqVS38_OFWHXVlY6AJ(tw`j+j$(dC8qXJw7 z;BBV!5P3%M8>rr0V9R|!o>jNcbR5cWEC3WJ^S3s=)v|G!D6Rr9#dIE`9OzQuezoK~ zn`YNOW;zVfAuIqCNL8Cw7RW?vF%*{pcrSp2=}bf;kW$5imgs$Mm#%MJ(2z78i0JiL z04VTk9$PihwRNFDF9EOsyqu7N$pz33=vvL_cU#YE*lRiv(b2E~P^eUGTX}-z%7+wk z34oaZ#B?UgYYNeAfULFD{sHgHPhr9WK%q77@#Yib8C{^jLICpt#7t+Ryx;<87sUn_ z?hpC+T?#7}0E&d_$D5CZSK8ejySPS9eVhBz&orywe4}i@A-C(=L53ZYY)dACih;oSqfFex*S=iC^PDe2h zf{UQ21W;f)7X{LQ09&E>sX{ilRQ~_=?%%bkC=BEH_c=E$DYe=bQ&4ObD+(4wiAX>Z z1w|3p_D>LWa&Q-S!NEcBPcVZZE>Z`y769 zz#Z;%p7FWoaPE8RVcLP5TS;C3Tw6Kv=zMol&F+_R7&z?H3fr0ik0r)28xNhGx3A?- zRMQUS+~48_z_qnww=d@CND5$kWgG%_0U_;NZbd|3#$X~~H)Gvy`BgpF&b$CP_l@Hd zm-=GH_B9KE6+pXz?zD5cT<{0rP|gI zl$R`zk*9fd;1do1jvDY3m;#%MAxy=t>Vq3Q&Mc%I%(;Jw7Xat}fU#mRsjhpwkxYHF znMMq47mNTq@gsy^^%-~un#ST2iRpUOlhv;VX8gmnz_}GPRxBoSgYO0tYFo^b zVX$F?ErMa1Pg|D*!MuqQW+hNb@T>tPl#~jE*Ry9i8`I9{-2ci8fO9E2diO%VLUu!l zaY&{iQyfHL17_>N20#Ne$0Gl0GY<@S16BsTL3)MR3z=S;Y&M24o78x5ec#CsX$N(# zU3md;uEmWNi^;;Ka*le;MKmB&pMv$utT$TdRfv6> .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 00000000..c86c4fbc --- /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 00000000..5c62cfe9 --- /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 00000000..aea84dd3 --- /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 00000000..50fa4524 --- /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 zcmV;^sw`EBP)004R>004l5008;`004mK004C`008P>0026e000+ooVrmw00006 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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 00000000..c86c4fbc --- /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 00000000..07fb8c3f --- /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 00000000..78c321e2 --- /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 00000000..bfdb97db --- /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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%0A#v 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 literal 0 KcmV+b0RR6000031 diff --git a/dockge/kavita/.env b/dockge/kavita/.env new file mode 100644 index 00000000..b1caf980 --- /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 00000000..6694222f --- /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 00000000..cd05f46e --- /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 00000000..e10989fe --- /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 00000000..b9f7e3f0 --- /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 00000000..6af8bec7 --- /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 00000000..cd05f46e --- /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 00000000..e10989fe --- /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 00000000..f259f939 --- /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 00000000..824e1451 --- /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 00000000..cd05f46e --- /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 00000000..e10989fe --- /dev/null +++ b/dockge/stash/envs/global.env @@ -0,0 +1,2 @@ +# copyright© 2024 XinJiang Ms Studio +TZ=Asia/Shanghai