From 0e324036bc3e7b4efb99dc4b23835be5130e25c0 Mon Sep 17 00:00:00 2001 From: dvirlabs <114520947+dvirlabs@users.noreply.github.com> Date: Sun, 3 Aug 2025 15:47:00 +0300 Subject: [PATCH] update req.txt --- backend/Dockerfile | 19 ++++++++++++++++-- backend/__pycache__/config.cpython-312.pyc | Bin 959 -> 1044 bytes .../__pycache__/downloader.cpython-312.pyc | Bin 1895 -> 2577 bytes backend/__pycache__/main.cpython-312.pyc | Bin 1234 -> 1674 bytes backend/requirements.txt | 4 ++-- 5 files changed, 19 insertions(+), 4 deletions(-) diff --git a/backend/Dockerfile b/backend/Dockerfile index f72ce76..68e41d5 100644 --- a/backend/Dockerfile +++ b/backend/Dockerfile @@ -1,14 +1,29 @@ FROM python:3.11-slim -RUN apt update && apt install -y curl ffmpeg && \ +# Install ffmpeg + curl and download latest yt-dlp binary +RUN apt update && \ + apt install -y curl ffmpeg && \ curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp -o /usr/local/bin/yt-dlp && \ - chmod a+rx /usr/local/bin/yt-dlp + chmod a+rx /usr/local/bin/yt-dlp && \ + apt clean && rm -rf /var/lib/apt/lists/* +# Set working directory WORKDIR /app + +# Copy project files COPY . . +# Install Python dependencies RUN pip install --no-cache-dir -r requirements.txt +# Create volume path (optional - will be mounted later in K8s) +RUN mkdir -p /music + +# Declare env var for clean override later in Helm ENV MUSIC_DIR=/music +# Expose FastAPI port +EXPOSE 8000 + +# Start app CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"] diff --git a/backend/__pycache__/config.cpython-312.pyc b/backend/__pycache__/config.cpython-312.pyc index 6652b41704564d13347483b4f7b9577f6a469bf6..b05e2ab6083db31e1012dc341105e7e9f087e9c9 100644 GIT binary patch literal 1044 zcmb7D&rcIU6rTN6wk<26RAh*O{mLJ860h-X@VYA6(=?rB{yNkP95)LMs zaDaHgo{I4xJypYnBmaXJO+An?CN-YCX*ig0a;EJ92RQf+Z@xG0oA1red;3XIB7oXE zVQ+1c2jC|Q0u#I7^a%wufB@o3KxZpo;>x_vbASh!KkU+2lmSTC21q=lTFi8TGK7Gk zi(6bm`o$89364Zdj)@?0d~9##*=As&E;wD~SYZrw4gsBKQbjo+U95;h{CPo%a(XXv z0V?(d=wijvA=PK*6|Xtf-^pM0*Dwbzb2=DD0{vjsqyKUG>hDmms1v1M(tYsrN{Y>6 zNms6YGvQK`Zfr@35Rr4(_bt2Nk?_KDZf*vq=az_6u6S0S#1^NX&83&J3$rjcGqnhp zm*xrWVIPqpw9PVxkVGIXJE&4(xEI3b6|>aM@Qz191ZV!XOsDHW7)&5XP`~XEg4xG zr(J6k8)@vV`_6_@uzYM9e#OSfrQwR1U&l5w@{YY~74B|qxe}9Pj%j-@sM`ju{^2*V znp#!&AAaa*_TPK?^dze6X}j89ayPj@{53k(8n{{0s#+~oOCXmzcTs;7<~G)E_z z1IZovBtBTnR5P_~HG44K$ka29`TG3P(D8V4>~S-m*$ubiBRk=idS^fOUVW>69@UOx zO?BdnIOq-q_en^uLNN(-{u5US5=8d8{c>-yz4i$<9cS`HrxB0b+cab&?u}CSTi`hE f8wh^~BR@cNTlp(Sxa1$e+z{xEzaD=jw?+N|uie^U literal 959 zcmY*XO=}ZD7@qy?rXRMoAJ9_DLOr;G6>qf^=|@z8HkFnLE{nsuGubZP?8cc%B*BA1 zg`z*89z5txssF@Fr9HF*J$dq`rXcj>%qFRJV4r#3c|Z1b)^FZ&d4V8)^(q{24tMmR=6CpO#kj?sD|$S%OZRSZA_G>ZYeF)QlL{%203D2#THVP{+Us&g$d37y2^kciU{y-LEBnm@J z?4nwD42W`;_^2e?;AmuG$2yvt`DRTJc~LShpy=etC20&w7?L1|gX9Eo zjWWUqA@q|ZWxnhHg^=_~zsw~g60%Zbl9^qQ73fU?ufg%ypbM5sxxb$-Hh90O2o-lQ(M4KO;MB+aP0(4p6aG@W#`2y5ZkXI&_DWi{*{#}`3u%5 B_iz9J diff --git a/backend/__pycache__/downloader.cpython-312.pyc b/backend/__pycache__/downloader.cpython-312.pyc index ba114a2c801a25ff62f19c8eb5a70bf5dbdfbc00..39b8df2cb65de14963c7696bab8e7f895c802ac7 100644 GIT binary patch literal 2577 zcma(TOKcm*b!I>O>Q7N0Q*{=mY>N%5GF4+WUYMOvTwW=Tr6k*1vm z-@JMA=FNNae*C1jH-ccit^Owe_W(j)$VGQ(9pvD3K(-M<1lwp)&WeqT%A$fLuG(r* zThsv8s7`bm$Y~^SLt6|!vJS#JL_#;vVpvjh3JC)xQpKsreR;`T3VYhmOp%8<#HkQg zX_b5WFDjH(y#S-4!b(}(QAbV+{8acIi~s=Da2;Jk>zGS56p7EHlse~y%C=dxEiP)h zgfG5_-os3XBU}nI9;UPBmKHc=e2HAMn7#DV5=}Gf8eK|LUJy=sY1I&XuJ`3qsKpup4mBld%-<%#?{Uo zz!rMU9%+kj&mHg~n$*4fF=yMq79b zfe-PG(1uc1d}R);ks3<-rTl{r0KBFAZ+oN|_EKHBsTJTlmXJRD+80o}FYq>m+f9w= zHQ)z4@UA|O;JjK$|KI0>H`T|_S5XzELJ&2i!c1W~rCMaZV3o@djOPqb7nZPTZP2i| z!SfCilo=v#mW=!7!OB|5C|ae8pu9F9Ic%r2+GPM2sjF0^bWgKNIme4wrL0pd+Z03$ z!&xs{G}kknW}On@u&_$q1(z>r7{=yi+nd2m&a&ZD?NnFA3^U=P4te^#?PN`x&rEj+ zG8lOsz`wxNvC-`p-h83)modM*Y_zS5f2~pMTfie@nGXQ?_a^$M63|WD>O(!T&AE2G zKAJ2ty8Tr8El{_SINTG5QN5-C&l95?SZl#2Heg9G!GBQR@0`a-NMrm_N8NKwucHl2 z)D5LHDx|vqeIF`g9fI~<1^DrXLiBIe%nxsc1WAa5-%&_}L@m6k2$`tFerMbRDOL=3YxFUa)L3S`yp~(RHZM8K*E?i&h1v zCd=lZ{qDJ1-wK8DRw0)2jKpd~&zzj{Gcm=dPfpQwk>cLa>};`2S6^Ni%*=|HB(tX$ z%V$BpTA)?0ugqwUGDb<(AvDX9V2Ib(KJ+RTCNYJ1e;tU{1o$`=^a44D6;0s

hhy zRFL3sQD#n-a_%th^}ud6-^nsBQgXWWUp6g^!pUottvH<4`m5qQ#4a07SymK&&Wjv2 z4^lgQAy2afqgdfq*2pVD(#bH&rk%qj^lP!$=t*$ZE7*Z=fSpt5xuS1RDQK`#V6ewSrWOVOb!u`{44_f)`S z=j9b!aQI^&s}PKKqV{&hWH^*L_I=ovQNkYr*hF`=(67h#!-?H+Vo#gc*G}weCvJc5 zkCU!;;*R#izXjvB=$+t1Gd8vrYQ~SsMgCkG@zZ~x!2y9+@a2)9oHpu+6sK70{LFgn0xGk8%?`f`YZhj!b2{r?MF|=el(+gG^1aL1i@=( zfFxsF*e9<8lo6fKq zSjsfz7Xh?XjPYlv_j5G%IZCuNjL+WUU*CI3W8ZL*E)5Ve*YlDIBvXlpDdgd{d3O&~@@-Dt-0Dyv;( zb~d(!R7~liDS_05V$&v&LZB_qAwAW{KvO96A|(cijSHbYzz68~?9?Z7pYs6x<_PX!+vNFCN>%^_kkPT$@*DCCVb%=gKfr5_jg!fQ$5E zm&Fgn8*jC6o|y*=+(j_Y#CoTS2ZjzRn5ZU+nXgl-UAFQ~MpUAqm^m_Z5G~NPVh|eh zx@IU4!4a}RY<`ZALUGq3F_D5ZbB7Nliozm^L#V#oxm*(}2HlyXgl z*vKOpBQvAu33;3G#aK)m2e3KK$i~7pYnV1)P{^Fk=L}WH&MmdQXU?BHIgw7DJZt+* zLJMimt5m~hT9*sh$RN|SIc({+4XjbAvKJUe}6 zGJS4hd@6nZ>}gxVh&B|HP!Cx|>@KXRCQ8!^rs+n+qWz|TRh=|_&;(;rE80-2NNIxd z1x+Ey_P0x#o~4zs{jK9lH+z*WW{iAZ(V;ESye*BM3`LtkrqgWX_SjBl5~=eh!e$Cy zQ?Zts)=?7ELrNu)d4(8-R8}QONfAp&w1|b&WhHY3=`iIUD#9a$MLXb%Y17cN_yFC( zX>R5SZ6ZrxvoE@mUCyp(%i7&HYlEZJ!O_ZC`f=a;OVgX(y(?qOV=Kp&kKL7O^5Lp{ zxNxGwe7r9E{ix;j*s zBA-szrT$f|E`=K*DI_eN*y;hn=*>&lFRh-qpIj#!f#lNhr(&QcMyq0Ub^MVyuo>K4 z*?Z`I-}eLG4cre^qVGNqj#s4dEdfYfHF5tVaess5y_3vlWbexG^6;&N+P*|}U*f^| zM&$U%6Lo*6=9jB}dBeZI;RBJ~^-%B4^7Zm6sfGsc%zmB!Dqjs9`NPBcg$Cd}!e3h= z=-TrqU>uMBaHZ#+2h6%ziA>b|$*Mp3cY||Qw#_K5+YjN<t-L-e;T9m^Zg($L%3c_vO*H=XuH f_hXnRAp8V)pMcOW;H3sHGs0^37NCG%r5gVL?TE=w diff --git a/backend/__pycache__/main.cpython-312.pyc b/backend/__pycache__/main.cpython-312.pyc index bf7e82f76ed878352881642a3d654164d61f5702..6dbeabda26c39c26cba435511cf6558a0f1a22d5 100644 GIT binary patch delta 1011 zcmZuvO-vI(6rS0icDH~0wFO#)CPG39mY;*7FIq??|U=zKFUx1-S7Q= z4`6GHf0lX01Ms~9oaL?t=d18}_w{^ILI8=nob@C<5U|*#d$Ycz4+0KgX(r;(Y99M$ z+G@y&kh>%mxeN4jT4&#wW%!gmk>168x|*1h3>L@1$K4dN!x~Yax;#cL3SQnnGW+*x~(srg$ zfMNP6f?KnQ?&%8Pl?O9t|i(pn3#ajw* z`GI_MO0{e?rzNtN$4*R}#3GfMqnv3`Pqh)&7Lh8Ou4&UqX=x%?fRt5dG17=d<;y#v zVvcBrO?fq!qX88mrB60qFp?NEc`7N2p=Pn7Q1{%t#-t6(lR4uxIA^~B>0suM zbUSOJIUV02Lkw2t(E7m484n@+3I@tx-~{xXfWc!R{{WpQAbJYC%iNlG#k+q0z}H^( zweJK!gTxUK_oUVr-3O80a-?^!_1d0mEU^#zzPbDx4|d%9uKs2I6z~V2u?!jyg~r3C z@J3h7oXG$-{RSfB&H{iF*P2(F*Q1|c=qS>$&F{kf$Y5bph;<$_qENSdZ*6pCbi=dV Xx*L2K-g`XxMVLAhfe;}#Sm%EM!X*F+ delta 597 zcmYLG&ubGw6n>N0-DEdSVl@(zf?dQPi4-LlK@dSi1uLEc(!GS3nY7z(c9z*)HNB(- zp{1wF{sX;gawvH5Z_tZBO3{&^;K6I9H}T+%N$?%soA-V1d++gPC->2;zRTq-kj5VD ztn^a=KU6X`WAZpYgcsFo{jTYl2nZ0}vm7f06cJ;X9-wiRlcm|!@>KdilFYP1DpJHG z)-XGelazH3nW4E(isYW_gE0h7o)$=ctqQgTz%oXOR7gn8##oBkuXu5uhkyoUKq z@*21FGZL|qvbJ4r)UeQ2SQrT{U_25Ar)r7XZ1PsC_pRwtlylWu7;WZv+-06oNjiSw zwi)*YZUuqB%QWIeiF4ImWSUL2f3qntkNuZ$EJ1lV>3(N!bQy^~dXvjrg8HQ}lSVCv^HtWquF8uP+@`oaC-y gpZ%;AHtuaLZZ7Uxd*%J&8*-@KKEj|?_$Ar>FJwQLF8}}l diff --git a/backend/requirements.txt b/backend/requirements.txt index 5c71624..94cd646 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -1,5 +1,5 @@ fastapi uvicorn +pydantic-settings +yt-dlp requests -pydantic>=2.0 -pydantic-settings>=2.0