From d5fcd77919a9e62a127f3f50a29a1ed29914feb7 Mon Sep 17 00:00:00 2001 From: okxlin Date: Sun, 4 Aug 2024 01:06:01 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E6=B7=BB=E5=8A=A0sunshine=E5=88=B0?= =?UTF-8?q?=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/sunshine/README.md | 21 +++++++++ apps/sunshine/data.yml | 19 ++++++++ apps/sunshine/latest/.env.sample | 9 ++++ apps/sunshine/latest/data.yml | 60 ++++++++++++++++++++++++ apps/sunshine/latest/data/.gitkeep | 0 apps/sunshine/latest/docker-compose.yml | 26 ++++++++++ apps/sunshine/latest/scripts/init.sh | 3 ++ apps/sunshine/logo.png | Bin 0 -> 6165 bytes 8 files changed, 138 insertions(+) create mode 100644 apps/sunshine/README.md create mode 100644 apps/sunshine/data.yml create mode 100644 apps/sunshine/latest/.env.sample create mode 100644 apps/sunshine/latest/data.yml create mode 100644 apps/sunshine/latest/data/.gitkeep create mode 100644 apps/sunshine/latest/docker-compose.yml create mode 100644 apps/sunshine/latest/scripts/init.sh create mode 100644 apps/sunshine/logo.png diff --git a/apps/sunshine/README.md b/apps/sunshine/README.md new file mode 100644 index 00000000..69b0fa65 --- /dev/null +++ b/apps/sunshine/README.md @@ -0,0 +1,21 @@ +概述 +======== + +[](#overview) + +LizardByte 的完整文档托管在 [Read the Docs](https://sunshinestream.readthedocs.io/) 上。 + +关于 +----- + +[](#about) + +Sunshine 是一个自托管的游戏流媒体主机,用于 Moonlight。提供低延迟的云游戏服务器功能,支持 AMD、Intel 和 Nvidia GPU 的硬件编码。也支持软件编码。你可以从各种设备上的任何 Moonlight 客户端连接到 Sunshine。提供了一个 Web 界面,允许你从你最喜欢的 Web 浏览器中进行配置和客户端配对。可以从本地服务器或任何移动设备进行配对。 + + +System Requirements +------------------- + +[](#system-requirements) + +内存推荐`4GB`及以上。 \ No newline at end of file diff --git a/apps/sunshine/data.yml b/apps/sunshine/data.yml new file mode 100644 index 00000000..7e08bdbb --- /dev/null +++ b/apps/sunshine/data.yml @@ -0,0 +1,19 @@ +name: Sunshine +tags: + - 多媒体 +title: 开源游戏串流服务 +description: 开源游戏串流服务 +additionalProperties: + key: sunshine + name: Sunshine + tags: + - Media + shortDescZh: 开源游戏串流服务 + shortDescEn: Open-source game streaming service + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: http://app.lizardbyte.dev/Sunshine + github: https://github.com/LizardByte/Sunshine + document: https://sunshinestream.readthedocs.io diff --git a/apps/sunshine/latest/.env.sample b/apps/sunshine/latest/.env.sample new file mode 100644 index 00000000..625025c7 --- /dev/null +++ b/apps/sunshine/latest/.env.sample @@ -0,0 +1,9 @@ +CONTAINER_NAME="sunshine" +DATA_PATH="./data" +PANEL_APP_PORT_HTTP2=48010 +PANEL_APP_PORT_HTTPS=47990 +PANEL_APP_PORT_TCP="47984-47989" +PANEL_APP_PORT_UDP="47998-48000" +PGID=1001 +PUID=1001 +TZ="Asia/Shanghai" diff --git a/apps/sunshine/latest/data.yml b/apps/sunshine/latest/data.yml new file mode 100644 index 00000000..f4d8b94f --- /dev/null +++ b/apps/sunshine/latest/data.yml @@ -0,0 +1,60 @@ +additionalProperties: + formFields: + - default: "47990" + edit: true + envKey: PANEL_APP_PORT_HTTPS + labelEn: Port + labelZh: 端口 + required: true + rule: paramPort + type: number + - default: "48010" + edit: true + envKey: PANEL_APP_PORT_HTTP2 + labelEn: Port 2 + labelZh: 端口 2 + required: true + rule: paramPort + type: number + - default: "47984-47989" + edit: true + envKey: PANEL_APP_PORT_TCP + labelEn: TCP Port Range + labelZh: TCP 端口范围 + required: true + type: text + - default: "47998-48000" + edit: true + envKey: PANEL_APP_PORT_UDP + labelEn: TUDP Port Range + labelZh: UDP 端口范围 + required: true + type: text + - default: "1001" + disabled: true + envKey: PUID + labelEn: User ID + labelZh: 用户 ID + required: true + type: number + - default: "1001" + disabled: true + envKey: PGID + labelEn: Group ID + labelZh: 用户组 ID + required: true + type: number + - default: "Asia/Shanghai" + edit: true + envKey: TZ + labelEn: Timezone + labelZh: 时区 + required: true + type: text + - default: "./data" + disabled: true + envKey: DATA_PATH + labelEn: Data Path + labelZh: 数据路径 + required: true + type: text \ No newline at end of file diff --git a/apps/sunshine/latest/data/.gitkeep b/apps/sunshine/latest/data/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/apps/sunshine/latest/docker-compose.yml b/apps/sunshine/latest/docker-compose.yml new file mode 100644 index 00000000..58204b23 --- /dev/null +++ b/apps/sunshine/latest/docker-compose.yml @@ -0,0 +1,26 @@ +services: + sunshine: + image: "lizardbyte/sunshine:latest-ubuntu-24.04" + container_name: ${CONTAINER_NAME} + restart: always + networks: + - 1panel-network + devices: + - /dev/dri/ + environment: + - PUID=${PUID} + - PGID=${PGID} + - TZ=${TZ} + volumes: + - ${DATA_PATH}:/config + ports: + - ${PANEL_APP_PORT_HTTPS}:47990 + - "${PANEL_APP_PORT_TCP}:47984-47989/tcp" + - "${PANEL_APP_PORT_HTTP2}:48010" + - "${PANEL_APP_PORT_UDP}:47998-48000/udp" + labels: + createdBy: "Apps" + +networks: + 1panel-network: + external: true \ No newline at end of file diff --git a/apps/sunshine/latest/scripts/init.sh b/apps/sunshine/latest/scripts/init.sh new file mode 100644 index 00000000..5fa26732 --- /dev/null +++ b/apps/sunshine/latest/scripts/init.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +chown -R 1001:1001 data \ No newline at end of file diff --git a/apps/sunshine/logo.png b/apps/sunshine/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..98cf9af83d2967dcbc2ecbf0eb314778bf21086f GIT binary patch literal 6165 zcmW+)cRW>Z7(Xc4vaS(jWh7fNuZ(Omvq@w`_9h~(y+_$Qd(XJ8LPof_Mp;?;*_&jX z<9GG>ob#UNywCG|-|zE%p3nK?L~3a&krFWw0RTX%qO72UeKua-1bEn$i0Th^#XZnc z*L#XJu9AqZGy(7<0A&ML+PGJ7)Q}2rrE>!k1+J<|uWaxk3*br@7sRfkcu?w1NE*13 z1g;wJu{)qB06qr5bR2L5fCK?B4FIzMC=+|(UWwy@SOe>Q1VADH^b&yjaG(%EC=Y<1 z1JFloE)F<~1DXTZI2m}L|3m1Xjdej-G;;uY1zaWKgQM30kR^aU;@ZICKgPOlKu`V! zB;#Iv#RoG0EL$)Q2Ym7GI57Z91F*EQS&%RQVPB;IhzG#(0Tcg4j^Tn?c;GMqN?mVW z2S@^tH~>WekPraL;X$SVR0DuxIG`B-TH;;rV-c|FUD!fMplsqRXOe4rzBj=Sz;y|H z00_qcqW};KQV&4bun+)B2C&6~dcbuFsQ}mufWiRS2Y`}z;3zJbaRZ72AbtSC{Nr3n z1|~MZO#au<4{~_1f@8yZ1o|-ftPkl*-oo}V-G1mH8vh2(h=jU7K?@fqzp4Jvh zJlo$;$i{}k_-Mqtx39Go#7?$9*XMkUu~m^3<~y00o*4O-=WHo^Hr&_VR$Wi>q<#^_s+vrf^&aiIwjV})7H|$==|_-V}78oG0on_>~wQ|VW#^_Ls5LR zv6{%`USD$W_Gf@eRTDyzc^D$)beT(r8MKd(#?Z4YE>~a>pn4J zt^XQ~8^T)fkcQ^;m;YWz3+lr`{Wynx(r$-|-Jl{k=)dPbK*%v{mt=5xe7dn_v02mS zKJxi=?&86D?$ufD6_C{0ba3!2!2j39Uhdj5c!YY(8u)je%L7K4$&~BAv}4hzr>B={ zAi+o`skmGEu%`UAbU>-z>D=Gg&qoa-9PTP!0X4G=@G0Y67p~OvW>M)+vCvbMTFLJf z4~(N|HrL$zNbkj>@i|TgIy#D*hQ_8oZFj!eJzV9<3GgHOuaGm>6cym)7Zj~i#`2$^ zhS5{CGR=8@9#ngWRmp!&H4ogye$%%|d7Wg~z8p}SBU!X*_1M;GY87v> z@20n(hV(7ZJCR4uDF|nDxXU&UWw4xau99$*_+SB|G1 zHov(AJAN7%sUePkREm~h<5cn$6xm)MN|?#H?DlXWn=M9fz9jWkK1bVWG022Nsa{F zP|#}VB;IeiB(XT|38MK>Lv|uACFqK0oFA9RUh7Ppv8<9>5fQ$%}{MC5Cxw$HPi?n4%ajQspE$^QVT>5XN~H zJ!qx6hQ2>sNE(H1Th9tyU50qMmwp+t`WAM-cRz-*epfAS*iO7bPm3{TOt#lDs)*e# zRN<=cu_kDrAj+8h5VoA|I5^`i6_4)-1qCff;?-Mn{=_q^idDXJ6lx z^_CrN(i~j;H7uPQs=z*09ZaQOdnRZDE7YG{6sx%x+@p|@9}H3c#c-4(WA!_l*ztptV3?a7pfCCo9#2OQm8qKjc)6(KR8Mn&>yo3 z@t}E5)~aJ+n`d@YaxGe~!19?m6HDXF^22*6jNFGK-|!jNZK%S9&o$Zk-Va&dH;3!e zJ*U;$a5cfDW9RKcH$7z}Jbtfi%8?<1$WY?c_=o{)w%h54w5eQCl#w?S{AeOY5@CFC z1l@Qa*$GqegmEK>%KdcUlo!O965kD<&Vk^H?6fjbiZw}vpkp`h0Vg3)*&xINSY?w) zX1QSB%(`NrOkbaGioUOByv~O_4ug`uzr!;#Q7G>FqsYo;B-h)Vs-}5pAE3CCE_L{Zv0vq&YBolUCFPzyW ze(Ynk4lmUfPHz!<+#0N7ZE;E9%g030kM@GfBg!@cGb@T|Zg9%%(#$FahCg>pK-FhO z^kxn#e^UYpA~o;59L4kU^_kmJlHg8NeVl0sFScbKo3@<9NRXQ724UXQg*0pR#}zAk za7Ygc=$#*?Gl<>zo0Mj)vqs4xx!IPldTKW+)ELXJ*X0_mdO^o9y1i(a^CMwBz(sCw zqC`_^ee+522MT*$={l_*XWrz%uQzJ~T}9-6blK0@-nrM5s+!zE`KtbJ)hddC=J`)j zck;vD-ZjL=1GuE-&l~n*C2?F{FW3@M#Q9(49|>5p4((R{5=_9%yJOlqYt5r+IJzE= z1S%(>H?8SkpM@B#sN0Wa`W)x1u#f(it@UZZ;jx&LuNflcbxGqo&0cc>K5rrl$3RMQ zsHDt;e~;Lk;NH5it?G~Y_X_{v-5HKEDq7x{ua=R#S8=K(NV2`(X4NiI-+>S_Ik1$< z2+A)ROO7pzw;UFt=b!)L`QbS3l8W60QQ>lMTgTX4If1V=FWLX0d0V7ayON)Re}0;R zvDfYVCa(uoH4krNth#OXXb~YEv2~e6HB!^+!i~Qb-NebB^>Q_=AiZGa>NXfwHTk?~ zI%5wDx|mT@TN&zl`4;WvlRv}v-)zF{2Xt1r;iKMc69%mp6Qfg@jiU_ScBx_uIaard zfhlD?jZfnarq4LDFquf0R0Ffw-X^c-OLLs#yAD!lNoS_mQB`6+dvl4|tsN45#1V^S zS;U=B(PGVsHsL4#aZz_Dw9-4fsyas;1=>&)scqIauD2sEj%MS_=^k_tIZJKtE2s5s zp{>rJ^JDOy&aU2nJ207@hdHTF6q6Kj0rp*EecpeKKF%!AxP5m`y^lWXY>6w>DcIXr zYO~2aeu+>CRI-c~gzhe0%+}qfg450e}2uPH%F~TFfJ4gKxjh z53*;^8VZjbfB_-I0hg~MO3a;nKxfLj;Sh7uUYO|7etEBHWh5R6Ri^XV3#Y=4tS^N6 z+%z7r6fZoniyAe0U^acAS#ZkP9wO|a5Jks-pjc_E5f+nHczyff>HSSrQ&iO4)@V1q=k}i2NA&( zA<>r+aTHGX(UUQYj=#e2vW0XF5lW^QqkhRX2D-fd-yBTo?XE7LK$C>tV8t#rLFw%M z^FStlKD<#Ce#7o`9!fN$8hJyC+2h4C85qJH=800-e8%8p$~r~!HJy!c$4zuDY=3v* zY)*BD$b*mQiSev<-{)`%InHnXheq3`c2h#Q^`2s*u%BK8jvrwOjWnE(v|8Yl?VIlA ztmsb##stTn1mDngUp{=5y4j)i1T*ByN}3-ia`~q26uzmh$%9)@%YprV^W8YFotY$c zKISJ)l}LJ3bE*UDcC96#pJrxUf8)kdNNh^4v6;P)bn6VKlKe<5m11N~ca0-;DwWZm zGBn4Ls_5C8c(S}k?#kI4J^}Q5t?*O9t}})7Z?o)GFesIc;+$Kae_|ci)~nP#pfknm zgHz=Sx)G&AiJE8??u-*#Nv_Nk&e<(kmz0^6=Aa7q*@-{n1e*tt z$#KIzAGtp>$Rm$E21nFDrP8L`uMJ~a9?@^;;>89qtDBOp>>`QVRa%HM$z}{*%q*Rn z-T5|{NBF>k;H0gOjZ-|$yV~LTXUPvp+=b-?-ZBUO7R!uM#_^X#!D)YaO+RKsQ z!bIraHvDZ8!vQ`&(qHG@EylkPS8!Y3T3AJF&eWL!d?GAqY{en@g*w>->rR~gc*~1H zOB#u<-DEPyiGo*8JaN70o^dQtS$i`cZL)FHL!tK#?WD(j3Fr?-ioe&k6YmeEZOGG+ zZ*ef(8yO zf0=O3ry&Myxq!X!q zp@&&6kVG$==9>9SCC7L1s)|v-_06JchSjZ+S3p{w8trPRaGW+2^5RF zbYt2k?%a%8z7mu+4fHeq;nxH+7L@c_I619ROH$}g;PLBiyBJwG_+{eBnXOOXHP;_b zFTkEGhcw--WbDhUx^aGAU|SOh8h7}jJJ%ezn8R}_9VoqY@YeqiNtWZ_V+QfBbWw;Z z6$0TGpj0N5!DFzR*S@|8zkzx~K;=^@s}#W&92j`RANHmHt~6VwrAs(WEIT!hZSm6V z3orBd;^d4U^=ZA9fa@faG0n;nk_vvOKpxL7Ok6uS=q zmgE=RUSfG!eMy5aEBC1UP1{x~BFH--#;C``W>{oa-8A95*oVxrdQK5E;p~aqNJloS zQixVWKH|iO$l(^1_3Ri~Z+rb2<~=)l)(%emW56YmhIYF}O8z6dO8@>N(L(MgubSJ+ z#^k3xWA1yh*_2{dO>qe4`6HeZw9vsDo0>ExTXS9DZ(W~H&`c&U`y1G7(k8}hmjpMU zh{$-%&W7WYljto<^-f6pqQ&M8Bm|xMjI@7FXxHcnW?O1@#7;TiHX-qN%}wkr?caxtD9%I(sXx<;(Cs6R zj&c;u;1$iRD&6vl~;yt39S#CAUO-!$jTG;+|A)(RKt2 z=gA( z!v4{By?b!A?kqCP-pIFfWCkmIPb{s5b_EP8NCpEH*oOuOh(Zqo2$rP+MTppvw&a?c zGlXUG*|Ie7=DI8S-FZfg2)U5QDx#r90Y_VnTyw2GyStV4`d_?Ogs8oe;3=MCt*D+_ zAI_={nVlA%uSSL5S%`^u9%Rn7<0NJg&C_is8E_AtgKewa%@Zff=WWG`8@;?-a_Z`& zGsdas%gPF=omY)j8Y?iHGr_RI&lY@9jLCjQg2A?t!SwZ&w>n#^>C$8iNqA}*%MnhO z#?;yc7Y~Um<-e0eqnSkTDGGG{pi{P7h2%f((A>QJAE7JPatuS`HbzD-_9XkhYvf71 z%*UY$^Lt@jf~Q3MlTVC{^tXwQa>dE>A`TowOj?yX+E)In;(R@9U3ybL#9HA^;Yq`{ z_|7&yLhT}lH1gY~mN?IwTkDNlmIjm&XW<|ZpX{#V^l{I;y?t4Ob>k;Gl6s?bdwXx0 zgYS6NxqK|EoB4j^ulnjRQcZc4gAB2(--Tz7-S;$D6yGUOCeN?D%z;m{+^wh{?uzi@Q-crzt}Q0R>C~ZyHMK-B5|rPk(QskR_*%7LotuX0 zGEHbtN=j5XKwD> zN}VyVy;P@c8u*vU&yIKt6|Z>PXFr6mgi^3zTXMGUhUfV-hKdj^-`( zPtcrR81JmtshQAgz6)O-`i(oUL3KCc>3siv9>h!T5d4+9W-&>5Ee86dbQSgyo-3Rr zxrjDmg45911-=T8{!}EJtV*KfgF)l?ChCf^TCyuaJ|6EX>TD+EALeOcSAAtPG*z!& zt%laumq$fe@hU|fEGAp{wvnzhxQ&F|&W*HozkGGaz4w%dIf0v3HhkkTA7{yrOO0{# zrz`0l`ejV(_EPub)jw`REP;PNH3?!G?z2H_L6Gz%X5xp<3=m F$p1$s2iyPv literal 0 HcmV?d00001