From 5eff8d89e78edf978f3b70b33074dc229d48631c Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Fri, 17 Jul 2026 23:47:15 +0300 Subject: [PATCH 01/17] =?UTF-8?q?docs(brand):=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20=D0=BE=D0=B1=D0=BB=D0=BE=D0=B6=D0=BA?= =?UTF-8?q?=D1=83=20=D0=B8=20=D0=B7=D0=BD=D0=B0=D0=BA=20YA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitattributes | 12 ++++++++++++ docs/assets/docker-sql-lab-cover.png | Bin 0 -> 236834 bytes docs/assets/ya-logo-dark-50px.png | Bin 0 -> 3129 bytes 3 files changed, 12 insertions(+) create mode 100644 docs/assets/docker-sql-lab-cover.png create mode 100644 docs/assets/ya-logo-dark-50px.png diff --git a/.gitattributes b/.gitattributes index 7929293..b53897c 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16,3 +16,15 @@ *.conf text eol=lf *.ini text eol=lf *.make text eol=lf + +# Бинарные изображения и архивы +*.png binary +*.jpg binary +*.jpeg binary +*.gif binary +*.webp binary +*.ico binary +*.pdf binary +*.zip binary +*.gz binary +*.tgz binary diff --git a/docs/assets/docker-sql-lab-cover.png b/docs/assets/docker-sql-lab-cover.png new file mode 100644 index 0000000000000000000000000000000000000000..8b04fd098402bd6e110b6a495d1e7e7667cbf4e3 GIT binary patch literal 236834 zcmV(#K;*xPP)lu2 z`T6zr_3`lW>+9^>+}+8^%eA$)_KYu{pP+(-hgMr(DKIyG@|+_81Dv)=L_t(|+LTzq zZsax+EuhK%j>S%pbHn1~OoWur#H1->Z;egV!rbO!3HgwXk-yz~uSCjd8(3^fDpoxf zX<5yuDoUz}uSKFwtVs20!(1cMnx`q@K#6_54fD$?e zN^oiqX~2aOP(7&%IvPMwSPcZhZvr$uolo8U`s?t&L_S4R=w`QmO2hvlvAQ&boYgvg z83q_#0?u^!bVE?p{;Q97qP;Qa^fcYSeZfOR7av*TbJQVfa*}NL;7iVm(&p57?8k2u z&{6@g8ib+KAVF zZEIx%jUfWNiPWji#Ioc~bZ#95;jDs*qRP8RSdE2b8#PCtx9#d&ryYMf6_6^ZP5{*z z9qBe?fZ9V`A!rrVSaOhbIiYv3Spvy5T)a!i0tLtc#=S;ZkZ`=xqr~){Ivmm0;SP=# z(wSg(3LQSIQ?n5HDCymtiLQuC;QqFL3o)h;dMIpMO#;P+Cl$V3V5-_VLs(pX-nJDF zB?s+9U;^N7_`J+f?|AeX2v77d*2J*gZaUR#HsM&tj*jgiQDt8u z+18m#1|~790v62`Uqu`bg&XVM(@w>blA_}s6KQW{8j>o-8!Z`AL`{kSX++bwdatxe zRth^NuuMeHN_rFI0Oxp1=qQ}oarqMx=X$>L5WX~~Ir5bdBZ;+h4lNB>0+0P!#% z46IJKD9m+sH5spT57BT1mUX+mPjJS!j0-kSB)53VXyGM->>ki0IEoG-aji)RTvE(y z`=MyzS_FoR%Pt2R=&-f_G?vCR?HUJjLR;Pp!n|EBC!h}!5!J@#hB{!MibdO<*#RJn z=-6dhUZd-2tKBK>Mm1b}_6jO3V4qI`_UVLf*|zNuJ~?(~JxL+>s?^~S(5K*uVzsBZN&4QMdD62g;jjTC_h(~JG9jMT05z{j^gOD%(DSfUS56i%j_8; zvixD0*cU;V6v_4Ka(*tLT~*6H&&a70|MV;}-tQtAH>U?^XDK|=A@Q8!oZ0dn-y-_= z)rHK{+Dc64_E#3HXCQnk1T%XiFWd4XyB`PEllBw{>$G0pA3Uk%PjAnP@&ZrMQbeZBB6Y_-+JgR5KjgC zw*A=4P1KU$HCb0hu$D!zxR)CejxX}Bzh5IOy)xaAy2`y2uM9)p0pK^NX_W$9RhCy@ zt4zyQk?E#8><VT)t~a@oUlW?{B3}+p4(!F;NCa=O#6(6b&mPalvDFeifBP+3#M| z^nTOma@K%xna{5=OZGRGlwOQ{YO26t0jg#M)qsvlyJCrdRNe`RM&cdsu4?6jv9ELR zv~1fgWRq5{ghr{$->MK}D9-AR-ROSpoNmevsTy7{oK?Zc9`jd*qEpfWZ z_rL#>&#Nf7{DrE~BS0oFXWC{js?fJ0=`9M>NvE%OsmscJ+xb3|ccrL1*YB^|=x7i6 zm%3~kbzW|wBtq3UX&54vcSZdD5Abdl@v?yWFRLo$o%aIX$#PTPNp`+)ALpG|+Gfd# z0qPmxnE0LZ_c}YVgjbgzs=+bKYkEP(-?IBq!7KE#Zok71mVQVgdVF#AoD{D>jcow5 z#YHa+3D~}si6N7Cyh2M>i7C$)HGm=%6Tl&4v>OglK#m#`7OrdyJoQrVtJ)AECXV_b zM7FNW$s+pD_j6N)?zYnK>3LK6{qZYBH1)7jQHtEJXt>MfrU>UDob9iaZEs7JjZ;6r z{rzuyoYed!P<%qcZE3IV;?T4N2>|`QmjOm7>g-+Dq{}CtSV}nDC`L64j|Mm=Ae)nX zzQ$P8cb@6*%zQUTiC%fFoQ@ci zOL|OX2K;oQZGjIVA9ER_vYgkI?+x3Y@u!snNN zd3*b|*AlD}(ArB2iYOvgtl*^8h!?3X85#qPr{?0NDXCSK(trFe0r+_Ou=DSEujjiQ zsT8zNdMv)Qc)n(?!dL|(s!%Gw#N1KJNxhc>EGxNg(LRh!chYA9?q{g`P1Ra7epF)Um-tw2+Lrp;U_lC|%qUTI~xFMOZsC#hHgN zAP_K5G;o?{k&Gu%o#4%z!8~ZAo~nZ8ef7X>IF=Msd+XUAfxj!1k&md#RUKwAt_(o$ zU%$k-mx~P^h5(G9BHBPMw#&19Pv3J+a&?q!& zJJ=8coo=Rq^i3Wm-EszUF!6U)tM;Q`3A$allITQ+D?!S zNgK@1bX3$p`+kp2SaD87kT8woH;qEe8PwY@3Hyki0vnUfaG;WEShgOs<#EZ*)?b}% zR#CK(2mtW-rCq9~)IvQyoLW5as8=Hn4v6pvw_`0g3mVtX{;K&T!BoDEf;o)`? z4she^rt%}$voQ!4h;sfdv=5)aRiN;PTm8;$H){lY?0Z#WjTxD7s;wV3H6%r0qX$x( zLmc8i{j!qeNTj=EYf2R@2al|a1ylv%nDi{u*y1OR#asYV;ek6iNg8i`6fblOU`80z zn6Rp^5H>`C7r3;6ilEyPUgwqx`e!JuZa09|K?YIa_@Y+@qBt7oEaMT_9+Y6P9i)qhTRv)$`?6KlAwS<=%=K__Tjg6=?X{8J!Se|OB(b}YdQ;$QqT5tgk zG%Q!eJ>_LRxb#>B3UnaQYRKPq2&%OzIq$iY*yTj9OTdgBN~sf1BW>ExNXibL{~Q8e zdzrVJUqBSQA-jERts10jO*Yd)QoCokd^^#))EDd)Eu|UjEFa;G^L%L+dX7D4p;7?l~6$_o}Qm({bQF&b>f993Rf>KH8BW zQ;2{u7IbO_O~K5qYGgRTBXU}nWz8u?UAe4t7$_)`ga?&_vwOtYyFHTM;3!hwiA(j2 z-iHy01KS$y$VBwi|3KW`8sGps<68rpMj3cclhqHX za^<23eM8_8w9*^3CESV*EqYK|YgUyglwVy(Kcr{HT@!BVE!~FIL>>f2hyIoo7b`Gy z?e3E<*VLd|KP=^6$t-AezQCK3A>nutqmMkJv8h`Kx~UvujEMzxhB0+u=GP1%g(do; z7)e|-sJxpuCh$H}q{O8eASywX3`nGCO)yl?K{Vpi>T1a{$sKvg;^Cqy#nMw*Zgte~5+IQnJw{P$yk)rUEHR!mJm(gdP+CHKU5n zc2EWqYm+5P!7QvG5lGN_VJ1?pz+x280A}5VxGL~In~jKDpnUi49q{XpNh#3^rVDYE zAS^-0RDQBjEF*>UAmPk`TUZX*^%C`?WS*?!P%}#u!A?5+oc&rJ{c(4g>nZ}FRSG05 zN#+TB;3S5;mwk#Zp^AE9BSn`^Drhm4Y)4A@A=@q>O3dsxUR}h}v)pq86@ei~m;k>d ziKD%1e3_p$U|iedyBvqw{V`)UeF-VN>Jer6}i3T zOG(JG8t_L?dO_Eo^+z>OSD_ka)_w}uRh7gT@BtYFe9TtDB_Ol`eBm$={5TksSGm+f zg=hiM7h}nEbq#n)f==nDR+lz7L_o9z;Xn}HA1;doyxCfj33xyeGa^rkB)CMNVQt*s zl!RT+PZ5GHd$FtW2r+0chgLD>5V*f72Z_2tVS!5Dbc-e;2tC{MIz~rnex>}8@@V2f zJzHrk;o_=5z`Pvj_S6pBELvfw4)u^}7S zEpq{{pUNB(5&-368Gtfls8-4ywzS^lIm^`Hf@qPFsj-)^% z*N$b|06JxuLn0O`39fKfimO23sC#!FNeC6z0Z7niM@h>U!<)hAFy7sqo1~kja$JkS z(gZO_mvt>uY622*!l?&JK`nBUEH@g4hYT}*UP6XgW$G#Q=F5_S=z>uJ z3X2JHpaLHC;2R-YH(R9cUc)X?X4rav%dj6HhakBj=>aO`-EEE|AhoI`H>ls(05JQx z77wf{I4ThvxAPw8!O$>9nAfz zSAq*^&%fN&&4Mh3RO~MO?7;(9GL2%m$}8M^Mf+)4D}>6yht(#?5kn}pdk;JD3DB!n z8jn%M+w&BSV2wp#Np-U!?ACELt5)C+OHK$mdQqJ&msfeV7Hf?BO`U^d zNn-)6;}Ns*E4odx=GGp{$Mx=r!U@VUzbYMv&?+PHf%b0H1=7wX_pOg>-1=X80KpY_ zA~nQbiY4wh1z($P%K_niDebl2BqQRgENM4DrWJB$7ZE{N$0Zeqa)G9>!X85%=}s`f z8Cc44f78!~-Riak6hHq_QDD6NC18XHzBeB}pJWXG0+Qar#C!P31hK>cEpII?-@dae z5I3JI;11(eKAWw>!;JANx3>~_ckdoTEyj8gCHc?uw0Xe?UTF+4Z&B(}mr{Uo-+G^s|{pALkla9G&CxA;PRh z15xg8Zve@w&uHJ>fjJRdGjLaMoYn!|qLFCA>1gW5sv;Z#O-JpIapC4;Ou ze+R0gWEyLPWf)}zE(qgpF4H&KqsoSI#KnnWYhXA3IQA|_-Jh%ig9iW0)l@!GaW}CIcM4M4|gYfqD?dOJtD?m$B z`RrEWaPlyP@l(ap9-whID@oS`tF#VRWwK)lEkzl>_3qtIuUW;BJV`1+%A2)mjHG}Q zesWlnmBwb0%ACHM#0q%!hWMC3l0$iMyaG#rBPo*9k=zx~7S^mTA?Ok+541=ncNlgo z&Ki5&rTl_wV-`)Lu#f?oE*=T7H8kR?S9ffReGuC0KH3py;CYcxWE& zOjXIPdIE6<7q9@xpOE0KcqW=B=i*4&J<9(27^GHBMQ$n?cM7$lf@-k`vn*mPfl zS9sXY;|ZX`MuyO&yZij}&rJZ@2OI|orR_VDdB6Mik+nd9#CYs zE5OV$XAL}9dcc_F4#F6QBHS^Rp84+GRp4zwya#2TfwCY~%GY!VyWa6oW_dU=*!RxN zpyXfy>F+OS%9(u$$Vty6-~_->7Iuq}=%BQ^6f0BDsbN0l+-HHg;Oh)`M5CP&P2*x* zlRD!IC0gA(AjOK^4}1|F9c1O55r^;>qj1nPb>J?-)rS*qkjMFIknB^UPHUpf|f!^xX7n+FcS2`H=JA@;qJ5YC(j0F(4iUkr$j>T?9(WlBgNcE3gDDFadQXdq9 zBkO`r7RQ_q)I?&nAqhxOii$7Ct>{LH!7He7O4&qnRboyopaM?6Ib7wT?R?Z>Plh1J z%1m#c;>m=b%8(iQfMmU~**;EHN`V}eAlRfS`do74Xb;@cXY%mQyBVV&^%kr zKw`#WqE{L!A2A|*Nl@wZ{p~jC$?=&yOj0D9dEJ$4R6Qo_WY>CA*9|=pa-QOudTaLG z1(6gqq|Uo14lE}ZE6!!gNJ7_~KZZt#piI`|?$)fyEapZ`3N+X)Cx|~1clE2RL*_JR z^;ko?pmLmWc|C7r{f?{2@}WixJSc@W!TI~b<98q4kfSfpL6+kTC^^mmPgM2)Y{&4y zARWk8=e8@Uu+GpX4T)~s;CfN7WH)n}0*%K+=JpKzD?XN=52cU0>Rr(U$$CTMRFWrd zgx4XoM%O7d*f|8ALD4BqPp__~&p-d^jgzI=ue&mgl zslroIPsRPLu7m1aE6Wr>IDohA)l~K47WWuMHFQnzf(=#@eEmgL+K(b@`EQY+Q#Ze{ za7d6zI1#SD`_n%V$XwXTr5Ormtcb%hn-aQ8%$fu%#Gt0Z_ClAiIVg-E>NjeTiizaz zbBhPixdPwa|(6gK_n;)87gcg`dun(G?O{}Ci8oNkx_v3#4{HO0OS&`Pd;#PX9gah*SCN4J`^t2p| z)!^Db{n=~Lu$_jdH|0@NY%D7oyzqjohdi$1-uo-F69d2NNZWanLUirb?d@mh*%quY zMnA{D*Z8gh==C7aL+Vy0-(ytns!6`qfMejgV_#uVuv7sIReAgnxD(I_$d(e3NYjhW zs=^#OKEeosxR@tLDN(Lig*+@eh}NRao)m>AqW z2%W42T=-uA{p33hq*Y2$sSq_ND*$JI#mP)dNREBAu_%6DW;I%a#-vHReJg8Mnx=9) zeWrP!F0{;`SaHf`NL&w+bZ#g(_SoyqK#raW%_U$()V{@%J#Mg&cv~vg^wl3yS8b58 z{~=XSqVShy0m*xZfC#v}{P^J>KmB0BTNj|44c+HwAK%@5a-K(PRg-bQj<#>s2wUF2 zb|y1HFA(Oi?{9#k7y^xi6#=MIe=#HeBIB*qm=wd^KNYBA(hsW0U4)X7oKo};Kt*+) zQRIa?FuF}gapV$}Ja`cB$bf_!r`}@OpMU<79wqzuq-)YRTS*FLS@}RlzV^*vN8cNN z%BOPX_>jJwEj9XB>#MNCd}BubPk;K(gcZPK;*4>GTLj|L`YK2Zh87edxPsiX66or> zGP6wb=rMSaqE?LN{Ffz5Zk@`uqntiIzARE8c1ia+w z#uN#QvZhFlE0%}JA1`{)r_YJDaa$3aO*--JmN}wQD&9765$dw+d z&mgbS!-i&=58LyQ9dnQCWO0{tPcksH1hNfHAHPAjVtjS)J{1EK0NGFD(yF;hYLZ~| zL-QWKD~-ry(i5Z-cjeV3y4gU->Jr0N3N-xmQ?4e#xH%%_@bOzLJuM`ZM}^$8d|#Gu z8(!P!F$12BT)D0=lB6=iIu9DJa;0%%92Fe|q4h26ja88VL205WLSX&y;o*;~a+JKo zU`^nTp>asBD-_=ng0r3YJ?t+TKUUlv?$xmTi)uotydxWUt zDbz+v&&FsR7;DRW4j(@t4ES*OY27Raqe#xpW#F}Waq;Zp{9M1(mdk|^0}`Gq0<+n# zS-e$JvJc3ZMX5rp*^9SMf=5h?H{#G0mW5_D>Aqc(bUxUeeSs-|Z|23`T5pdVH!IgcvyNOA!`_lbv1#L2fv8Gs;fHOINXzJQKP5MM|N>rdc(^{(vE^RdR zm~61WLEGM35oo!+EIHs2GRJU-XZKqsP9~th(T8$hSeWc56N2K(QyyySk+tKlFwmVh^lUa= zyPM}>bYXW~pRDQ?vvWCh{0c03x!^WU9|Bk-d-ALblvGc!b0$+M6`@nJ+J%m(pu4PX zl-V^FK8N;kM|~4qb%R(S{l1@seQ)7orB73X9fjqCrQvdBhwiY3{rvbGu3{-D*K$ zz83ppxoEK!kZK*;qVuWT9mu2OX}adOOwD}w3ANk-gFu1^P-Z^oK;`X>l%=vgr254h z^gJLe2vyNstCPQ_+dW9$F(T2xpo7;Ly5-|xnlCoz=Ur`RU<9C@Z#V7Q1-e4hrQ<0$ zF&N<3b;EA6o#N}$V53Xv!u+Z3z!YbYK1#M)z;cKoM^Vx>CT4+H^FR)+NODkoBgPBDYvty3=iPh1vzS9NrVHmUP^Vz z-`Lm7AF$}teA0i#4wOki;QlfoM}PDFGKAfr7I0a__l^lc`OBp* zTOQ4!g20Rro^TX6l)SsQ77zKZh!?SdJbWtPH={`f97}3;pXACq@ZMDttg5_v5b*9E z?2@j>w~Us!VTik?X~w2u({^}uJH;A*qIwOb?vqu6Pliz8@GtC2IPPNyiE)s3PBijX zJVk}SdBPhLQcwJ0T*Ud@S0cehAxBlT4M+|VBJWhyVgbg3S`Y!3M>W(0$2DCD=)z*--(Mj7MtnAfYFma*#oUQe@MKVpKGf zYQz7(um>&E)k}R?5@}$2AvMJZ1LFA-;Pxoy!4)C&B=A0d_}mQH+MgcWSuks^p16;1 z8DFS2KC8P)ie|mS-GNU-$n~DS>?&8syW{cjsh;nlULn@SU1N1wj3dI0x~-05^y&%v zuT;rZ+Y}t04XC)c5^WhvD$u}V4{P>toTDj+fY==z zn0czhxm?B~w}-%kr_RZWZy)Z7E4xgYMn}(WIaW` zuPmEUapqhlWL1)PPVDEH1R52@Q!o$-^4TNiK7U+$o#Y^%eqR)HN?R_J_H(Qv1|rz{ zJRV>KDXYrm`sGsxF%hvF)Z-EvT-WR~KLB!*83qsky!o7fwYS!91GR#W=uvldwA! zcaU?wlzXSr=*{gR?dv1VAp#%A=Hv~>C$j_ae9-wIh>CJg+&T6_hjo3NsgI4;SHzR3 z3-gX7>ZeO; z_a3TMU9of2c+OX59KUJFG|Gn2#}9wJT{|`}c2l#&(AXS4_j?Ch*oI0pfU8NTu}0u7 z$vgJWAeJ}~?EvnkyJ*l_2xwgd!+EbY#wW7Yw7b3CtQS^^AGMzKcNlnJ?2}7aP1Po% zelZ`x0XX=APyB?bmKPNx=8z@1mbVOI=fp)9*$@zUB{iNBxNEbLlb;sp#(cnHCylB@ z6Wt3q1+uwRo*gTi1XPB!lVFGEL0Ah4GfM(*qOXM;gE)FfZr_mtcfulMBS;Ii0BYJ2 z$Z29Rs01)w()OBi;NgMZhilWrqR2rt0eZy7^iD+@B-6VBQ+33(uY0EMz?g<>
2kT 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

QU$9bK2URr%nAf2ipmU>^dWSNa{*&F)ik#Tr-cs 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⪼0byySCb0dk!HE{ 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 literal 0 HcmV?d00001 From ce19a25f7eda0cf3b2cd048308f2511534cbb8f7 Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Fri, 17 Jul 2026 23:47:36 +0300 Subject: [PATCH 02/17] =?UTF-8?q?fix(compose):=20=D0=BE=D0=B3=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=87=D0=B8=D1=82=D1=8C=20=D0=BF=D1=83=D0=B1=D0=BB?= =?UTF-8?q?=D0=B8=D0=BA=D0=B0=D1=86=D0=B8=D1=8E=20=D1=81=D0=B5=D1=80=D0=B2?= =?UTF-8?q?=D0=B8=D1=81=D0=BE=D0=B2=20loopback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .docker.env.example | 7 +++---- .github/workflows/sql-lab-check.yml | 32 +++++++++++++++++++++++++++++ Makefile | 1 - docker-compose.yml | 11 ++++------ 4 files changed, 39 insertions(+), 12 deletions(-) diff --git a/.docker.env.example b/.docker.env.example index 59c33c5..2c321be 100644 --- a/.docker.env.example +++ b/.docker.env.example @@ -6,10 +6,9 @@ MYSQL_VERSION=9.7.1 POSTGRES_VERSION=18.4 ADMINER_VERSION=5.4.2 -# Имена контейнеров -MYSQL_CONTAINER=mysql -POSTGRES_CONTAINER=postgres -ADMINER_CONTAINER=adminer +# Публикация портов только на loopback по умолчанию. +# При необходимости можно явно указать другой адрес, например адрес VPN-интерфейса. +BIND_ADDRESS=127.0.0.1 # Порты хоста MYSQL_PORT=3306 diff --git a/.github/workflows/sql-lab-check.yml b/.github/workflows/sql-lab-check.yml index 93f17ef..3ed8832 100644 --- a/.github/workflows/sql-lab-check.yml +++ b/.github/workflows/sql-lab-check.yml @@ -54,6 +54,38 @@ jobs: - name: Start Adminer run: make up-ui + - name: Confirm all published ports bind to loopback + run: | + set -Eeuo pipefail + set -a + source .docker.env + set +a + + compose=(docker compose --env-file .docker.env -p "${COMPOSE_PROJECT_NAME}" --profile ui) + + assert_loopback_binding() { + local service="$1" + local container_port="$2" + local container_id + local host_ip + + container_id="$("${compose[@]}" ps --quiet "${service}")" + if [[ -z "${container_id}" ]]; then + echo "ERROR: Compose service ${service} has no container ID" >&2 + exit 1 + fi + + host_ip="$(docker inspect --format "{{(index (index .NetworkSettings.Ports \"${container_port}/tcp\") 0).HostIp}}" "${container_id}")" + if [[ "${host_ip}" != "127.0.0.1" ]]; then + echo "ERROR: ${service} (${container_id}) publishes ${container_port}/tcp on HostIp '${host_ip}', expected '127.0.0.1'" >&2 + exit 1 + fi + } + + assert_loopback_binding mysql 3306 + assert_loopback_binding postgres 5432 + assert_loopback_binding adminer 8080 + - name: Smoke-test Adminer login page run: | set -Eeuo pipefail diff --git a/Makefile b/Makefile index 26e27c4..814d662 100644 --- a/Makefile +++ b/Makefile @@ -20,7 +20,6 @@ HOST_UID := $(shell id -u) HOST_GID := $(shell id -g) REQUIRED_ENV_VARS := COMPOSE_PROJECT_NAME MYSQL_VERSION POSTGRES_VERSION ADMINER_VERSION \ - MYSQL_CONTAINER POSTGRES_CONTAINER ADMINER_CONTAINER \ MYSQL_PORT POSTGRES_PORT ADMINER_PORT \ MYSQL_DATA_DIR POSTGRES_DATA_DIR MYSQL_CONF_FILE \ MYSQL_INITDB_DIR POSTGRES_INITDB_DIR MYSQL_SAMPLES_DIR POSTGRES_SAMPLES_DIR \ diff --git a/docker-compose.yml b/docker-compose.yml index 76ab6bf..909ca3b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,7 +1,6 @@ services: mysql: image: mysql:${MYSQL_VERSION} - container_name: ${MYSQL_CONTAINER} restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} @@ -10,10 +9,10 @@ services: DB_PASSWORD: ${DB_PASSWORD} TZ: Europe/Moscow ports: - - "${MYSQL_PORT}:3306" + - "${BIND_ADDRESS:-127.0.0.1}:${MYSQL_PORT}:3306" volumes: - "${MYSQL_DATA_DIR}:/var/lib/mysql" - - "${MYSQL_CONF_FILE}:/etc/mysql/conf.d/z-stepik.cnf:ro" + - "${MYSQL_CONF_FILE}:/etc/mysql/conf.d/sql-lab.cnf:ro" - "${MYSQL_INITDB_DIR}:/docker-entrypoint-initdb.d:ro" - "${MYSQL_SAMPLES_DIR}:/opt/mysql-samples:ro" healthcheck: @@ -24,7 +23,6 @@ services: postgres: image: postgres:${POSTGRES_VERSION} - container_name: ${POSTGRES_CONTAINER} restart: unless-stopped environment: POSTGRES_USER: ${POSTGRES_SUPERUSER} @@ -34,7 +32,7 @@ services: DB_PASSWORD: ${DB_PASSWORD} TZ: Europe/Moscow ports: - - "${POSTGRES_PORT}:5432" + - "${BIND_ADDRESS:-127.0.0.1}:${POSTGRES_PORT}:5432" volumes: - "${POSTGRES_DATA_DIR}:/var/lib/postgresql" - "${POSTGRES_INITDB_DIR}:/docker-entrypoint-initdb.d:ro" @@ -47,7 +45,6 @@ services: adminer: image: adminer:${ADMINER_VERSION} - container_name: ${ADMINER_CONTAINER} restart: unless-stopped profiles: - ui @@ -55,7 +52,7 @@ services: ADMINER_DESIGN: nette TZ: Europe/Moscow ports: - - "${ADMINER_PORT}:8080" + - "${BIND_ADDRESS:-127.0.0.1}:${ADMINER_PORT}:8080" volumes: - "./adminer/plugins-enabled/001-login-servers.php:/var/www/html/plugins-enabled/001-login-servers.php:ro" - "./adminer/plugins-enabled/002-login-help.php:/var/www/html/plugins-enabled/002-login-help.php:ro" From 6c3b03da29293b49aa4a70bb49cd0032c9f6852e Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Sat, 18 Jul 2026 01:54:06 +0300 Subject: [PATCH 03/17] =?UTF-8?q?docs(brand):=20=D0=BE=D0=BF=D1=82=D0=B8?= =?UTF-8?q?=D0=BC=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20?= =?UTF-8?q?=D0=B8=D0=B7=D0=BE=D0=B1=D1=80=D0=B0=D0=B6=D0=B5=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/assets/docker-sql-lab-cover.png | Bin 236834 -> 237230 bytes docs/assets/ya-logo-dark-50px.png | Bin 3129 -> 3695 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/assets/docker-sql-lab-cover.png b/docs/assets/docker-sql-lab-cover.png index 8b04fd098402bd6e110b6a495d1e7e7667cbf4e3..3752a2cba0eef4ea86f9e80be581a0658fd04b0d 100644 GIT binary patch literal 237230 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�gFPe4&Fzlvq*i6|0U0=Sa5U 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

KqML4SU0jIFQwq#fsz`>nrbJ^5GQvkK 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
2kT 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

QU$9bK2URr%nAf2ipmU>^dWSNa{*&F)ik#Tr-cs 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⪼0byySCb0dk!HE{ zV9O-fqO^?68G9BaL6d-2YjxMTD_rxU={H{1QxTiQQ9FZ6NwyRa(I)s6zmv~Tup>qV z>b0>=!Y!&I72DOX+n`SQRi%zR-Y)&J%#EP4-;xd8$QtY2kiX8fVRsVlQ@DDX3=_9{ReBGE!9y18xiiTh zUNq|D=?YW&4H!r*iAm5Ja9*W!IW2>Ou{d4^g_sI>j>>9U7ea`@!J?5Trp6O$lpy`A z>ors{Yo55~Iipin0k)7YTS zGCtUyi8Ycad1lzLb^6He?joOY_q(P@-@%k5pOO-YI^cJbL2GrlZ zKJLfeZQO}71@LJ4P;aDey0bb~kVMbJqwr&l84+s6O@uQY*6e)RsFTJCgv`ePUQ|=^ zz9nqBVlL$ECch~ltEGh|iJ>L}lbdahI9EzvLipAAJ6Aq9- zw7O$94X`3>bXn-kV7v|0Ex4k^2Q{nW?G+5%nQ;KMR|zyt^7I*rgr6`dOUJp(vnG&< zt3{(E&e!HyvIZh@pq3h7g{Sb+OS@z+O1F0+x$nZ$+HdZ0Q4FuvK!F2+k@EQ(xx^-Du|B?AYlV=7uV9(4rzaG486xRd@V=~bGrFq|%^N}&fyia` z*^+(KvjMu%?~Eh>ul(Su59Wo=Mx5$>8?(m{HnXazx*2+pg<9Qv!^%_)*gfcN5oZJv zl$V=ir+7IPaQof$dg5;Z!*MSQp>&EONf&{F!H~|#gWmz-v!cAFNI+b>2@s-91wVx{ zf(tjXq1y6g^NSb9Y5td#Yv(jaKY6|;VAoL)&LZh8K{&PIcLt!w>&hCbc*@eCg8U`L zz;z)%GrLm|Cr(!N3^akTEwzX|?-FAL)l%Z{5yunokWr3i6>}5S0cvpIJ$z9msxmzQUu1;5 z)(t#RuZ&TgR5T{D+uhs$^h?P9YB6C6isE_G;mhNFY#pq^3>=n|lbO#ly0Zslh(F*i zPL4L)C9LPj9SA@9@C>>=4AS{EGgUQf2I2X6jop7my;;;G@EQ_HU1Oc)NEX&QqdBIV zlh@4g*0nGR@=j?;BxD8wOQ7}Jcd2^q%u^hcAq_uJ1JD3FuL!1|Xwn^9;;xC|iI4?t zc%CZB%)sh05NGuY`{Z`Wwv3vaJNTXA$)Vy+!;e@{GrMz*>{`fnM-V+p@AibQ-6@$A z;_W46Mn@cFthC)FipSYrUSU&xJak<%kioR`KiyzA2HtL|x}R@3*&oUA>Kb#noiJ#T zvW%DLWB(kRiVAc5lyZ33cHP1*Y5(n?-=Ai|!KRlYRZBmdgGFHl>=&TU?Zl;|RO8Qv z6yVSwO^prNge*};ux2lMGvj-b#*h|GK}|(8^GwNxXLrKe9N_y8I39o{fcAkBg{?lJ zo+H)4`!l%3ZQQY=IbOQ0y<-iK#iBNc@yS}1sy1K?@ENwPOfIzO`Cmb zDw$c;GA0p>4(Vjo!)(t%O&na$ag}wItu3FVE82m$`}y?r7?e`ohK?^pjA*)P^bFuV zJ{Vy@3D06d;(@A02f<$!N*zg*ItAO}gi;Qf9O_qYv9y~i|99Z7CfaSfI^}6T2JB*s zgPAg^+lo)>t)vr6dz6W?eeyd2l~9Fslb(mup2g`&s5_95PcjdjReKmVu9=-p8-u2^ z&a_pFRBP<@+_Pnx$PVOKre|(iha<)8QYV?$sjYxlgP(vC!~_wAQA(I3z-p&zV9TJx z{&y;)gwMq>)Mws=X3My$*W$aLd27G(=50@cK_uWszo_a3 zqU=+&esxpfuCS5i(H_O-3N24}G`7Tn)EXd%vQSs|P_r}Jth;Rs4=w|CrmyGs7kVTK zBpjbF*~kEYc@Kv7w~E>{kMs<6qy!}!vywU=2)JWa5YA2B0hqu5yQocLi9h`AJ#F1| z7!Fj)`sD`Ps)9*MT8fYE$PNdH*}jKyJ@v_61SVU4r`mqDVCT~sM}KX?NySl8L4zcT zWHqNF0fs;wT05J(Pm%gZ-4(^AX$}N8u!bTJ;`@iBb(ec6X#ZgMd5Wkq@Dcqyp- zdk?o*mM^aV;lbHG?oK&VPh(56Hrev~jO~s7rYC0sG@q#Z0CzQ!zTDLv6e+>Q706;lS>ObA*3ph+3&WGu z(kQ4RTKEIt4Gw#gb`Buy7H`t$-EUg01-4kwY~B0nGxE6;g~H?|ax%+Y`lSac5QaCc zjqafj*7nzJ%k3yq&kgHy_qB9ZW~k%^<>qZz0MU*+@bbtRS}E(VC3lp-4|I94@7b)nw6->$+^V0$=IvH9?14xDA)dM*vXy?zr-E0mK`@Jtr*qTu@vvGa~h|V ziXD0yEOG@rgXX4|QuhE3hqTwb ze7qL=k1zHfL>+4KMR-E?!1{?_M!sFKssQuU$y$1J1vpESUY|%aa0I+9IsD2R)NZ}Q z`ABpXRcR`a#CgJL!}C1(VEOv+2+{IOFe{X0?&OaFD0I)pCID$bmcP#FK}WGX<+uaM zXw>=EyrZATp}4oKkX|d((zlJVO4Gfbh&PwHlb^aIMeWXVUQ-|#1r8o{fEkqP=+F)*owcc!@>OM zgRY|WLN?`b-cdtI)oLGQ#6@6o^fPij&e+D4Ak+`~@`IIFE*%6#?w(Li&-uzK@jLB7 zC)b7bI~*qJp_u;jSK#i|m8cJjguu(-9lwR7S*LZKT~Y$u(zVEbGcg*>nBHyux8YJHib zY_+F}9js|-7c!$bZOoZj?g2cK^*ceTC4)jH(k_Z-@G}4rtWF3d=upkJ6fObCMW{XJ z^+?(|YMOLA2aus+JKc3P@F*nT8+T*Yf12oX;LZf1VTBB^Dd4Uzb3SdZ@P9nb_TJPQ z-}u&E^jbvm07~GYOUqRnAZ3#ES@N-XWb_5uGq3@k<^k*vc8fj!biI>Lu1Ox;T3*cV z5<_1aHM-B-6L;anIp}!ccu^*kyCbgcA4k_z;Vj$YPOQ~o>nDmj;q0C_@%rE}Q&UD$ ziY@J4Sz(emnDHvpAs)kieLY{=S2h}XB|9L?W6!fa@0#(!Rj28{)8p4?%n_7I*b)52 z@(!F@;`eU7Yu7oc=;UcYNGFG?@Tdh>JOP~uTRfjm>Yb2A=*`sqn%!IK*+`=fR1$a$ z+A{8l6A6D(z`7Woa1x(anlA~lB(^ts85Zr{MFmb~Ph3M3bHOs9j?tdT+|$xo4m|ra z>W|g_y3`@NmiX~v7u58~@&LYNj+_I?`D**Tdg6L;t`fYa$DME}QIq2*t=uq_L7-_` zU%)Fhlh96V+KG;dJ2sZz^mchXKflM=iQ?lCK=o+evb!?xFGQ}ew+(^;@D8%HJmAVW zMRo%ee46LD7fA@+S~eXqR`H)Ri`8k&_4|?Fp_uRYNuqZ-?brt|e-)1F%fnZ@B>9G` zxE8C`Pnvq*o9xqw9JR!q^f#OoG25@pz6CTriBhmbr<(Q?#XQE{FtcNugQ8_77|dFIO~X%ODRo2Bq1dn z8;L`V~NKUF8x&X+}0`_fhz(*1ANH-;t)CVE9$P%8G7AoLQKHRLUY}E7UtIU9Yg`e z?&Xr&)!a`|)*o{Jdc%v*fZ{W7cQ@M|vL;1g7U>`FZ2-LAUT0VLgIU~uoo5%2W2zAM z!`{JrNM|8wCh!i8-n&4a)ENGl-`Rtp{HF;!#O=e3+{{LdJ_ZwFDF3(b`vhLAs1gJ3 z@M!JMftFtuhkSwDv5XpD_I-L3eCD!=7(}}1;io&`j#Tiab;SirpDq>ImjB=^I5m6C zg$r7okPbeSq7Z*)^Ey6;-Fm{T3yKB?-hA-AnaL;3vW&<2a*#m3;}?YFAd%&l7#b(Q z%`a5z7Q$SlwzMRT!~F{jCfMY*zJpO}U9~bWV~x`FxDjWT zG>*t~nPPeOysj#*#0VJ^U?*^SF0{B@CPE-^7a8k#qs#MD5RqJUynf&B+2wKfl}yo+ zoi3kbPcV_+eJRI4g+q%7yyXik?o^Asdr&q8T6TAJha#J748|K>=2}(Eu&e2E=J1*d zhei{<5BnKDAKw$OS^vbFwFlyr)kFv9;d(0vQq3XGXcc0byHGeJg)sXwwmfGSVXHR! zLQiHu{SOCI9_ z-Xh$sVuH~q{E;{1Qhje1`rBVAeV&QBi+~3Z=@eDe>zGYHpCnGQP%R4GRAinM`K|K~ z_d^bX=KFGf#Xrs_y_t|N*)wWKq;p`E53&i0ORihG+Nex%-+olk5l}+Sn5o)1^g`C? z2_~LNLBDhHHoul5u^t2570l+gn_M#PIM9FLCX!JR=82FC43k>C&&CF0Y(X=Dag!bc zcBZSwB?*?movf(D93=X0Z-F~POiKnJi+aCDZP-k$!lss@QP|3i z5oj>Pv>RdjLI9X1(Yj+bDjr5_%!D-MGnq%G?Buh#Q{gdne{Ri0J?|!>-!~LcZs)JpfAeE8hSY;-Qmo9 z`xjrClL2W9SOtN`?gw%v*uK}7kp_v9Hk-mx9BNrcmvVnY)O_gu>r z@R5NNxC6gC?8_A-kDV2J{A?Gm)hIByj+UbYIZZ0hHoX(rAVSM{d#8DQG%y11&^(gm zP2HPT;^(*^W$VUTFB-_pHlm$@Y;@$1))FZa3OTjlETxZ#KnqJ0McG>nFsO+yqKmxf z@4z8j8j>^7Mc0L`nuZ@?t{~EBMfdr5p){?HwUU#2CL+OiHtQ3nMC%FPU$;?@Iiww{K~dSUqwD*}i^ebrU{lJIWAF*X7Y{pjo%VXyn`Xm-PI|JY<9qB}{_yYx z#Kz~3cMGcpyjGm(hqUj@^Y!{tR*{39*XEjD%BXPbR{IVJ(4wtt@i0HEOO(WDJ`?Rw z=y5*2f;3Y5oI%q&rpybW+G zXp(>t%A1K3*(z%XNf}cb&&!#pl2`HFLb?ysjN8PmWc2A>44mhZ|*&C(QPiyj@}^KZWj zT#la?m#aB==6Pl417WW?M~Rf6$uHl7|F6OCzK^M-oL?ezk^S5w=)aFIUmm}ZVh&xP z6qOI6()9M>kAAy6nT#UaHy@cAa8+N*+xAn!c>jrq3|HgVtn0WjF^^^{n zkS09{GCo^U{1V$Ii!tqUz0w(cjeTfW$ysz1LBQ3XL)TKyYi7zB%S_ElsBPJGd6`+n z-D;A#RXZRqOg61(qNsxCDa0*mjS+N4o8(M>7Ul;U!S6VZ%U#}lP8t#;k@jvwrzmHL zBkgHId9|f8jh%6(-I7`$>V#EX;xzyXyo^925q)5U$>&ha6|S%ABAJ*=_8n0Tf8@IG zpB;9WG|AAjLsrI#awh||S4*M;8@_wiV>#}WGCY&7$AN?-MyRjuuh{qTRg)DQ1rN-T zQkk)L;bhQ}IW}@G4#vVAMyE&Nm;e30MU3z@!v@IzzkP7et(G)A-M%!8Hfm}MF=b}> zGxkDa8+}O3?=0c)$Mu3v|sJ(w_Wr>?=ezlu<*-FpC=M&Q|OBL5u<=cUP* ziIk9JL<|!HzeyL16O6#x@iD#EtwvVX&I65STh`^ zwHg1_9YN>7Skg`&9)(5EMw^g{p}_KA->$%&UZ+u+8OII+f=qBWzhjGoss322NLCpb z-cgZ_cj@d-AB?y4HAq&aoyh&co3Tip&?kYi(DH5!^(wpZY$fP2;-jn&Emp$)Z zuN|5qQj3^9<=SQPf<~N;K*nt^!S#zkIw07T}9>w7oFr9rIa27W^)bA{QLJ^634MRl)|1yEn*{8u9dm$NTkv zd;vj}j82d(A4jw}uB(VfJE*x1W&*!E9k?UGZAK^T(MPy#d-TV2*jQDx`e*#RgXTg5 z&sXFG@TkGEQ(@!b(<)qgi`Wy(Y5jd56w@1ET~1#T{{kQde){x}W^+JpOp3DKWX<{(ND(iG7D4 z;mFI#Lca?{0-t3$xyJk&=(!=lX7pE){OViL&x;?4Y+b45qMY9DK%VrD7km5?fMH|` z%wI$uK1J*gW@S+0X-Q``*_Vel01o*vpRce(Q@Rzud*(h|;(3JQz^~rj*-3kj;F&damK#V+jwVz0GxbAa ze;Vhv>xE{-X$~bzeN6`9f1b)scQEX@IHy<3MoXcpuk+zSQJC>R*2KikO_#bobv?l? zUt?C$@Na^F;Cnj8_?8e(uYuNi0Cyz1_-##82u?YU7{LoD9DEZe_qs)8EO}<_V?d^`v>l_c^|A=`C8VX&bJ5tUHTGG zWuFPa=Fn(~oQ+RS9F1D*^m#jS(Kw*|jPG9<)RDo_u+sHqj(6K7;5Tu|32%-WM9wIT zwy!M_hlF+*7axS;-MZrZ$n}%IpwnZA>}CW%J_fH4GEpvmXKVkB*?JCH8}cJOa9wm- z6Xlx7nF&_(Zqn^)&#j|LGhi3@Ii64Z8w-R&JU-#q&H%Vry}KwYWbIyDoYOyoT09$1 z-K&st?L9}|91w>NOpbpdK)Gv^tYO6C@ZxaE;5^?>)w{J%Y^pV)MSH4uMZ+o{g(zed zAKV(RkxIiQOei1D>C!6YO)O!-Nfk6z6p?il0eH#pe*2CFvo{dn!GdQ5X%kmuJpmT* zlHdG-{Hiuw&mII>@>Iq{zsC8BRvb$U+y$fU>vk6)HZ3W0M%{?&IZpDDAeEcblV7m} zk^{;Oyu;ynL2yBv_Cl6{hZKlAV$**$&<@6wqm9?h*EO&V;E^O>dc8TXD4n*pCzCCl zHAEo--G99Q3J3ZKu8?NEwN}=Ql+LSpi;D5p@s_usq3g%`_2;%c%rkoJVE`cO`Qm$2 zTCyhK_+$K)4;-0BxBXu~{yn{wI=N>|kNkI_js>^Zv>x?7)LOl&-?0x0vmT}-Nk22N z?liP5-=b^#if zzAh(XY9T%&!ATLCnvx(X(~F%KO}7KaI`litG)Q&`(2=r6|x9 zFLW@}JnzCZ`klY%@xdMYL%Ifun4LF{B$T?siY@*vBKz?KT0P-uVcZt2sEWM%tbsg$g3dOa<-W5kPKXkZTg~#2 z1;DP7GViI*QP;!DN#6p>(VLPiHzHYccUSrz5RmfskKf+)is;V?Hvj6>Z++u46U-kn&{ zR5*z8EvD|GpAZ=GeQyUifCs-h-3KUB%v3PTGdhp}OSC%P59jVE-I>*-!OXDtU_%`G zO-%!5ZTt#x>$t8xcWzz%z9;g$`|CJb$^^tno~>|;`WXt|1vwyZ6~B{Ng&&1h0$1>B zpEW@?V9H1^P>a)<9Y|8^z~t6$P4UW8R5ssx<lfFMkMKd{cnkX&%o88TfcWLwfr%-8@ff?th(Qv9& z{4@i7mZ~dU*-B5J#>rJpdr_j zZgPn1t(6?ybxYE;a3(4YyZKnh)!gStS(Ne{ZxL?R~wIUj-7u4t@P9lSHF zL&I#%Ig_7)5@OTwdR@lx(oD3CxGrD!X^YVz? zh|LNBNb^Iwrz2=}cI_n|U869f_w&osA&?(+QJG+~|IPvxGf-FxHl^lxum!&h;Qf!s z;)cc@?Wdf!D!SX^jzhed-e+v$LYQe_|W zSiAQ5gzrn$mMrzL!q4pUAvvMZSnJy1roVi=y}fG}Zol$@JNSy#%Xr&wad+DX;OTE; zMo8q(0?K|lXoipH@C4pQzX3fjTXc)t=`^QsISB*2#DZcl&^?DIkro>8Y`NE6O3IEz zGk7eArbww56*JP^RBuZYcvdjdcROAQFY0%-O3@(JIDKn(=T+G&CX9(xdY89u@+o63 zhDt<3bDNDRpxpgu8NeOpl%wCkx(~Lh6N;eETuwQY^*$3#k?2D#2nnM@(aU(~;&$X^ z;B@Vh!D7Uj_?=oieRY>k3Ow2oFNHA(xbyFcn|AvMnrXV9Q0#&rogsi(&%b;=E)*rD z)ixxv)@pCU9ZJO7arLsKq&99}-QFL**jkTK=qv2bHtsegMbFI>V^OS_0VW#?1#dt{ zpwCcb&qM)F*tYUzcBciAIFs%3mGY2J2k}9mdzb&E4er5fxSFLs~`!yiw-S6;`%d0IY%axb*`HkD$>j+`^$DuG3S#q?H3cx}V=Sxn96Ehv> zfFP(5g{A@*HgW-8K&Sv4qTh(+)v1%4SSkdIa<+)dZ{ZECrry zO9bicJ5T8^m;RYpA~VJR(%Q^bIQOoebahR|w>-%N&O4sUnn_k|S$s~rrov$|3LO^E zY2R}F4ef*wxbuRG)(&8H1t(ND^E#*LKUZNJh#BE95|kz(0a?-D4=LTl3SSw-R6k8) zqD%>e&zs`_d*Y49#ggV?@v=@ugm7mDXOuE-xd-sj7PM$118H#5?z~#qIckYJZ$pWL zjX+<DGoAiT3AE9}{%8n@lNH&P*mxS zZsacAE`6Rv%;@q;R3KShGB!5Ry)uIJSFIIl+h#PYZ5)hso1zpy8>i@W+5@1`2h!p| zC(SpnH5?*Aj#bYINf};PCvt8>Bg~~A9~gNm2}hF)Bt@ubY-z|5a6Ns-lCj`LmrslM z1^PNrrYSWBT2W2Ci3C|~_o@PAO2C9mL}L>KnO|h!BtyHukm=p$7U$mY)rS{7YT|H= zX-hXmLx4+P(7zd(?3Qe~g19?XyOf+;KM{6(7VAL$gv3Y_{7!Imf>u4Xs1Vt88ueva zevat~6Ec({N6QcjJA-x;xmG{aqH<4dk@To|vLIvf#S)YQpuEyQjzvOU!3#~x^Q+x_ z<`-gk)W3|o8*8XD*)0{s`S58<`z_O_bh8vV=SG3^@sn&>(A>AC)w_1ht3PQ5Maq{C zTe#}{lS5MsbVAPM1&Q*rpQK(@waJ!vo&4fjG+4{1OmWQn2J{8)$~f8fa=6kW%-x%K znps_V`!U6Q=#McM!jKflQx2FD_Oufhkk|Tz6RJsTlte@FruiJsH;KAcV#)nbSOGhm zFo6#Ru@D==&Ei#8WXhxwvqfI~PU}BhiLIpt#+uhpL2FBdMhp2Su+7c!lH-<0jE|R~ zA2VJb^pu18y09td+Se?+1%+uG`m$%$^QpLQ=C&?{8g?j=zU&Hm`*-jk8$W!BaY<)H%Ry13PCXn-nhc+JV@#s;BQ1`x`ukH5=!=^-xXAghL%KnrflXfyzQZ{Rnk{5Rhj5j?yK_yD3MO{x@!MC)Zjl=K;{yi8Wuj z)}BCT=GyZ2*TqWQ*|YH?(e5XgNVT*JZ{2aSoH<~JwbTrX`jOeGzYgoNj1l993ZBfH z>p^NUkoB1;EKni=#e}Y5;}=xB{MPfm>2-AW3&)BvHdglZrd(dY_+;tRL{*8FPz5KF z;dyL2PHeWOQ$#aK;SNYNRraA%0JTX+I#zAXXRK~v@@VMo2|cgiWwQwOACFa8=U{u# zpxCN7>&J~nr*ylS>8{|8`}wWIp8YE_wrAswnoS#>#O5Y^Ma+4n+9fg-w6Zts zd>pp^@^-yWbvGliibr=>`tne=oOwgRTT^(ne%EWS9>{~_ zbqMran6ed!bBZK@siw-=#lgD*s8Z=ntpA$k6v-l#+Z zK#+Hm9DghWG5axQ{KAN{n)cKE^^Wp}BfY0#9!y(b8zkv^{v)K755s=bVwwt$u*SNDn;dt`gjy z7P%85Ji0bP)M)ApBazMX&~);;$VD7u+WN=CbnvWVdr)RSZPr7NImP36jWUBHZ1>(IyUhv1izapz* zO+ir4-J~pl>92YGhqF~MyT?xCnA%%*^Os!|+>34#frME2fRdp$9F6MWN(qwU!Yv2NTGm<9A zX?v2t|MR!s-q-6TngBjPH@l-%i?I{0ILSc)lxvbK8C?_Znzv^l1iQ*Zf8{TLApTuy zwcvNPz1WKFq{-~`w({PukTO#-wi}^nkiU(ludMG|oMBNZg#d;S(!4vRWEn$8-!4u_ z6uaVCW?ExlacE)jHfGK44l3Ods>lWI#0GXOnepq6g)nF?J$`2pLU z$rjZ$W_N9dir@BA!Y)ozEeeh@-k^IK(xuR&%Ap(cBZI~q&S4y@_D`El22YwlSJ2^Fc_a@w|I(y<5dpLF(`3K#!W*Tut`(Q z@CF@f7+_5Fl7Q?tm{8VX_X4F%yzkR%w_3HcOPxy5AWgYG`$T?M;bKJzJ5McFLHb=M z{%`WXpr^e4XSH@$O=N z!{C^3sV6|`QP6WfmUM*9!?-IN&A`;vJ?^fSTCT!CG6R>Xun3btX%wxq=d|*IB|YZNGw(1O zueI?V5I1h}yAm>20xX^7_X?$CUZk`3Hb<(KzJ_@D_VHUR$nrfw*Nr3LjIC) zCg>cBy(ltN5SK^6WI&qqPs*N2*8)D2C!>_wF*Um5X`L##?pOi_a|8X6L69^e^yb#= zZYBDpmj~$uYB#~+C5Q#5s#nAvsy3|Lj=V`mW;Hr4DNZ>%*m4fDHg z)4qSTn#c40PXq>h*BiKPQOAjQTeAGAsiu%KHSO)7I^U$a9=4p>G^#W3lMwyOOENQG zXe}_8URQ=acqle=(oKT??e|~zlODb7nNc_FEvOB6xwwF>o6_FL4cm%`0n$mQu|Z~z zBPIh0#*<(6KpR+_w>=dU!Qw6xsEIGG((ir%J7O;RkU=Q!hQuC*G`0jW>0NT?x8Jz# zUtd|4UysfOImMCc3U*%2OlR2gJLwsw4 zaP#P@aroRA&IVd0 zXLyAa){_^rO_ybpYtyg`I-ciIudrqFo@;tAjBh=D1pO+c>5J`iGBvFQ-8IONeSV1s zd@^ttz;U!DmALt7c&;6WfFrQT?lyDs8apv_AipXg6#v17lPJLXWn#H+9eT$CQuziA zxBJl)bI+HQmzOO)~hR9-c-1_WmLv(*o=Z`+FX7 zdRZEqq`Xax*Wk(tw0&IF_gJ8?Ojt=@?R32~igqymmYPzbsucXj>vh;_g&C0I6Q z;ULJhRe0)1aFsbAZjDAw!V?GyQB)Vhn~*gr??`|lF_VvKP1H4Si!bmt z&ElD9Z)5;qDXA9jawe)+5DTQ!gRi|K+BUrCzd(ms_RQ;f#<{s(JnA#_El0b9J4ZV*Hy3;qht6r}FuY;Ysq8@=WW zGKfXRRg8}?lP3;vNg0z*av4ixlE%rI67eOFWx zxdJBW?K{NDjK{6hWPK@h{<0*ytJVCbT$nJ9lOw<9X^kgGp<1e(qQj@fI|S*u zQX;TaVL~%;w^<+`kdv-KHv;*cw6{A?J|VGQN?w~Z%!b7xz_3h0-hKiSxJk8 zPSL+6wT=PYmCJy0@fxXLmsI-Ny0a5@#NR4Fg5PNoXRkt3 zt7Z~Cgdm&2r7IK}-eH#VG(5OkrWGg@w(5OWi{ZPXFK?LnI2S>w zw^|P8>`TT!BnX32T(bF%Le{QNG$V}pkh+}}z$b>{A4(u|P*pR(+b39xsN$I6dAEL} zW`_$mG*=wTFbY_&<3FZygpX;ag7PO?lV5~0EKUUs!g$@hm!alCq=LrkR}Hbs&H^rX3Y|_ zGN-JoroP@C>AWNM2uR>=;4HXlXtMCjCD%b{Of1`ePIlo;9#3hhM$+BN1in3cfcWHj#zLQY`!EdjSDZeYh4bOeK=CAob zQQg)H8ed0S+Wo?8b6_`|2$7u8V?vbXqzIK|Xfq@*y%vRboTiq}mtK44;?bFi&=r1! zOZw4k=Vf_+Gz*A%$uUoBe$Pq71jJBIV#h*2yXeiarFQ*vGA)1XO2|od4YkVF;GHYb zN_+N~8(`nI=8(97ulFRl&2$`7Ws9mi2@#9;!R-(h&DydDd1mUDjRI-i)yQfoUh{*e zv-o|JaC{EQevg6#N_2cawV98H4>R>QSu;m1xIRT9{ce{SlYS?F*#Wy-W)*LdVdqT{ z@OsWT-iq2Z%fsN(NBt%CoX+(y$47lvrGWs$sarc&f%zuh!)O$>@i{yHpT8W=h42(Kh z&%EleJqhKlOEl$pYyiahqQPMQGSVFb?h7QP;enQi=%E_ZBYnu(f7X7M-eH9P@-2Y& zs59=i82*pRktJHPZ@+8n^}NK$=bcI;HJ0Zafi*=o8Sz0$yFEpw@Cg<1;V7r<+_5ou@a_@ zpd4ro3f%E5xV4Tm$0p$w-6o)FgS+FIry@@RTD-)Uj3FK6)-JWS1Io*ps~26#<5m#z zYgb$}Q0CS(9d<|{I*dy_FC77B{kR8f)EeH~5qfMO7H9L?j5!pEo zZHzIGvCpkN9O7`DsTPS%7GgxwgJAK@^jz788-Xt_IcI0u26|rB0d_d9>d@T7e}-5R z4k60d5_jb&pO|;wLwB4edqDGrRE#GkW{0C4?{du*2@LQY9sQCQf54a*-$k6#`{cS+;<9&54OQ`A#hpk2V*z^>hG}oO$=LeQw^YBH78^*+r$*=F&(c||qv1xhY(ZPOQIis){PW^QJ}HUN zl3N8lDX=G=4cPr)OL!C8o|zdxcn*{^(aLX#M@?|eMa0%fi^Z7?u4rtQGSl!jxu;=Q z*FbQJ>9LnF%TuLICi@H&g4!q{GlfnpFh*dlw!$au3ZFf_bw(h#TTf7ecox5l1LxK< z{1UVfY=j_cS?uX_U$Mu@yX+?7rM##ad3pPl{4-_VTHJbrJ5<{}Ik&M6Sy~83($pKQ zB+#k{JN8LtNy*G=ID6n zB_m{#de=-pv=Cb&|HVaKppbCt;(R#JHe^1zk3r8@SWr9iq!{U18_ERL4#3idSgK0j zN3Mig>z$tV^5o`_Ild?aI@)>i0tGm7*Qgf^of_cKPiiwf!Or9Or1^J~Ri9!%?3jDm z9jppI?52lXY-|5g=1%u5rdYVD^G%v3T)*E1H<=QyO@C_bE^Xu*c>X0Sx!md>ag3PE zzTW4~cbRcNs%8PHS-TNRVLl1&aN|(C)t+0h^#txlDtum6tai=T7lo^4WVSSUGpzzz zSpZxo$caWr1^FHL8`?qB8b!-n!&*?~8%&CtM3=CeGS`GMqJY*DbH5d-kwQ?JUFB9l z=6LilNPDAVM{0s4QS|ovZ@>TkkG0~&fK}YKv4m@Jy1p$P)y45ZG`SW@nohz_3Qh=q3GFBE0zBekXNr z-=t_;{68ESAU628WzBS!C-b~jd4tUiZU|;hhqrI*?1rOknY!Y*2%c{z?_Ex9ZeDSo z4K$O+VTC?7o}l5OG3Ojigde65c{VfKo>s4x>1e_yj0bD}i1WC!_$U6bpr;su(Nc7Rk~fMo zF{4f@%~bau8?SCZ(9QZo8aqE}hZ|mG*wL?e%aDnQMeYdP=|8~Dy#H}QHw$ulo0Dgq z;5pUZpMjukqvV{XOrEs)BufD)@ijiIrdP|jlYlOSA)SKXDL6rBJQ#I2n3q!KbyZ5i zyA>a8bm1h_ncwLcE6#(Bf@#_r*1>@o=}lp?4E8H}6zq^#oHQ89df8M)MJJX7PtEip z;s8NhiFR{6Ag`^ae*fFYZ$TGFuXJ<7#T6a<=6wrrE{i8Sh=5-x zD{62c$@qY8+#6Jpmq9%r*pdzf{?~*ecP=q`nouN-2%@l((eIdj=KvOw>~2~e1SdQ5 zWQmDC;X8q;!RXbEQ}c<68g@*Mhq3OGDHDl&wW5zc!>etEE zuhin~c7_8oL<79i03Vy0D(s9ijyL`TujOO~@JLpVYaYA!ZgOv1fc*^O9KeJu31j7K zhPOZI@`<;}xG%LH-!Ax0Z2rnHOfx>yA{k^$!(xxcOwR}sTQsv{i{9C&p_N=iZ%Pa1 z8ab`qy2V=oulU`mgf~fgS0m7^Nfp|B-iyk|HbJ0Kh&Br*O_z$DQ zs``G3iYO?2tOd+N&|KR*^uv%=Z^4y2S4y?3FRpOc(D~qfXKdN*)X-A}u_;?4khm1= zY+vaSH}@h?c<;ppMTcdURnPpaU*9jaaa?6gRPsi@UhV*lTQk2a$m~I>C+lsEm^ou2 zlA>Z{{Z1vZ=DWh9C)8VLRV_=>K!0v`UU;UQh$o&>tUGSJa zYn*Kj{p7^4KYjOxeJC@22vt@LR5K@aeupNz5Dc=h;dkSt6Fyo$MSYG@&&#CGcu8nQ zJ6G}MI(-xNKJPKkr>OyBo@Jg>-If^TKpShp#lY__fFm+zFe2C_iK)l~66g15kEHc} z28JRZx%J!k=)~IykoO3gCciVp&hJnJ-!2_lF}-Dd`<*LgBh016{pdG8HRH}=vZ4i0 zfn+*!#oFU#a7IRQy#R3h%5@z%g_wYA&x>APxfVBIw-Gvy5-*dpSwm-fSaAXoW^m0d z#9)T7cICjShR~1xXzJY{|1KgKZW6W>{FHBboMNevWX-UytdqFS2-d z+&KOwHlW4Im=2T%mJV`7CZO^$(vB0QIse)r&g^D$G^99Te!>-bG?|{huDTZxgnF9& z6>Lgk97{fp77e5T8?XaBbw0$9GCc#?YsE*bO9Xe?qi4NuOG3;hQjD+~Z?BqsV8%!O zRxHr4L!wtU`pQAhbkZ)$uc^)nc^m5dU~%cU4-D?nGXfcq3D9YM6I(KI>X(d-rYzZ! zYOW5&Loz|ICUU;lC;~~jW?%02+VMN0A&w9-$;-HY80E@qE(G7#`-|?}rnl&I((K$0 zrrH|AM_{>arnII+L#lH3(-N(CxUwiQW|foQ-+R-t+WAWkWxGn@jZRM+dnS*@=a;BL2}2E>#TJl`ZFT`udffPw`#YA z-uw#|Uby4*_6_l(2|3g5dOf+VeqA{vW(%K&F1cAZkIb8j`6+3(MH;W=)Fa$ti-9}c zMOCD~y!>%B!Ri$+4z_Dr=S9n$K8n+vj=FtAU+mywSpv0e{RPG|!p^Tg5^Io_pvgwl zP!gBF6LY4?#x-KiQ7Kw4nw9}pOZG&nndH5{+H;3=X*USF@b?cy|BAzvEwg+HS#V6* z;@B1GZ;>#%%a#yXB*`Wrm8SFD9`GIq0JN^Z{q}nh*BV=+BcYt0JFn}G$W8nK#~3*0 zWvceZ%fQj`{W4k^Xq~7$YTm2%IcN2^;CH`$Z`OU|3_4E0&ZJ0ASX7KUord*nxr|a1 zKV-TmNQ=Qm3QL=+qHMyrcsj!Nxe$t0@t$8Ion>ID82y@w_RI+6hr-%62e!$HIoCgJ z1;ivszFr(9exP9z7iInDuNG*ao{~_gHvwT+egfi7aDf;*NwD6RDb~I`QUr7UUvt8d zop|BGzVlC~{Plz#0f<{^VcOgX2$;kfu|cG;8f$TO0W|JfzMVgRL})_f$>(r#pqNi3 zXl@9|x(nOe3z0<6t*t5JIE$L1R`k;;We!l|hw)OV(IS%?cP4|c7w|&s09{trmtWil z6C%kOUEhf@#e6ZvrxS?UG`X$J;ugS@f#;C2=z}%>;5fhNwrPhUvKM^hVTXcuX-SS| z0b>&Yli3k*NbIy5(OR2qO8TZf^E+035X$-j_;qaym_q&8urv53uj;3>d_m@a=?GF+ z3qe#^*w5Z0Ha(3MxrKw&j)Sg2SNv|z4@yk``i^1b|8js@dUL&%SkM{k4BbiGGnFs! zsFP?H_xrHISgtl9(6N(hEIOV_uVgb+#FBYOPQEaf>uQ$5hWj@<5YVnfE)ryqEbWCX z2dH>gYKyg06Sdi$#LwqA!uyVn1YYtxV2x|Y8*6)>aG20wl?|<1&K6_jlyLL(0~<71 z7On`pvBZ(i;LPEqX+W=OWEUJo+qHlOW)K5+0G*D4sKTJd;fxCTu)W@__#RP7N?fVV zVJnMq*WE9SB*E?e`CWFKE<`5J)U}-^P0fz*9C-aLwZ$a!_0KWYMDZn8wXn}*(0})j z1?nv7qrBkRE@Let)q3)i_IE_wsh|nX%)8nvk=d^lErBJ%jj9K7?$BQ#{H#ES)f^aM z&~DZt8@X_)<&HkU?{f5%g`kL|AZ7==z56d2?s!Nztv2pIgbR;A{+pN)&~D)AjD!PO zuwgr3_h{JZNBoX?Ue;`X6)f$K6W4^CDVMh$fnu?8AK+5K%9k?AKn`;Dn`J!8DR+DV zQu!wIq2>+n*-QG2ck7^l7pIP4r>AQop+(5m}Flb_C;GmQ%qshA|_a=s?>U4icBaY^&cmkgN za=i58pa1-bDwQe}bP>cWRs}X!gTGa9O3xg(A8Dom%j5kiS2Ggi#Pg?+v0fobI$C@k;mAx{E;M-tD|7#xc%0z#GC#A0`4-9U~b zpC_%E7jw}ZY!bM^83@W6(${YR&TDZfvReKR3%>T?^ZD65^M}=Zq z!wYd59GXkC_tjvMjzkqNFG9sHZx?BNy0h8vg#No1R1LJ+hDlNgimEinPLEcW)7^w% zSBbrX+o5*$i7)vja;isd8BnTd7Pet{5_m>)xmJf>tO0s6E?8#B>@t;DW&iQ<)QTk# zZEWTO3Kd*@FWkLntfh%L&2P=T>?)QtdlOp{4&#I~O2VI)eL%*f{k$Abc7A*J6j>Q6 zC7X783)h6Q=l?8Tv=fD~^pjZJbbj~x?zCsZDs`E=15%O7y)vIKqXBq&MqG^S`D8Jk z{)4Hu7Ti0iZ+9}QX{oAvYE~$R>|)TN4IwL%IUOUY0M4$}Ai8HK92l-7`HLJ-vYwjA zPVikq5_#nayG>*>u&aFk`o*Eo#-xSB;10Eq;v0OJfQHzvaj+K`k}73y8;>1fXPHu# z%NKw{d&55<@p|7fllO~Uy;QD zA3dBFgg;#zZ~(SWgmI0OM(@WrTs(2UY`-!L8qPCR5#3Bitp@q^xCd5Wx&JS0bjN zy25p^EX+#mG3Jsf;z@;iA5KEaWV?`ZoS zA!C34e>+{_y`AZ!zwmc2Z*gjG?@`g;IN$tz>TO(M8@c~Z#0htcc4x;F;QNd6P3%st zaRP5WO+jDyXnFcjXWlM#$C3fmr^P6ww-7b5>c~p+$;}@&ix4`sW&2( zT#yO!EZn`0GN#a_MyPe7=+Xl)z-VwI8u+z9%5|Z;u6Kl)ENeSQ#S$3mk-#JO_Rc61 zru3mVh^lb9uNPdZ{eUQE_BHUobl|SF2~Ywu7vPru{OB4yEqF3~@R7%#7w{*VmNC_a z=US8=f`C?8Su$K~M#2LeZyxM2t$MnnFNa7aVUWndERon*ZWD`PbzY}GoJTl7h@1zK zRN&8kw?;y|9&y)P1^LcH%?ck#xzT2p=zw?}(?-Km;;Q&-RxHZixj>xv zC;`?2D;c}V)mE0XJ$Ic_Do~3GiJUT-cHDo}GziT~TI^Ar)-efGB+8IOt~|~K8t8Ov zgIlzX3JD*886M&?X6@c3x7}!Db{oIx-p`yqyf~ESX=%!0Tp*QRx9piiOAylglZ0s{4ZMRs#qczqr-%8eKLU8sVla4Fhd=V%niaOCR`Y*! zK}}17ZIWeG3@-{%Vk0i}q*LM7rj@8&@&y}PgKqP@*!UY=`11A zq0M;4OFWLo{hgnzS4WBxd;5dLxuQ+63v*h5M+~lH%rP~gFCFD4ayqY^*-s2{iccg7 zHoK2G?Ull%kXFQ^c^kL~B8K1JmuYx6NpL!P@9Z^TjRQZ`|>Q_>`v+?C?VlbN9q|~NS`lWLk^oZW5i}e zbS)}vuO6C$_u7RAtRizX0MKL0)flL}yL%AujHvDYKl)R4*UNwJwV-A3n&dmP?J4zJ zi;Ehs1G#;wV2(Q>c=XW)W?s&w1PdPkqVnz|SmSS!TSZ23AyAkE!Fn=t_A6YB4b|)` z)bX)<7ZRjAZ58zmnTMGw8dIs9a^BN?aSv2M%493Gl04FONmkI)iC$1E>PlCzDT$d& zV7%IE*E@oYLtc)8-chq6wQH|;Zz$4bV3GMm=u2e|h-`p08f21TG)p@DR#VQvwGZEW z-;uk@)?I>3s9tc;p%oor}e)bY&0-a zSGa7sfdP0OnH7XbgUs?Eg*FuxCL(-~sUkQt8dJweXGr};;fmy0FAn<)2%X5XVA0cY zVR+g94P{`;(yfU2v}@DhKXGR0-_Tr;jK|C@bGBhd%@$8LX;qu_IVV>2q^UJ9I~;u$ zzL>0$0G48MY1ZTiH09=6s2m=R8xCL!0WzYfPWWy@VLztx^%bh@UXQ54!49?@ z`>SGhOM9Q$-7dU5)mdnyc9zqB*q6CD_YAZEC?#)>jY$^=3VEt>Z&@DpDF?HSiWB9hLI5uPn&nCo>HaLGBD>U&+pD558o0 z=d`Ahh^>+NnXD~8zJQx;p;VPzYDFf@zIGUK;Xgp@WJ7U%0o!T*Hmz)f{H7^^M`-0P zcfRC_OG;Z1g$s(k7F5X)F6HikbgU=w2XU7jEc@dL1UDEu3nj(v003cge0};dv$ghK z-r?V$`>T4U=JpqcSJoOqnGpT6ezBGpWY*|pyU@|3j0Op@JQn)&1T2S+@<1gr>2ULk z+P`29FmhTgrU;D`c~MQ)s4QLV5u0O~@+qZ>1Ro0^$(ug}UC~$!w2Dg-;=JcwTcFd) z_AOO!NXi^(xJ+Y;_fBrPn%z3sB3_obhBpq5xk=3Sn#i%7o#vCgRJR% zy=d>hv}7hIC-J*!?q|%$gIXKcIaqA-?lbNV`k;hVN9UWC-R(+1**m{JN%rZrcb?|w zNzY@O13eV^v1@%w#0gg#$B_l=>JyfGcVJ5q+O^=r7cIsNdVKzltB$SBwfUCBIc@Tl ziY1BXWK~8?;K&XI(xH45k1e&zVu9Mi&#pl8!BR%cLy43K8gCyL)K-0QsDb2sQUN%1 zoH;fD16WyOTNb5;ir1^S%tF|>3Bz6s>jbs><=$0UMmQN(W&$yCt3oS~5_3t-;lTHo zz@2rPA#7B6-8M}P`?6#{8_vc2@RPb zf|UkNfbBbUz;}kOK%k5$jitXW2u5MtH12f{r{Hz%^3=hP5QNSRtqSZ0A@fI+u(P^@&QF!D5nRRzb}&Z1fn^W51%obg+hX@+?(> zpkic1MXV}!X$k#kH-ny&QdO{y*y_hT2HrAq$-7Uchy1#@Y0ObpfUC=s8N))Vyn4K|4c9wo})?Pg6CygnT93vBSb)<7ACS zbdn2dTDO+YyvzAJTz}E|9S*`c{~3@wV=~_I_8Qr@_ki)+(x+f?7sRR1<=3OSHSAoH zK`QsxSNQ$D2igWvN=JJ1f5rd$c7>bn_?~E6DX^~;4J4Aoq;{H__gYa#+Xi=57hF_S z(#g&uf90NM*>WN#L?I!}VbeJueK*Y>ppjCDYRhy`IB-ojX9cpNby42o$;F9g*0;wf zp`o?u?h8(oTDKdKJS=+w6pe(S(oX@JyOj{#tbl9oH3>~@Dz>>hse7&4!t3=@b{ury zHLN5?zaO|3D#>ce$owa_oG>ntR$%0!p z@Vhm-M~T>q{SpG#+=44{*E=qkoEiLXA?~8}(u?&Cv+9hm0s5w7&b6B1u(U~j7k8QU zs-m9egD*daFD&L{q>89jB&HXLs~(E0$cX6vA`GGfMjx(;+CzFDY*rbtr_9MY94a+3 zI$z+Dj%UNX(I9p>+kH*e(Wb=MkP%0vKXCN8Cgco!1COgyu%X|X`6Y798hNKv(L6g1L3$~bi%VPPMvTpa?!&Rh{vMf)+b&%6Jsb(xfUN!(VH&02y>g-%sM~7NH_lR zDzN3p)YEHcb~hY(+t!6PI)IT@x%rrO?sYOd4D{4Qw1I&((F5)s7#q(;K~pW zw5S61EUZ+5m(kk z%VM+G!RV^UWr^epFf(opKJwM`?^aXJk41{^IB|zbHi;tBN}1%GqPC^J z7d6N1>c=dp!d<=wJWbuZij5|N}!JcvCmsR^%MKhrevay<>(bX`EPFUJdQnPjx$aJC@}h&e%M zY;f0f?sv0ymPw9hI`kCNj$mwT!U_EvBcjv8r0W_u?m-m^zdaF!JcibtcpzxEnv0m- z9axQPmm|jx|?qm?ijp!|wjP=%#agMl3H#_v7!|wolzse$1|x-lE7&-l~L&A!Nj-oD>#xNz5 z0i}3)7KtSQaGjExP&qJGa`ds5qpUB3H9AbiHFW>&Tv%H*y)^<_Jl769NH_#F0uLZ! zL&lyEa_k2rx9Hp! zGfSMCaJ9p(9)AM2FzV=9e|U`4aU+vAp#&Z}QNjkRW~6Z7IbxC-sbr!N?+QgP15~ON z>XpNtPoF%F_K)-Y6IyEXzuAIn0uy!=&&7c?)XJ5=2xC64xh!lz4av4%YxwJPn zc+%r7Wo|IhkBY*WTbVA((BrKRATcr0V2$EZT3e#zHH?HG(g;$9700ENonm%0K$zIi zxYJP_ua;wv)ch`S!Blt=yu`qg*`Y=}OL=d#{Qm(VdxWazUn8mj0000sJOrp z7l`c05yL?;qCpWAmkcD+ous=bGTk#^MC5>gif95M$t?ZKU%j69@_MFwGFgs)_|C0Y zb*t(wb(gyJZnvTTkmrCJ5{*V1qVdiSEACw0YA0{8Z0E<8om{KXYCCIUc4{T~SHu=L z$(EKSjR$fJ511jX_VFn*b;k9E2tF3m}5oJDG?cB;rd-uKRn``OA479Y@nXJbP_O zYa;bk*ByBlZJjDaSMS<7qY0f_R?PMMs;jH31iqK7#0f`O3sSaacP>(hC6e!q$K&;$ zu>5lSvYFqY?E4RGZm7o$eFE&oky2y}_R~$E_bN@=kn%EeUci#MMu@(F4n+EM=^LMU z=I4XjVw>$)=)k91?c}2v*_TL0o+nqbMDAJz5&D_xg@D`a)G?ax?(QDJEZ&4VvHIu+ zCi<9_aQ^DcRcB8yDMPHdv$(vB=pZrXSQzkeRO|xCN~GS4HNF;^0y=RoKOAPd3EP4C~d z{z=djwUY}l^6N-M_Xj+aa%)4KTX*{ysf?J?4R8oYqmBn-c5*{2JfG?eWPAG2)*+yO zMTUQB+0KQaCrlF>60=iFv=P*>1{DXLMa7>t#2dly1ne=vrLEh%dEF~x6`$U;=~X8F zh4O{CgW>s5_w_XTpv}b~;SA_LYeDi%&^42(CDHXMB##P_Zb-ipwi1pud|j<_Rrx}< zR^@|w?btAcMpt-wiUmiFWj($Imv(U>j&|g;xX~m&O@lwRdQNvxN9#eSPV_ zjVnQzlXCb`MO1}lOvNV0OkZtW_udLkp*t(`yEBdzcfO-pc)V>e_%iINCF*FD7lv_$ zkcm73h1dIYJ>LYT)`asR%TC^=v=7Bx&pn{^Pz0JVy-?iLlN+P)ZXr4jyrAtuKJzs4 zPXWd!rsb{i)Vowr$Yt&Te#H=LA3^R;W;aPV6Os<{N4PA3Ux)wyHW6QjQ+Wo39^>){ zLfNV$4#A3%w%U)M2gO+cirUV575jkA=Z(Cd4`XHt_82oQgY2+qyK^FNkSYuz;kzLj z8pvkUGf^zz{6F$j05oWt?o#YSUvJMkBK|c^@NiwJq71RoxXdeIhyz*~vZL{Pifh23 zt#mYV3|dF*tH53o;jegvzC_L*9Z}7BP!e;IM^t$U z)4Jlujeo5WF?>EN0>_20Wqbh+pTd4@z2&aq(FfS&-$ zN#vw5QTaw?6|NI*aTpz1K}3NfHs=G%_ZhlunP{n>58-2?9SftOJQ0(6M5^|nj!>Tv z<1t6u;>W88EE{56N@_uL=(mdJ#TO!a<+(~%fmv1}c~zJXx2WFf1)o%cTlezgyrPU~idsobz909zU+Q#O(Fmn-OMiRi-QE4~khzy6Kgy4#GDb zxoA-ng&xd;7olR*UK+?{HibllC9pi457WXDtaIfT^J#o_QbFlzP#0lu2HDUvDrYI@ zJwssY5z3T0<9Qil=&hQc03ywA41FUkFJv=1Lb|`wVSdc+JPLVTx)b#%-L>md9%*)=8z!^<+a zVndgCm2YFXV#eH^4SGQ#m0F`YCa-U<8TR_hOkUqTLx_;2&?7JY0Ki`jDTW3?4N^UQ^`=yHgbdUI$Df@uCEN zE&m-)Rd^ncJtsK@YagEja3x@$@Nkcu-)`6f~~pjg;dCqm?sM$Y6J z!p7+LH+G7=QFqOIdhqle^n?H1L0wCCOy6~5+ZtIJTP0tgze>InTeb1*?O%W3l%4e8 zDLW>HGvA;ubqvzBA*K6!lY7Lxbkv zyF=s$;8#trq0w1Wg-&fBq|=TaqGk3VH8#mo+R50kaz5?i^B1%X&pHSEQ|AxSgpe4d zb6Q4d#|Ys*PiBw5*p|?&u-B&}%ZITBpxS5cJNbqXg1`F+&k!|un{G6K8@Jh@LjKYs zEDOT&@-QMUuQpZCgA9g}I1f+%714$*{c7BSNn? zPZ8R(H9{*^PjmmiEpjO}%f)nvTwEIA^R9br%BD{|I+d<{Y|7-|;c0a3#wMD9K~T@7 z&EOcQSYCQLF_6vvMP=AXKL*}b$o2djI7k(SDA#q(>A;7^?Bu1u)Q78oBG%gr@*i#V zZ#xaGT-Vff*k^us7cVc|%NG~!t@~)-17GNAnte-O1Krr$I625P(yA@>G_{V%H-w0s z`N`zCz%`ag!I{t;MA}QCQ<26QGLT=tk#Qd@=zL2@hZm6H`sXr~3PN*#X+_^wS_yuT z-gL~u3ywRy^tN{#qH<|@^^FXZ{<`JS`f6!e(ukSD#+UBVNL$$fj59LQTnhN>1Fow#bmrMKN@|SW^Ce^F!e8da~ z%cnJwx}TV%=u<~mSC_h$aph|of)jHy3hPEc!?IKU?THk!>63`*W>eya!?hWy_k4Sp zw@w0$o4w<&)j z*rOp@xIdSEh}_bARN9Qt{135s@^i}fAu`xJz=j-V($8FV0N#h1FCT*;WBs|{E4YN-;a> zeUIyfSz%K;gZ=Y4=q#LGFSD_(aT8c*Z!vLa&6UlX>Dl6uCI-&R3Vm6c3x)m%t zd9h_XyM*a$XyYEpr}pJHV764cXPC4hepSU>=5lmWe?!?I#NNLitb}uy{s+a^$z(D+ z^)xQ#)_3$FdX_^s%TNim;!A39+0rM3hv@@@>R-mtF_%ogFNWf6K@!J~=q zfR5f$>fOM1F#zvD*$7}6TR6a~pcXd&MifpRa!b00960mfEZ(00006NklCHVjV literal 3129 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 From fda742f9d4e488ee83f3fc5fc344dd938cc6e734 Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Sat, 18 Jul 2026 01:54:21 +0300 Subject: [PATCH 04/17] =?UTF-8?q?fix(storage):=20=D0=B7=D0=B0=D1=89=D0=B8?= =?UTF-8?q?=D1=82=D0=B8=D1=82=D1=8C=20=D0=BE=D1=87=D0=B8=D1=81=D1=82=D0=BA?= =?UTF-8?q?=D1=83=20managed-=D0=BA=D0=B0=D1=82=D0=B0=D0=BB=D0=BE=D0=B3?= =?UTF-8?q?=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 45 +++++--- scripts/test-storage-paths.sh | 149 +++++++++++++++++++++++++ scripts/validate-storage-paths.sh | 173 ++++++++++++++++++++++++++++++ 3 files changed, 351 insertions(+), 16 deletions(-) create mode 100755 scripts/test-storage-paths.sh create mode 100755 scripts/validate-storage-paths.sh diff --git a/Makefile b/Makefile index 814d662..14654f7 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ SHELL := bash down status logs log in mysql mysql-user postgres postgres-user sh \ samples-mysql samples-postgres mysql-grants mysql-import check check-mysql-access \ check-postgres-access dump restore clean-mysql clean-postgres clean-all \ - reinit-mysql reinit-postgres reinit-all + reinit-mysql reinit-postgres reinit-all test-storage-paths PROJECT_DIR := $(CURDIR) ENV_FILE_EXAMPLE := .docker.env.example @@ -72,6 +72,7 @@ help: @echo " make check проверить Compose и доступ DB_USER к обеим СУБД" @echo " make samples-mysql скачать optional samples Chinook и Sakila" @echo " make samples-postgres скачать optional samples Pagila и Chinook" + @echo " make test-storage-paths проверить защиту managed storage paths" @echo " make clean-{mysql,postgres,all} CONFIRM=1" @echo " make reinit-{mysql,postgres,all} CONFIRM=1" @@ -97,10 +98,15 @@ check-env: $(ENV_FILE) echo "ERROR: обязательные MYSQL_DATABASE и POSTGRES_DATABASE должны называться demo" >&2; \ exit 1; \ fi; \ - if [[ "$$(realpath -m "$${MYSQL_DATA_DIR}")" == "$$(realpath -m "$${POSTGRES_DATA_DIR}")" ]]; then \ - echo "ERROR: MYSQL_DATA_DIR и POSTGRES_DATA_DIR должны быть разными каталогами" >&2; \ - exit 1; \ - fi + "$(PROJECT_DIR)/scripts/validate-storage-paths.sh" \ + --project-dir "$(PROJECT_DIR)" \ + --mysql-data "$${MYSQL_DATA_DIR}" \ + --postgres-data "$${POSTGRES_DATA_DIR}" \ + --mysql-samples "$${MYSQL_SAMPLES_DIR}" \ + --postgres-samples "$${POSTGRES_SAMPLES_DIR}" + +test-storage-paths: + @./scripts/test-storage-paths.sh init: check-env @echo "Проверяем каталоги, конфигурацию и init-скрипты..." @@ -473,10 +479,15 @@ clean-mysql: check-env @$(LOAD_ENV) \ project_dir_abs="$$(realpath -m "$(PROJECT_DIR)")"; \ data_dir_abs="$$(realpath -m "$${MYSQL_DATA_DIR}")"; \ - case "$${data_dir_abs}" in "$${project_dir_abs}"/*) ;; *) echo "ERROR: MYSQL_DATA_DIR должен находиться внутри проекта: $${data_dir_abs}" >&2; exit 1 ;; esac; \ - data_dir_rel="$$(realpath --relative-to="$${project_dir_abs}" "$${data_dir_abs}")"; \ + data_dir_rel="$${data_dir_abs#"$${project_dir_abs}"/}"; \ echo "🗑️ Удаление только данных MySQL: $${MYSQL_DATA_DIR}"; \ - $(COMPOSE_UI) down --remove-orphans; \ + container_id="$$( $(COMPOSE) ps --all --quiet mysql )"; \ + if [[ -n "$${container_id}" ]]; then \ + echo "⏹️ Остановка и удаление только MySQL..."; \ + $(COMPOSE) rm --stop --force mysql; \ + else \ + echo "Контейнер MySQL отсутствует; останавливать нечего."; \ + fi; \ docker run --rm --user 0:0 --entrypoint sh \ -e DATA_DIR_REL="$${data_dir_rel}" -e HOST_UID="$(HOST_UID)" -e HOST_GID="$(HOST_GID)" \ -v "$${project_dir_abs}:/workspace" "mysql:$${MYSQL_VERSION}" \ @@ -488,10 +499,15 @@ clean-postgres: check-env @$(LOAD_ENV) \ project_dir_abs="$$(realpath -m "$(PROJECT_DIR)")"; \ data_dir_abs="$$(realpath -m "$${POSTGRES_DATA_DIR}")"; \ - case "$${data_dir_abs}" in "$${project_dir_abs}"/*) ;; *) echo "ERROR: POSTGRES_DATA_DIR должен находиться внутри проекта: $${data_dir_abs}" >&2; exit 1 ;; esac; \ - data_dir_rel="$$(realpath --relative-to="$${project_dir_abs}" "$${data_dir_abs}")"; \ + data_dir_rel="$${data_dir_abs#"$${project_dir_abs}"/}"; \ echo "🗑️ Удаление только данных PostgreSQL: $${POSTGRES_DATA_DIR}"; \ - $(COMPOSE_UI) down --remove-orphans; \ + container_id="$$( $(COMPOSE) ps --all --quiet postgres )"; \ + if [[ -n "$${container_id}" ]]; then \ + echo "⏹️ Остановка и удаление только PostgreSQL..."; \ + $(COMPOSE) rm --stop --force postgres; \ + else \ + echo "Контейнер PostgreSQL отсутствует; останавливать нечего."; \ + fi; \ docker run --rm --user 0:0 --entrypoint sh \ -e DATA_DIR_REL="$${data_dir_rel}" -e HOST_UID="$(HOST_UID)" -e HOST_GID="$(HOST_GID)" \ -v "$${project_dir_abs}:/workspace" "postgres:$${POSTGRES_VERSION}" \ @@ -504,11 +520,8 @@ clean-all: check-env project_dir_abs="$$(realpath -m "$(PROJECT_DIR)")"; \ mysql_abs="$$(realpath -m "$${MYSQL_DATA_DIR}")"; \ postgres_abs="$$(realpath -m "$${POSTGRES_DATA_DIR}")"; \ - for data_dir_abs in "$$mysql_abs" "$$postgres_abs"; do \ - case "$$data_dir_abs" in "$${project_dir_abs}"/*) ;; *) echo "ERROR: data-каталоги должны находиться внутри проекта: $$data_dir_abs" >&2; exit 1 ;; esac; \ - done; \ - mysql_rel="$$(realpath --relative-to="$${project_dir_abs}" "$$mysql_abs")"; \ - postgres_rel="$$(realpath --relative-to="$${project_dir_abs}" "$$postgres_abs")"; \ + mysql_rel="$${mysql_abs#"$${project_dir_abs}"/}"; \ + postgres_rel="$${postgres_abs#"$${project_dir_abs}"/}"; \ echo "🗑️ Удаление данных MySQL и PostgreSQL..."; \ $(COMPOSE_UI) down --remove-orphans; \ docker run --rm --user 0:0 --entrypoint sh \ diff --git a/scripts/test-storage-paths.sh b/scripts/test-storage-paths.sh new file mode 100755 index 0000000..cea5300 --- /dev/null +++ b/scripts/test-storage-paths.sh @@ -0,0 +1,149 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +script_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" +validator="$script_dir/validate-storage-paths.sh" +temp_dir="$(mktemp -d)" +project_dir="$temp_dir/project" +outside_dir="$temp_dir/outside" +failures=0 + +cleanup() { + rm -rf -- "$temp_dir" +} +trap cleanup EXIT + +mkdir -p \ + "$project_dir/data/mysql" \ + "$project_dir/data/postgres" \ + "$project_dir/samples/mysql" \ + "$project_dir/samples/postgres" \ + "$outside_dir" + +run_validator() { + local mysql_data="${1-$project_dir/data/mysql}" + local postgres_data="${2-$project_dir/data/postgres}" + local mysql_samples="${3-$project_dir/samples/mysql}" + local postgres_samples="${4-$project_dir/samples/postgres}" + + "$validator" \ + --project-dir "$project_dir" \ + --mysql-data "$mysql_data" \ + --postgres-data "$postgres_data" \ + --mysql-samples "$mysql_samples" \ + --postgres-samples "$postgres_samples" +} + +expect_accept() { + local case_name="$1" + shift + + if ! run_validator "$@" >/dev/null 2>&1; then + printf 'FAIL: positive case %q was rejected\n' "$case_name" >&2 + failures=$((failures + 1)) + fi +} + +expect_reject() { + local case_name="$1" + shift + + if run_validator "$@" >/dev/null 2>&1; then + printf 'FAIL: negative case %q was accepted\n' "$case_name" >&2 + failures=$((failures + 1)) + fi +} + +expect_accept 'default managed paths' +expect_accept 'relative data and sample paths' \ + 'data/mysql' \ + 'data/postgres' \ + 'samples/mysql' \ + 'samples/postgres' +expect_accept 'other names strictly inside their roots' \ + "$project_dir/data/mysql-v2" \ + "$project_dir/data/postgres-v2" \ + "$project_dir/samples/mysql-extra" \ + "$project_dir/samples/postgres-extra" + +fresh_clone_project_dir="$temp_dir/fresh-clone" +mkdir -p "$fresh_clone_project_dir" +if ! "$validator" \ + --project-dir "$fresh_clone_project_dir" \ + --mysql-data 'data/mysql' \ + --postgres-data 'data/postgres' \ + --mysql-samples 'samples/mysql' \ + --postgres-samples 'samples/postgres' \ + >/dev/null 2>&1; then + printf 'FAIL: positive case %q was rejected\n' 'fresh clone without managed directories' >&2 + failures=$((failures + 1)) +fi +if [[ -e "$fresh_clone_project_dir/data" || -e "$fresh_clone_project_dir/samples" ]]; then + printf 'FAIL: validator created managed directories in %q\n' "$fresh_clone_project_dir" >&2 + failures=$((failures + 1)) +fi + +docs_project_dir="$temp_dir/docs/projects/sql-lab" +mkdir -p \ + "$docs_project_dir/data/mysql" \ + "$docs_project_dir/data/postgres" \ + "$docs_project_dir/samples/mysql" \ + "$docs_project_dir/samples/postgres" +if ! "$validator" \ + --project-dir "$docs_project_dir" \ + --mysql-data "$docs_project_dir/data/mysql" \ + --postgres-data "$docs_project_dir/data/postgres" \ + --mysql-samples "$docs_project_dir/samples/mysql" \ + --postgres-samples "$docs_project_dir/samples/postgres" \ + >/dev/null 2>&1; then + printf 'FAIL: positive case %q was rejected\n' 'project under docs/projects/sql-lab' >&2 + failures=$((failures + 1)) +fi + +expect_reject '.git' "$project_dir/.git" +expect_reject '.github' "$project_dir/data/mysql" "$project_dir/data/postgres" "$project_dir/.github" +expect_reject 'project root' "$project_dir" +expect_reject 'data root' "$project_dir/data" +expect_reject 'samples root' "$project_dir/data/mysql" "$project_dir/data/postgres" "$project_dir/samples" +expect_reject 'outside directory' "$outside_dir" +expect_reject 'relative outside directory' '../outside' +expect_reject 'empty path' '' +expect_reject 'filesystem root' '/' + +for reserved_component in .git .github initdb conf adminer backup .tmp docs scripts; do + expect_reject "reserved component $reserved_component" \ + "$project_dir/data/$reserved_component/mysql" +done + +ln -s "$project_dir/data/mysql" "$project_dir/data/mysql-link" +expect_reject 'symlink managed path' "$project_dir/data/mysql-link" + +ln -s "$outside_dir" "$project_dir/data/escape" +expect_reject 'symlink component outside project' "$project_dir/data/escape/nested" + +expect_reject 'same data paths' "$project_dir/data/mysql" "$project_dir/data/mysql" +expect_reject 'nested data paths' "$project_dir/data/mysql" "$project_dir/data/mysql/nested" +expect_reject 'same sample paths' \ + "$project_dir/data/mysql" \ + "$project_dir/data/postgres" \ + "$project_dir/samples/mysql" \ + "$project_dir/samples/mysql" +expect_reject 'nested sample paths' \ + "$project_dir/data/mysql" \ + "$project_dir/data/postgres" \ + "$project_dir/samples/mysql" \ + "$project_dir/samples/mysql/nested" +expect_reject 'sample inside data' \ + "$project_dir/data/mysql" \ + "$project_dir/data/postgres" \ + "$project_dir/data/mysql/sample" +expect_reject 'data inside sample' \ + "$project_dir/samples/mysql/data" \ + "$project_dir/data/postgres" + +if ((failures > 0)); then + printf 'FAIL: %d storage-path test case(s) failed\n' "$failures" >&2 + exit 1 +fi + +printf 'PASS: storage-path validator tests completed\n' diff --git a/scripts/validate-storage-paths.sh b/scripts/validate-storage-paths.sh new file mode 100755 index 0000000..260706a --- /dev/null +++ b/scripts/validate-storage-paths.sh @@ -0,0 +1,173 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +usage() { + cat >&2 <<'USAGE' +Usage: validate-storage-paths.sh \ + --project-dir PATH \ + --mysql-data PATH \ + --postgres-data PATH \ + --mysql-samples PATH \ + --postgres-samples PATH +USAGE +} + +reject() { + local variable_name="$1" + local rejected_path="$2" + local reason="$3" + + printf 'ERROR: %s: rejected path %q (%s)\n' \ + "$variable_name" "$rejected_path" "$reason" >&2 + exit 1 +} + +require_value() { + local variable_name="$1" + local value="$2" + + [[ -n "$value" ]] || reject "$variable_name" "$value" 'path must not be empty' +} + +is_strict_descendant() { + local parent="$1" + local child="$2" + + [[ "$child" == "$parent/"* ]] +} + +contains_reserved_component() { + local managed_path="$1" + local component + local -a components + local -a reserved_components=(.git .github initdb conf adminer backup .tmp docs scripts) + + IFS='/' read -r -a components <<< "$managed_path" + for component in "${components[@]}"; do + case "$component" in + ''|.|..|data|samples) ;; + *) + local reserved + for reserved in "${reserved_components[@]}"; do + [[ "$component" == "$reserved" ]] && return 0 + done + ;; + esac + done + + return 1 +} + +has_symlink_component() { + local path="$1" + local component + local current=/ + local -a components + + IFS='/' read -r -a components <<< "$path" + for component in "${components[@]}"; do + case "$component" in + ''|.) continue ;; + ..) current="$current/.." ;; + *) current="$current/$component" ;; + esac + + [[ -L "$current" ]] && return 0 + done + + return 1 +} + +project_dir='' +mysql_data='' +postgres_data='' +mysql_samples='' +postgres_samples='' + +while (($#)); do + case "$1" in + --project-dir|--mysql-data|--postgres-data|--mysql-samples|--postgres-samples) + (($# >= 2)) || { usage; exit 2; } + case "$1" in + --project-dir) project_dir="$2" ;; + --mysql-data) mysql_data="$2" ;; + --postgres-data) postgres_data="$2" ;; + --mysql-samples) mysql_samples="$2" ;; + --postgres-samples) postgres_samples="$2" ;; + esac + shift 2 + ;; + --help|-h) + usage + exit 0 + ;; + *) + printf 'ERROR: unknown argument: %s\n' "$1" >&2 + usage + exit 2 + ;; + esac +done + +require_value PROJECT_DIR "$project_dir" +require_value MYSQL_DATA_DIR "$mysql_data" +require_value POSTGRES_DATA_DIR "$postgres_data" +require_value MYSQL_SAMPLES_DIR "$mysql_samples" +require_value POSTGRES_SAMPLES_DIR "$postgres_samples" + +project_dir_abs="$(realpath -m -- "$project_dir")" +[[ -d "$project_dir_abs" ]] || reject PROJECT_DIR "$project_dir" 'project directory does not exist' + +data_root="$project_dir_abs/data" +samples_root="$project_dir_abs/samples" + +variable_names=(MYSQL_DATA_DIR POSTGRES_DATA_DIR MYSQL_SAMPLES_DIR POSTGRES_SAMPLES_DIR) +raw_paths=("$mysql_data" "$postgres_data" "$mysql_samples" "$postgres_samples") +allowed_roots=("$data_root" "$data_root" "$samples_root" "$samples_root") +resolved_paths=() + +for index in "${!variable_names[@]}"; do + variable_name="${variable_names[$index]}" + raw_path="${raw_paths[$index]}" + allowed_root="${allowed_roots[$index]}" + + if [[ "$raw_path" == /* ]]; then + path_to_inspect="$raw_path" + else + path_to_inspect="$project_dir_abs/$raw_path" + fi + + if has_symlink_component "$path_to_inspect"; then + reject "$variable_name" "$raw_path" 'managed path contains a symbolic-link component' + fi + + resolved_path="$(realpath -m -- "$path_to_inspect")" + if ! is_strict_descendant "$allowed_root" "$resolved_path"; then + reject "$variable_name" "$raw_path" "must be strictly inside $allowed_root" + fi + + managed_path="${resolved_path#"$project_dir_abs"/}" + if contains_reserved_component "$managed_path"; then + reject "$variable_name" "$raw_path" 'managed path contains a reserved component' + fi + + resolved_paths[$index]="$resolved_path" +done + +for ((left = 0; left < ${#resolved_paths[@]}; left++)); do + for ((right = left + 1; right < ${#resolved_paths[@]}; right++)); do + left_path="${resolved_paths[$left]}" + right_path="${resolved_paths[$right]}" + + if [[ "$left_path" == "$right_path" ]]; then + reject "${variable_names[$left]}" "${raw_paths[$left]}" \ + "must not match ${variable_names[$right]}" + fi + + if is_strict_descendant "$left_path" "$right_path" || \ + is_strict_descendant "$right_path" "$left_path"; then + reject "${variable_names[$left]}" "${raw_paths[$left]}" \ + "must not be nested with ${variable_names[$right]}" + fi + done +done From 4aa6a63fe6f7c9592a0780cff7c2d463c7a2b3a9 Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Sat, 18 Jul 2026 12:03:24 +0300 Subject: [PATCH 05/17] =?UTF-8?q?chore(release):=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D1=82=D1=8C=20=D0=BB=D0=B8=D1=86=D0=B5=D0=BD?= =?UTF-8?q?=D0=B7=D0=B8=D0=B8=20=D0=B8=20provenance=20samples?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- LICENSE.md | 21 ++++++++ Makefile | 37 ++++++++++++- README.md | 10 ++-- THIRD_PARTY_NOTICES.md | 119 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 182 insertions(+), 5 deletions(-) create mode 100644 LICENSE.md create mode 100644 THIRD_PARTY_NOTICES.md diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..2a42bf8 --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2025-2026 Aleksandr Yurchenko + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/Makefile b/Makefile index 14654f7..75d29e5 100644 --- a/Makefile +++ b/Makefile @@ -32,9 +32,14 @@ COMPOSE_UI = $(COMPOSE) --profile ui MYSQL_SAMPLES_TMP_DIR := .tmp/mysql-samples SAKILA_URL := https://downloads.mysql.com/docs/sakila-db.zip +SAKILA_SHA256 := c2ecb3dec28d752241ccfca02974ba970de3c3fc5d98887fd3f9d5843f946672 POSTGRES_SAMPLES_TMP_DIR := .tmp/postgres-samples PAGILA_REF := 5ba5a57aeb159f75f02aca2432d3c262186d13d3 PAGILA_BASE_URL := https://raw.githubusercontent.com/devrimgunduz/pagila/$(PAGILA_REF) +PAGILA_LICENSE_URL := $(PAGILA_BASE_URL)/LICENSE.txt +PAGILA_LICENSE_BLOB := c6078c708c6f55b56e24f3687c591ca12df567ca +PAGILA_SCHEMA_BLOB := 23718a3adef90ced002e19ad4e1ac98d22aa5870 +PAGILA_DATA_BLOB := b7c016861fd0f84008645153c6a1d9e5a99b9cc6 CHINOOK_REF := 4a944a942426e1f3263fe539155fb7ef92b04b4a CHINOOK_BASE_URL := https://raw.githubusercontent.com/lerocha/chinook-database/$(CHINOOK_REF) CHINOOK_LICENSE_URL := $(CHINOOK_BASE_URL)/LICENSE.md @@ -260,6 +265,7 @@ samples-mysql: check-env @command -v curl >/dev/null || { echo "ERROR: требуется curl" >&2; exit 1; } @command -v unzip >/dev/null || { echo "ERROR: требуется unzip" >&2; exit 1; } @command -v git >/dev/null || { echo "ERROR: требуется git для проверки Git blob SHA" >&2; exit 1; } + @command -v sha256sum >/dev/null || { echo "ERROR: требуется sha256sum" >&2; exit 1; } @set -Eeuo pipefail; $(LOAD_ENV) \ tmp_root="$(MYSQL_SAMPLES_TMP_DIR)"; \ download_dir="$${tmp_root}/download"; \ @@ -296,6 +302,7 @@ samples-mysql: check-env "$(CHINOOK_MYSQL_URL)" -o "$${download_dir}/Chinook_MySql.sql"; \ curl --fail --location --retry 3 --retry-all-errors --connect-timeout 15 --max-time 180 \ "$(SAKILA_URL)" -o "$${download_dir}/sakila-db.zip"; \ + echo "$(SAKILA_SHA256) $${download_dir}/sakila-db.zip" | sha256sum --check --status || { echo "ERROR: неожиданный SHA-256 sakila-db.zip" >&2; exit 1; }; \ test "$$(git hash-object --no-filters "$${download_dir}/LICENSE.md")" = "$(CHINOOK_LICENSE_BLOB)" || { echo "ERROR: неожиданный Git blob SHA LICENSE.md" >&2; exit 1; }; \ test "$$(git hash-object --no-filters "$${download_dir}/Chinook_MySql.sql")" = "$(CHINOOK_MYSQL_BLOB)" || { echo "ERROR: неожиданный Git blob SHA Chinook_MySql.sql" >&2; exit 1; }; \ test -s "$${download_dir}/LICENSE.md" || { echo "ERROR: LICENSE.md пуст" >&2; exit 1; }; \ @@ -331,6 +338,10 @@ samples-mysql: check-env sakila_data_source="$$(find "$${download_dir}/sakila" -type f -name sakila-data.sql -print -quit)"; \ test -n "$$sakila_schema_source" || { echo "ERROR: архив Sakila не содержит sakila-schema.sql" >&2; exit 1; }; \ test -n "$$sakila_data_source" || { echo "ERROR: архив Sakila не содержит sakila-data.sql" >&2; exit 1; }; \ + for sakila_source in "$$sakila_schema_source" "$$sakila_data_source"; do \ + grep -Fq 'Redistribution and use in source and binary forms' "$$sakila_source" || { echo "ERROR: в $${sakila_source} отсутствует ожидаемый New BSD notice" >&2; exit 1; }; \ + grep -Fq 'THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS' "$$sakila_source" || { echo "ERROR: в $${sakila_source} отсутствует ожидаемый New BSD disclaimer" >&2; exit 1; }; \ + done; \ cp "$$sakila_schema_source" "$${ready_dir}/020_sakila_schema.sql"; \ cp "$$sakila_data_source" "$${ready_dir}/021_sakila_data.sql"; \ if [[ -f "$${target_dir}/.gitkeep" ]]; then cp "$${target_dir}/.gitkeep" "$${ready_dir}/.gitkeep"; else touch "$${ready_dir}/.gitkeep"; fi; \ @@ -382,10 +393,16 @@ samples-postgres: check-env "$(PAGILA_BASE_URL)/pagila-schema.sql" -o "$${download_dir}/pagila-schema.sql"; \ curl --fail --location --retry 3 --retry-all-errors --connect-timeout 15 --max-time 180 \ "$(PAGILA_BASE_URL)/pagila-data.sql" -o "$${download_dir}/pagila-data.sql"; \ + curl --fail --location --retry 3 --retry-all-errors --connect-timeout 15 --max-time 180 \ + "$(PAGILA_LICENSE_URL)" -o "$${download_dir}/LICENSE.pagila.txt"; \ curl --fail --location --retry 3 --retry-all-errors --connect-timeout 15 --max-time 180 \ "$(CHINOOK_LICENSE_URL)" -o "$${download_dir}/LICENSE.md"; \ curl --fail --location --retry 3 --retry-all-errors --connect-timeout 15 --max-time 180 \ "$(CHINOOK_POSTGRES_URL)" -o "$${download_dir}/Chinook_PostgreSql.sql"; \ + test "$$(git hash-object --no-filters "$${download_dir}/LICENSE.pagila.txt")" = "$(PAGILA_LICENSE_BLOB)" || { echo "ERROR: неожиданный Git blob SHA Pagila LICENSE.txt" >&2; exit 1; }; \ + test "$$(git hash-object --no-filters "$${download_dir}/pagila-schema.sql")" = "$(PAGILA_SCHEMA_BLOB)" || { echo "ERROR: неожиданный Git blob SHA pagila-schema.sql" >&2; exit 1; }; \ + test "$$(git hash-object --no-filters "$${download_dir}/pagila-data.sql")" = "$(PAGILA_DATA_BLOB)" || { echo "ERROR: неожиданный Git blob SHA pagila-data.sql" >&2; exit 1; }; \ + test -s "$${download_dir}/LICENSE.pagila.txt" || { echo "ERROR: Pagila LICENSE.txt пуст" >&2; exit 1; }; \ test -s "$${download_dir}/pagila-schema.sql" || { echo "ERROR: pagila-schema.sql пуст" >&2; exit 1; }; \ test -s "$${download_dir}/pagila-data.sql" || { echo "ERROR: pagila-data.sql пуст" >&2; exit 1; }; \ grep -Fq 'CREATE TABLE public.actor' "$${download_dir}/pagila-schema.sql" || { echo "ERROR: в schema нет таблицы actor" >&2; exit 1; }; \ @@ -411,8 +428,24 @@ samples-postgres: check-env test "$$(grep -Fxc "$${expected_line}" "$${chinook_source}" || true)" = 1 || { echo "ERROR: неожиданный формат database-level строки: $${expected_line}" >&2; exit 1; }; \ done; \ test "$$(awk 'BEGIN { in_comment = 0; count = 0 } { upper = toupper($$0) } /^[[:space:]]*\/\*/ { in_comment = 1 } !in_comment && (upper ~ /^[[:space:]]*(DROP|CREATE)[[:space:]]+DATABASE/ || upper ~ /^[[:space:]]*\\(C|CONNECT)([[:space:]]|$$)/) { count++ } /\*\// { in_comment = 0 } END { print count }' "$${chinook_source}")" = 3 || { echo "ERROR: Chinook PostgreSQL содержит неожиданные database-level statements" >&2; exit 1; }; \ - cp "$${download_dir}/pagila-schema.sql" "$${ready_dir}/010_pagila_schema.sql"; \ - cp "$${download_dir}/pagila-data.sql" "$${ready_dir}/020_pagila_data.sql"; \ + sed 's/\r$$//' "$${download_dir}/LICENSE.pagila.txt" > "$${download_dir}/LICENSE.pagila.normalized.txt"; \ + { \ + echo '-- Pagila license notice (upstream LICENSE.txt):'; \ + sed 's/^/-- /' "$${download_dir}/LICENSE.pagila.normalized.txt"; \ + echo; \ + cat "$${download_dir}/pagila-schema.sql"; \ + } > "$${ready_dir}/010_pagila_schema.sql"; \ + { \ + echo '-- Pagila license notice (upstream LICENSE.txt):'; \ + sed 's/^/-- /' "$${download_dir}/LICENSE.pagila.normalized.txt"; \ + echo; \ + cat "$${download_dir}/pagila-data.sql"; \ + } > "$${ready_dir}/020_pagila_data.sql"; \ + while IFS= read -r license_line || [[ -n "$${license_line}" ]]; do \ + for pagila_ready_file in "$${ready_dir}/010_pagila_schema.sql" "$${ready_dir}/020_pagila_data.sql"; do \ + grep -Fxq -- "-- $${license_line}" "$${pagila_ready_file}" || { echo "ERROR: Pagila notice перенесён не полностью в $${pagila_ready_file}" >&2; exit 1; }; \ + done; \ + done < "$${download_dir}/LICENSE.pagila.normalized.txt"; \ { \ echo '-- Chinook Database MIT license notice (upstream LICENSE.md):'; \ sed 's/^/-- /' "$${download_dir}/LICENSE.normalized.md"; \ diff --git a/README.md b/README.md index a4ada5a..4162945 100644 --- a/README.md +++ b/README.md @@ -295,8 +295,11 @@ PostgreSQL entrypoint читает `/docker-entrypoint-initdb.d` лишь при на immutable commit [`5ba5a57aeb159f75f02aca2432d3c262186d13d3`](https://github.com/devrimgunduz/pagila/commit/5ba5a57aeb159f75f02aca2432d3c262186d13d3). Загружаются только `pagila-schema.sql` и COPY-вариант `pagila-data.sql`; -альтернативный insert-файл не используется. Pagila распространяется по -PostgreSQL License. +альтернативный insert-файл не используется. Точный текст `LICENSE.txt` +закреплённой ревизии проверяется по Git blob SHA и переносится в оба +подготовленных SQL-файла. Upstream README называет лицензию PostgreSQL License; +полный notice и provenance приведены в +[`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). Проверенная ревизия Pagila использует схему `public`, стандартные PL/pgSQL-функции и `COPY FROM stdin`; дополнительных extensions, пакетов или @@ -548,4 +551,5 @@ samples/postgres/*.sql Автор: **Александр Юрченко** -Лицензия: MIT +Лицензия проекта: [MIT](LICENSE.md). Условия сторонних optional samples: +[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md new file mode 100644 index 0000000..9b20573 --- /dev/null +++ b/THIRD_PARTY_NOTICES.md @@ -0,0 +1,119 @@ +# Third-Party Notices + +SQL Lab itself is licensed under the MIT License in [`LICENSE.md`](LICENSE.md). + +The optional sample databases described below are third-party works with their +own license terms. Their SQL files are downloaded locally by explicit +`make samples-*` commands and are excluded from Git. They are not relicensed +under the SQL Lab license. + +## Chinook Database + +- Upstream: `lerocha/chinook-database` +- Pinned revision: + `4a944a942426e1f3263fe539155fb7ef92b04b4a` +- Files used: + - `ChinookDatabase/DataSources/Chinook_MySql.sql` + - `ChinookDatabase/DataSources/Chinook_PostgreSql.sql` + - `LICENSE.md` +- Integrity: + - license Git blob: + `7487a9edc2d42e50d7a38ab1fbdba33ac63230f7` + - MySQL SQL Git blob: + `cdbd482f1be7fde54644480ec7c794ff2764b109` + - PostgreSQL SQL Git blob: + `d93a20d08239ac6bdd8a56601e148f5d4d048593` + +The complete upstream license notice is inserted into each locally prepared +Chinook SQL file. + +### Chinook license notice + +Chinook Database + +Copyright (c) 2008-2024 Luis Rocha + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## Pagila + +- Upstream: `devrimgunduz/pagila` +- Pinned revision: + `5ba5a57aeb159f75f02aca2432d3c262186d13d3` +- Files used: + - `pagila-schema.sql` + - `pagila-data.sql` + - `LICENSE.txt` +- Integrity: + - license Git blob: + `c6078c708c6f55b56e24f3687c591ca12df567ca` + - schema Git blob: + `23718a3adef90ced002e19ad4e1ac98d22aa5870` + - data Git blob: + `b7c016861fd0f84008645153c6a1d9e5a99b9cc6` + +The pinned upstream README describes Pagila as being available under the +PostgreSQL License, while the pinned `LICENSE.txt` contains the permission text +reproduced below. SQL Lab preserves that exact upstream text without assigning +a different SPDX identifier. The complete notice is inserted into both locally +prepared Pagila SQL files. + +### Pagila license notice + +Copyright (c) Devrim Gündüz + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies +of the Software, and to permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +## Sakila Sample Database + +- Official archive: + `https://downloads.mysql.com/docs/sakila-db.zip` +- Verified archive SHA-256: + `c2ecb3dec28d752241ccfca02974ba970de3c3fc5d98887fd3f9d5843f946672` +- Files used: + - `sakila-schema.sql` + - `sakila-data.sql` +- Official license reference: + `https://dev.mysql.com/doc/sakila/en/sakila-license.html` + +MySQL states that `sakila-schema.sql` and `sakila-data.sql` are licensed under +the New BSD license. Other materials in the distribution are not covered by +that open license. + +SQL Lab extracts only those two SQL files. It does not publish the Sakila +documentation or `sakila.mwb`. Before extraction, the archive SHA-256 is +verified. Both SQL files must contain the expected New BSD notice and +disclaimer, and they are copied without modifying their embedded copyright and +license text. From fbb6a13892daabf0270bd5fbe4bd655a1b57345a Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Sat, 18 Jul 2026 16:44:10 +0300 Subject: [PATCH 06/17] =?UTF-8?q?feat(import):=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20=D0=B8=D0=BC=D0=BF=D0=BE=D1=80=D1=82?= =?UTF-8?q?=20=D0=B4=D0=BE=D0=B2=D0=B5=D1=80=D0=B5=D0=BD=D0=BD=D1=8B=D1=85?= =?UTF-8?q?=20SQL-=D1=84=D0=B0=D0=B9=D0=BB=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 48 +++++++++++++++++++++++++++++++++++++++++------- README.md | 35 ++++++++++++++++++++++++++++++++++- 2 files changed, 75 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 75d29e5..869b071 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ SHELL := bash .PHONY: help init check-env pull config up up-no-ui up-mysql up-mysql-ui \ up-postgres up-postgres-ui up-ui down-ui wait-mysql wait-postgres \ down status logs log in mysql mysql-user postgres postgres-user sh \ - samples-mysql samples-postgres mysql-grants mysql-import check check-mysql-access \ + samples-mysql samples-postgres mysql-grants mysql-import postgres-import check check-mysql-access \ check-postgres-access dump restore clean-mysql clean-postgres clean-all \ reinit-mysql reinit-postgres reinit-all test-storage-paths @@ -78,6 +78,8 @@ help: @echo " make samples-mysql скачать optional samples Chinook и Sakila" @echo " make samples-postgres скачать optional samples Pagila и Chinook" @echo " make test-storage-paths проверить защиту managed storage paths" + @echo " make mysql-import FILE=... DATABASE=... импортировать доверенный text SQL в MySQL" + @echo " make postgres-import FILE=... DATABASE=... импортировать доверенный text SQL в PostgreSQL" @echo " make clean-{mysql,postgres,all} CONFIRM=1" @echo " make reinit-{mysql,postgres,all} CONFIRM=1" @@ -476,14 +478,46 @@ samples-postgres: check-env mysql-grants: wait-mysql $(COMPOSE) exec -T mysql /docker-entrypoint-initdb.d/090_grant_training_access.sh -mysql-import: wait-mysql - @test -n "$(FILE)" || { echo "ERROR: укажите FILE=path/to/database.sql" >&2; exit 1; } - @test -f "$(FILE)" || { echo "ERROR: файл $(FILE) не найден" >&2; exit 1; } - @echo "Импортируем $(FILE) от имени root..." - $(COMPOSE) exec -T mysql sh -c 'MYSQL_PWD="$$MYSQL_ROOT_PASSWORD" mysql -uroot' < "$(FILE)" - @$(MAKE) --no-print-directory mysql-grants +mysql-import: + @set -Eeuo pipefail; \ + if [[ -z "$${FILE:-}" ]]; then echo "ERROR: укажите FILE=path/to/file.sql" >&2; exit 1; fi; \ + if [[ -z "$${DATABASE:-}" ]]; then echo "ERROR: укажите DATABASE=database_name" >&2; exit 1; fi; \ + if [[ ! -f "$${FILE}" || ! -r "$${FILE}" || ! -s "$${FILE}" ]]; then echo "ERROR: FILE должен быть существующим читаемым непустым обычным файлом" >&2; exit 1; fi; \ + if [[ ! "$${DATABASE}" =~ ^[a-z][a-z0-9_]{0,62}$$ ]]; then echo "ERROR: недопустимое имя MySQL database: $${DATABASE}" >&2; exit 1; fi; \ + case "$${DATABASE}" in mysql|information_schema|performance_schema|sys) echo "ERROR: импорт в системную MySQL database запрещён: $${DATABASE}" >&2; exit 1 ;; esac + @$(MAKE) --no-print-directory wait-mysql + @set -Eeuo pipefail; \ + $(LOAD_ENV) \ + if ! $(COMPOSE) exec -T -e IMPORT_DATABASE="$${DATABASE}" mysql sh -c 'MYSQL_PWD="$$DB_PASSWORD" exec mysql --host=127.0.0.1 --user="$$DB_USER" --batch --skip-column-names "$$IMPORT_DATABASE" --execute "SELECT 1;"' >/dev/null; then \ + echo "ERROR: DB_USER cannot connect to MySQL database $${DATABASE}; import was not started" >&2; exit 1; \ + fi; \ + echo "Импортируем $${FILE} в MySQL database $${DATABASE} от имени DB_USER..."; \ + $(COMPOSE) exec -T -e IMPORT_DATABASE="$${DATABASE}" mysql sh -c 'MYSQL_PWD="$$DB_PASSWORD" exec mysql --host=127.0.0.1 --user="$$DB_USER" --binary-mode=1 "$$IMPORT_DATABASE"' < "$${FILE}"; \ + if ! $(COMPOSE) exec -T -e IMPORT_DATABASE="$${DATABASE}" mysql sh -c 'MYSQL_PWD="$$DB_PASSWORD" exec mysql --host=127.0.0.1 --user="$$DB_USER" --batch --skip-column-names "$$IMPORT_DATABASE" --execute "SELECT 1;"' >/dev/null; then \ + echo "ERROR: DB_USER cannot reconnect to MySQL database $${DATABASE} after import" >&2; exit 1; \ + fi @$(MAKE) --no-print-directory check-mysql-access +postgres-import: + @set -Eeuo pipefail; \ + if [[ -z "$${FILE:-}" ]]; then echo "ERROR: укажите FILE=path/to/file.sql" >&2; exit 1; fi; \ + if [[ -z "$${DATABASE:-}" ]]; then echo "ERROR: укажите DATABASE=database_name" >&2; exit 1; fi; \ + if [[ ! -f "$${FILE}" || ! -r "$${FILE}" || ! -s "$${FILE}" ]]; then echo "ERROR: FILE должен быть существующим читаемым непустым обычным файлом" >&2; exit 1; fi; \ + if [[ ! "$${DATABASE}" =~ ^[a-z][a-z0-9_]{0,62}$$ ]]; then echo "ERROR: недопустимое имя PostgreSQL database: $${DATABASE}" >&2; exit 1; fi; \ + case "$${DATABASE}" in postgres|template0|template1) echo "ERROR: импорт в системную PostgreSQL database запрещён: $${DATABASE}" >&2; exit 1 ;; esac + @$(MAKE) --no-print-directory wait-postgres + @set -Eeuo pipefail; \ + $(LOAD_ENV) \ + if ! $(COMPOSE) exec -T -e IMPORT_DATABASE="$${DATABASE}" postgres sh -c 'PGPASSWORD="$$DB_PASSWORD" exec psql --host=127.0.0.1 --username="$$DB_USER" --dbname="$$IMPORT_DATABASE" --no-psqlrc --set=ON_ERROR_STOP=1 --command="SELECT 1;"' >/dev/null; then \ + echo "ERROR: DB_USER cannot connect to PostgreSQL database $${DATABASE}; import was not started" >&2; exit 1; \ + fi; \ + echo "Импортируем $${FILE} в PostgreSQL database $${DATABASE} от имени DB_USER..."; \ + $(COMPOSE) exec -T -e IMPORT_DATABASE="$${DATABASE}" postgres sh -c 'PGPASSWORD="$$DB_PASSWORD" exec psql --host=127.0.0.1 --username="$$DB_USER" --dbname="$$IMPORT_DATABASE" --no-psqlrc --set=ON_ERROR_STOP=1 --file=-' < "$${FILE}"; \ + if ! $(COMPOSE) exec -T -e IMPORT_DATABASE="$${DATABASE}" postgres sh -c 'PGPASSWORD="$$DB_PASSWORD" exec psql --host=127.0.0.1 --username="$$DB_USER" --dbname="$$IMPORT_DATABASE" --no-psqlrc --set=ON_ERROR_STOP=1 --command="SELECT 1;"' >/dev/null; then \ + echo "ERROR: DB_USER cannot reconnect to PostgreSQL database $${DATABASE} after import" >&2; exit 1; \ + fi + @$(MAKE) --no-print-directory check-postgres-access + check-mysql-access: wait-mysql $(COMPOSE) exec -T mysql /docker-entrypoint-initdb.d/099_check_training_access.sh diff --git a/README.md b/README.md index 4162945..0961f22 100644 --- a/README.md +++ b/README.md @@ -513,9 +513,42 @@ make reinit-all CONFIRM=1 | `make wait-mysql` | Дождаться MySQL | | `make wait-postgres` | Дождаться PostgreSQL | | `make mysql-grants` | Повторно применить MySQL grants | -| `make mysql-import FILE=...` | Импортировать MySQL dump, применить grants и проверить доступ | +| `make mysql-import FILE=... DATABASE=...` | Импортировать доверенный text SQL в существующую MySQL-базу от `DB_USER` | +| `make postgres-import FILE=... DATABASE=...` | Импортировать доверенный text SQL в существующую PostgreSQL-базу от `DB_USER` | | `make dump` / `make restore` | Создать / восстановить backup MySQL `demo` | +## Импорт доверенных SQL-файлов + +Поддерживаются обычные локальные текстовые SQL-файлы. Архивы, gzip и +PostgreSQL custom-format backups этими командами не обрабатываются. + +Для обеих СУБД обязательны `FILE` и `DATABASE`: + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +Файл должен существовать, быть читаемым и непустым. Имя базы должно начинаться +со строчной латинской буквы и содержать только строчные латинские буквы, цифры +и `_`. Системные базы запрещены. + +Указанная база должна уже существовать, а `DB_USER` должен иметь возможность +подключиться к ней. Импорт выполняется от `DB_USER`, а не от MySQL root или +PostgreSQL superuser. Команды не создают и не пересоздают базу, не удаляют её +автоматически и не применяют административные grants. + +Используйте эти цели только для доверенных SQL-файлов. `DATABASE` задаёт базу +подключения по умолчанию, но не создаёт изолированный sandbox. SQL может +обращаться к другим доступным объектам и базам через qualified names, смену +подключения или клиентские команды, если это разрешено фактическими правами +`DB_USER`. + +Импорт может изменить или удалить доступные пользователю объекты и данные. +Полный rollback при ошибке не гарантируется: часть команд может успеть +выполниться. Перед важным импортом создайте backup и предварительно проверьте +содержимое файла. + ## Структура данных и Git Данные СУБД разделены: From 1e8723a5bf1ee2ee35a436561499fabe9e5aae5a Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Sun, 19 Jul 2026 16:59:56 +0300 Subject: [PATCH 07/17] =?UTF-8?q?docs(mysql):=20=D0=B0=D0=BA=D1=82=D1=83?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D1=88=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=20=D1=83=D1=87?= =?UTF-8?q?=D0=B5=D0=B1=D0=BD=D0=BE=D0=B9=20=D0=B1=D0=B0=D0=B7=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mysql/030_training_database.sql.example | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/initdb/mysql/030_training_database.sql.example b/initdb/mysql/030_training_database.sql.example index 29b8f2f..398c496 100644 --- a/initdb/mysql/030_training_database.sql.example +++ b/initdb/mysql/030_training_database.sql.example @@ -22,51 +22,50 @@ -- При чистой инициализации порядок будет таким: -- -- 001_demo.sql --- 050_load_optional_samples.sh -- 030_shop.sql +-- 050_load_optional_samples.sh -- 090_grant_training_access.sh -- 099_check_training_access.sh -- --- Grant-скрипт обнаружит новую базу shop автоматически. +-- Grant-скрипт обнаружит новую пользовательскую базу shop и выдаст +-- учебному пользователю доступ к ней во время чистой инициализации. -- -- ============================================================================ -- Вариант 2. Добавить базу в уже работающий MySQL без удаления данных -- ============================================================================ -- --- Подготовьте файл: +-- Административно создайте новую базу отдельно, затем примените grants: -- --- cp initdb/mysql/030_training_database.sql.example initdb/mysql/030_shop.sql +-- make mysql-grants -- --- Отредактируйте его и выполните: +-- Подготовьте доверенный plain SQL-файл со схемой и данными для уже созданной +-- базы shop. В нём не должно быть CREATE DATABASE и USE. -- --- make mysql-import FILE=initdb/mysql/030_shop.sql +-- Выполните импорт: -- --- Команда: +-- make mysql-import FILE=/path/to/shop.sql DATABASE=shop -- --- 1. импортирует SQL от имени root; --- 2. повторно выдаст DB_USER права на все учебные базы; --- 3. проверит доступ учебного пользователя. +-- mysql-import требует FILE и DATABASE, выполняет импорт от имени DB_USER, +-- не создаёт базу и не выдаёт grants, а после импорта запускает проверку +-- доступа учебного пользователя. -- -- ============================================================================ -- Вариант 3. Добавить сторонний SQL dump -- ============================================================================ -- --- Если dump уже содержит: +-- Сторонний dump нужно привести к форме schema/data-only без database-level +-- directives (CREATE DATABASE и USE), а административное создание или +-- восстановление базы выполнить отдельно от mysql-import. -- --- CREATE DATABASE ... --- USE ... +-- mysql-import предназначен для доверенного plain SQL внутри уже +-- существующей базы; он не является sandbox для недоверенного SQL. -- --- его можно импортировать напрямую: +-- Например, если dump содержит: -- --- make mysql-import FILE=/path/to/database.sql --- --- Если dump содержит только CREATE TABLE / INSERT, добавьте в начало: --- --- CREATE DATABASE IF NOT EXISTS `shop` --- CHARACTER SET utf8mb4 --- COLLATE utf8mb4_0900_ai_ci; +-- CREATE DATABASE ... +-- USE ... -- --- USE `shop`; +-- удалите эти директивы перед импортом. -- -- ============================================================================ -- Вариант 4. Разделить схему и данные на несколько файлов @@ -78,7 +77,8 @@ -- initdb/mysql/031_shop_data.sql -- -- Главное требование: оба файла должны выполняться раньше --- 090_grant_training_access.sh. +-- 050_load_optional_samples.sh, 090_grant_training_access.sh и +-- 099_check_training_access.sh. -- -- ============================================================================ -- Пример содержимого учебной базы From 13268c607907440a83b43bee77f1a65696b1a883 Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Sun, 19 Jul 2026 18:35:04 +0300 Subject: [PATCH 08/17] =?UTF-8?q?test(ci):=20=D0=BF=D1=80=D0=BE=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D0=B8=D1=82=D1=8C=20storage=20paths=20=D0=B8=20SQL?= =?UTF-8?q?=20imports?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/sql-lab-check.yml | 6 ++ Makefile | 6 +- scripts/test-sql-imports.sh | 151 ++++++++++++++++++++++++++++ 3 files changed, 162 insertions(+), 1 deletion(-) create mode 100755 scripts/test-sql-imports.sh diff --git a/.github/workflows/sql-lab-check.yml b/.github/workflows/sql-lab-check.yml index 3ed8832..4184281 100644 --- a/.github/workflows/sql-lab-check.yml +++ b/.github/workflows/sql-lab-check.yml @@ -27,6 +27,9 @@ jobs: docker --version docker compose version + - name: Test managed storage path validation + run: make test-storage-paths + - name: Initialize environment run: make init @@ -39,6 +42,9 @@ jobs: - name: Check complete database stand run: make check + - name: Smoke-test trusted SQL imports + run: make test-sql-imports + - name: Confirm databases are running without Adminer run: | set -Eeuo pipefail diff --git a/Makefile b/Makefile index 869b071..743a813 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ SHELL := bash down status logs log in mysql mysql-user postgres postgres-user sh \ samples-mysql samples-postgres mysql-grants mysql-import postgres-import check check-mysql-access \ check-postgres-access dump restore clean-mysql clean-postgres clean-all \ - reinit-mysql reinit-postgres reinit-all test-storage-paths + reinit-mysql reinit-postgres reinit-all test-storage-paths test-sql-imports PROJECT_DIR := $(CURDIR) ENV_FILE_EXAMPLE := .docker.env.example @@ -78,6 +78,7 @@ help: @echo " make samples-mysql скачать optional samples Chinook и Sakila" @echo " make samples-postgres скачать optional samples Pagila и Chinook" @echo " make test-storage-paths проверить защиту managed storage paths" + @echo " make test-sql-imports проверить trusted SQL imports в запущенных СУБД" @echo " make mysql-import FILE=... DATABASE=... импортировать доверенный text SQL в MySQL" @echo " make postgres-import FILE=... DATABASE=... импортировать доверенный text SQL в PostgreSQL" @echo " make clean-{mysql,postgres,all} CONFIRM=1" @@ -115,6 +116,9 @@ check-env: $(ENV_FILE) test-storage-paths: @./scripts/test-storage-paths.sh +test-sql-imports: + @./scripts/test-sql-imports.sh + init: check-env @echo "Проверяем каталоги, конфигурацию и init-скрипты..." @$(LOAD_ENV) \ diff --git a/scripts/test-sql-imports.sh b/scripts/test-sql-imports.sh new file mode 100755 index 0000000..e016eb4 --- /dev/null +++ b/scripts/test-sql-imports.sh @@ -0,0 +1,151 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +script_dir="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)" +project_dir="$(cd -- "${script_dir}/.." && pwd)" +cd -- "${project_dir}" + +fail() { + printf 'ERROR: %s\n' "$*" >&2 + exit 1 +} + +[[ -f .docker.env ]] || fail '.docker.env is required; run make init first' + +set -a +source .docker.env +set +a + +for variable_name in COMPOSE_PROJECT_NAME DB_USER DB_PASSWORD; do + [[ -n "${!variable_name:-}" ]] || fail "${variable_name} is required in .docker.env" +done + +compose=(docker compose --env-file .docker.env -p "${COMPOSE_PROJECT_NAME}") +temp_dir="$(mktemp -d)" +mysql_table='' +postgres_table='' +mysql_cleanup_needed=false +postgres_cleanup_needed=false + +assert_safe_identifier() { + local identifier="$1" + + [[ "${identifier}" =~ ^[a-z][a-z0-9_]{0,62}$ ]] || \ + fail "generated unsafe SQL identifier: ${identifier}" +} + +mysql_query() { + local query="$1" + + "${compose[@]}" exec -T \ + -e IMPORT_DATABASE=demo \ + -e IMPORT_QUERY="${query}" \ + mysql sh -c 'MYSQL_PWD="$DB_PASSWORD" exec mysql --host=127.0.0.1 --user="$DB_USER" --batch --skip-column-names "$IMPORT_DATABASE" --execute "$IMPORT_QUERY"' +} + +postgres_query() { + local query="$1" + + "${compose[@]}" exec -T \ + -e IMPORT_DATABASE=demo \ + -e IMPORT_QUERY="${query}" \ + postgres sh -c 'PGPASSWORD="$DB_PASSWORD" exec psql --host=127.0.0.1 --username="$DB_USER" --dbname="$IMPORT_DATABASE" --no-psqlrc --set=ON_ERROR_STOP=1 --tuples-only --no-align --command="$IMPORT_QUERY"' +} + +drop_smoke_tables() { + local cleanup_failed=0 + + if [[ "${mysql_cleanup_needed}" == true ]]; then + if mysql_query "DROP TABLE IF EXISTS \`${mysql_table}\`;" >/dev/null; then + mysql_cleanup_needed=false + else + printf 'ERROR: failed to remove MySQL smoke table\n' >&2 + cleanup_failed=1 + fi + fi + if [[ "${postgres_cleanup_needed}" == true ]]; then + if postgres_query "DROP TABLE IF EXISTS public.${postgres_table};" >/dev/null; then + postgres_cleanup_needed=false + else + printf 'ERROR: failed to remove PostgreSQL smoke table\n' >&2 + cleanup_failed=1 + fi + fi + + return "${cleanup_failed}" +} + +cleanup() { + local exit_status=$? + local cleanup_failed=0 + local final_status + + trap - EXIT + set +e + + if ! drop_smoke_tables; then + cleanup_failed=1 + fi + if ! rm -rf -- "${temp_dir}"; then + printf 'ERROR: failed to remove smoke-test temporary directory\n' >&2 + cleanup_failed=1 + fi + if ((cleanup_failed)); then + printf 'ERROR: trusted SQL import smoke-test cleanup failed\n' >&2 + fi + + final_status="${exit_status}" + if ((exit_status == 0 && cleanup_failed)); then + final_status=1 + fi + + exit "${final_status}" +} +trap cleanup EXIT + +make --no-print-directory wait-mysql +make --no-print-directory wait-postgres + +suffix="$(date +%s)_$$_${RANDOM}" +mysql_table="sql_import_smoke_mysql_${suffix}" +postgres_table="sql_import_smoke_postgres_${suffix}" +mysql_marker="mysql_import_marker_${suffix}" +postgres_marker="postgres_import_marker_${suffix}" + +assert_safe_identifier "${mysql_table}" +assert_safe_identifier "${postgres_table}" + +[[ "$(mysql_query "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = '${mysql_table}';")" == 0 ]] || \ + fail "MySQL smoke table already exists: ${mysql_table}" +[[ "$(postgres_query "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'public' AND table_name = '${postgres_table}';")" == 0 ]] || \ + fail "PostgreSQL smoke table already exists: ${postgres_table}" + +mysql_sql="${temp_dir}/mysql-import.sql" +postgres_sql="${temp_dir}/postgres-import.sql" + +printf 'CREATE TABLE `%s` (marker VARCHAR(255) NOT NULL);\nINSERT INTO `%s` (marker) VALUES (\047%s\047);\n' \ + "${mysql_table}" "${mysql_table}" "${mysql_marker}" > "${mysql_sql}" +printf 'CREATE TABLE public.%s (marker TEXT NOT NULL);\nINSERT INTO public.%s (marker) VALUES (\047%s\047);\n' \ + "${postgres_table}" "${postgres_table}" "${postgres_marker}" > "${postgres_sql}" + +mysql_cleanup_needed=true +make mysql-import FILE="${mysql_sql}" DATABASE=demo +[[ "$(mysql_query "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = '${mysql_table}';")" == 1 ]] || \ + fail "MySQL smoke table was not created: ${mysql_table}" +[[ "$(mysql_query "SELECT marker FROM \`${mysql_table}\`;")" == "${mysql_marker}" ]] || \ + fail 'MySQL smoke marker did not match' + +postgres_cleanup_needed=true +make postgres-import FILE="${postgres_sql}" DATABASE=demo +[[ "$(postgres_query "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'public' AND table_name = '${postgres_table}';")" == 1 ]] || \ + fail "PostgreSQL smoke table was not created: ${postgres_table}" +[[ "$(postgres_query "SELECT marker FROM public.${postgres_table};")" == "${postgres_marker}" ]] || \ + fail 'PostgreSQL smoke marker did not match' + +drop_smoke_tables +[[ "$(mysql_query "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = DATABASE() AND table_name = '${mysql_table}';")" == 0 ]] || \ + fail "MySQL smoke table still exists: ${mysql_table}" +[[ "$(postgres_query "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = 'public' AND table_name = '${postgres_table}';")" == 0 ]] || \ + fail "PostgreSQL smoke table still exists: ${postgres_table}" + +printf 'PASS: trusted SQL import smoke tests completed\n' From a16cd6bb8b656d8d05954632434e0366aa615cc7 Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Mon, 20 Jul 2026 01:17:01 +0300 Subject: [PATCH 09/17] =?UTF-8?q?docs(readme):=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20=D0=BB=D0=BE=D0=BA=D0=B0=D0=BB=D0=B8?= =?UTF-8?q?=D0=B7=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B8=20=D1=80=D1=83=D1=81?= =?UTF-8?q?=D1=81=D0=BA=D0=B8=D0=B9=20=D1=8F=D0=B7=D1=8B=D0=BA=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D1=83=D0=BC=D0=BE=D0=BB=D1=87=D0=B0=D0=BD=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 755 ++++++++++++++++------------------------ docs/langs/README_de.md | 399 +++++++++++++++++++++ docs/langs/README_en.md | 451 ++++++++++++++++++++++++ docs/langs/README_es.md | 392 +++++++++++++++++++++ docs/langs/README_fr.md | 396 +++++++++++++++++++++ docs/langs/README_zh.md | 378 ++++++++++++++++++++ 6 files changed, 2324 insertions(+), 447 deletions(-) create mode 100644 docs/langs/README_de.md create mode 100644 docs/langs/README_en.md create mode 100644 docs/langs/README_es.md create mode 100644 docs/langs/README_fr.md create mode 100644 docs/langs/README_zh.md diff --git a/README.md b/README.md index 0961f22..9edcfb8 100644 --- a/README.md +++ b/README.md @@ -1,588 +1,449 @@ -# SQL Lab (Docker) +

+ Docker SQL Lab — локальный стенд MySQL и PostgreSQL +

-Локальный учебный SQL-стенд на Docker Compose с независимыми сервисами: +# Docker SQL Lab -- MySQL 9.7.1 LTS; -- PostgreSQL 18.4 — последняя стабильная major-ветка с пятилетним сроком - поддержки; -- один опциональный Adminer Docker Official Image 5.4.2 для обеих СУБД. +## Выберите язык -Upstream Adminer уже выпускает 5.4.4, но официальный Docker image пока -закреплён на 5.4.2. Поэтому стенд использует точный официальный тег 5.4.2 и не -собирает собственный образ только ради расхождения версий. +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| **Выбран** | [English](docs/langs/README_en.md) | [Español](docs/langs/README_es.md) | [中文](docs/langs/README_zh.md) | [Français](docs/langs/README_fr.md) | [Deutsch](docs/langs/README_de.md) | -В MySQL и PostgreSQL всегда создаётся небольшая база `demo`. Для MySQL -опционально доступны Sakila и Chinook, для PostgreSQL — Pagila и та же -Chinook. Это позволяет сравнивать запросы к одинаковой учебной модели в двух -СУБД. +Локальный стенд на Docker Compose для изучения и сравнения MySQL и PostgreSQL. +Каждую СУБД можно запускать независимо, обе можно использовать одновременно, +а Adminer подключать только при необходимости браузерного UI. -## Быстрый старт +## Стек -Полный стенд с Adminer: +- MySQL 9.7.1 LTS +- PostgreSQL 18.4 +- Adminer 5.4.2 Docker Official Image +- Docker Compose v2 +- GNU Make и Bash для команд проекта и init-скриптов -```bash -make init -make up -``` +Версии образов закреплены в `.docker.env`. Не используйте стенд как шаблон +production-развёртывания без отдельного анализа учётных данных, сетевой +доступности, хранения данных, резервного копирования и эксплуатации. -Полный стенд без UI: +## Основные возможности -```bash -make up-no-ui -``` +- Независимые сервисы MySQL и PostgreSQL, которые также работают одновременно. +- Общий для двух СУБД опциональный Adminer без зависимости от конкретного + сервиса базы данных. +- Обязательная база `demo` в каждой СУБД с одинаковыми пятью пользователями. +- Опциональные Sakila и Chinook для MySQL, Pagila и Chinook для PostgreSQL. +- Раздельные bind-mounted data-, init- и sample-каталоги каждой СУБД. +- Общие учебные credentials и отдельные credentials администраторов СУБД. +- Статические проверки конфигурации, защита managed storage paths, runtime- + проверки доступа и smoke-test импорта доверенного SQL. +- Явное подтверждение destructive-команд очистки и переинициализации. + +## Требования -Одиночные режимы: +- Docker Engine или Docker Desktop с командой `docker compose` v2. +- GNU Make, Bash и стандартные Unix-утилиты, используемые скриптами (`awk`, + `sed`, `grep`, `find`, `realpath` и `stat`). +- Для загрузки optional samples: `curl` и `git`; для MySQL samples также нужны + `unzip` и `sha256sum`. + +Выполняйте команды из корня репозитория. Ветка проекта по умолчанию — `master`. + +## Быстрый старт + +Создайте `.docker.env` из отслеживаемого примера, проверьте настроенные пути, +создайте рабочие каталоги и запустите полный стенд: ```bash -make up-mysql -make up-mysql-ui -make up-postgres -make up-postgres-ui +make init +make up ``` -Adminer можно добавить к уже работающим СУБД или остановить отдельно: +`make up` запускает MySQL, PostgreSQL и Adminer. С конфигурацией по умолчанию +Adminer доступен по адресу `http://127.0.0.1:8081`. + +Полезные следующие команды: ```bash -make up-ui -make down-ui +make status +make logs +make down ``` -Команды одиночного запуска не останавливают уже работающие сервисы. Они лишь -не запускают другие сервисы автоматически. +`make down` удаляет контейнеры и сеть, но сохраняет bind-mounted данные СУБД. ## Режимы запуска | Команда | MySQL | PostgreSQL | Adminer | |---|---|---|---| -| `make up` | запускает | запускает | запускает | -| `make up-no-ui` | запускает или оставляет активным | запускает или оставляет активным | останавливает, если запущен | -| `make up-mysql` | запускает | не запускает автоматически | не запускает автоматически | -| `make up-mysql-ui` | запускает | не запускает автоматически | запускает | -| `make up-postgres` | не запускает автоматически | запускает | не запускает автоматически | -| `make up-postgres-ui` | не запускает автоматически | запускает | запускает | -| `make up-ui` | не меняет состояние | не меняет состояние | запускает | -| `make down-ui` | не меняет состояние | не меняет состояние | останавливает | - -`make up-no-ui` не выполняет общий `docker compose down`: сначала он -останавливает только Adminer, затем запускает или оставляет запущенными обе -СУБД и ждёт их готовности. - -## Порты - -Порты задаются в `.docker.env`: +| `make up` | Запускает | Запускает | Запускает | +| `make up-no-ui` | Запускает или оставляет активным | Запускает или оставляет активным | Останавливает, если запущен | +| `make up-mysql` | Запускает | Не запускает автоматически | Не запускает автоматически | +| `make up-mysql-ui` | Запускает | Не запускает автоматически | Запускает | +| `make up-postgres` | Не запускает автоматически | Запускает | Не запускает автоматически | +| `make up-postgres-ui` | Не запускает автоматически | Запускает | Запускает | +| `make up-ui` | Не меняет состояние | Не меняет состояние | Запускает | +| `make down-ui` | Не меняет состояние | Не меняет состояние | Останавливает | -| Сервис | Переменная | Значение по умолчанию | -|---|---|---| -| MySQL | `MYSQL_PORT` | `3306` | -| PostgreSQL | `POSTGRES_PORT` | `5432` | -| Adminer | `ADMINER_PORT` | `8081` | +Команды одиночного запуска не останавливают другую уже работающую СУБД. +Adminer можно запускать и останавливать отдельно; он не привязан только к +MySQL. -При значениях по умолчанию Adminer открыт на -`http://127.0.0.1:8081`. +## Подключения -## Credentials +### Adminer -`.docker.env.example` содержит только локальные учебные значения: - -| Назначение | Пользователь | Пароль | -|---|---|---| -| Администратор MySQL | `MYSQL_ROOT_PASSWORD` задаёт пароль пользователя `root` | `MYSQL_ROOT_PASSWORD` | -| Администратор PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -| Общий учебный пользователь | `DB_USER` | `DB_PASSWORD` | - -Административная PostgreSQL-роль и `DB_USER` обязаны различаться. Реальный -`.docker.env` исключён из Git. - -Значения из примера нельзя использовать в production, публичном окружении или -на доступном извне сервере. - -## Один Adminer для двух СУБД - -Adminer находится в общей Compose-сети с MySQL и PostgreSQL, не зависит от их -состояния и включается профилем `ui`. Это лёгкий optional UI с дизайном -`nette`; без профиля он не запускается и не расходует ресурсы. - -Plugin `adminer/plugins-enabled/001-login-servers.php` заменяет свободный ввод -движка и сервера выпадающим списком из двух допустимых подключений: +Внутри Compose-сети Adminer предлагает два заранее заданных сервера: ```text MySQL (mysql) PostgreSQL (postgres) ``` -Невалидный default server `db` в форме отсутствует. Пользователь выбирает -одно подключение, затем вводит общий `DB_USER`/`DB_PASSWORD` и базу. +Выберите сервер, затем укажите `DB_USER`, `DB_PASSWORD` и имя базы, например +`demo`. Имена сервисов `mysql` и `postgres` работают внутри Compose-сети; для +desktop-клиентов на хосте это не адреса серверов. -Страница входа содержит локальную подсказку: выбрать MySQL или PostgreSQL, -использовать значения `DB_USER`/`DB_PASSWORD` из `.docker.env` и базу `demo`. -После отдельной подготовки samples доступны также Sakila и Chinook для MySQL, -Pagila и Chinook для PostgreSQL. +### Клиенты на хосте -Вход в MySQL: +DataGrip, DBeaver, PhpStorm и host CLI подключаются через опубликованный адрес +и порт: -```text -Server: MySQL (mysql) -Username: значение DB_USER -Password: значение DB_PASSWORD -Database: demo, sakila, chinook или пустое поле -``` +| СУБД | Хост по умолчанию | Переменная порта | Пользователь | База по умолчанию | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | -Вход в PostgreSQL: +Если вы изменили `BIND_ADDRESS`, при необходимости используйте вместо +`127.0.0.1` доступный адрес этого интерфейса. -```text -Server: PostgreSQL (postgres) -Username: значение DB_USER -Password: значение DB_PASSWORD -Database: demo, pagila или chinook, если optional sample установлен +### CLI в контейнерах + +Make-targets передают пароли через environment контейнера и не помещают их в +историю shell: + +```bash +make mysql # администратор MySQL, база demo +make mysql-user # DB_USER, база demo +make postgres # superuser PostgreSQL, база demo +make postgres-user # DB_USER, база demo ``` -Имена `mysql` и `postgres` применяются только внутри Docker-сети. +## Учётные данные -## Внешние клиенты +При копировании `.docker.env.example` создаётся `.docker.env`; этот файл +исключён из Git. Храните пароли в нём и не хардкодьте их в Compose, SQL или +отслеживаемой конфигурации клиентов. -Полноценные IDE-клиенты — PhpStorm, DataGrip, DBeaver — и CLI на хосте -подключаются к `127.0.0.1` и опубликованному порту, а не к имени -Compose-сервиса. +| Назначение | Настройка пользователя | Настройка пароля | +|---|---|---| +| Общий учебный пользователь двух СУБД | `DB_USER` | `DB_PASSWORD` | +| Администратор MySQL | `root` | `MYSQL_ROOT_PASSWORD` | +| Администратор/superuser PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -MySQL: +`POSTGRES_SUPERUSER` и `DB_USER` должны быть разными ролями. Для обычных +упражнений используйте общего учебного пользователя, а не root или superuser. +Замените пароли из примера до предоставления общего доступа или публикации +любого сервиса за пределами локального компьютера. -```text -Host: 127.0.0.1 -Port: значение MYSQL_PORT -User: значение DB_USER -Password: значение DB_PASSWORD -Database: demo, sakila или chinook, если optional sample установлен -``` +## Порты и `BIND_ADDRESS` -PostgreSQL: +Порты хоста настраиваются в `.docker.env`: -```text -Host: 127.0.0.1 -Port: значение POSTGRES_PORT -User: значение DB_USER -Password: значение DB_PASSWORD -Database: demo, pagila или chinook, если optional sample установлен -``` +| Сервис | Переменная порта | Значение примера | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | -CLI внутри контейнеров не требует размещать пароль в shell history: +По умолчанию все три сервиса публикуются только на loopback: -```bash -make mysql -make mysql-user -make postgres -make postgres-user +```env +BIND_ADDRESS=127.0.0.1 ``` +Это безопасный default для локального стенда. Значение +`BIND_ADDRESS=0.0.0.0` публикует настроенные порты на всех сетевых интерфейсах. +Для доступа через VPN или LAN предпочтительнее адрес конкретного интерфейса. +Меняйте binding осознанно, учитывая правила firewall, надёжность паролей и +доверие ко всем подключённым сетям. + ## Учебные базы -MySQL: +### Обязательные базы `demo` -- `demo` — обязательная база с таблицей `demo.demo_users`; -- `sakila` — опциональная официальная учебная база; -- `chinook` — опциональная база с музыкальным каталогом и продажами. +Обе СУБД инициализируют обязательную базу с именем `demo`: -PostgreSQL: +- MySQL: `demo.demo_users` +- PostgreSQL: `demo.public.demo_users` -- `demo` — обязательная база с таблицей `public.demo_users`; -- `pagila` — опциональный PostgreSQL-порт Sakila с фильмами, актёрами, - клиентами и прокатом; -- `chinook` — та же модель музыкального каталога и продаж, что в MySQL. +Таблицы содержат эквивалентные поля `id`, `name`, `email`, `created_at` и +одинаковые пять обязательных пользователей: Alice, Bob, Carol, Dave и Eve. +Проверки допускают дополнительные строки, созданные пользователем. -Обе таблицы `demo_users` имеют одинаковую смысловую структуру: +Имена баз по умолчанию задаются как `MYSQL_DATABASE=demo` и +`POSTGRES_DATABASE=demo`; `make check-env` требует именно эти значения. -| Поле | Назначение | -|---|---| -| `id` | автоматически создаваемый integer primary key | -| `name` | `varchar(100) NOT NULL` | -| `email` | `varchar(150) NOT NULL UNIQUE` | -| `created_at` | обязательный timestamp с `CURRENT_TIMESTAMP` по умолчанию | +### Необязательные учебные базы -MySQL использует `TIMESTAMP`, PostgreSQL — `timestamptz`. В обе базы -идемпотентно добавляются одинаковые обязательные строки: - -| Name | Email | Created at | +| СУБД | Необязательные базы | Команда подготовки | |---|---|---| -| Alice | `alice@example.com` | `2025-01-10 09:00:00+03` | -| Bob | `bob@example.com` | `2025-01-11 10:15:00+03` | -| Carol | `carol@example.com` | `2025-01-12 11:30:00+03` | -| Dave | `dave@example.com` | `2025-01-13 12:45:00+03` | -| Eve | `eve@example.com` | `2025-01-14 14:00:00+03` | - -Дополнительные пользовательские строки разрешены и не считаются ошибкой при -проверках. - -Обычные `make init`, `make up`, `make up-no-ui`, `make up-mysql` и -`make up-postgres` не скачивают и не подготавливают optional samples. Обе СУБД -полностью работоспособны только с обязательной `demo`. - -## Optional samples MySQL +| MySQL | Chinook, Sakila | `make samples-mysql` | +| PostgreSQL | Pagila, Chinook | `make samples-postgres` | -Скачать Chinook и официальный архив Sakila и подготовить локальные SQL-файлы: - -```bash -make samples-mysql -``` +Команды подготовки загружают и проверяют закреплённые upstream-файлы, но не +запускают контейнеры и не импортируют данные в уже инициализированную СУБД. +Загрузки остаются локальными, исключаются из Git и сохраняются в +`MYSQL_SAMPLES_DIR` или `POSTGRES_SAMPLES_DIR`. Происхождение, integrity pins и +лицензии описаны в [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). -Для нового пустого каталога данных: +Для СУБД с пустым data-каталогом: ```bash make samples-mysql make up-mysql + +make samples-postgres +make up-postgres ``` -Для уже инициализированного MySQL: +Официальные entrypoints образов обрабатывают init-файлы только при пустом +data-каталоге соответствующей СУБД. Чтобы добавить samples в уже +инициализированную СУБД, сначала сохраните важные данные, затем осознанно +переинициализируйте только её: ```bash make samples-mysql make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 ``` -MySQL выполняет init-файлы только при первом запуске с пустым -`MYSQL_DATA_DIR`. Загрузка samples не изменяет данные и не перезапускает -контейнеры автоматически. +Полностью отсутствующий optional sample пропускается и не мешает создать +обязательную `demo`. Частичный набор sample-файлов или неожиданная существующая +sample-база отклоняются без автоматического исправления или удаления. -`make samples-mysql` больше не скачивает World. Файлы сохраняются -детерминированно: +## Команды Makefile -```text -samples/mysql/ -├── .gitkeep -├── 010_chinook.sql -├── 020_sakila_schema.sql -└── 021_sakila_data.sql -``` +Краткий список команд выводит `make help`. -Эти загруженные SQL-файлы считаются локально сгенерированными и исключены из -Git. `initdb/mysql/050_load_optional_samples.sh` пропускает отсутствующие -samples, безопасно пропускает уже полную `chinook` и прекращает init с ошибкой -при неполной/неожиданной `chinook` или неполной паре schema/data Sakila. +| Команда | Назначение | +|---|---| +| `make init` | Создать `.docker.env`, проверить managed paths и создать рабочие каталоги | +| `make check-env` | Проверить обязательные env-значения, разделение ролей, имена баз и managed paths | +| `make pull` | Загрузить три закреплённых container images | +| `make config` | Проверить развёрнутую Compose-конфигурацию | +| `make up`, `make up-no-ui` | Запустить обе СУБД с Adminer или без него | +| `make up-mysql`, `make up-mysql-ui` | Запустить MySQL, опционально с Adminer | +| `make up-postgres`, `make up-postgres-ui` | Запустить PostgreSQL, опционально с Adminer | +| `make up-ui`, `make down-ui` | Запустить или остановить только Adminer | +| `make down` | Остановить стенд без удаления bind-mounted данных | +| `make status` | Показать состояние сервисов | +| `make logs` | Следить за логами всех сервисов | +| `make log SERVICE=postgres` | Следить за логом одного сервиса; также работает `make log postgres` | +| `make in SERVICE=postgres` | Открыть shell сервиса; также работает `make in postgres` | +| `make mysql`, `make mysql-user` | Открыть MySQL как администратор или `DB_USER` | +| `make postgres`, `make postgres-user` | Открыть PostgreSQL как superuser или `DB_USER` | +| `make samples-mysql`, `make samples-postgres` | Подготовить проверенные optional samples | +| `make check-mysql-access`, `make check-postgres-access` | Проверить доступ учебного пользователя к одной запущенной СУБД | +| `make check` | Проверить Compose и доступ `DB_USER` к двум запущенным СУБД | +| `make test-storage-paths` | Проверить защиту managed storage paths без Docker runtime | +| `make test-sql-imports` | Выполнить smoke-test двух публичных trusted SQL import targets | +| `make mysql-import FILE=... DATABASE=...` | Импортировать доверенный plain SQL в существующую MySQL-базу от `DB_USER` | +| `make postgres-import FILE=... DATABASE=...` | Импортировать доверенный plain SQL в существующую PostgreSQL-базу от `DB_USER` | +| `make dump`, `make restore` | Создать или восстановить dump настроенной MySQL-базы `demo` | +| `make clean-{mysql,postgres,all} CONFIRM=1` | Удалить выбранные managed data-каталоги | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | Удалить, пересоздать и проверить выбранные базы | -## Optional samples PostgreSQL: Pagila и Chinook +## Проверки -Подготовить Pagila и Chinook отдельной явной командой: +### Статические и локальные проверки ```bash -make samples-postgres +make check-env +make config +make test-storage-paths ``` -Для существующей локальной установки `.docker.env` не перезаписывается -автоматически: добавьте в него вручную -`POSTGRES_SAMPLES_DIR=./samples/postgres`. +`make check-env` создаёт `.docker.env` из примера, если файла ещё нет, затем +проверяет обязательные настройки и managed paths. `make config` проверяет +развёрнутую Compose-модель. -Для нового пустого каталога данных: +Для `make test-storage-paths` Docker runtime не требуется. Тест проверяет +защиту от путей за пределами проекта, symlink-компонентов, пересекающихся или +вложенных managed paths и зарезервированных каталогов. Тот же validator +защищает настроенные data- и sample-каталоги MySQL/PostgreSQL при обычной +инициализации. -```bash -make samples-postgres -make up-postgres -``` +### Runtime-проверки -Для уже инициализированного PostgreSQL требуется явное пересоздание только его -data-каталога: +Запустите обе СУБД без Adminer, проверьте учебный доступ и imports, затем +остановите сервисы: ```bash -make samples-postgres -make reinit-postgres CONFIRM=1 +make up-no-ui +make check +make test-sql-imports +make down ``` -`make samples-postgres` только скачивает и проверяет SQL обеих баз: команда не -запускает контейнеры, не удаляет данные и не выполняет reinit. Официальный -PostgreSQL entrypoint читает `/docker-entrypoint-initdb.d` лишь при -инициализации пустого `POSTGRES_DATA_DIR`, поэтому добавление файлов не меняет -существующую базу. - -Используется upstream -[`devrimgunduz/pagila`](https://github.com/devrimgunduz/pagila), закреплённый -на immutable commit -[`5ba5a57aeb159f75f02aca2432d3c262186d13d3`](https://github.com/devrimgunduz/pagila/commit/5ba5a57aeb159f75f02aca2432d3c262186d13d3). -Загружаются только `pagila-schema.sql` и COPY-вариант `pagila-data.sql`; -альтернативный insert-файл не используется. Точный текст `LICENSE.txt` -закреплённой ревизии проверяется по Git blob SHA и переносится в оба -подготовленных SQL-файла. Upstream README называет лицензию PostgreSQL License; -полный notice и provenance приведены в -[`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). - -Проверенная ревизия Pagila использует схему `public`, стандартные -PL/pgSQL-функции и `COPY FROM stdin`; дополнительных extensions, пакетов или -собственного Docker image не требуется. Подготовленные файлы сохраняются -детерминированно: +`make check` проверяет обязательные данные `demo` и фактический доступ +`DB_USER` в обеих СУБД. Если установлены поддерживаемые optional samples, они +также проверяются. -```text -samples/postgres/ -├── 010_pagila_schema.sql -├── 020_pagila_data.sql -└── 030_chinook.sql -``` +Для `make test-sql-imports` обе СУБД должны быть запущены. Тест вызывает +публичные targets `mysql-import` и `postgres-import`, создаёт уникальные +временные smoke-таблицы в `demo`, проверяет marker rows от имени `DB_USER` и +удаляет только эти таблицы. Это проверка trusted SQL import workflow, а не +доказательство безопасности или sandbox для недоверенного SQL. -Все файлы локальные и исключены из Git. Отсутствие пары Pagila безопасно -пропускается, а наличие только одного файла останавливает чистую инициализацию -с ошибкой. Chinook обрабатывается независимо: она также optional. Повторный -загрузчик отдельно пропускает уже полные Pagila и Chinook с ожидаемым -владельцем, но не удаляет и не исправляет автоматически неполную базу или -неверное владение. Для этого требуется явный -`make reinit-postgres CONFIRM=1`. Штатные команды очистки data-каталогов не -удаляют `samples/postgres`. - -## Источник и безопасная подготовка Chinook - -Оба варианта Chinook берутся только из официального upstream -[`lerocha/chinook-database`](https://github.com/lerocha/chinook-database) на -immutable commit -[`4a944a942426e1f3263fe539155fb7ef92b04b4a`](https://github.com/lerocha/chinook-database/commit/4a944a942426e1f3263fe539155fb7ef92b04b4a), -соответствующем release `v1.4.5`. Chinook распространяется по MIT license; -полный copyright и permission notice из закреплённого `LICENSE.md` добавляется -SQL-комментариями в каждую подготовленную локальную копию. - -Upstream SQL нельзя выполнять напрямую: он содержит `DROP DATABASE`, -`CREATE DATABASE` и выбор базы. Команды подготовки проверяют Git blob SHA, -версию, целевую СУБД, ключевые таблицы и точный формат трёх setup-строк, затем -удаляют только эти известные строки. Готовый SQL повторно проверяется на -отсутствие database-level setup и публикуется атомарно вместе с остальными -sample-файлами. Он загружается только в заранее выбранную базу `chinook`. - -Chinook выбрана вместо MySQL World, потому что upstream явно указывает MIT -license и предоставляет одинаковые MySQL/PostgreSQL datasets. Существующая -база `world` автоматически не удаляется. Чтобы убрать старую `world` и -получить `chinook` в уже инициализированном MySQL, сначала подготовьте samples, -затем осознанно выполните `make reinit-mysql CONFIRM=1`; эта команда удалит -данные только MySQL. - -## Инициализация и порядок файлов +## Импорт доверенных SQL-файлов -```text -initdb/ -├── mysql/ -│ ├── 001_demo.sql -│ ├── 030_training_database.sql.example -│ ├── 050_load_optional_samples.sh -│ ├── 090_grant_training_access.sh -│ └── 099_check_training_access.sh -└── postgres/ - ├── 001_create_training_role.sh - ├── 010_initialize_demo.sh - ├── 030_training_database.sh.example - ├── 050_load_optional_samples.sh - └── 099_check_training_access.sh +Импортируйте только доверенные локальные plain SQL-файлы: + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo ``` -Файлы `.example` служат шаблонами и не выполняются entrypoint автоматически. -MySQL-шаблон показывает добавление новой базы перед grants. PostgreSQL-шаблон -безопасно передаёт значения через psql variables, назначает `DB_USER` -владельцем новой базы и создаёт начальную таблицу от его имени. +Для обоих targets: -Оба официальных entrypoint обрабатывают init-каталог только для пустого -data-каталога. Изменение init-файлов не обновляет существующую базу. +- `FILE` и `DATABASE` обязательны. +- Файл должен быть существующим, читаемым и непустым обычным файлом. +- Имя базы должно начинаться со строчной ASCII-буквы и содержать только + строчные ASCII-буквы, цифры или `_`; системные базы запрещены. +- База должна существовать и принимать подключение от `DB_USER`. +- Import выполняется от `DB_USER`, а не от MySQL root или PostgreSQL superuser. +- Target не создаёт базу и не выдаёт grants. +- Targets не обрабатывают архивы, gzip-потоки и PostgreSQL backups в custom + format. -## Конфигурация СУБД +`DATABASE` выбирает начальную базу подключения, но не создаёт sandbox. +Qualified names (полные имена объектов), session/client commands и реальные +grants роли `DB_USER` могут разрешить доступ к другим объектам. SQL способен +изменить или удалить всё, к чему у этой роли есть доступ. -```text -conf/ -├── mysql/ -│ └── my.cnf -└── postgres/ - └── postgresql.conf.example -``` +Import может выполниться частично. Ни один target не обещает автоматический +полный rollback после ошибки. Перед важным импортом изучите файл и создайте +подходящий backup. -`conf/mysql/my.cnf` подключается к MySQL и фиксирует `utf8mb4`, collation -`utf8mb4_0900_ai_ci`, строгий SQL mode с `ONLY_FULL_GROUP_BY`, часовой пояс -`+03:00` и отключение DNS lookup клиентов. Performance-настройки оставлены -только понятными закомментированными примерами: универсальных значений для -лимитов памяти, соединений и slow query log нет. - -`conf/postgres/postgresql.conf.example` полностью закомментирован и -автоматически к Compose не подключается. Он показывает, как ресурсы и тип -нагрузки влияют на `shared_buffers`, `work_mem`, `maintenance_work_mem` и -временную диагностику медленных запросов. Активного PostgreSQL performance -tuning и отдельного logging collector нет: сервер продолжает писать в штатные -Docker logs. - -## Права учебного пользователя - -В MySQL `090_grant_training_access.sh` создаёт или обновляет `DB_USER` и -выдаёт ему `ALL PRIVILEGES` отдельно на каждую фактически существующую -несистемную базу. Глобальные административные права на `*.*` не выдаются. - -В PostgreSQL роль `DB_USER` получает `LOGIN`, владеет обязательной базой -`demo` и схемой `public`, но остаётся без `SUPERUSER`, `CREATEDB`, -`CREATEROLE`, `REPLICATION` и `BYPASSRLS`. Таблица `demo_users` создаётся от -имени этой роли. Если подготовлена Pagila, база создаётся с владельцем -`DB_USER`, а schema и data загружаются от его имени. Закреплённый upstream dump -содержит `OWNER TO postgres`; загрузчик безопасно заменяет эти фиксированные -owner-выражения на quoted psql-переменную `DB_USER`, не меняя локальные -SQL-файлы и не повышая права роли. PostgreSQL Chinook также создаётся с -владельцем `DB_USER`; этой роли принадлежат схема `public`, таблицы и все -созданные в ней последовательности, представления, функции и пользовательские -типы. Пароли не хардкодятся и берутся только из environment контейнеров. +## Жизненный цикл данных и init -## Проверки +Bind-mounted storage по умолчанию разделён по СУБД: -Проверка каждой СУБД отдельно: +```text +data/ +├── mysql/ +└── postgres/ -```bash -make check-mysql-access -make check-postgres-access +initdb/ +├── mysql/ +└── postgres/ ``` -MySQL-проверка требует `demo.demo_users`, все пять обязательных email, -проверяет temporary read/write и пробный откатываемый `INSERT` в `demo_users`. -Она также проверяет доступ ко всем существующим пользовательским базам и -`sakila.actor` только при наличии sample. Для optional Chinook отдельно -проверяются таблицы с точным регистром `Artist`, `Album`, `Track`, `Customer`, -`Invoice`, данные, join и откатываемая запись. - -PostgreSQL-проверка подключается как `DB_USER` по TCP к работающему серверу, -проверяет владение базой и `demo_users`, все пять обязательных email, создаёт -временную таблицу, записывает и читает строку, выполняет откатываемый `INSERT` -в `demo_users` и подтверждает отсутствие всех административных атрибутов роли. -Наличие Pagila и Chinook определяется независимо по фактическим базам, а не по -sample-файлам. Для каждой установленной базы дополнительно проверяются -владелец, ожидаемые таблицы и владельцы объектов, данные, читающий join, -временный объект и откатываемый `INSERT` без остаточных данных. Поэтому -поддерживаются все варианты: только `demo`, `demo + pagila`, -`demo + chinook`, `demo + pagila + chinook`. - -Для полного стенда: +Связанные настройки `.docker.env` также разделены: -```bash -make check -``` - -Команда проверяет Compose-конфигурацию и фактический доступ `DB_USER` к обеим -СУБД. +| СУБД | Данные | Init | Optional samples | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | -## Troubleshooting optional Chinook +Data- и sample-пути можно изменить через `.docker.env` с учётом проверки +managed storage paths. -Если загрузчик сообщает, что `chinook` уже существует, но неполна или имеет -неожиданного владельца, он намеренно ничего не удаляет и не пытается исправить -базу поверх существующих объектов. Проверьте, что sample подготовлен текущей -командой `make samples-mysql` или `make samples-postgres`, сохраните нужные -данные, затем при необходимости явно выполните reinit соответствующей СУБД с -`CONFIRM=1`. Reinit удаляет data-каталог выбранной СУБД; обычные `make up*` -этого не делают. +Официальные entrypoints MySQL и PostgreSQL выполняют соответствующий +init-каталог только для пустого data-каталога. Добавление или изменение +init-файла не мигрирует существующую базу. `make down` не удаляет данные ни из +одного bind mount. -Если подготовленный `010_chinook.sql` или `030_chinook.sql` отклонён до -загрузки, не запускайте raw upstream SQL вручную. Повторите подготовку и -проверьте сеть; несовпадение Git blob SHA или формата setup-строк считается -ошибкой безопасности. +Не редактируйте файлы СУБД внутри `data/` вручную. Container-owned файлы могут +иметь числовые UID/GID, отличающиеся от пользователя хоста. -## Остановка и очистка данных +## Backup, очистка и переинициализация -Остановить все сервисы без удаления bind-mounted данных: +Встроенные backup-targets работают только с настроенной MySQL-базой `demo`: ```bash -make down +make dump +make restore ``` -Удаление данных всегда требует явного `CONFIRM=1`: +С конфигурацией по умолчанию `make dump` записывает `backup/demo.sql`. +`make restore` читает этот файл и повторно применяет учебные MySQL grants. Для +сохранения PostgreSQL используйте отдельную процедуру резервного копирования. + +> **Внимание:** все перечисленные ниже `clean-*` и `reinit-*` команды +> destructive и требуют точного подтверждения `CONFIRM=1`. ```bash make clean-mysql CONFIRM=1 make clean-postgres CONFIRM=1 make clean-all CONFIRM=1 -``` - -Первые две команды удаляют только каталог соответствующей СУБД. `clean-all` -удаляет только `data/mysql` и `data/postgres`. `.docker.env`, конфигурация, -init-файлы, optional samples и backup сохраняются. Перед удалением проверяется, -что data-каталог находится внутри проекта; пустой каталог возвращается -текущему UID/GID. - -Чистая инициализация с последующей проверкой: -```bash make reinit-mysql CONFIRM=1 make reinit-postgres CONFIRM=1 make reinit-all CONFIRM=1 ``` -Одиночные команды запускают только выбранную СУБД без Adminer. `reinit-all` -запускает обе СУБД без Adminer и выполняет общую проверку. +Одиночные команды удаляют только data-каталог выбранной СУБД. Варианты `all` +удаляют data-каталоги обеих СУБД. Конфигурация, init-файлы, загруженные +optional samples и backups сохраняются. Затем reinit запускает и проверяет +выбранные СУБД; `reinit-all` запускает обе без Adminer. -## Основные команды +## Диагностика и решение проблем -| Команда | Назначение | -|---|---| -| `make init` | Создать `.docker.env`, data/init/samples-каталоги и проверить скрипты | -| `make pull` | Скачать три образа | -| `make config` | Проверить итоговую Compose-конфигурацию | -| `make samples-mysql` | Подготовить optional Chinook и Sakila без запуска контейнеров | -| `make samples-postgres` | Подготовить optional Pagila и Chinook без запуска контейнеров | -| `make status` | Показать MySQL, PostgreSQL и профильный Adminer | -| `make logs` | Смотреть общие логи | -| `make log postgres` | Смотреть лог выбранного сервиса (`SERVICE=postgres` также поддерживается) | -| `make in postgres` | Открыть shell выбранного контейнера (`SERVICE=postgres` также поддерживается) | -| `make wait-mysql` | Дождаться MySQL | -| `make wait-postgres` | Дождаться PostgreSQL | -| `make mysql-grants` | Повторно применить MySQL grants | -| `make mysql-import FILE=... DATABASE=...` | Импортировать доверенный text SQL в существующую MySQL-базу от `DB_USER` | -| `make postgres-import FILE=... DATABASE=...` | Импортировать доверенный text SQL в существующую PostgreSQL-базу от `DB_USER` | -| `make dump` / `make restore` | Создать / восстановить backup MySQL `demo` | +### Ошибка конфигурации или storage-path validation -## Импорт доверенных SQL-файлов +Выполните `make check-env` и найдите в ошибке отклонённую переменную и путь. +Managed data paths должны находиться строго внутри каталога проекта `data/`, а +sample paths — внутри `samples/`. Они не могут содержать symlink-компоненты, +пересекаться между собой или использовать зарезервированные каталоги проекта. +Исправьте `.docker.env`, затем повторите `make check-env` и `make config`. -Поддерживаются обычные локальные текстовые SQL-файлы. Архивы, gzip и -PostgreSQL custom-format backups этими командами не обрабатываются. +### Сервис не переходит в состояние готовности -Для обеих СУБД обязательны `FILE` и `DATABASE`: +До изменения данных проверьте состояние и логи: ```bash -make mysql-import FILE=path/to/file.sql DATABASE=demo -make postgres-import FILE=path/to/file.sql DATABASE=demo +make status +make log SERVICE=mysql +make log SERVICE=postgres ``` -Файл должен существовать, быть читаемым и непустым. Имя базы должно начинаться -со строчной латинской буквы и содержать только строчные латинские буквы, цифры -и `_`. Системные базы запрещены. - -Указанная база должна уже существовать, а `DB_USER` должен иметь возможность -подключиться к ней. Импорт выполняется от `DB_USER`, а не от MySQL root или -PostgreSQL superuser. Команды не создают и не пересоздают базу, не удаляют её -автоматически и не применяют административные grants. - -Используйте эти цели только для доверенных SQL-файлов. `DATABASE` задаёт базу -подключения по умолчанию, но не создаёт изолированный sandbox. SQL может -обращаться к другим доступным объектам и базам через qualified names, смену -подключения или клиентские команды, если это разрешено фактическими правами -`DB_USER`. - -Импорт может изменить или удалить доступные пользователю объекты и данные. -Полный rollback при ошибке не гарантируется: часть команд может успеть -выполниться. Перед важным импортом создайте backup и предварительно проверьте -содержимое файла. - -## Структура данных и Git - -Данные СУБД разделены: - -```text -data/ -├── mysql/ -└── postgres/ -``` +Убедитесь, что Docker запущен, настроенный host port свободен, а +`.docker.env` содержит обязательные значения. Исправьте конкретную настройку +или конфликт порта и снова запустите сервис. -Контейнеры могут присвоить файлам числовые UID/GID своих системных -пользователей. Не редактируйте содержимое data-каталогов вручную. +### Изменения init или optional samples не появились -Для официального образа PostgreSQL 18 host-каталог `data/postgres` подключён к -`/var/lib/postgresql`; фактический versioned data directory образ создаёт -внутри этого bind mount. +Для уже инициализированного data-каталога это ожидаемое поведение. Проверьте +настроенные data- и sample-пути и успешность команды подготовки. Если +существующие данные важны, сохраните их. Используйте соответствующую команду +`reinit-... CONFIRM=1` только как осознанную последнюю меру: она удаляет данные +этой СУБД. -В Git не должны попадать: +### Optional sample неполон или имеет неожиданного владельца -```text -.docker.env -.env -data/ -backup/ -.tmp/ -samples/mysql/*.sql -samples/postgres/*.sql -``` +Loader намеренно не перезаписывает и не исправляет неожиданную базу. Повторите +подходящую подготовку `make samples-mysql` или `make samples-postgres` и +изучите ошибку. Сохраните нужные данные, прежде чем рассматривать +переинициализацию с подтверждением. -Обязательные init-скрипты и оба шаблона `.example` остаются отслеживаемыми. +### Клиент не подключается ---- +Клиенты на хосте используют опубликованный host address и `MYSQL_PORT` или +`POSTGRES_PORT`, а не имя Compose-сервиса. Adminer использует `mysql` или +`postgres` внутри Compose-сети. Проверьте `BIND_ADDRESS`, firewall, выбранную +базу и неадминистративные credentials `DB_USER`. -Автор: **Александр Юрченко** +## Лицензии и сторонние компоненты -Лицензия проекта: [MIT](LICENSE.md). Условия сторонних optional samples: -[THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). +Docker SQL Lab распространяется по лицензии MIT; см. +[LICENSE.md](LICENSE.md). Optional sample-базы сохраняют upstream-лицензии и +уведомления; источники, закреплённые ревизии, integrity information и тексты +лицензий приведены в [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). diff --git a/docs/langs/README_de.md b/docs/langs/README_de.md new file mode 100644 index 0000000..8f6676c --- /dev/null +++ b/docs/langs/README_de.md @@ -0,0 +1,399 @@ +

+ Docker SQL Lab — lokale MySQL- und PostgreSQL-Umgebung +

+ +# Docker SQL Lab + +## Sprache auswählen + +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../../README.md) | [English](README_en.md) | [Español](README_es.md) | [中文](README_zh.md) | [Français](README_fr.md) | **Ausgewählt** | + +Eine lokale Docker-Compose-Umgebung zum Lernen und Vergleichen von MySQL und +PostgreSQL. Beide DBMS lassen sich einzeln oder gemeinsam ausführen; Adminer +wird nur bei Bedarf als Browseroberfläche zugeschaltet. + +## Stack und festgelegte Versionen + +- MySQL 9.7.1 LTS +- PostgreSQL 18.4 +- Adminer 5.4.2 Docker Official Image +- Docker Compose v2 +- GNU Make und Bash für Projektbefehle und Initialisierungsskripte + +Die Image-Versionen sind in `.docker.env` festgelegt. Verwenden Sie das Lab +nicht ungeprüft als Produktionsvorlage; Zugangsdaten, Netzwerkfreigabe, +Speicherung, Backups und Betrieb benötigen eine eigene Bewertung. + +## Hauptfunktionen + +- Unabhängige MySQL- und PostgreSQL-Dienste, die auch gemeinsam laufen. +- Optionaler Adminer für beide DBMS, ohne Bindung an einen bestimmten Dienst. +- Obligatorische `demo`-Datenbank in jedem DBMS mit denselben fünf Beispieldatensätzen. +- Optionale Samples: Sakila und Chinook für MySQL, Pagila und Chinook für PostgreSQL. +- Getrennte bind-mounted Verzeichnisse für data, init und samples je DBMS. +- Gemeinsame Lern-Zugangsdaten und getrennte Administrator-Zugangsdaten. +- Statische Konfigurationsprüfungen, Schutz der managed storage paths, + Runtime-Zugriffsprüfungen und Smoke-Test für vertrauenswürdige SQL-Imports. +- Explizite Bestätigung für destruktive Bereinigung und Neuinitialisierung. + +## Voraussetzungen + +- Docker Engine oder Docker Desktop mit dem Befehl `docker compose` v2. +- GNU Make, Bash und die von den Skripten verwendeten Unix-Werkzeuge (`awk`, + `sed`, `grep`, `find`, `realpath` und `stat`). +- Für optionale Samples: `curl` und `git`; für MySQL zusätzlich `unzip` und + `sha256sum`. + +Führen Sie Befehle im Repository-Stamm aus. Der Standardbranch des Projekts ist +`master`. + +## Schnellstart + +Erstellen Sie `.docker.env` aus dem versionierten Beispiel, prüfen Sie die +Pfade, legen Sie Arbeitsverzeichnisse an und starten Sie das vollständige Lab: + +```bash +make init +make up +``` + +`make up` startet MySQL, PostgreSQL und Adminer. Mit der Standardkonfiguration +ist Adminer unter `http://127.0.0.1:8081` erreichbar. + +```bash +make status +make logs +make down +``` + +`make down` entfernt Container und Netzwerk, behält aber bind-mounted Daten. + +## Startmodi + +| Befehl | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Startet | Startet | Startet | +| `make up-no-ui` | Startet oder lässt laufen | Startet oder lässt laufen | Stoppt, falls aktiv | +| `make up-mysql` | Startet | Startet nicht automatisch | Startet nicht automatisch | +| `make up-mysql-ui` | Startet | Startet nicht automatisch | Startet | +| `make up-postgres` | Startet nicht automatisch | Startet | Startet nicht automatisch | +| `make up-postgres-ui` | Startet nicht automatisch | Startet | Startet | +| `make up-ui` | Ändert nichts | Ändert nichts | Startet | +| `make down-ui` | Ändert nichts | Ändert nichts | Stoppt | + +Einzel-DBMS-Befehle stoppen ein bereits laufendes anderes DBMS nicht. Adminer +lässt sich separat starten und stoppen und ist nicht nur an MySQL gebunden. + +## Verbindungen + +### Adminer + +Im Compose-Netzwerk bietet Adminer zwei vordefinierte Server an: + +```text +MySQL (mysql) +PostgreSQL (postgres) +``` + +Wählen Sie einen Server und melden Sie sich mit `DB_USER`, `DB_PASSWORD` und +einer Datenbank wie `demo` an. `mysql` und `postgres` sind interne +Compose-Dienstnamen, keine Hostnamen für Desktop-Clients. + +### Clients auf dem Host + +| DBMS | Standardhost | Portvariable | Benutzer | Standarddatenbank | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | + +DataGrip, DBeaver, PhpStorm und Host-CLI-Werkzeuge nutzen veröffentlichte +Adresse und Port. Nach einer Änderung von `BIND_ADDRESS` verwenden Sie bei +Bedarf die erreichbare Adresse dieser Schnittstelle. + +### CLI in den Containern + +Passwörter werden über die Containerumgebung übergeben und nicht in die +Shell-History geschrieben: + +```bash +make mysql # MySQL-Administrator, Datenbank demo +make mysql-user # DB_USER, Datenbank demo +make postgres # PostgreSQL-Superuser, Datenbank demo +make postgres-user # DB_USER, Datenbank demo +``` + +## Zugangsdaten + +`.docker.env` wird aus `.docker.env.example` erstellt und von Git ignoriert. +Bewahren Sie Passwörter dort auf; codieren Sie sie nicht in versioniertem +Compose, SQL oder Client-Konfigurationen. + +| Zweck | Benutzer | Passwort | +|---|---|---| +| Gemeinsamer Lernbenutzer | `DB_USER` | `DB_PASSWORD` | +| MySQL-Administrator | `root` | `MYSQL_ROOT_PASSWORD` | +| PostgreSQL-Administrator/Superuser | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | + +`POSTGRES_SUPERUSER` und `DB_USER` müssen verschiedene Rollen sein. Verwenden +Sie den Lernbenutzer für normale Übungen. Ersetzen Sie Beispielpasswörter, +bevor Dienste geteilt oder außerhalb des lokalen Rechners veröffentlicht werden. + +## Ports und `BIND_ADDRESS` + +| Dienst | Portvariable | Beispielwert | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | + +Standardmäßig werden alle drei Dienste nur an loopback gebunden: + +```env +BIND_ADDRESS=127.0.0.1 +``` + +`127.0.0.1` ist der lokale Standard. `BIND_ADDRESS=0.0.0.0` veröffentlicht die +Ports auf allen Netzwerkschnittstellen. Für LAN oder VPN ist die Adresse einer +bestimmten Schnittstelle vorzuziehen. Ändern Sie die Bindung bewusst und +beachten Sie Firewall, Passwortstärke und Vertrauenswürdigkeit des Netzes. + +## Lerndatenbanken + +### Obligatorische `demo`-Datenbanken + +Beide DBMS initialisieren `demo`: + +- MySQL: `demo.demo_users` +- PostgreSQL: `demo.public.demo_users` + +Die Tabellen besitzen entsprechende Felder `id`, `name`, `email` und +`created_at` sowie Alice, Bob, Carol, Dave und Eve. Zusätzliche Zeilen sind +zulässig. `make check-env` verlangt `MYSQL_DATABASE=demo` und +`POSTGRES_DATABASE=demo`. + +### Optionale Samples + +| DBMS | Optionale Datenbanken | Vorbereitung | +|---|---|---| +| MySQL | Chinook, Sakila | `make samples-mysql` | +| PostgreSQL | Pagila, Chinook | `make samples-postgres` | + +Die Vorbereitung lädt festgelegte upstream-Dateien herunter und prüft sie, +startet aber keine Container und importiert nichts in bereits initialisierte +Datenbanken. Temporäre Downloads bleiben lokal, werden nicht committed und +liegen unter `MYSQL_SAMPLES_DIR` beziehungsweise `POSTGRES_SAMPLES_DIR`. +Herkunft, Integritätswerte und Lizenzen stehen in +[THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). + +Bei leerem data directory: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Die offiziellen Entrypoints verarbeiten init nur bei leerem data directory. +Um Samples einer bestehenden Instanz hinzuzufügen, erstellen Sie ein Backup +und initialisieren bewusst nur das betroffene DBMS neu: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` + +Ein vollständig fehlendes Sample wird übersprungen und verhindert `demo` +nicht. Unvollständige Samples oder unerwartete Datenbanken werden ohne +automatische Reparatur oder Löschung abgelehnt. + +## Öffentliche Make targets + +`make help` zeigt die kompakte Liste. + +| Befehl | Zweck | +|---|---| +| `make init` | `.docker.env` erstellen, managed paths prüfen, Verzeichnisse anlegen | +| `make check-env` | Env-Werte, Rollen, Datenbanknamen und Pfade prüfen | +| `make pull` | Die drei festgelegten Images laden | +| `make config` | Erweiterte Compose-Konfiguration validieren | +| `make up`, `make up-no-ui` | Beide DBMS mit oder ohne Adminer starten | +| `make up-mysql`, `make up-mysql-ui` | MySQL, optional mit Adminer, starten | +| `make up-postgres`, `make up-postgres-ui` | PostgreSQL, optional mit Adminer, starten | +| `make up-ui`, `make down-ui` | Nur Adminer starten oder stoppen | +| `make down` | Lab stoppen, ohne bind-mounted Daten zu löschen | +| `make status`, `make logs` | Status anzeigen oder alle Logs verfolgen | +| `make log SERVICE=postgres` | Einen Dienst verfolgen; auch `make log postgres` | +| `make in SERVICE=postgres` | Dienst-Shell öffnen; auch `make in postgres` | +| `make mysql`, `make mysql-user` | MySQL als Admin oder `DB_USER` öffnen | +| `make postgres`, `make postgres-user` | PostgreSQL als Superuser oder `DB_USER` öffnen | +| `make samples-mysql`, `make samples-postgres` | Geprüfte Samples vorbereiten | +| `make check-mysql-access`, `make check-postgres-access` | Ein laufendes DBMS prüfen | +| `make check` | Compose und `DB_USER`-Zugriff auf beide DBMS prüfen | +| `make test-storage-paths` | Managed paths ohne Docker runtime testen | +| `make test-sql-imports` | Smoke-Test beider öffentlicher SQL-Imports | +| `make mysql-import FILE=... DATABASE=...` | Plain SQL als `DB_USER` in MySQL importieren | +| `make postgres-import FILE=... DATABASE=...` | Plain SQL als `DB_USER` in PostgreSQL importieren | +| `make dump`, `make restore` | MySQL-`demo` sichern oder wiederherstellen | +| `make clean-{mysql,postgres,all} CONFIRM=1` | Ausgewählte data directories löschen | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | Datenbanken löschen, neu erstellen und prüfen | + +## Prüfungen + +### Statische und lokale Prüfungen + +```bash +make check-env +make config +make test-storage-paths +``` + +`make check-env` erstellt bei Bedarf `.docker.env` und validiert Werte und +Pfade. `make config` prüft das erweiterte Compose-Modell. +`make test-storage-paths` benötigt keine Docker runtime und testet Pfade +außerhalb des Projekts, symlink-Komponenten, überlappende oder verschachtelte +Pfade sowie reserved directories. + +### Runtime-Prüfungen + +```bash +make up-no-ui +make check +make test-sql-imports +make down +``` + +`make check` prüft `demo` und den tatsächlichen `DB_USER`-Zugriff in beiden +DBMS sowie installierte Samples. `make test-sql-imports` benötigt beide +laufenden DBMS, ruft `mysql-import` und `postgres-import` auf, erstellt +eindeutig benannte temporäre Tabellen in `demo`, prüft marker rows als +`DB_USER` und löscht nur diese Tabellen. Dies ist ein Smoke-Test des trusted +import workflow, kein Sandbox und kein Sicherheitsnachweis für fremdes SQL. + +## Import vertrauenswürdiger SQL-Dateien + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +Für beide targets gilt: + +- `FILE` und `DATABASE` sind erforderlich. +- Die lokale plain-SQL-Datei muss existieren, lesbar und nicht leer sein. +- Die Datenbank muss existieren; Systemdatenbanken sind verboten. +- Der Import läuft als `DB_USER`, erstellt keine Datenbank und vergibt keine grants. +- `DATABASE` wählt die erste Verbindung, erzeugt aber keine Sandbox. +- Qualified names, Client-/Session-Befehle und tatsächliche grants können + andere erreichbare Objekte betreffen. +- Partielle Ausführung ist möglich; automatischer Rollback wird nicht zugesagt. +- Erstellen Sie vor wichtigen Imports ein Backup. +- gzip, Archive und PostgreSQL-custom-format backups werden nicht verarbeitet. + +## Lebenszyklus von data und init + +```text +data/ +├── mysql/ +└── postgres/ + +initdb/ +├── mysql/ +└── postgres/ +``` + +| DBMS | Data | Init | Optionale Samples | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | + +Data- und Sample-Pfade sind über `.docker.env` konfigurierbar und werden als +managed paths validiert. Entrypoints führen init nur bei leerem data directory +aus; geänderte init-Dateien migrieren keine bestehende Datenbank. `make down` +löscht keine bind mounts. Bearbeiten Sie Dateien in `data/` nicht manuell; sie +können numerischen Container-UID/GID gehören. + +## Backup, Bereinigung und Neuinitialisierung + +Die eingebauten Targets decken nur die konfigurierte MySQL-Datenbank `demo` ab: + +```bash +make dump +make restore +``` + +`make dump` schreibt `backup/demo.sql`; `make restore` liest die Datei und +wendet die MySQL-Lern-grants erneut an. Verwenden Sie für PostgreSQL ein eigenes +Backup-Verfahren. + +> **Warnung:** Alle `clean-*`- und `reinit-*`-Targets sind destruktiv und +> verlangen die exakte Bestätigung `CONFIRM=1`. + +```bash +make clean-mysql CONFIRM=1 +make clean-postgres CONFIRM=1 +make clean-all CONFIRM=1 + +make reinit-mysql CONFIRM=1 +make reinit-postgres CONFIRM=1 +make reinit-all CONFIRM=1 +``` + +Einzelne Targets löschen nur das gewählte DBMS-data directory; `all` löscht +beide. Konfiguration, init, Samples und Backups bleiben erhalten. Reinit +startet und prüft anschließend die gewählten DBMS; `reinit-all` startet beide +ohne Adminer. + +## Diagnose und Fehlerbehebung + +### Konfiguration oder Pfadvalidierung schlägt fehl + +Führen Sie `make check-env` aus. Data paths müssen strikt unter `data/` und +Samples unter `samples/` liegen; symlinks, Überschneidungen und reservierte +Verzeichnisse sind unzulässig. Korrigieren Sie `.docker.env` und führen Sie +`make config` aus. + +### Ein Dienst wird nicht bereit + +```bash +make status +make log SERVICE=mysql +make log SERVICE=postgres +``` + +Prüfen Sie Docker, Port, `.docker.env` und Logs, bevor Sie Daten ändern. + +### Init-Änderungen oder Samples erscheinen nicht + +Bei bereits initialisierten Daten ist das erwartet. Prüfen Sie Pfade und +Vorbereitung, sichern Sie wichtige Daten und verwenden Sie +`reinit-... CONFIRM=1` nur als bewussten letzten Schritt. + +### Sample ist unvollständig oder hat einen unerwarteten Besitzer + +Der Loader überschreibt oder repariert unerwartete Datenbanken nicht. Führen +Sie `make samples-mysql` oder `make samples-postgres` erneut aus und prüfen Sie +den Fehler; sichern Sie Daten vor einer Neuinitialisierung. + +### Ein Client kann keine Verbindung herstellen + +Host-Clients verwenden veröffentlichte Adresse und `MYSQL_PORT` oder +`POSTGRES_PORT`; Adminer verwendet `mysql` oder `postgres` im Compose-Netz. +Prüfen Sie `BIND_ADDRESS`, Firewall, Datenbankauswahl und `DB_USER`-Zugangsdaten. + +## Lizenzen und Hinweise zu Drittanbietern + +Docker SQL Lab steht unter der MIT License: +[LICENSE.md](../../LICENSE.md). Optionale Samples behalten ihre +upstream-Lizenzen; Quellen, festgelegte Revisionen, Integritätswerte und Texte +stehen in [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). diff --git a/docs/langs/README_en.md b/docs/langs/README_en.md new file mode 100644 index 0000000..4914449 --- /dev/null +++ b/docs/langs/README_en.md @@ -0,0 +1,451 @@ +

+ Docker SQL Lab +

+ +# Docker SQL Lab + +## Choose a language + +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../../README.md) | **Selected** | [Español](README_es.md) | [中文](README_zh.md) | [Français](README_fr.md) | [Deutsch](README_de.md) | + +A local Docker Compose environment for learning and comparing MySQL and +PostgreSQL. Run either database independently, run both together, and add +Adminer only when you need a browser UI. + +## Stack + +- MySQL 9.7.1 LTS +- PostgreSQL 18.4 +- Adminer 5.4.2 Docker Official Image +- Docker Compose v2 +- GNU Make and Bash for the project commands and initialization scripts + +The image versions are pinned in `.docker.env`. Do not use this lab as a +production deployment template without reviewing its credentials, exposure, +storage, backup, and operational requirements. + +## Features + +- Independent MySQL and PostgreSQL services that can also run together. +- Optional Adminer shared by both databases; it has no dependency on a + particular database service. +- A required `demo` database in each DBMS with the same five example users. +- Optional Sakila and Chinook samples for MySQL, and Pagila and Chinook for + PostgreSQL. +- Separate bind-mounted data, init, and sample directories for each DBMS. +- Shared training credentials with separate database administrator + credentials. +- Static configuration checks, managed storage-path validation, runtime + access checks, and a trusted SQL import smoke-test. +- Explicit confirmation for destructive clean and reinitialization commands. + +## Requirements + +- Docker Engine or Docker Desktop with the `docker compose` v2 command. +- GNU Make, Bash, and standard Unix tools used by the scripts (`awk`, `sed`, + `grep`, `find`, `realpath`, and `stat`). +- For optional sample downloads: `curl` and `git`; MySQL samples additionally + require `unzip` and `sha256sum`. + +Run project commands from the repository root. The default project branch is +`master`. + +## Quick start + +Create `.docker.env` from the tracked example, validate the configured paths, +create the working directories, and start the full lab: + +```bash +make init +make up +``` + +`make up` starts MySQL, PostgreSQL, and Adminer. With the default configuration, +open Adminer at `http://127.0.0.1:8081`. + +Useful follow-up commands: + +```bash +make status +make logs +make down +``` + +`make down` removes the containers and network but preserves the bind-mounted +database data. + +## Startup modes + +| Command | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Starts | Starts | Starts | +| `make up-no-ui` | Starts or keeps running | Starts or keeps running | Stops if running | +| `make up-mysql` | Starts | Does not start automatically | Does not start automatically | +| `make up-mysql-ui` | Starts | Does not start automatically | Starts | +| `make up-postgres` | Does not start automatically | Starts | Does not start automatically | +| `make up-postgres-ui` | Does not start automatically | Starts | Starts | +| `make up-ui` | Does not change | Does not change | Starts | +| `make down-ui` | Does not change | Does not change | Stops | + +The single-service commands do not stop another database that is already +running. Adminer can be started and stopped separately and is not tied to +MySQL alone. + +## Connections + +### Adminer + +Adminer provides two predefined server choices inside the Compose network: + +```text +MySQL (mysql) +PostgreSQL (postgres) +``` + +Select a server, then sign in with `DB_USER`, `DB_PASSWORD`, and a database +name such as `demo`. The service names `mysql` and `postgres` work inside the +Compose network; they are not host names for desktop clients. + +### Host clients + +DataGrip, DBeaver, PhpStorm, and host CLI tools connect through the published +address and port: + +| DBMS | Host with default settings | Port variable | User | Default database | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | + +If you change `BIND_ADDRESS`, use that reachable interface address instead of +`127.0.0.1` where appropriate. + +### Container CLI + +The Make targets pass passwords through the container environment instead of +placing them in shell history: + +```bash +make mysql # MySQL administrator, demo database +make mysql-user # DB_USER, demo database +make postgres # PostgreSQL superuser, demo database +make postgres-user # DB_USER, demo database +``` + +## Credentials + +Copying `.docker.env.example` creates `.docker.env`; the latter is ignored by +Git. Keep passwords there and do not hardcode them in Compose, SQL, or client +configuration committed to the repository. + +| Purpose | User setting | Password setting | +|---|---|---| +| Shared training user for both DBMSs | `DB_USER` | `DB_PASSWORD` | +| MySQL administrator | `root` | `MYSQL_ROOT_PASSWORD` | +| PostgreSQL administrator/superuser | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | + +`POSTGRES_SUPERUSER` and `DB_USER` must be different roles. Use the shared +training user for normal exercises; do not use root or superuser credentials +for routine work. Replace the example passwords before sharing access or +publishing any service beyond the local machine. + +## Ports and `BIND_ADDRESS` + +The host-side ports are configured in `.docker.env`: + +| Service | Port variable | Example default | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | + +All three services publish only on loopback by default: + +```env +BIND_ADDRESS=127.0.0.1 +``` + +This is the safe default for a local lab. Setting `BIND_ADDRESS=0.0.0.0` +publishes the configured ports on every network interface. For VPN or LAN +access, prefer the address of the specific interface. Change the binding only +deliberately, after considering firewall rules, password strength, and trust +in every connected network. + +## Databases + +### Required `demo` databases + +Both DBMSs initialize a required database named `demo`: + +- MySQL: `demo.demo_users` +- PostgreSQL: `demo.public.demo_users` + +The tables have equivalent `id`, `name`, `email`, and `created_at` fields and +contain the same five required example users: Alice, Bob, Carol, Dave, and Eve. +The access checks allow additional user-created rows. + +The default database names are enforced by `make check-env` through +`MYSQL_DATABASE=demo` and `POSTGRES_DATABASE=demo`. + +### Optional samples + +| DBMS | Optional databases | Preparation command | +|---|---|---| +| MySQL | Chinook, Sakila | `make samples-mysql` | +| PostgreSQL | Pagila, Chinook | `make samples-postgres` | + +The preparation commands download and verify pinned upstream files but do not +start containers or import into an initialized database. Downloads are local, +are excluded from Git, and are stored under `MYSQL_SAMPLES_DIR` or +`POSTGRES_SAMPLES_DIR`. Their provenance, integrity pins, and license terms are +documented in [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). + +For a DBMS with an empty data directory: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Official image entrypoints process init files only when the corresponding data +directory is empty. To add samples to an already initialized DBMS, first back +up anything important and then deliberately reinitialize only that DBMS: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` + +A completely absent optional sample is skipped and does not prevent the +required `demo` database from being created. A partial sample set or an +unexpected existing sample database is rejected instead of being repaired or +deleted automatically. + +## Make targets + +Run `make help` for the concise command list. + +| Command | Purpose | +|---|---| +| `make init` | Create `.docker.env`, validate managed paths, and create required working directories | +| `make check-env` | Check required environment values, role separation, database names, and managed paths | +| `make pull` | Pull the three pinned container images | +| `make config` | Validate the expanded Compose configuration | +| `make up`, `make up-no-ui` | Start both DBMSs with or without Adminer | +| `make up-mysql`, `make up-mysql-ui` | Start MySQL, optionally with Adminer | +| `make up-postgres`, `make up-postgres-ui` | Start PostgreSQL, optionally with Adminer | +| `make up-ui`, `make down-ui` | Start or stop only Adminer | +| `make down` | Stop the lab without deleting bind-mounted data | +| `make status` | Show service status | +| `make logs` | Follow logs for all services | +| `make log SERVICE=postgres` | Follow one service log; `make log postgres` is also supported | +| `make in SERVICE=postgres` | Open a service shell; `make in postgres` is also supported | +| `make mysql`, `make mysql-user` | Open MySQL as administrator or `DB_USER` | +| `make postgres`, `make postgres-user` | Open PostgreSQL as superuser or `DB_USER` | +| `make samples-mysql`, `make samples-postgres` | Prepare verified optional samples | +| `make check-mysql-access`, `make check-postgres-access` | Verify training-user access to one running DBMS | +| `make check` | Validate Compose and check `DB_USER` access to both running DBMSs | +| `make test-storage-paths` | Test managed storage-path protection without Docker runtime | +| `make test-sql-imports` | Smoke-test both public trusted SQL import targets | +| `make mysql-import FILE=... DATABASE=...` | Import trusted plain SQL into an existing MySQL database as `DB_USER` | +| `make postgres-import FILE=... DATABASE=...` | Import trusted plain SQL into an existing PostgreSQL database as `DB_USER` | +| `make dump`, `make restore` | Dump or restore the configured MySQL `demo` database | +| `make clean-{mysql,postgres,all} CONFIRM=1` | Delete selected managed data directories | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | Delete, recreate, and check selected databases | + +## Validation + +### Static and local checks + +```bash +make check-env +make config +make test-storage-paths +``` + +`make check-env` creates `.docker.env` from the example if it is absent, then +validates required settings and managed paths. `make config` validates the +expanded Compose model. + +`make test-storage-paths` does not require the Docker runtime. It exercises the +guards for paths outside the project, symbolic-link components, overlapping or +nested managed paths, and reserved directories. The same validator protects +the configured MySQL/PostgreSQL data and sample locations during normal setup. + +### Runtime checks + +Start both databases without Adminer, check training access, exercise imports, +and stop the services: + +```bash +make up-no-ui +make check +make test-sql-imports +make down +``` + +`make check` verifies the required `demo` data and actual `DB_USER` access in +both DBMSs. It also checks supported optional samples when they are installed. + +`make test-sql-imports` requires both DBMSs to be running. It invokes the +public `mysql-import` and `postgres-import` targets, creates uniquely named +temporary smoke tables in `demo`, verifies marker rows as `DB_USER`, and +removes only those tables. It tests the trusted SQL import workflow; it does +not prove that untrusted SQL is safe or sandboxed. + +## Trusted SQL imports + +Import only trusted local plain SQL files: + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +For both targets: + +- `FILE` and `DATABASE` are required. +- The file must be a readable, non-empty regular file. +- The database name must start with a lowercase ASCII letter and contain only + lowercase ASCII letters, digits, or `_`; system databases are rejected. +- The database must already exist and accept a connection from `DB_USER`. +- Import runs as `DB_USER`, never as MySQL root or PostgreSQL superuser. +- The target neither creates a database nor grants access. +- Archives, gzip streams, and PostgreSQL custom-format backups are not + supported by these targets. + +`DATABASE` selects the initial connection database; it does not create a +sandbox. Qualified names, session or client commands, and the actual grants of +`DB_USER` may permit access to other objects. SQL may modify or delete anything +that role can access. + +An import may complete partially. Neither target promises an automatic full +rollback after an error. Review the file and create an appropriate backup +before an important import. + +## Data and initialization lifecycle + +The default bind-mounted storage is separated by DBMS: + +```text +data/ +├── mysql/ +└── postgres/ + +initdb/ +├── mysql/ +└── postgres/ +``` + +The related `.docker.env` settings are separate as well: + +| DBMS | Data | Init | Optional samples | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | + +Data and sample locations can be changed through `.docker.env`, subject to +managed storage-path validation. + +The official MySQL and PostgreSQL entrypoints run their respective init +directory only for an empty data directory. Adding or editing an init file does +not migrate an existing database. `make down` does not delete data from either +bind mount. + +Do not edit database files inside `data/` manually. Container-owned files may +use numeric UID/GID values that differ from the host user. + +## Backup, clean, and reinitialize + +The built-in backup targets cover only the configured MySQL `demo` database: + +```bash +make dump +make restore +``` + +`make dump` writes `backup/demo.sql` with the default configuration. +`make restore` reads that file and reapplies MySQL training grants. Use a +separate PostgreSQL backup procedure when PostgreSQL data must be preserved. + +> **Warning:** Every `clean-*` and `reinit-*` command below is destructive and +> requires the exact opt-in `CONFIRM=1`. + +```bash +make clean-mysql CONFIRM=1 +make clean-postgres CONFIRM=1 +make clean-all CONFIRM=1 + +make reinit-mysql CONFIRM=1 +make reinit-postgres CONFIRM=1 +make reinit-all CONFIRM=1 +``` + +The single-DBMS commands delete only that DBMS data directory. The `all` +variants delete both database data directories. Configuration, init files, +optional sample downloads, and backups are preserved. Reinitialization then +starts and checks the selected DBMSs; `reinit-all` starts both without Adminer. + +## Troubleshooting + +### Configuration or storage-path validation fails + +Run `make check-env` and read the rejected variable and path in the error. +Managed data paths must be strictly inside the project `data/` tree; sample +paths must be inside `samples/`. They cannot contain symbolic-link components, +overlap one another, or use reserved project directories. Correct +`.docker.env`, then rerun `make check-env` and `make config`. + +### A service does not become ready + +Check the service state and logs before changing data: + +```bash +make status +make log SERVICE=mysql +make log SERVICE=postgres +``` + +Confirm that Docker is running, the configured host port is available, and +`.docker.env` contains all required values. Fix the specific configuration or +port conflict and start the service again. + +### Init changes or optional samples do not appear + +This is expected when the data directory is already initialized. Verify the +configured data and sample paths and confirm that the preparation command +succeeded. If existing data matters, back it up. Use the matching +`reinit-... CONFIRM=1` command only as a deliberate last step; it deletes that +DBMS's data. + +### An optional sample is incomplete or has unexpected ownership + +The loader intentionally refuses to overwrite or repair an unexpected +database. Re-run the appropriate `make samples-mysql` or +`make samples-postgres` preparation command and inspect the error. Preserve any +needed data before considering a confirmed reinitialization. + +### A client cannot connect + +Host clients use the published host address and `MYSQL_PORT` or +`POSTGRES_PORT`, not the Compose service name. Adminer uses `mysql` or +`postgres` inside the Compose network. Confirm `BIND_ADDRESS`, firewall rules, +the selected database, and the non-administrative `DB_USER` credentials. + +## Licenses and third-party notices + +Docker SQL Lab is licensed under the MIT License; see +[LICENSE.md](../../LICENSE.md). Optional sample databases retain their upstream +licenses and notices; see [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md) for +sources, pinned revisions, integrity information, and license text. diff --git a/docs/langs/README_es.md b/docs/langs/README_es.md new file mode 100644 index 0000000..e57e467 --- /dev/null +++ b/docs/langs/README_es.md @@ -0,0 +1,392 @@ +

+ Docker SQL Lab — entorno local de MySQL y PostgreSQL +

+ +# Docker SQL Lab + +## Elija un idioma + +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../../README.md) | [English](README_en.md) | **Seleccionado** | [中文](README_zh.md) | [Français](README_fr.md) | [Deutsch](README_de.md) | + +Entorno local basado en Docker Compose para aprender y comparar MySQL y +PostgreSQL. Puede ejecutar cada SGBD por separado, ambos a la vez y añadir +Adminer solo cuando necesite una interfaz web. + +## Stack + +- MySQL 9.7.1 LTS +- PostgreSQL 18.4 +- Adminer 5.4.2 Docker Official Image +- Docker Compose v2 +- GNU Make y Bash para los comandos del proyecto y los scripts de inicialización + +Las versiones de las imágenes están fijadas en `.docker.env`. No use este +laboratorio como plantilla de producción sin revisar credenciales, exposición +de red, almacenamiento, copias de seguridad y operación. + +## Funciones principales + +- Servicios MySQL y PostgreSQL independientes que también funcionan juntos. +- Adminer opcional y compartido por ambos SGBD, sin depender de uno concreto. +- Una base obligatoria `demo` en cada SGBD con los mismos cinco usuarios de ejemplo. +- Samples opcionales: Sakila y Chinook para MySQL; Pagila y Chinook para PostgreSQL. +- Directorios bind-mounted de data, init y samples separados por SGBD. +- Credenciales didácticas comunes y credenciales administrativas separadas. +- Validaciones estáticas, protección de managed storage paths, comprobaciones + runtime y smoke-test de importación de SQL de confianza. +- Confirmación explícita para los comandos destructivos de limpieza y reinicialización. + +## Requisitos + +- Docker Engine o Docker Desktop con el comando `docker compose` v2. +- GNU Make, Bash y las utilidades Unix usadas por los scripts (`awk`, `sed`, + `grep`, `find`, `realpath` y `stat`). +- Para descargar samples opcionales: `curl` y `git`; para MySQL también + `unzip` y `sha256sum`. + +Ejecute los comandos desde la raíz del repositorio. La rama predeterminada del +proyecto es `master`. + +## Inicio rápido + +Cree `.docker.env` desde el ejemplo versionado, valide las rutas, cree los +directorios de trabajo e inicie el laboratorio completo: + +```bash +make init +make up +``` + +`make up` inicia MySQL, PostgreSQL y Adminer. Con la configuración por defecto, +Adminer está en `http://127.0.0.1:8081`. + +```bash +make status +make logs +make down +``` + +`make down` elimina los contenedores y la red, pero conserva los datos +bind-mounted. + +## Modos de inicio + +| Comando | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Inicia | Inicia | Inicia | +| `make up-no-ui` | Inicia o mantiene activo | Inicia o mantiene activo | Detiene si estaba activo | +| `make up-mysql` | Inicia | No inicia automáticamente | No inicia automáticamente | +| `make up-mysql-ui` | Inicia | No inicia automáticamente | Inicia | +| `make up-postgres` | No inicia automáticamente | Inicia | No inicia automáticamente | +| `make up-postgres-ui` | No inicia automáticamente | Inicia | Inicia | +| `make up-ui` | No cambia | No cambia | Inicia | +| `make down-ui` | No cambia | No cambia | Detiene | + +Los comandos de un solo SGBD no detienen el otro si ya está activo. Adminer se +puede iniciar y detener por separado y no está ligado únicamente a MySQL. + +## Conexiones + +### Adminer + +Dentro de la red de Compose, Adminer ofrece dos servidores predefinidos: + +```text +MySQL (mysql) +PostgreSQL (postgres) +``` + +Seleccione uno e introduzca `DB_USER`, `DB_PASSWORD` y una base como `demo`. +`mysql` y `postgres` son nombres internos de servicio, no hosts para clientes +de escritorio. + +### Clientes en el host + +| SGBD | Host predeterminado | Variable de puerto | Usuario | Base predeterminada | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | + +DataGrip, DBeaver, PhpStorm y los CLI del host usan la dirección y el puerto +publicados. Si cambia `BIND_ADDRESS`, use la dirección accesible de esa interfaz. + +### CLI dentro de los contenedores + +Las contraseñas pasan por el entorno del contenedor y no quedan en el historial: + +```bash +make mysql # administrador MySQL, base demo +make mysql-user # DB_USER, base demo +make postgres # superusuario PostgreSQL, base demo +make postgres-user # DB_USER, base demo +``` + +## Credenciales + +`.docker.env` se crea a partir de `.docker.env.example` y está ignorado por +Git. Guarde allí las contraseñas; no las codifique en Compose, SQL ni en +configuración de cliente versionada. + +| Finalidad | Usuario | Contraseña | +|---|---|---| +| Usuario didáctico común | `DB_USER` | `DB_PASSWORD` | +| Administrador MySQL | `root` | `MYSQL_ROOT_PASSWORD` | +| Administrador/superusuario PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | + +`POSTGRES_SUPERUSER` y `DB_USER` deben ser roles distintos. Use `DB_USER` para +los ejercicios habituales. Cambie las contraseñas de ejemplo antes de +compartir o publicar cualquier servicio. + +## Puertos y `BIND_ADDRESS` + +| Servicio | Variable | Valor de ejemplo | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | + +Por defecto, los tres servicios solo se publican en loopback: + +```env +BIND_ADDRESS=127.0.0.1 +``` + +`127.0.0.1` es el valor local predeterminado. `BIND_ADDRESS=0.0.0.0` publica +los puertos en todas las interfaces. Para LAN o VPN, prefiera la dirección de +una interfaz concreta. Cambie este valor conscientemente y revise firewall, +fortaleza de contraseñas y confianza en la red. + +## Bases didácticas + +### Bases `demo` obligatorias + +Ambos SGBD inicializan `demo`: + +- MySQL: `demo.demo_users` +- PostgreSQL: `demo.public.demo_users` + +Las tablas tienen campos equivalentes `id`, `name`, `email` y `created_at`, y +los mismos cinco usuarios: Alice, Bob, Carol, Dave y Eve. Las comprobaciones +admiten filas adicionales. `make check-env` exige `MYSQL_DATABASE=demo` y +`POSTGRES_DATABASE=demo`. + +### Samples opcionales + +| SGBD | Bases opcionales | Preparación | +|---|---|---| +| MySQL | Chinook, Sakila | `make samples-mysql` | +| PostgreSQL | Pagila, Chinook | `make samples-postgres` | + +La preparación descarga y verifica archivos upstream fijados, pero no inicia +contenedores ni importa en una base ya inicializada. Las descargas temporales +son locales, no se versionan y quedan bajo `MYSQL_SAMPLES_DIR` o +`POSTGRES_SAMPLES_DIR`. Procedencia, hashes y licencias están en +[THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). + +Para un data directory vacío: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Los entrypoints oficiales procesan init solo con el data directory vacío. Para +añadir samples a una instancia existente, haga backup y reinicialice +deliberadamente solo ese SGBD: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` + +Un sample ausente se omite y no impide crear `demo`. Un conjunto parcial o una +base inesperada se rechazan sin reparación ni borrado automático. + +## Targets públicos de Make + +`make help` muestra la lista resumida. + +| Comando | Función | +|---|---| +| `make init` | Crear `.docker.env`, validar rutas y crear directorios | +| `make check-env` | Validar variables, roles, bases y managed paths | +| `make pull` | Descargar las tres imágenes fijadas | +| `make config` | Validar la configuración Compose expandida | +| `make up`, `make up-no-ui` | Iniciar ambos SGBD con o sin Adminer | +| `make up-mysql`, `make up-mysql-ui` | Iniciar MySQL, opcionalmente con Adminer | +| `make up-postgres`, `make up-postgres-ui` | Iniciar PostgreSQL, opcionalmente con Adminer | +| `make up-ui`, `make down-ui` | Iniciar o detener solo Adminer | +| `make down` | Detener sin borrar los datos bind-mounted | +| `make status`, `make logs` | Mostrar estado o seguir todos los logs | +| `make log SERVICE=postgres` | Seguir un servicio; también `make log postgres` | +| `make in SERVICE=postgres` | Abrir un shell; también `make in postgres` | +| `make mysql`, `make mysql-user` | Abrir MySQL como admin o `DB_USER` | +| `make postgres`, `make postgres-user` | Abrir PostgreSQL como superusuario o `DB_USER` | +| `make samples-mysql`, `make samples-postgres` | Preparar samples verificados | +| `make check-mysql-access`, `make check-postgres-access` | Comprobar un SGBD activo | +| `make check` | Validar Compose y acceso de `DB_USER` a ambos SGBD | +| `make test-storage-paths` | Probar la protección de managed paths sin Docker runtime | +| `make test-sql-imports` | Smoke-test de los dos imports SQL públicos | +| `make mysql-import FILE=... DATABASE=...` | Importar plain SQL en MySQL como `DB_USER` | +| `make postgres-import FILE=... DATABASE=...` | Importar plain SQL en PostgreSQL como `DB_USER` | +| `make dump`, `make restore` | Exportar o restaurar `demo` de MySQL | +| `make clean-{mysql,postgres,all} CONFIRM=1` | Borrar data directories seleccionados | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | Borrar, recrear y comprobar bases | + +## Comprobaciones + +### Estáticas y locales + +```bash +make check-env +make config +make test-storage-paths +``` + +`make check-env` crea `.docker.env` si falta y valida valores y rutas. +`make config` valida el modelo Compose expandido. `make test-storage-paths` no +requiere Docker runtime: prueba rutas fuera del proyecto, componentes symlink, +rutas solapadas o anidadas y directorios reservados. + +### Runtime + +```bash +make up-no-ui +make check +make test-sql-imports +make down +``` + +`make check` verifica `demo` y el acceso real de `DB_USER` en ambos SGBD, +además de samples instalados. `make test-sql-imports` requiere ambos SGBD, +invoca `mysql-import` y `postgres-import`, crea tablas temporales con nombres +únicos en `demo`, comprueba marker rows como `DB_USER` y elimina solo esas +tablas. Es un smoke-test del flujo de trusted imports; no es un sandbox ni una +prueba de seguridad para SQL no confiable. + +## Importación de SQL de confianza + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +Para ambos targets: + +- `FILE` y `DATABASE` son obligatorios. +- El archivo debe existir, ser legible, no estar vacío y ser plain SQL local. +- La base debe existir; las bases de sistema están prohibidas. +- El import se ejecuta como `DB_USER`; no crea la base ni concede grants. +- `DATABASE` elige la conexión inicial, pero no crea un sandbox. +- Nombres cualificados, comandos client/session y los grants reales pueden + afectar otros objetos accesibles. +- Puede producirse una ejecución parcial; no se promete rollback automático. +- Haga backup antes de una importación importante. +- gzip, archivos y backups PostgreSQL custom-format no están soportados. + +## Ciclo de vida de data e init + +```text +data/ +├── mysql/ +└── postgres/ + +initdb/ +├── mysql/ +└── postgres/ +``` + +| SGBD | Data | Init | Samples opcionales | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | + +Las rutas data y samples son configurables en `.docker.env` y están sujetas a +validación. Los entrypoints ejecutan init únicamente si el data directory está +vacío; editar init no migra una base existente. `make down` no borra los bind +mounts. No edite manualmente los archivos de `data/`; pueden pertenecer a +UID/GID numéricos del contenedor. + +## Backup, limpieza y reinicialización + +Los targets integrados cubren solo la base MySQL `demo` configurada: + +```bash +make dump +make restore +``` + +`make dump` escribe `backup/demo.sql`; `make restore` lo lee y reaplica los +grants didácticos de MySQL. Use otro procedimiento para PostgreSQL. + +> **Advertencia:** todos los targets `clean-*` y `reinit-*` son destructivos y +> exigen la confirmación exacta `CONFIRM=1`. + +```bash +make clean-mysql CONFIRM=1 +make clean-postgres CONFIRM=1 +make clean-all CONFIRM=1 + +make reinit-mysql CONFIRM=1 +make reinit-postgres CONFIRM=1 +make reinit-all CONFIRM=1 +``` + +Los targets individuales borran solo los datos del SGBD elegido; los de tipo +`all` borran ambos. Conservan configuración, init, samples y backups. La +reinicialización vuelve a iniciar y comprobar los SGBD seleccionados; +`reinit-all` inicia ambos sin Adminer. + +## Diagnóstico y solución de problemas + +### Falla la configuración o la validación de rutas + +Ejecute `make check-env`. Los data paths deben estar estrictamente bajo +`data/` y los samples bajo `samples/`; no pueden contener symlinks, solaparse +ni usar directorios reservados. Corrija `.docker.env` y ejecute `make config`. + +### Un servicio no está listo + +```bash +make status +make log SERVICE=mysql +make log SERVICE=postgres +``` + +Compruebe Docker, el puerto, `.docker.env` y los logs antes de tocar datos. + +### No aparecen cambios de init o samples + +Es normal si data ya estaba inicializado. Revise las rutas y la preparación, +haga backup y use `reinit-... CONFIRM=1` solo como último paso deliberado. + +### Un sample está incompleto o tiene propietario inesperado + +El loader no sobrescribe ni repara bases inesperadas. Repita +`make samples-mysql` o `make samples-postgres`, inspeccione el error y preserve +los datos antes de reinicializar. + +### Un cliente no conecta + +Los clientes del host usan la dirección publicada y `MYSQL_PORT` o +`POSTGRES_PORT`; Adminer usa `mysql` o `postgres` dentro de Compose. Revise +`BIND_ADDRESS`, firewall, base seleccionada y credenciales `DB_USER`. + +## Licencias y avisos de terceros + +Docker SQL Lab usa la licencia MIT: [LICENSE.md](../../LICENSE.md). Los samples +mantienen sus licencias upstream; fuentes, revisiones fijadas, integridad y +textos están en +[THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). diff --git a/docs/langs/README_fr.md b/docs/langs/README_fr.md new file mode 100644 index 0000000..f65d1b6 --- /dev/null +++ b/docs/langs/README_fr.md @@ -0,0 +1,396 @@ +

+ Docker SQL Lab — environnement local MySQL et PostgreSQL +

+ +# Docker SQL Lab + +## Choisissez une langue + +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../../README.md) | [English](README_en.md) | [Español](README_es.md) | [中文](README_zh.md) | **Sélectionné** | [Deutsch](README_de.md) | + +Environnement local fondé sur Docker Compose pour apprendre et comparer MySQL +et PostgreSQL. Chaque SGBD peut fonctionner seul, les deux peuvent fonctionner +ensemble et Adminer ne s’ajoute que lorsqu’une interface web est utile. + +## Stack et versions épinglées + +- MySQL 9.7.1 LTS +- PostgreSQL 18.4 +- Adminer 5.4.2 Docker Official Image +- Docker Compose v2 +- GNU Make et Bash pour les commandes et scripts d’initialisation + +Les versions d’images sont épinglées dans `.docker.env`. N’utilisez pas ce +laboratoire comme modèle de production sans réévaluer les identifiants, +l’exposition réseau, le stockage, les sauvegardes et l’exploitation. + +## Fonctionnalités principales + +- Services MySQL et PostgreSQL indépendants, utilisables aussi simultanément. +- Adminer optionnel, commun aux deux SGBD et sans dépendance à l’un d’eux. +- Base `demo` obligatoire dans chaque SGBD avec les mêmes cinq utilisateurs. +- Samples optionnels : Sakila et Chinook pour MySQL, Pagila et Chinook pour PostgreSQL. +- Répertoires bind-mounted data, init et samples séparés par SGBD. +- Identifiants pédagogiques communs et identifiants administratifs distincts. +- Contrôles statiques, protection des managed storage paths, contrôles runtime + et smoke-test des imports SQL de confiance. +- Confirmation explicite des opérations destructives de nettoyage et réinitialisation. + +## Prérequis + +- Docker Engine ou Docker Desktop avec la commande `docker compose` v2. +- GNU Make, Bash et les outils Unix utilisés par les scripts (`awk`, `sed`, + `grep`, `find`, `realpath` et `stat`). +- Pour les samples optionnels : `curl` et `git` ; MySQL demande aussi `unzip` + et `sha256sum`. + +Exécutez les commandes depuis la racine du dépôt. La branche par défaut du +projet est `master`. + +## Démarrage rapide + +Créez `.docker.env` depuis l’exemple suivi par Git, validez les chemins, créez +les répertoires de travail et démarrez le laboratoire complet : + +```bash +make init +make up +``` + +`make up` démarre MySQL, PostgreSQL et Adminer. Avec la configuration par +défaut, Adminer est disponible sur `http://127.0.0.1:8081`. + +```bash +make status +make logs +make down +``` + +`make down` supprime les conteneurs et le réseau, mais conserve les données +bind-mounted. + +## Modes de démarrage + +| Commande | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Démarre | Démarre | Démarre | +| `make up-no-ui` | Démarre ou laisse actif | Démarre ou laisse actif | Arrête s’il est actif | +| `make up-mysql` | Démarre | Ne démarre pas automatiquement | Ne démarre pas automatiquement | +| `make up-mysql-ui` | Démarre | Ne démarre pas automatiquement | Démarre | +| `make up-postgres` | Ne démarre pas automatiquement | Démarre | Ne démarre pas automatiquement | +| `make up-postgres-ui` | Ne démarre pas automatiquement | Démarre | Démarre | +| `make up-ui` | Ne change rien | Ne change rien | Démarre | +| `make down-ui` | Ne change rien | Ne change rien | Arrête | + +Les commandes dédiées à un SGBD n’arrêtent pas l’autre s’il fonctionne déjà. +Adminer se démarre et s’arrête séparément et n’est pas lié uniquement à MySQL. + +## Connexions + +### Adminer + +Dans le réseau Compose, Adminer propose deux serveurs prédéfinis : + +```text +MySQL (mysql) +PostgreSQL (postgres) +``` + +Choisissez un serveur, puis saisissez `DB_USER`, `DB_PASSWORD` et une base telle +que `demo`. `mysql` et `postgres` sont des noms internes au réseau Compose, pas +des noms d’hôte pour les clients desktop. + +### Clients sur l’hôte + +| SGBD | Hôte par défaut | Variable de port | Utilisateur | Base par défaut | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | + +DataGrip, DBeaver, PhpStorm et les CLI de l’hôte utilisent l’adresse et le port +publiés. Si `BIND_ADDRESS` change, utilisez l’adresse joignable de l’interface. + +### CLI dans les conteneurs + +Les mots de passe passent par l’environnement du conteneur et non par +l’historique du shell : + +```bash +make mysql # administrateur MySQL, base demo +make mysql-user # DB_USER, base demo +make postgres # superutilisateur PostgreSQL, base demo +make postgres-user # DB_USER, base demo +``` + +## Identifiants + +`.docker.env` est créé depuis `.docker.env.example` et ignoré par Git. Gardez +les mots de passe dans ce fichier ; ne les codez pas en dur dans Compose, SQL +ou une configuration client versionnée. + +| Usage | Utilisateur | Mot de passe | +|---|---|---| +| Utilisateur pédagogique commun | `DB_USER` | `DB_PASSWORD` | +| Administrateur MySQL | `root` | `MYSQL_ROOT_PASSWORD` | +| Administrateur/superutilisateur PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | + +`POSTGRES_SUPERUSER` et `DB_USER` doivent être deux rôles différents. Utilisez +le compte pédagogique pour les exercices courants. Remplacez les mots de passe +d’exemple avant tout partage ou toute publication de service. + +## Ports et `BIND_ADDRESS` + +| Service | Variable | Valeur d’exemple | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | + +Par défaut, les trois services ne sont publiés que sur loopback : + +```env +BIND_ADDRESS=127.0.0.1 +``` + +`127.0.0.1` est la valeur locale par défaut. `BIND_ADDRESS=0.0.0.0` publie les +ports sur toutes les interfaces. Pour un LAN ou VPN, préférez l’adresse d’une +interface précise. Ce changement doit être volontaire et tenir compte du +firewall, de la robustesse des mots de passe et de la confiance accordée au réseau. + +## Bases pédagogiques + +### Bases `demo` obligatoires + +Les deux SGBD initialisent `demo` : + +- MySQL : `demo.demo_users` +- PostgreSQL : `demo.public.demo_users` + +Les tables ont les champs équivalents `id`, `name`, `email` et `created_at`, +avec Alice, Bob, Carol, Dave et Eve. Les contrôles acceptent des lignes +supplémentaires. `make check-env` impose `MYSQL_DATABASE=demo` et +`POSTGRES_DATABASE=demo`. + +### Samples optionnels + +| SGBD | Bases optionnelles | Préparation | +|---|---|---| +| MySQL | Chinook, Sakila | `make samples-mysql` | +| PostgreSQL | Pagila, Chinook | `make samples-postgres` | + +La préparation télécharge et vérifie des fichiers upstream épinglés, sans +démarrer les conteneurs ni importer dans une base déjà initialisée. Les +téléchargements temporaires restent locaux, ne sont pas commités et sont +placés sous `MYSQL_SAMPLES_DIR` ou `POSTGRES_SAMPLES_DIR`. Provenance, +intégrité et licences figurent dans +[THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). + +Pour un répertoire data vide : + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Les entrypoints officiels ne traitent init que si le répertoire data est vide. +Pour ajouter des samples à une instance existante, sauvegardez puis +réinitialisez volontairement uniquement le SGBD concerné : + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` + +Un sample totalement absent est ignoré et n’empêche pas la création de `demo`. +Un ensemble incomplet ou une base inattendue est refusé, sans réparation ni +suppression automatique. + +## Targets Make publics + +`make help` affiche la liste concise. + +| Commande | Rôle | +|---|---| +| `make init` | Créer `.docker.env`, valider les chemins et créer les répertoires | +| `make check-env` | Vérifier env, rôles, noms de bases et managed paths | +| `make pull` | Télécharger les trois images épinglées | +| `make config` | Valider la configuration Compose développée | +| `make up`, `make up-no-ui` | Démarrer les deux SGBD avec ou sans Adminer | +| `make up-mysql`, `make up-mysql-ui` | Démarrer MySQL, avec Adminer en option | +| `make up-postgres`, `make up-postgres-ui` | Démarrer PostgreSQL, avec Adminer en option | +| `make up-ui`, `make down-ui` | Démarrer ou arrêter seulement Adminer | +| `make down` | Arrêter sans supprimer les données bind-mounted | +| `make status`, `make logs` | Afficher l’état ou suivre tous les logs | +| `make log SERVICE=postgres` | Suivre un service ; `make log postgres` fonctionne aussi | +| `make in SERVICE=postgres` | Ouvrir un shell ; `make in postgres` fonctionne aussi | +| `make mysql`, `make mysql-user` | Ouvrir MySQL comme admin ou `DB_USER` | +| `make postgres`, `make postgres-user` | Ouvrir PostgreSQL comme superutilisateur ou `DB_USER` | +| `make samples-mysql`, `make samples-postgres` | Préparer les samples vérifiés | +| `make check-mysql-access`, `make check-postgres-access` | Contrôler un SGBD actif | +| `make check` | Valider Compose et l’accès `DB_USER` aux deux SGBD | +| `make test-storage-paths` | Tester les managed paths sans Docker runtime | +| `make test-sql-imports` | Smoke-test des deux imports SQL publics | +| `make mysql-import FILE=... DATABASE=...` | Importer du plain SQL dans MySQL comme `DB_USER` | +| `make postgres-import FILE=... DATABASE=...` | Importer du plain SQL dans PostgreSQL comme `DB_USER` | +| `make dump`, `make restore` | Sauvegarder ou restaurer `demo` dans MySQL | +| `make clean-{mysql,postgres,all} CONFIRM=1` | Supprimer les data directories choisis | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | Supprimer, recréer et contrôler les bases | + +## Contrôles + +### Contrôles statiques et locaux + +```bash +make check-env +make config +make test-storage-paths +``` + +`make check-env` crée `.docker.env` s’il manque, puis valide valeurs et chemins. +`make config` valide le modèle Compose développé. `make test-storage-paths` ne +demande pas de Docker runtime : il teste les sorties du projet, composants +symlink, chemins qui se chevauchent ou s’imbriquent et répertoires réservés. + +### Contrôles runtime + +```bash +make up-no-ui +make check +make test-sql-imports +make down +``` + +`make check` valide `demo` et l’accès réel de `DB_USER` aux deux SGBD, ainsi que +les samples installés. `make test-sql-imports` exige que les deux SGBD soient +actifs ; il appelle `mysql-import` et `postgres-import`, crée des tables +temporaires aux noms uniques dans `demo`, vérifie les marker rows comme +`DB_USER` puis ne supprime que ces tables. C’est un smoke-test du flux trusted +import, ni un sandbox ni une preuve de sécurité pour du SQL non fiable. + +## Imports SQL de confiance + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +Pour les deux targets : + +- `FILE` et `DATABASE` sont obligatoires. +- Le fichier local plain SQL doit exister, être lisible et non vide. +- La base doit déjà exister ; les bases système sont interdites. +- L’import s’exécute comme `DB_USER`, sans créer de base ni accorder de grants. +- `DATABASE` choisit la connexion initiale, mais ne crée pas de sandbox. +- Les qualified names, commandes client/session et grants effectifs peuvent + atteindre d’autres objets accessibles. +- Une exécution partielle est possible ; aucun rollback automatique n’est promis. +- Effectuez une sauvegarde avant un import important. +- gzip, archives et backups PostgreSQL custom-format ne sont pas pris en charge. + +## Cycle de vie data/init + +```text +data/ +├── mysql/ +└── postgres/ + +initdb/ +├── mysql/ +└── postgres/ +``` + +| SGBD | Data | Init | Samples optionnels | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | + +Les chemins data et samples se configurent dans `.docker.env` sous contrôle +des managed paths. Les entrypoints exécutent init uniquement avec un data +directory vide ; modifier init ne migre pas une base existante. `make down` ne +supprime aucun bind mount. Ne modifiez pas manuellement les fichiers de +`data/` : ils peuvent appartenir à des UID/GID numériques du conteneur. + +## Sauvegarde, nettoyage et réinitialisation + +Les targets intégrés couvrent uniquement la base MySQL `demo` configurée : + +```bash +make dump +make restore +``` + +`make dump` écrit `backup/demo.sql` ; `make restore` le lit et réapplique les +grants pédagogiques MySQL. Utilisez une procédure distincte pour PostgreSQL. + +> **Attention :** tous les targets `clean-*` et `reinit-*` sont destructifs et +> exigent la confirmation exacte `CONFIRM=1`. + +```bash +make clean-mysql CONFIRM=1 +make clean-postgres CONFIRM=1 +make clean-all CONFIRM=1 + +make reinit-mysql CONFIRM=1 +make reinit-postgres CONFIRM=1 +make reinit-all CONFIRM=1 +``` + +Les commandes unitaires ne suppriment que les données du SGBD choisi ; `all` +supprime celles des deux. Configuration, init, samples et backups restent en +place. La réinitialisation redémarre et contrôle les SGBD choisis ; +`reinit-all` démarre les deux sans Adminer. + +## Diagnostic et dépannage + +### Échec de configuration ou de validation des chemins + +Lancez `make check-env`. Les data paths doivent rester strictement sous +`data/` et les samples sous `samples/` ; aucun symlink, chevauchement ou +répertoire réservé n’est admis. Corrigez `.docker.env` puis lancez `make config`. + +### Un service n’est pas prêt + +```bash +make status +make log SERVICE=mysql +make log SERVICE=postgres +``` + +Vérifiez Docker, le port, `.docker.env` et les logs avant de toucher aux données. + +### Les changements init ou les samples n’apparaissent pas + +C’est normal si data est déjà initialisé. Vérifiez chemins et préparation, +sauvegardez les données importantes et n’utilisez `reinit-... CONFIRM=1` qu’en +dernier recours volontaire. + +### Sample incomplet ou propriétaire inattendu + +Le loader ne remplace ni ne répare une base inattendue. Relancez +`make samples-mysql` ou `make samples-postgres` et inspectez l’erreur ; +préservez les données avant toute réinitialisation. + +### Un client ne se connecte pas + +Les clients hôtes utilisent l’adresse publiée et `MYSQL_PORT` ou +`POSTGRES_PORT` ; Adminer utilise `mysql` ou `postgres` dans Compose. Vérifiez +`BIND_ADDRESS`, firewall, base sélectionnée et identifiants `DB_USER`. + +## Licences et mentions de tiers + +Docker SQL Lab est sous licence MIT : [LICENSE.md](../../LICENSE.md). Les +samples conservent leurs licences upstream ; sources, révisions épinglées, +intégrité et textes figurent dans +[THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). diff --git a/docs/langs/README_zh.md b/docs/langs/README_zh.md new file mode 100644 index 0000000..6b6dbb2 --- /dev/null +++ b/docs/langs/README_zh.md @@ -0,0 +1,378 @@ +

+ Docker SQL Lab — 本地 MySQL 与 PostgreSQL 实验环境 +

+ +# Docker SQL Lab + +## 选择语言 + +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../../README.md) | [English](README_en.md) | [Español](README_es.md) | **已选择** | [Français](README_fr.md) | [Deutsch](README_de.md) | + +这是一个基于 Docker Compose 的本地环境,用于学习和比较 MySQL 与 +PostgreSQL。两种数据库既可独立运行,也可同时运行;仅在需要浏览器 +界面时启用 Adminer。 + +## 技术栈与固定版本 + +- MySQL 9.7.1 LTS +- PostgreSQL 18.4 +- Adminer 5.4.2 Docker Official Image +- Docker Compose v2 +- GNU Make 和 Bash,用于项目命令及初始化脚本 + +镜像版本固定在 `.docker.env` 中。在将本项目用于生产环境之前,必须 +单独评估凭据、网络暴露、存储、备份和运维要求。 + +## 主要功能 + +- MySQL 与 PostgreSQL 相互独立,也可以同时运行。 +- Adminer 为可选组件,可连接两种数据库,不依赖某个特定数据库服务。 +- 每种数据库都有必需的 `demo` 数据库和相同的五个示例用户。 +- 可选 samples:MySQL 使用 Sakila 和 Chinook;PostgreSQL 使用 Pagila 和 Chinook。 +- 每种数据库的 data、init 和 sample bind mount 相互分离。 +- 两种数据库共用学习凭据,管理员凭据彼此独立。 +- 提供静态配置检查、managed storage path 保护、runtime 访问检查和 + trusted SQL import smoke-test。 +- 清理与重新初始化等破坏性命令必须显式确认。 + +## 要求 + +- Docker Engine 或 Docker Desktop,并支持 `docker compose` v2 命令。 +- GNU Make、Bash,以及脚本使用的 Unix 工具:`awk`、`sed`、`grep`、 + `find`、`realpath` 和 `stat`。 +- 下载可选 samples 需要 `curl` 和 `git`;MySQL 还需要 `unzip` 与 + `sha256sum`。 + +请在仓库根目录执行命令。项目默认分支为 `master`。 + +## 快速开始 + +从受版本控制的示例创建 `.docker.env`,验证路径,创建工作目录并启动 +完整环境: + +```bash +make init +make up +``` + +`make up` 会启动 MySQL、PostgreSQL 和 Adminer。默认配置下,Adminer +地址为 `http://127.0.0.1:8081`。 + +```bash +make status +make logs +make down +``` + +`make down` 删除容器和网络,但保留 bind-mounted 数据。 + +## 启动模式 + +| 命令 | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | 启动 | 启动 | 启动 | +| `make up-no-ui` | 启动或保持运行 | 启动或保持运行 | 若运行则停止 | +| `make up-mysql` | 启动 | 不自动启动 | 不自动启动 | +| `make up-mysql-ui` | 启动 | 不自动启动 | 启动 | +| `make up-postgres` | 不自动启动 | 启动 | 不自动启动 | +| `make up-postgres-ui` | 不自动启动 | 启动 | 启动 | +| `make up-ui` | 不改变 | 不改变 | 启动 | +| `make down-ui` | 不改变 | 不改变 | 停止 | + +单数据库命令不会停止已经运行的另一种数据库。Adminer 可以单独启停, +并非只服务于 MySQL。 + +## 连接 + +### Adminer + +在 Compose 网络内,Adminer 提供两个预设服务器: + +```text +MySQL (mysql) +PostgreSQL (postgres) +``` + +选择服务器后,使用 `DB_USER`、`DB_PASSWORD` 和数据库名(如 `demo`) +登录。`mysql` 与 `postgres` 是 Compose 内部服务名,不是桌面客户端的 +主机名。 + +### 主机客户端 + +| 数据库 | 默认主机 | 端口变量 | 用户 | 默认数据库 | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | + +DataGrip、DBeaver、PhpStorm 和主机 CLI 使用发布的地址与端口。如果修改 +`BIND_ADDRESS`,请按需改用对应接口可达的地址。 + +### 容器内 CLI + +Make targets 通过容器环境传递密码,不会把密码写入 shell history: + +```bash +make mysql # MySQL 管理员,demo 数据库 +make mysql-user # DB_USER,demo 数据库 +make postgres # PostgreSQL 超级用户,demo 数据库 +make postgres-user # DB_USER,demo 数据库 +``` + +## 凭据 + +`.docker.env` 从 `.docker.env.example` 创建,并被 Git 忽略。密码应保存在 +该文件中,不要硬编码进受版本控制的 Compose、SQL 或客户端配置。 + +| 用途 | 用户设置 | 密码设置 | +|---|---|---| +| 两种数据库共用的学习用户 | `DB_USER` | `DB_PASSWORD` | +| MySQL 管理员 | `root` | `MYSQL_ROOT_PASSWORD` | +| PostgreSQL 管理员/超级用户 | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | + +`POSTGRES_SUPERUSER` 与 `DB_USER` 必须是不同角色。日常练习应使用学习 +用户。对外共享或发布服务前,请替换示例密码。 + +## 端口与 `BIND_ADDRESS` + +| 服务 | 端口变量 | 示例默认值 | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | + +默认情况下,三个服务只绑定 loopback: + +```env +BIND_ADDRESS=127.0.0.1 +``` + +`127.0.0.1` 是本地默认值。`BIND_ADDRESS=0.0.0.0` 会在所有网络接口上 +发布端口。LAN 或 VPN 访问应优先使用具体接口的地址。修改时必须明确 +评估 firewall、密码强度和网络可信度。 + +## 学习数据库 + +### 必需的 `demo` 数据库 + +两种数据库都会初始化 `demo`: + +- MySQL:`demo.demo_users` +- PostgreSQL:`demo.public.demo_users` + +表包含等价字段 `id`、`name`、`email` 和 `created_at`,以及相同的五名 +用户 Alice、Bob、Carol、Dave 和 Eve;检查允许用户添加额外行。 +`make check-env` 要求 `MYSQL_DATABASE=demo` 与 `POSTGRES_DATABASE=demo`。 + +### 可选 samples + +| 数据库 | 可选数据库 | 准备命令 | +|---|---|---| +| MySQL | Chinook、Sakila | `make samples-mysql` | +| PostgreSQL | Pagila、Chinook | `make samples-postgres` | + +准备命令会下载并校验固定的 upstream 文件,但不会启动容器,也不会向 +已初始化数据库导入数据。临时下载仅保存在本地,不提交到 Git,最终位于 +`MYSQL_SAMPLES_DIR` 或 `POSTGRES_SAMPLES_DIR`。来源、完整性固定值和许可 +见 [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md)。 + +data 目录为空时: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +官方 entrypoint 仅在相应 data 目录为空时处理 init 文件。要向已初始化 +实例添加 samples,请先备份,再有意地只重新初始化对应数据库: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` + +完全缺失的 sample 会被跳过,不影响创建 `demo`。不完整的 sample 集合或 +意外存在的 sample 数据库会被拒绝,不会自动修复或删除。 + +## 公共 Make targets + +`make help` 显示简要命令列表。 + +| 命令 | 用途 | +|---|---| +| `make init` | 创建 `.docker.env`、验证 managed paths、创建目录 | +| `make check-env` | 检查 env、角色分离、数据库名与 managed paths | +| `make pull` | 拉取三个固定版本的镜像 | +| `make config` | 验证展开后的 Compose 配置 | +| `make up`、`make up-no-ui` | 启动两个数据库,启用或不启用 Adminer | +| `make up-mysql`、`make up-mysql-ui` | 启动 MySQL,可选 Adminer | +| `make up-postgres`、`make up-postgres-ui` | 启动 PostgreSQL,可选 Adminer | +| `make up-ui`、`make down-ui` | 仅启动或停止 Adminer | +| `make down` | 停止环境但不删除 bind-mounted 数据 | +| `make status`、`make logs` | 查看状态或跟踪所有日志 | +| `make log SERVICE=postgres` | 跟踪单个服务;也支持 `make log postgres` | +| `make in SERVICE=postgres` | 打开服务 shell;也支持 `make in postgres` | +| `make mysql`、`make mysql-user` | 以管理员或 `DB_USER` 打开 MySQL | +| `make postgres`、`make postgres-user` | 以超级用户或 `DB_USER` 打开 PostgreSQL | +| `make samples-mysql`、`make samples-postgres` | 准备已校验的 samples | +| `make check-mysql-access`、`make check-postgres-access` | 检查一个运行中的数据库 | +| `make check` | 验证 Compose 及 `DB_USER` 对两种数据库的访问 | +| `make test-storage-paths` | 无需 Docker runtime 测试 managed path 保护 | +| `make test-sql-imports` | smoke-test 两个公共 SQL import targets | +| `make mysql-import FILE=... DATABASE=...` | 以 `DB_USER` 向 MySQL 导入 plain SQL | +| `make postgres-import FILE=... DATABASE=...` | 以 `DB_USER` 向 PostgreSQL 导入 plain SQL | +| `make dump`、`make restore` | 备份或恢复 MySQL `demo` | +| `make clean-{mysql,postgres,all} CONFIRM=1` | 删除选定的 data 目录 | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | 删除、重建并检查数据库 | + +## 检查 + +### 静态与本地检查 + +```bash +make check-env +make config +make test-storage-paths +``` + +`make check-env` 在缺失时创建 `.docker.env`,然后验证配置与 managed +paths。`make config` 验证展开后的 Compose 模型。`make test-storage-paths` +不需要 Docker runtime;它测试项目外路径、symlink 组件、路径重叠/嵌套 +以及 reserved directories。 + +### Runtime 检查 + +```bash +make up-no-ui +make check +make test-sql-imports +make down +``` + +`make check` 验证必需的 `demo` 数据和 `DB_USER` 的实际访问,也检查已安装 +的可选 samples。`make test-sql-imports` 要求两种数据库都已启动;它调用 +公共 `mysql-import` 与 `postgres-import`,在 `demo` 中创建唯一命名的临时 +表,以 `DB_USER` 验证 marker rows,并且只删除这些表。这是 trusted import +工作流的 smoke-test,不是 sandbox,也不能证明不可信 SQL 的安全性。 + +## Trusted SQL 导入 + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +两个 targets 都遵循以下规则: + +- `FILE` 与 `DATABASE` 必填。 +- 文件必须是存在、可读、非空的本地 plain SQL。 +- 数据库必须已存在;禁止系统数据库。 +- import 以 `DB_USER` 执行,不创建数据库,也不授予 grants。 +- `DATABASE` 只选择初始连接,不创建 sandbox。 +- qualified names、client/session commands 及真实 grants 可能影响其他 + 可访问对象。 +- 可能发生 partial execution;不承诺自动 rollback。 +- 重要导入前必须备份。 +- 不处理 gzip、archives 或 PostgreSQL custom-format backups。 + +## Data 与 init 生命周期 + +```text +data/ +├── mysql/ +└── postgres/ + +initdb/ +├── mysql/ +└── postgres/ +``` + +| 数据库 | Data | Init | 可选 samples | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | + +data 与 sample 路径可在 `.docker.env` 中修改,但必须通过 managed path +验证。entrypoint 仅在 data 目录为空时执行 init;修改 init 文件不会迁移 +已有数据库。`make down` 不删除 bind mount 数据。不要手工编辑 `data/` +中的数据库文件,它们可能属于容器使用的数字 UID/GID。 + +## 备份、清理与重新初始化 + +内置 targets 只覆盖配置的 MySQL `demo` 数据库: + +```bash +make dump +make restore +``` + +`make dump` 写入 `backup/demo.sql`;`make restore` 读取该文件并重新应用 +MySQL 学习 grants。PostgreSQL 数据应使用独立备份流程。 + +> **警告:** 所有 `clean-*` 和 `reinit-*` 命令都是破坏性的,并且要求 +> 精确确认 `CONFIRM=1`。 + +```bash +make clean-mysql CONFIRM=1 +make clean-postgres CONFIRM=1 +make clean-all CONFIRM=1 + +make reinit-mysql CONFIRM=1 +make reinit-postgres CONFIRM=1 +make reinit-all CONFIRM=1 +``` + +单数据库命令只删除对应 data 目录;`all` 会删除两种数据库的数据。配置、 +init、samples 和 backups 会保留。reinit 随后启动并检查所选数据库; +`reinit-all` 启动两者但不启用 Adminer。 + +## 诊断与故障排除 + +### 配置或 storage path 验证失败 + +运行 `make check-env`。data paths 必须严格位于 `data/` 内,samples 必须 +位于 `samples/` 内;不得包含 symlink、互相重叠或使用 reserved +directories。修正 `.docker.env` 后运行 `make config`。 + +### 服务未就绪 + +```bash +make status +make log SERVICE=mysql +make log SERVICE=postgres +``` + +在修改数据前,检查 Docker、端口、`.docker.env` 与日志。 + +### init 修改或 samples 未出现 + +如果 data 已初始化,这是预期行为。检查路径与准备命令,备份重要数据, +仅在明确需要时最后使用 `reinit-... CONFIRM=1`。 + +### sample 不完整或所有者异常 + +loader 不会覆盖或修复意外数据库。重新运行 `make samples-mysql` 或 +`make samples-postgres` 并检查错误;重新初始化前先保留所需数据。 + +### 客户端无法连接 + +主机客户端使用发布地址及 `MYSQL_PORT` 或 `POSTGRES_PORT`;Adminer 在 +Compose 网络中使用 `mysql` 或 `postgres`。检查 `BIND_ADDRESS`、 +firewall、数据库选择和非管理员 `DB_USER` 凭据。 + +## 许可与第三方声明 + +Docker SQL Lab 使用 MIT License,见 [LICENSE.md](../../LICENSE.md)。 +可选 samples 保留 upstream 许可;来源、固定 revision、完整性信息和许可 +文本见 [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md)。 From d6a1f7d53c0aca780718597c8811cf8881c6c5f7 Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Mon, 20 Jul 2026 11:57:09 +0300 Subject: [PATCH 10/17] =?UTF-8?q?fix:=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20docker-sql-lab-cover.png?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/assets/docker-sql-lab-cover.png | Bin 237230 -> 564367 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/assets/docker-sql-lab-cover.png b/docs/assets/docker-sql-lab-cover.png index 3752a2cba0eef4ea86f9e80be581a0658fd04b0d..190165f13c2a7ce8f285ecb387dda5281f4fdec4 100644 GIT binary patch literal 564367 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
u5w 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 z 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

0dl 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

^c>43zNuD71i6xW{SqCCQfB4G(5*T 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

)_HyX2=D05>#7TtFy%1)CL*h31 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�gFPe4&Fzlvq*i6|0U0=Sa5U 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

KqML4SU0jIFQwq#fsz`>nrbJ^5GQvkK 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 Date: Mon, 20 Jul 2026 12:26:51 +0300 Subject: [PATCH 11/17] =?UTF-8?q?docs(readme):=20=D0=B4=D0=BE=D0=B1=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20footer=20=D0=B0=D0=B2=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 15 +++++++++++++++ docs/langs/README_de.md | 15 +++++++++++++++ docs/langs/README_en.md | 15 +++++++++++++++ docs/langs/README_es.md | 15 +++++++++++++++ docs/langs/README_fr.md | 15 +++++++++++++++ docs/langs/README_zh.md | 15 +++++++++++++++ 6 files changed, 90 insertions(+) diff --git a/README.md b/README.md index 9edcfb8..b8fc351 100644 --- a/README.md +++ b/README.md @@ -447,3 +447,18 @@ Docker SQL Lab распространяется по лицензии MIT; см. [LICENSE.md](LICENSE.md). Optional sample-базы сохраняют upstream-лицензии и уведомления; источники, закреплённые ревизии, integrity information и тексты лицензий приведены в [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). + +--- + + diff --git a/docs/langs/README_de.md b/docs/langs/README_de.md index 8f6676c..3c02f9c 100644 --- a/docs/langs/README_de.md +++ b/docs/langs/README_de.md @@ -397,3 +397,18 @@ Docker SQL Lab steht unter der MIT License: [LICENSE.md](../../LICENSE.md). Optionale Samples behalten ihre upstream-Lizenzen; Quellen, festgelegte Revisionen, Integritätswerte und Texte stehen in [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). + +--- + +

+ + YA + +
+ Александр Юрченко · + yaleksandr89.github.io +

diff --git a/docs/langs/README_en.md b/docs/langs/README_en.md index 4914449..2d8c086 100644 --- a/docs/langs/README_en.md +++ b/docs/langs/README_en.md @@ -449,3 +449,18 @@ Docker SQL Lab is licensed under the MIT License; see [LICENSE.md](../../LICENSE.md). Optional sample databases retain their upstream licenses and notices; see [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md) for sources, pinned revisions, integrity information, and license text. + +--- + +

+ + YA + +
+ Александр Юрченко · + yaleksandr89.github.io +

diff --git a/docs/langs/README_es.md b/docs/langs/README_es.md index e57e467..e7cf8cb 100644 --- a/docs/langs/README_es.md +++ b/docs/langs/README_es.md @@ -390,3 +390,18 @@ Docker SQL Lab usa la licencia MIT: [LICENSE.md](../../LICENSE.md). Los samples mantienen sus licencias upstream; fuentes, revisiones fijadas, integridad y textos están en [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). + +--- + +

+ + YA + +
+ Александр Юрченко · + yaleksandr89.github.io +

diff --git a/docs/langs/README_fr.md b/docs/langs/README_fr.md index f65d1b6..3f1aaff 100644 --- a/docs/langs/README_fr.md +++ b/docs/langs/README_fr.md @@ -394,3 +394,18 @@ Docker SQL Lab est sous licence MIT : [LICENSE.md](../../LICENSE.md). Les samples conservent leurs licences upstream ; sources, révisions épinglées, intégrité et textes figurent dans [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). + +--- + +

+ + YA + +
+ Александр Юрченко · + yaleksandr89.github.io +

diff --git a/docs/langs/README_zh.md b/docs/langs/README_zh.md index 6b6dbb2..501d643 100644 --- a/docs/langs/README_zh.md +++ b/docs/langs/README_zh.md @@ -376,3 +376,18 @@ firewall、数据库选择和非管理员 `DB_USER` 凭据。 Docker SQL Lab 使用 MIT License,见 [LICENSE.md](../../LICENSE.md)。 可选 samples 保留 upstream 许可;来源、固定 revision、完整性信息和许可 文本见 [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md)。 + +--- + +

+ + YA + +
+ Александр Юрченко · + yaleksandr89.github.io +

From 41cf9e67ff609fb1bbd2eea4ebc12bc4b71cfac8 Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Mon, 20 Jul 2026 12:38:13 +0300 Subject: [PATCH 12/17] =?UTF-8?q?docs(readme):=20=D1=83=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D1=81=D1=82=D0=B8=D1=82=D1=8C=20footer?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 1 - docs/langs/README_de.md | 3 --- docs/langs/README_en.md | 3 --- docs/langs/README_es.md | 3 --- docs/langs/README_fr.md | 3 --- docs/langs/README_zh.md | 3 --- 6 files changed, 16 deletions(-) diff --git a/README.md b/README.md index b8fc351..469bf25 100644 --- a/README.md +++ b/README.md @@ -459,6 +459,5 @@ Docker SQL Lab распространяется по лицензии MIT; см. >
- Александр Юрченко · yaleksandr89.github.io

diff --git a/docs/langs/README_de.md b/docs/langs/README_de.md index 3c02f9c..3342a70 100644 --- a/docs/langs/README_de.md +++ b/docs/langs/README_de.md @@ -398,8 +398,6 @@ Docker SQL Lab steht unter der MIT License: upstream-Lizenzen; Quellen, festgelegte Revisionen, Integritätswerte und Texte stehen in [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). ---- -


- Александр Юрченко · yaleksandr89.github.io

diff --git a/docs/langs/README_en.md b/docs/langs/README_en.md index 2d8c086..67e8daf 100644 --- a/docs/langs/README_en.md +++ b/docs/langs/README_en.md @@ -450,8 +450,6 @@ Docker SQL Lab is licensed under the MIT License; see licenses and notices; see [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md) for sources, pinned revisions, integrity information, and license text. ---- -


- Александр Юрченко · yaleksandr89.github.io

diff --git a/docs/langs/README_es.md b/docs/langs/README_es.md index e7cf8cb..5b66f5d 100644 --- a/docs/langs/README_es.md +++ b/docs/langs/README_es.md @@ -391,8 +391,6 @@ mantienen sus licencias upstream; fuentes, revisiones fijadas, integridad y textos están en [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). ---- -


- Александр Юрченко · yaleksandr89.github.io

diff --git a/docs/langs/README_fr.md b/docs/langs/README_fr.md index 3f1aaff..ed473ec 100644 --- a/docs/langs/README_fr.md +++ b/docs/langs/README_fr.md @@ -395,8 +395,6 @@ samples conservent leurs licences upstream ; sources, révisions épinglées, intégrité et textes figurent dans [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). ---- -


- Александр Юрченко · yaleksandr89.github.io

diff --git a/docs/langs/README_zh.md b/docs/langs/README_zh.md index 501d643..e340c99 100644 --- a/docs/langs/README_zh.md +++ b/docs/langs/README_zh.md @@ -377,8 +377,6 @@ Docker SQL Lab 使用 MIT License,见 [LICENSE.md](../../LICENSE.md)。 可选 samples 保留 upstream 许可;来源、固定 revision、完整性信息和许可 文本见 [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md)。 ---- -


- Александр Юрченко · yaleksandr89.github.io

From 13a483dc84d160f52e8357164fd3ac87cf6afb70 Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Mon, 20 Jul 2026 15:04:14 +0300 Subject: [PATCH 13/17] =?UTF-8?q?docs(readme):=20=D1=80=D0=B0=D0=B7=D0=B4?= =?UTF-8?q?=D0=B5=D0=BB=D0=B8=D1=82=D1=8C=20=D0=B4=D0=BE=D0=BA=D1=83=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D1=8E=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D1=82=D0=B5=D0=BC=D0=B0=D1=82=D0=B8=D1=87=D0=B5=D1=81=D0=BA?= =?UTF-8?q?=D0=B8=D0=B5=20=D1=80=D0=B0=D0=B7=D0=B4=D0=B5=D0=BB=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 328 +++---------------------------- docs/langs/README_de.md | 279 +++----------------------- docs/langs/README_en.md | 327 +++--------------------------- docs/langs/README_es.md | 273 +++---------------------- docs/langs/README_fr.md | 276 +++----------------------- docs/langs/README_zh.md | 265 +++---------------------- docs/langs/de/databases.md | 110 +++++++++++ docs/langs/de/getting-started.md | 152 ++++++++++++++ docs/langs/de/operations.md | 153 ++++++++++++++ docs/langs/de/troubleshooting.md | 57 ++++++ docs/langs/en/databases.md | 121 ++++++++++++ docs/langs/en/getting-started.md | 162 +++++++++++++++ docs/langs/en/operations.md | 173 ++++++++++++++++ docs/langs/en/troubleshooting.md | 66 +++++++ docs/langs/es/databases.md | 107 ++++++++++ docs/langs/es/getting-started.md | 151 ++++++++++++++ docs/langs/es/operations.md | 151 ++++++++++++++ docs/langs/es/troubleshooting.md | 55 ++++++ docs/langs/fr/databases.md | 110 +++++++++++ docs/langs/fr/getting-started.md | 152 ++++++++++++++ docs/langs/fr/operations.md | 151 ++++++++++++++ docs/langs/fr/troubleshooting.md | 56 ++++++ docs/langs/ru/databases.md | 121 ++++++++++++ docs/langs/ru/getting-started.md | 160 +++++++++++++++ docs/langs/ru/operations.md | 175 +++++++++++++++++ docs/langs/ru/troubleshooting.md | 67 +++++++ docs/langs/zh/databases.md | 103 ++++++++++ docs/langs/zh/getting-started.md | 146 ++++++++++++++ docs/langs/zh/operations.md | 149 ++++++++++++++ docs/langs/zh/troubleshooting.md | 53 +++++ 30 files changed, 3085 insertions(+), 1564 deletions(-) create mode 100644 docs/langs/de/databases.md create mode 100644 docs/langs/de/getting-started.md create mode 100644 docs/langs/de/operations.md create mode 100644 docs/langs/de/troubleshooting.md create mode 100644 docs/langs/en/databases.md create mode 100644 docs/langs/en/getting-started.md create mode 100644 docs/langs/en/operations.md create mode 100644 docs/langs/en/troubleshooting.md create mode 100644 docs/langs/es/databases.md create mode 100644 docs/langs/es/getting-started.md create mode 100644 docs/langs/es/operations.md create mode 100644 docs/langs/es/troubleshooting.md create mode 100644 docs/langs/fr/databases.md create mode 100644 docs/langs/fr/getting-started.md create mode 100644 docs/langs/fr/operations.md create mode 100644 docs/langs/fr/troubleshooting.md create mode 100644 docs/langs/ru/databases.md create mode 100644 docs/langs/ru/getting-started.md create mode 100644 docs/langs/ru/operations.md create mode 100644 docs/langs/ru/troubleshooting.md create mode 100644 docs/langs/zh/databases.md create mode 100644 docs/langs/zh/getting-started.md create mode 100644 docs/langs/zh/operations.md create mode 100644 docs/langs/zh/troubleshooting.md diff --git a/README.md b/README.md index 469bf25..cea3a9c 100644 --- a/README.md +++ b/README.md @@ -81,17 +81,11 @@ make down | Команда | MySQL | PostgreSQL | Adminer | |---|---|---|---| | `make up` | Запускает | Запускает | Запускает | -| `make up-no-ui` | Запускает или оставляет активным | Запускает или оставляет активным | Останавливает, если запущен | -| `make up-mysql` | Запускает | Не запускает автоматически | Не запускает автоматически | -| `make up-mysql-ui` | Запускает | Не запускает автоматически | Запускает | -| `make up-postgres` | Не запускает автоматически | Запускает | Не запускает автоматически | -| `make up-postgres-ui` | Не запускает автоматически | Запускает | Запускает | -| `make up-ui` | Не меняет состояние | Не меняет состояние | Запускает | -| `make down-ui` | Не меняет состояние | Не меняет состояние | Останавливает | - -Команды одиночного запуска не останавливают другую уже работающую СУБД. -Adminer можно запускать и останавливать отдельно; он не привязан только к -MySQL. +| `make up-no-ui` | Запускает | Запускает | Останавливает | +| `make up-mysql` | Запускает | Не запускает | Не запускает | +| `make up-postgres` | Не запускает | Запускает | Не запускает | + +Команды одной СУБД не останавливают уже работающую другую; Adminer управляется отдельно. ## Подключения @@ -133,136 +127,21 @@ make postgres # superuser PostgreSQL, база demo make postgres-user # DB_USER, база demo ``` -## Учётные данные - -При копировании `.docker.env.example` создаётся `.docker.env`; этот файл -исключён из Git. Храните пароли в нём и не хардкодьте их в Compose, SQL или -отслеживаемой конфигурации клиентов. +## Кратко об учётных данных -| Назначение | Настройка пользователя | Настройка пароля | +| Назначение | Пользователь | Пароль | |---|---|---| | Общий учебный пользователь двух СУБД | `DB_USER` | `DB_PASSWORD` | | Администратор MySQL | `root` | `MYSQL_ROOT_PASSWORD` | -| Администратор/superuser PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | - -`POSTGRES_SUPERUSER` и `DB_USER` должны быть разными ролями. Для обычных -упражнений используйте общего учебного пользователя, а не root или superuser. -Замените пароли из примера до предоставления общего доступа или публикации -любого сервиса за пределами локального компьютера. - -## Порты и `BIND_ADDRESS` - -Порты хоста настраиваются в `.docker.env`: - -| Сервис | Переменная порта | Значение примера | -|---|---|---| -| MySQL | `MYSQL_PORT` | `3306` | -| PostgreSQL | `POSTGRES_PORT` | `5432` | -| Adminer | `ADMINER_PORT` | `8081` | - -По умолчанию все три сервиса публикуются только на loopback: - -```env -BIND_ADDRESS=127.0.0.1 -``` - -Это безопасный default для локального стенда. Значение -`BIND_ADDRESS=0.0.0.0` публикует настроенные порты на всех сетевых интерфейсах. -Для доступа через VPN или LAN предпочтительнее адрес конкретного интерфейса. -Меняйте binding осознанно, учитывая правила firewall, надёжность паролей и -доверие ко всем подключённым сетям. - -## Учебные базы - -### Обязательные базы `demo` - -Обе СУБД инициализируют обязательную базу с именем `demo`: - -- MySQL: `demo.demo_users` -- PostgreSQL: `demo.public.demo_users` - -Таблицы содержат эквивалентные поля `id`, `name`, `email`, `created_at` и -одинаковые пять обязательных пользователей: Alice, Bob, Carol, Dave и Eve. -Проверки допускают дополнительные строки, созданные пользователем. - -Имена баз по умолчанию задаются как `MYSQL_DATABASE=demo` и -`POSTGRES_DATABASE=demo`; `make check-env` требует именно эти значения. - -### Необязательные учебные базы - -| СУБД | Необязательные базы | Команда подготовки | -|---|---|---| -| MySQL | Chinook, Sakila | `make samples-mysql` | -| PostgreSQL | Pagila, Chinook | `make samples-postgres` | +| Superuser PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -Команды подготовки загружают и проверяют закреплённые upstream-файлы, но не -запускают контейнеры и не импортируют данные в уже инициализированную СУБД. -Загрузки остаются локальными, исключаются из Git и сохраняются в -`MYSQL_SAMPLES_DIR` или `POSTGRES_SAMPLES_DIR`. Происхождение, integrity pins и -лицензии описаны в [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). +`POSTGRES_SUPERUSER` и `DB_USER` должны быть разными ролями. Для обычных упражнений используйте общего учебного пользователя и замените примерные пароли до публикации сервисов. -Для СУБД с пустым data-каталогом: +## Базы и ключевые проверки -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` - -Официальные entrypoints образов обрабатывают init-файлы только при пустом -data-каталоге соответствующей СУБД. Чтобы добавить samples в уже -инициализированную СУБД, сначала сохраните важные данные, затем осознанно -переинициализируйте только её: - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` +Обе СУБД создают обязательную базу `demo` с эквивалентной таблицей `demo_users`. Optional samples: Chinook и Sakila для MySQL, Pagila и Chinook для PostgreSQL. Подготовка samples не импортирует их в уже инициализированные данные. -Полностью отсутствующий optional sample пропускается и не мешает создать -обязательную `demo`. Частичный набор sample-файлов или неожиданная существующая -sample-база отклоняются без автоматического исправления или удаления. - -## Команды Makefile - -Краткий список команд выводит `make help`. - -| Команда | Назначение | -|---|---| -| `make init` | Создать `.docker.env`, проверить managed paths и создать рабочие каталоги | -| `make check-env` | Проверить обязательные env-значения, разделение ролей, имена баз и managed paths | -| `make pull` | Загрузить три закреплённых container images | -| `make config` | Проверить развёрнутую Compose-конфигурацию | -| `make up`, `make up-no-ui` | Запустить обе СУБД с Adminer или без него | -| `make up-mysql`, `make up-mysql-ui` | Запустить MySQL, опционально с Adminer | -| `make up-postgres`, `make up-postgres-ui` | Запустить PostgreSQL, опционально с Adminer | -| `make up-ui`, `make down-ui` | Запустить или остановить только Adminer | -| `make down` | Остановить стенд без удаления bind-mounted данных | -| `make status` | Показать состояние сервисов | -| `make logs` | Следить за логами всех сервисов | -| `make log SERVICE=postgres` | Следить за логом одного сервиса; также работает `make log postgres` | -| `make in SERVICE=postgres` | Открыть shell сервиса; также работает `make in postgres` | -| `make mysql`, `make mysql-user` | Открыть MySQL как администратор или `DB_USER` | -| `make postgres`, `make postgres-user` | Открыть PostgreSQL как superuser или `DB_USER` | -| `make samples-mysql`, `make samples-postgres` | Подготовить проверенные optional samples | -| `make check-mysql-access`, `make check-postgres-access` | Проверить доступ учебного пользователя к одной запущенной СУБД | -| `make check` | Проверить Compose и доступ `DB_USER` к двум запущенным СУБД | -| `make test-storage-paths` | Проверить защиту managed storage paths без Docker runtime | -| `make test-sql-imports` | Выполнить smoke-test двух публичных trusted SQL import targets | -| `make mysql-import FILE=... DATABASE=...` | Импортировать доверенный plain SQL в существующую MySQL-базу от `DB_USER` | -| `make postgres-import FILE=... DATABASE=...` | Импортировать доверенный plain SQL в существующую PostgreSQL-базу от `DB_USER` | -| `make dump`, `make restore` | Создать или восстановить dump настроенной MySQL-базы `demo` | -| `make clean-{mysql,postgres,all} CONFIRM=1` | Удалить выбранные managed data-каталоги | -| `make reinit-{mysql,postgres,all} CONFIRM=1` | Удалить, пересоздать и проверить выбранные базы | - -## Проверки - -### Статические и локальные проверки +Статическая проверка не требует запуска СУБД: ```bash make check-env @@ -270,176 +149,31 @@ make config make test-storage-paths ``` -`make check-env` создаёт `.docker.env` из примера, если файла ещё нет, затем -проверяет обязательные настройки и managed paths. `make config` проверяет -развёрнутую Compose-модель. - -Для `make test-storage-paths` Docker runtime не требуется. Тест проверяет -защиту от путей за пределами проекта, symlink-компонентов, пересекающихся или -вложенных managed paths и зарезервированных каталогов. Тот же validator -защищает настроенные data- и sample-каталоги MySQL/PostgreSQL при обычной -инициализации. - -### Runtime-проверки - -Запустите обе СУБД без Adminer, проверьте учебный доступ и imports, затем -остановите сервисы: - -```bash -make up-no-ui -make check -make test-sql-imports -make down -``` - -`make check` проверяет обязательные данные `demo` и фактический доступ -`DB_USER` в обеих СУБД. Если установлены поддерживаемые optional samples, они -также проверяются. - -Для `make test-sql-imports` обе СУБД должны быть запущены. Тест вызывает -публичные targets `mysql-import` и `postgres-import`, создаёт уникальные -временные smoke-таблицы в `demo`, проверяет marker rows от имени `DB_USER` и -удаляет только эти таблицы. Это проверка trusted SQL import workflow, а не -доказательство безопасности или sandbox для недоверенного SQL. - -## Импорт доверенных SQL-файлов - -Импортируйте только доверенные локальные plain SQL-файлы: - -```bash -make mysql-import FILE=path/to/file.sql DATABASE=demo -make postgres-import FILE=path/to/file.sql DATABASE=demo -``` - -Для обоих targets: - -- `FILE` и `DATABASE` обязательны. -- Файл должен быть существующим, читаемым и непустым обычным файлом. -- Имя базы должно начинаться со строчной ASCII-буквы и содержать только - строчные ASCII-буквы, цифры или `_`; системные базы запрещены. -- База должна существовать и принимать подключение от `DB_USER`. -- Import выполняется от `DB_USER`, а не от MySQL root или PostgreSQL superuser. -- Target не создаёт базу и не выдаёт grants. -- Targets не обрабатывают архивы, gzip-потоки и PostgreSQL backups в custom - format. - -`DATABASE` выбирает начальную базу подключения, но не создаёт sandbox. -Qualified names (полные имена объектов), session/client commands и реальные -grants роли `DB_USER` могут разрешить доступ к другим объектам. SQL способен -изменить или удалить всё, к чему у этой роли есть доступ. - -Import может выполниться частично. Ни один target не обещает автоматический -полный rollback после ошибки. Перед важным импортом изучите файл и создайте -подходящий backup. - -## Жизненный цикл данных и init - -Bind-mounted storage по умолчанию разделён по СУБД: - -```text -data/ -├── mysql/ -└── postgres/ - -initdb/ -├── mysql/ -└── postgres/ -``` - -Связанные настройки `.docker.env` также разделены: - -| СУБД | Данные | Init | Optional samples | -|---|---|---|---| -| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | -| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | - -Data- и sample-пути можно изменить через `.docker.env` с учётом проверки -managed storage paths. - -Официальные entrypoints MySQL и PostgreSQL выполняют соответствующий -init-каталог только для пустого data-каталога. Добавление или изменение -init-файла не мигрирует существующую базу. `make down` не удаляет данные ни из -одного bind mount. - -Не редактируйте файлы СУБД внутри `data/` вручную. Container-owned файлы могут -иметь числовые UID/GID, отличающиеся от пользователя хоста. - -## Backup, очистка и переинициализация - -Встроенные backup-targets работают только с настроенной MySQL-базой `demo`: - -```bash -make dump -make restore -``` - -С конфигурацией по умолчанию `make dump` записывает `backup/demo.sql`. -`make restore` читает этот файл и повторно применяет учебные MySQL grants. Для -сохранения PostgreSQL используйте отдельную процедуру резервного копирования. - -> **Внимание:** все перечисленные ниже `clean-*` и `reinit-*` команды -> destructive и требуют точного подтверждения `CONFIRM=1`. - -```bash -make clean-mysql CONFIRM=1 -make clean-postgres CONFIRM=1 -make clean-all CONFIRM=1 - -make reinit-mysql CONFIRM=1 -make reinit-postgres CONFIRM=1 -make reinit-all CONFIRM=1 -``` - -Одиночные команды удаляют только data-каталог выбранной СУБД. Варианты `all` -удаляют data-каталоги обеих СУБД. Конфигурация, init-файлы, загруженные -optional samples и backups сохраняются. Затем reinit запускает и проверяет -выбранные СУБД; `reinit-all` запускает обе без Adminer. - -## Диагностика и решение проблем - -### Ошибка конфигурации или storage-path validation - -Выполните `make check-env` и найдите в ошибке отклонённую переменную и путь. -Managed data paths должны находиться строго внутри каталога проекта `data/`, а -sample paths — внутри `samples/`. Они не могут содержать symlink-компоненты, -пересекаться между собой или использовать зарезервированные каталоги проекта. -Исправьте `.docker.env`, затем повторите `make check-env` и `make config`. - -### Сервис не переходит в состояние готовности - -До изменения данных проверьте состояние и логи: - -```bash -make status -make log SERVICE=mysql -make log SERVICE=postgres -``` - -Убедитесь, что Docker запущен, настроенный host port свободен, а -`.docker.env` содержит обязательные значения. Исправьте конкретную настройку -или конфликт порта и снова запустите сервис. +После запуска обеих СУБД `make check` проверяет доступ `DB_USER`, а `make test-sql-imports` — публичные trusted import targets. Подробные команды, ограничения и порядок безопасных действий вынесены в документацию ниже. -### Изменения init или optional samples не появились +Data-, init- и sample-каталоги MySQL/PostgreSQL разделены и настраиваются через `.docker.env`. Managed path validator не допускает выход за `data/` или `samples/`, symlink-компоненты, пересечения и зарезервированные каталоги. Полностью отсутствующий optional sample пропускается, а частичный набор или неожиданная существующая sample-база отклоняются без автоматического исправления. -Для уже инициализированного data-каталога это ожидаемое поведение. Проверьте -настроенные data- и sample-пути и успешность команды подготовки. Если -существующие данные важны, сохраните их. Используйте соответствующую команду -`reinit-... CONFIRM=1` только как осознанную последнюю меру: она удаляет данные -этой СУБД. +Подготовка samples загружает закреплённые upstream-файлы, проверяет integrity и оставляет их локально; provenance и лицензии находятся в `THIRD_PARTY_NOTICES.md`. Runtime-проверки также подтверждают обязательные строки `demo`, read/write-доступ учебного пользователя и установленные samples. -### Optional sample неполон или имеет неожиданного владельца +## Безопасность и жизненный цикл -Loader намеренно не перезаписывает и не исправляет неожиданную базу. Повторите -подходящую подготовку `make samples-mysql` или `make samples-postgres` и -изучите ошибку. Сохраните нужные данные, прежде чем рассматривать -переинициализацию с подтверждением. +- `BIND_ADDRESS=127.0.0.1` публикует сервисы только на loopback. +- `BIND_ADDRESS=0.0.0.0` публикует их на всех интерфейсах: заранее настройте + firewall, надёжные credentials и доверенную сеть. +- Официальные entrypoints выполняют init только для пустого data-каталога. +- `make mysql-import` и `make postgres-import` принимают только доверенный + SQL. Это не sandbox: возможна частичная запись без полного automatic rollback. + Перед важным импортом сделайте backup. +- Встроенные `make dump` и `make restore` покрывают только MySQL `demo`; + встроенного backup target для PostgreSQL нет. +- Все `clean-*` и `reinit-*` destructive и требуют точного `CONFIRM=1`. -### Клиент не подключается +## Документация -Клиенты на хосте используют опубликованный host address и `MYSQL_PORT` или -`POSTGRES_PORT`, а не имя Compose-сервиса. Adminer использует `mysql` или -`postgres` внутри Compose-сети. Проверьте `BIND_ADDRESS`, firewall, выбранную -базу и неадминистративные credentials `DB_USER`. +- [Начало работы](docs/langs/ru/getting-started.md) +- [Базы и samples](docs/langs/ru/databases.md) +- [Проверки и операции](docs/langs/ru/operations.md) +- [Диагностика](docs/langs/ru/troubleshooting.md) ## Лицензии и сторонние компоненты diff --git a/docs/langs/README_de.md b/docs/langs/README_de.md index 3342a70..920d7fe 100644 --- a/docs/langs/README_de.md +++ b/docs/langs/README_de.md @@ -79,16 +79,11 @@ make down | Befehl | MySQL | PostgreSQL | Adminer | |---|---|---|---| | `make up` | Startet | Startet | Startet | -| `make up-no-ui` | Startet oder lässt laufen | Startet oder lässt laufen | Stoppt, falls aktiv | -| `make up-mysql` | Startet | Startet nicht automatisch | Startet nicht automatisch | -| `make up-mysql-ui` | Startet | Startet nicht automatisch | Startet | -| `make up-postgres` | Startet nicht automatisch | Startet | Startet nicht automatisch | -| `make up-postgres-ui` | Startet nicht automatisch | Startet | Startet | -| `make up-ui` | Ändert nichts | Ändert nichts | Startet | -| `make down-ui` | Ändert nichts | Ändert nichts | Stoppt | +| `make up-no-ui` | Startet | Startet | Stoppt | +| `make up-mysql` | Startet | Startet nicht | Startet nicht | +| `make up-postgres` | Startet nicht | Startet | Startet nicht | -Einzel-DBMS-Befehle stoppen ein bereits laufendes anderes DBMS nicht. Adminer -lässt sich separat starten und stoppen und ist nicht nur an MySQL gebunden. +Einzel-DBMS-Befehle stoppen das andere laufende DBMS nicht; Adminer wird separat verwaltet. ## Verbindungen @@ -128,129 +123,21 @@ make postgres # PostgreSQL-Superuser, Datenbank demo make postgres-user # DB_USER, Datenbank demo ``` -## Zugangsdaten - -`.docker.env` wird aus `.docker.env.example` erstellt und von Git ignoriert. -Bewahren Sie Passwörter dort auf; codieren Sie sie nicht in versioniertem -Compose, SQL oder Client-Konfigurationen. +## Zugangsdaten im Überblick | Zweck | Benutzer | Passwort | |---|---|---| | Gemeinsamer Lernbenutzer | `DB_USER` | `DB_PASSWORD` | | MySQL-Administrator | `root` | `MYSQL_ROOT_PASSWORD` | -| PostgreSQL-Administrator/Superuser | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | - -`POSTGRES_SUPERUSER` und `DB_USER` müssen verschiedene Rollen sein. Verwenden -Sie den Lernbenutzer für normale Übungen. Ersetzen Sie Beispielpasswörter, -bevor Dienste geteilt oder außerhalb des lokalen Rechners veröffentlicht werden. - -## Ports und `BIND_ADDRESS` - -| Dienst | Portvariable | Beispielwert | -|---|---|---| -| MySQL | `MYSQL_PORT` | `3306` | -| PostgreSQL | `POSTGRES_PORT` | `5432` | -| Adminer | `ADMINER_PORT` | `8081` | - -Standardmäßig werden alle drei Dienste nur an loopback gebunden: - -```env -BIND_ADDRESS=127.0.0.1 -``` - -`127.0.0.1` ist der lokale Standard. `BIND_ADDRESS=0.0.0.0` veröffentlicht die -Ports auf allen Netzwerkschnittstellen. Für LAN oder VPN ist die Adresse einer -bestimmten Schnittstelle vorzuziehen. Ändern Sie die Bindung bewusst und -beachten Sie Firewall, Passwortstärke und Vertrauenswürdigkeit des Netzes. +| PostgreSQL-Superuser | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -## Lerndatenbanken +`POSTGRES_SUPERUSER` und `DB_USER` müssen verschiedene Rollen sein. Verwenden Sie den gemeinsamen Lernbenutzer für Übungen und ersetzen Sie Beispielpasswörter vor einer Veröffentlichung. -### Obligatorische `demo`-Datenbanken +## Datenbanken und wichtige Prüfungen -Beide DBMS initialisieren `demo`: +Beide DBMS erstellen die obligatorische Datenbank `demo` mit einer entsprechenden `demo_users`-Tabelle. Optionale Samples sind Chinook und Sakila für MySQL sowie Pagila und Chinook für PostgreSQL. Ihre Vorbereitung importiert nichts in bereits initialisierte Daten. -- MySQL: `demo.demo_users` -- PostgreSQL: `demo.public.demo_users` - -Die Tabellen besitzen entsprechende Felder `id`, `name`, `email` und -`created_at` sowie Alice, Bob, Carol, Dave und Eve. Zusätzliche Zeilen sind -zulässig. `make check-env` verlangt `MYSQL_DATABASE=demo` und -`POSTGRES_DATABASE=demo`. - -### Optionale Samples - -| DBMS | Optionale Datenbanken | Vorbereitung | -|---|---|---| -| MySQL | Chinook, Sakila | `make samples-mysql` | -| PostgreSQL | Pagila, Chinook | `make samples-postgres` | - -Die Vorbereitung lädt festgelegte upstream-Dateien herunter und prüft sie, -startet aber keine Container und importiert nichts in bereits initialisierte -Datenbanken. Temporäre Downloads bleiben lokal, werden nicht committed und -liegen unter `MYSQL_SAMPLES_DIR` beziehungsweise `POSTGRES_SAMPLES_DIR`. -Herkunft, Integritätswerte und Lizenzen stehen in -[THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). - -Bei leerem data directory: - -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` - -Die offiziellen Entrypoints verarbeiten init nur bei leerem data directory. -Um Samples einer bestehenden Instanz hinzuzufügen, erstellen Sie ein Backup -und initialisieren bewusst nur das betroffene DBMS neu: - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` - -Ein vollständig fehlendes Sample wird übersprungen und verhindert `demo` -nicht. Unvollständige Samples oder unerwartete Datenbanken werden ohne -automatische Reparatur oder Löschung abgelehnt. - -## Öffentliche Make targets - -`make help` zeigt die kompakte Liste. - -| Befehl | Zweck | -|---|---| -| `make init` | `.docker.env` erstellen, managed paths prüfen, Verzeichnisse anlegen | -| `make check-env` | Env-Werte, Rollen, Datenbanknamen und Pfade prüfen | -| `make pull` | Die drei festgelegten Images laden | -| `make config` | Erweiterte Compose-Konfiguration validieren | -| `make up`, `make up-no-ui` | Beide DBMS mit oder ohne Adminer starten | -| `make up-mysql`, `make up-mysql-ui` | MySQL, optional mit Adminer, starten | -| `make up-postgres`, `make up-postgres-ui` | PostgreSQL, optional mit Adminer, starten | -| `make up-ui`, `make down-ui` | Nur Adminer starten oder stoppen | -| `make down` | Lab stoppen, ohne bind-mounted Daten zu löschen | -| `make status`, `make logs` | Status anzeigen oder alle Logs verfolgen | -| `make log SERVICE=postgres` | Einen Dienst verfolgen; auch `make log postgres` | -| `make in SERVICE=postgres` | Dienst-Shell öffnen; auch `make in postgres` | -| `make mysql`, `make mysql-user` | MySQL als Admin oder `DB_USER` öffnen | -| `make postgres`, `make postgres-user` | PostgreSQL als Superuser oder `DB_USER` öffnen | -| `make samples-mysql`, `make samples-postgres` | Geprüfte Samples vorbereiten | -| `make check-mysql-access`, `make check-postgres-access` | Ein laufendes DBMS prüfen | -| `make check` | Compose und `DB_USER`-Zugriff auf beide DBMS prüfen | -| `make test-storage-paths` | Managed paths ohne Docker runtime testen | -| `make test-sql-imports` | Smoke-Test beider öffentlicher SQL-Imports | -| `make mysql-import FILE=... DATABASE=...` | Plain SQL als `DB_USER` in MySQL importieren | -| `make postgres-import FILE=... DATABASE=...` | Plain SQL als `DB_USER` in PostgreSQL importieren | -| `make dump`, `make restore` | MySQL-`demo` sichern oder wiederherstellen | -| `make clean-{mysql,postgres,all} CONFIRM=1` | Ausgewählte data directories löschen | -| `make reinit-{mysql,postgres,all} CONFIRM=1` | Datenbanken löschen, neu erstellen und prüfen | - -## Prüfungen - -### Statische und lokale Prüfungen +Diese statischen Prüfungen benötigen keine laufenden Datenbanken: ```bash make check-env @@ -258,138 +145,32 @@ make config make test-storage-paths ``` -`make check-env` erstellt bei Bedarf `.docker.env` und validiert Werte und -Pfade. `make config` prüft das erweiterte Compose-Modell. -`make test-storage-paths` benötigt keine Docker runtime und testet Pfade -außerhalb des Projekts, symlink-Komponenten, überlappende oder verschachtelte -Pfade sowie reserved directories. - -### Runtime-Prüfungen - -```bash -make up-no-ui -make check -make test-sql-imports -make down -``` - -`make check` prüft `demo` und den tatsächlichen `DB_USER`-Zugriff in beiden -DBMS sowie installierte Samples. `make test-sql-imports` benötigt beide -laufenden DBMS, ruft `mysql-import` und `postgres-import` auf, erstellt -eindeutig benannte temporäre Tabellen in `demo`, prüft marker rows als -`DB_USER` und löscht nur diese Tabellen. Dies ist ein Smoke-Test des trusted -import workflow, kein Sandbox und kein Sicherheitsnachweis für fremdes SQL. - -## Import vertrauenswürdiger SQL-Dateien - -```bash -make mysql-import FILE=path/to/file.sql DATABASE=demo -make postgres-import FILE=path/to/file.sql DATABASE=demo -``` - -Für beide targets gilt: - -- `FILE` und `DATABASE` sind erforderlich. -- Die lokale plain-SQL-Datei muss existieren, lesbar und nicht leer sein. -- Die Datenbank muss existieren; Systemdatenbanken sind verboten. -- Der Import läuft als `DB_USER`, erstellt keine Datenbank und vergibt keine grants. -- `DATABASE` wählt die erste Verbindung, erzeugt aber keine Sandbox. -- Qualified names, Client-/Session-Befehle und tatsächliche grants können - andere erreichbare Objekte betreffen. -- Partielle Ausführung ist möglich; automatischer Rollback wird nicht zugesagt. -- Erstellen Sie vor wichtigen Imports ein Backup. -- gzip, Archive und PostgreSQL-custom-format backups werden nicht verarbeitet. - -## Lebenszyklus von data und init - -```text -data/ -├── mysql/ -└── postgres/ - -initdb/ -├── mysql/ -└── postgres/ -``` - -| DBMS | Data | Init | Optionale Samples | -|---|---|---|---| -| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | -| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | - -Data- und Sample-Pfade sind über `.docker.env` konfigurierbar und werden als -managed paths validiert. Entrypoints führen init nur bei leerem data directory -aus; geänderte init-Dateien migrieren keine bestehende Datenbank. `make down` -löscht keine bind mounts. Bearbeiten Sie Dateien in `data/` nicht manuell; sie -können numerischen Container-UID/GID gehören. - -## Backup, Bereinigung und Neuinitialisierung - -Die eingebauten Targets decken nur die konfigurierte MySQL-Datenbank `demo` ab: - -```bash -make dump -make restore -``` - -`make dump` schreibt `backup/demo.sql`; `make restore` liest die Datei und -wendet die MySQL-Lern-grants erneut an. Verwenden Sie für PostgreSQL ein eigenes -Backup-Verfahren. - -> **Warnung:** Alle `clean-*`- und `reinit-*`-Targets sind destruktiv und -> verlangen die exakte Bestätigung `CONFIRM=1`. - -```bash -make clean-mysql CONFIRM=1 -make clean-postgres CONFIRM=1 -make clean-all CONFIRM=1 - -make reinit-mysql CONFIRM=1 -make reinit-postgres CONFIRM=1 -make reinit-all CONFIRM=1 -``` - -Einzelne Targets löschen nur das gewählte DBMS-data directory; `all` löscht -beide. Konfiguration, init, Samples und Backups bleiben erhalten. Reinit -startet und prüft anschließend die gewählten DBMS; `reinit-all` startet beide -ohne Adminer. - -## Diagnose und Fehlerbehebung - -### Konfiguration oder Pfadvalidierung schlägt fehl - -Führen Sie `make check-env` aus. Data paths müssen strikt unter `data/` und -Samples unter `samples/` liegen; symlinks, Überschneidungen und reservierte -Verzeichnisse sind unzulässig. Korrigieren Sie `.docker.env` und führen Sie -`make config` aus. - -### Ein Dienst wird nicht bereit - -```bash -make status -make log SERVICE=mysql -make log SERVICE=postgres -``` - -Prüfen Sie Docker, Port, `.docker.env` und Logs, bevor Sie Daten ändern. +Nach dem Start beider DBMS prüft `make check` den `DB_USER`-Zugriff; `make test-sql-imports` testet die öffentlichen trusted import targets. Die Detailseiten beschreiben alle Befehle, Einschränkungen und die sichere Reihenfolge. -### Init-Änderungen oder Samples erscheinen nicht +Die Data-, Init- und Sample-Verzeichnisse von MySQL und PostgreSQL bleiben getrennt und werden über `.docker.env` konfiguriert. Der Managed-path-Validator lehnt Orte außerhalb von `data/` oder `samples/`, Symlink-Komponenten, Überschneidungen und reservierte Verzeichnisse ab. Ein vollständig fehlendes Sample wird übersprungen; unvollständige Dateien oder eine unerwartete Sample-Datenbank werden ohne automatische Reparatur abgelehnt. -Bei bereits initialisierten Daten ist das erwartet. Prüfen Sie Pfade und -Vorbereitung, sichern Sie wichtige Daten und verwenden Sie -`reinit-... CONFIRM=1` nur als bewussten letzten Schritt. +Die Vorbereitung lädt festgelegte Upstream-Dateien, prüft ihre Integrität und behält sie lokal; Herkunft und Lizenzen stehen in `THIRD_PARTY_NOTICES.md`. Runtime-Prüfungen validieren außerdem die obligatorischen `demo`-Zeilen, Lese-/Schreibzugriff des Lernbenutzers und installierte Samples. -### Sample ist unvollständig oder hat einen unerwarteten Besitzer +## Sicherheit und Lebenszyklus -Der Loader überschreibt oder repariert unerwartete Datenbanken nicht. Führen -Sie `make samples-mysql` oder `make samples-postgres` erneut aus und prüfen Sie -den Fehler; sichern Sie Daten vor einer Neuinitialisierung. +- `BIND_ADDRESS=127.0.0.1` veröffentlicht Dienste nur auf loopback. +- `BIND_ADDRESS=0.0.0.0` veröffentlicht sie auf allen Schnittstellen; + konfigurieren Sie Firewall, starke credentials und Netzvertrauen bewusst. +- Offizielle Entrypoints führen init nur für ein leeres data directory aus. +- `make mysql-import` und `make postgres-import` akzeptieren nur + vertrauenswürdiges SQL. Sie erzeugen keine isolierte Umgebung (`sandbox`): partielle Ausführung ohne + vollständigen automatic rollback ist möglich. Erstellen Sie vorher ein Backup. +- `make dump` und `make restore` decken nur MySQL `demo` ab; ein + integriertes PostgreSQL-backup target fehlt. +- Alle `clean-*`- und `reinit-*`-Targets sind destruktiv und verlangen die + exakte Bestätigung `CONFIRM=1`. -### Ein Client kann keine Verbindung herstellen +## Dokumentation -Host-Clients verwenden veröffentlichte Adresse und `MYSQL_PORT` oder -`POSTGRES_PORT`; Adminer verwendet `mysql` oder `postgres` im Compose-Netz. -Prüfen Sie `BIND_ADDRESS`, Firewall, Datenbankauswahl und `DB_USER`-Zugangsdaten. +- [Erste Schritte](de/getting-started.md) +- [Datenbanken und Samples](de/databases.md) +- [Prüfungen und Betrieb](de/operations.md) +- [Diagnose und Fehlerbehebung](de/troubleshooting.md) ## Lizenzen und Hinweise zu Drittanbietern diff --git a/docs/langs/README_en.md b/docs/langs/README_en.md index 67e8daf..9c4793f 100644 --- a/docs/langs/README_en.md +++ b/docs/langs/README_en.md @@ -85,17 +85,11 @@ database data. | Command | MySQL | PostgreSQL | Adminer | |---|---|---|---| | `make up` | Starts | Starts | Starts | -| `make up-no-ui` | Starts or keeps running | Starts or keeps running | Stops if running | -| `make up-mysql` | Starts | Does not start automatically | Does not start automatically | -| `make up-mysql-ui` | Starts | Does not start automatically | Starts | -| `make up-postgres` | Does not start automatically | Starts | Does not start automatically | -| `make up-postgres-ui` | Does not start automatically | Starts | Starts | -| `make up-ui` | Does not change | Does not change | Starts | -| `make down-ui` | Does not change | Does not change | Stops | - -The single-service commands do not stop another database that is already -running. Adminer can be started and stopped separately and is not tied to -MySQL alone. +| `make up-no-ui` | Starts | Starts | Stops | +| `make up-mysql` | Starts | Does not start | Does not start | +| `make up-postgres` | Does not start | Starts | Does not start | + +Single-DBMS commands do not stop the other running database; Adminer is managed separately. ## Connections @@ -137,136 +131,21 @@ make postgres # PostgreSQL superuser, demo database make postgres-user # DB_USER, demo database ``` -## Credentials - -Copying `.docker.env.example` creates `.docker.env`; the latter is ignored by -Git. Keep passwords there and do not hardcode them in Compose, SQL, or client -configuration committed to the repository. +## Credentials at a glance -| Purpose | User setting | Password setting | +| Purpose | User | Password | |---|---|---| | Shared training user for both DBMSs | `DB_USER` | `DB_PASSWORD` | | MySQL administrator | `root` | `MYSQL_ROOT_PASSWORD` | -| PostgreSQL administrator/superuser | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | - -`POSTGRES_SUPERUSER` and `DB_USER` must be different roles. Use the shared -training user for normal exercises; do not use root or superuser credentials -for routine work. Replace the example passwords before sharing access or -publishing any service beyond the local machine. - -## Ports and `BIND_ADDRESS` - -The host-side ports are configured in `.docker.env`: - -| Service | Port variable | Example default | -|---|---|---| -| MySQL | `MYSQL_PORT` | `3306` | -| PostgreSQL | `POSTGRES_PORT` | `5432` | -| Adminer | `ADMINER_PORT` | `8081` | - -All three services publish only on loopback by default: - -```env -BIND_ADDRESS=127.0.0.1 -``` - -This is the safe default for a local lab. Setting `BIND_ADDRESS=0.0.0.0` -publishes the configured ports on every network interface. For VPN or LAN -access, prefer the address of the specific interface. Change the binding only -deliberately, after considering firewall rules, password strength, and trust -in every connected network. - -## Databases - -### Required `demo` databases - -Both DBMSs initialize a required database named `demo`: - -- MySQL: `demo.demo_users` -- PostgreSQL: `demo.public.demo_users` - -The tables have equivalent `id`, `name`, `email`, and `created_at` fields and -contain the same five required example users: Alice, Bob, Carol, Dave, and Eve. -The access checks allow additional user-created rows. - -The default database names are enforced by `make check-env` through -`MYSQL_DATABASE=demo` and `POSTGRES_DATABASE=demo`. - -### Optional samples - -| DBMS | Optional databases | Preparation command | -|---|---|---| -| MySQL | Chinook, Sakila | `make samples-mysql` | -| PostgreSQL | Pagila, Chinook | `make samples-postgres` | +| PostgreSQL superuser | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -The preparation commands download and verify pinned upstream files but do not -start containers or import into an initialized database. Downloads are local, -are excluded from Git, and are stored under `MYSQL_SAMPLES_DIR` or -`POSTGRES_SAMPLES_DIR`. Their provenance, integrity pins, and license terms are -documented in [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). +`POSTGRES_SUPERUSER` and `DB_USER` must be different roles. Use the shared training user for routine exercises and replace example passwords before publishing services. -For a DBMS with an empty data directory: +## Databases and key checks -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` - -Official image entrypoints process init files only when the corresponding data -directory is empty. To add samples to an already initialized DBMS, first back -up anything important and then deliberately reinitialize only that DBMS: - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` +Both DBMSs create a required `demo` database with an equivalent `demo_users` table. Optional samples are Chinook and Sakila for MySQL, and Pagila and Chinook for PostgreSQL. Preparing samples does not import them into initialized data. -A completely absent optional sample is skipped and does not prevent the -required `demo` database from being created. A partial sample set or an -unexpected existing sample database is rejected instead of being repaired or -deleted automatically. - -## Make targets - -Run `make help` for the concise command list. - -| Command | Purpose | -|---|---| -| `make init` | Create `.docker.env`, validate managed paths, and create required working directories | -| `make check-env` | Check required environment values, role separation, database names, and managed paths | -| `make pull` | Pull the three pinned container images | -| `make config` | Validate the expanded Compose configuration | -| `make up`, `make up-no-ui` | Start both DBMSs with or without Adminer | -| `make up-mysql`, `make up-mysql-ui` | Start MySQL, optionally with Adminer | -| `make up-postgres`, `make up-postgres-ui` | Start PostgreSQL, optionally with Adminer | -| `make up-ui`, `make down-ui` | Start or stop only Adminer | -| `make down` | Stop the lab without deleting bind-mounted data | -| `make status` | Show service status | -| `make logs` | Follow logs for all services | -| `make log SERVICE=postgres` | Follow one service log; `make log postgres` is also supported | -| `make in SERVICE=postgres` | Open a service shell; `make in postgres` is also supported | -| `make mysql`, `make mysql-user` | Open MySQL as administrator or `DB_USER` | -| `make postgres`, `make postgres-user` | Open PostgreSQL as superuser or `DB_USER` | -| `make samples-mysql`, `make samples-postgres` | Prepare verified optional samples | -| `make check-mysql-access`, `make check-postgres-access` | Verify training-user access to one running DBMS | -| `make check` | Validate Compose and check `DB_USER` access to both running DBMSs | -| `make test-storage-paths` | Test managed storage-path protection without Docker runtime | -| `make test-sql-imports` | Smoke-test both public trusted SQL import targets | -| `make mysql-import FILE=... DATABASE=...` | Import trusted plain SQL into an existing MySQL database as `DB_USER` | -| `make postgres-import FILE=... DATABASE=...` | Import trusted plain SQL into an existing PostgreSQL database as `DB_USER` | -| `make dump`, `make restore` | Dump or restore the configured MySQL `demo` database | -| `make clean-{mysql,postgres,all} CONFIRM=1` | Delete selected managed data directories | -| `make reinit-{mysql,postgres,all} CONFIRM=1` | Delete, recreate, and check selected databases | - -## Validation - -### Static and local checks +These static checks do not require running databases: ```bash make check-env @@ -274,174 +153,32 @@ make config make test-storage-paths ``` -`make check-env` creates `.docker.env` from the example if it is absent, then -validates required settings and managed paths. `make config` validates the -expanded Compose model. - -`make test-storage-paths` does not require the Docker runtime. It exercises the -guards for paths outside the project, symbolic-link components, overlapping or -nested managed paths, and reserved directories. The same validator protects -the configured MySQL/PostgreSQL data and sample locations during normal setup. - -### Runtime checks - -Start both databases without Adminer, check training access, exercise imports, -and stop the services: - -```bash -make up-no-ui -make check -make test-sql-imports -make down -``` - -`make check` verifies the required `demo` data and actual `DB_USER` access in -both DBMSs. It also checks supported optional samples when they are installed. - -`make test-sql-imports` requires both DBMSs to be running. It invokes the -public `mysql-import` and `postgres-import` targets, creates uniquely named -temporary smoke tables in `demo`, verifies marker rows as `DB_USER`, and -removes only those tables. It tests the trusted SQL import workflow; it does -not prove that untrusted SQL is safe or sandboxed. - -## Trusted SQL imports - -Import only trusted local plain SQL files: - -```bash -make mysql-import FILE=path/to/file.sql DATABASE=demo -make postgres-import FILE=path/to/file.sql DATABASE=demo -``` - -For both targets: - -- `FILE` and `DATABASE` are required. -- The file must be a readable, non-empty regular file. -- The database name must start with a lowercase ASCII letter and contain only - lowercase ASCII letters, digits, or `_`; system databases are rejected. -- The database must already exist and accept a connection from `DB_USER`. -- Import runs as `DB_USER`, never as MySQL root or PostgreSQL superuser. -- The target neither creates a database nor grants access. -- Archives, gzip streams, and PostgreSQL custom-format backups are not - supported by these targets. - -`DATABASE` selects the initial connection database; it does not create a -sandbox. Qualified names, session or client commands, and the actual grants of -`DB_USER` may permit access to other objects. SQL may modify or delete anything -that role can access. - -An import may complete partially. Neither target promises an automatic full -rollback after an error. Review the file and create an appropriate backup -before an important import. - -## Data and initialization lifecycle - -The default bind-mounted storage is separated by DBMS: - -```text -data/ -├── mysql/ -└── postgres/ - -initdb/ -├── mysql/ -└── postgres/ -``` - -The related `.docker.env` settings are separate as well: - -| DBMS | Data | Init | Optional samples | -|---|---|---|---| -| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | -| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | - -Data and sample locations can be changed through `.docker.env`, subject to -managed storage-path validation. - -The official MySQL and PostgreSQL entrypoints run their respective init -directory only for an empty data directory. Adding or editing an init file does -not migrate an existing database. `make down` does not delete data from either -bind mount. - -Do not edit database files inside `data/` manually. Container-owned files may -use numeric UID/GID values that differ from the host user. - -## Backup, clean, and reinitialize - -The built-in backup targets cover only the configured MySQL `demo` database: - -```bash -make dump -make restore -``` - -`make dump` writes `backup/demo.sql` with the default configuration. -`make restore` reads that file and reapplies MySQL training grants. Use a -separate PostgreSQL backup procedure when PostgreSQL data must be preserved. - -> **Warning:** Every `clean-*` and `reinit-*` command below is destructive and -> requires the exact opt-in `CONFIRM=1`. - -```bash -make clean-mysql CONFIRM=1 -make clean-postgres CONFIRM=1 -make clean-all CONFIRM=1 - -make reinit-mysql CONFIRM=1 -make reinit-postgres CONFIRM=1 -make reinit-all CONFIRM=1 -``` - -The single-DBMS commands delete only that DBMS data directory. The `all` -variants delete both database data directories. Configuration, init files, -optional sample downloads, and backups are preserved. Reinitialization then -starts and checks the selected DBMSs; `reinit-all` starts both without Adminer. - -## Troubleshooting - -### Configuration or storage-path validation fails - -Run `make check-env` and read the rejected variable and path in the error. -Managed data paths must be strictly inside the project `data/` tree; sample -paths must be inside `samples/`. They cannot contain symbolic-link components, -overlap one another, or use reserved project directories. Correct -`.docker.env`, then rerun `make check-env` and `make config`. - -### A service does not become ready - -Check the service state and logs before changing data: - -```bash -make status -make log SERVICE=mysql -make log SERVICE=postgres -``` - -Confirm that Docker is running, the configured host port is available, and -`.docker.env` contains all required values. Fix the specific configuration or -port conflict and start the service again. +After both DBMSs start, `make check` verifies `DB_USER` access and `make test-sql-imports` exercises the public trusted import targets. The detailed pages below document every command, limitation, and safe operating sequence. -### Init changes or optional samples do not appear +MySQL and PostgreSQL data, init, and sample directories remain separate and are configured through `.docker.env`. The managed-path validator rejects locations outside `data/` or `samples/`, symlink components, overlaps, and reserved directories. A completely absent optional sample is skipped; a partial set or unexpected existing sample database is rejected without automatic repair. -This is expected when the data directory is already initialized. Verify the -configured data and sample paths and confirm that the preparation command -succeeded. If existing data matters, back it up. Use the matching -`reinit-... CONFIRM=1` command only as a deliberate last step; it deletes that -DBMS's data. +Sample preparation downloads pinned upstream files, verifies integrity, and keeps them local; provenance and licensing are in `THIRD_PARTY_NOTICES.md`. Runtime checks also verify required `demo` rows, training-user read/write access, and any installed samples. -### An optional sample is incomplete or has unexpected ownership +## Safety and lifecycle -The loader intentionally refuses to overwrite or repair an unexpected -database. Re-run the appropriate `make samples-mysql` or -`make samples-postgres` preparation command and inspect the error. Preserve any -needed data before considering a confirmed reinitialization. +- `BIND_ADDRESS=127.0.0.1` publishes services only on loopback. +- `BIND_ADDRESS=0.0.0.0` publishes them on every interface; configure the + firewall, strong credentials, and network trust deliberately. +- Official entrypoints run init only for an empty data directory. +- `make mysql-import` and `make postgres-import` accept trusted SQL only. + They do not create a sandbox: partial execution is possible without a + guaranteed full automatic rollback. Back up important data first. +- Built-in `make dump` and `make restore` cover only MySQL `demo`; there + is no built-in PostgreSQL backup target. +- Every `clean-*` and `reinit-*` target is destructive and requires the + exact confirmation `CONFIRM=1`. -### A client cannot connect +## Documentation -Host clients use the published host address and `MYSQL_PORT` or -`POSTGRES_PORT`, not the Compose service name. Adminer uses `mysql` or -`postgres` inside the Compose network. Confirm `BIND_ADDRESS`, firewall rules, -the selected database, and the non-administrative `DB_USER` credentials. +- [Getting started](en/getting-started.md) +- [Databases and samples](en/databases.md) +- [Validation and operations](en/operations.md) +- [Troubleshooting](en/troubleshooting.md) ## Licenses and third-party notices diff --git a/docs/langs/README_es.md b/docs/langs/README_es.md index 5b66f5d..610a48c 100644 --- a/docs/langs/README_es.md +++ b/docs/langs/README_es.md @@ -80,16 +80,11 @@ bind-mounted. | Comando | MySQL | PostgreSQL | Adminer | |---|---|---|---| | `make up` | Inicia | Inicia | Inicia | -| `make up-no-ui` | Inicia o mantiene activo | Inicia o mantiene activo | Detiene si estaba activo | -| `make up-mysql` | Inicia | No inicia automáticamente | No inicia automáticamente | -| `make up-mysql-ui` | Inicia | No inicia automáticamente | Inicia | -| `make up-postgres` | No inicia automáticamente | Inicia | No inicia automáticamente | -| `make up-postgres-ui` | No inicia automáticamente | Inicia | Inicia | -| `make up-ui` | No cambia | No cambia | Inicia | -| `make down-ui` | No cambia | No cambia | Detiene | +| `make up-no-ui` | Inicia | Inicia | Detiene | +| `make up-mysql` | Inicia | No inicia | No inicia | +| `make up-postgres` | No inicia | Inicia | No inicia | -Los comandos de un solo SGBD no detienen el otro si ya está activo. Adminer se -puede iniciar y detener por separado y no está ligado únicamente a MySQL. +Los comandos de un SGBD no detienen el otro ya activo; Adminer se gestiona aparte. ## Conexiones @@ -127,127 +122,21 @@ make postgres # superusuario PostgreSQL, base demo make postgres-user # DB_USER, base demo ``` -## Credenciales - -`.docker.env` se crea a partir de `.docker.env.example` y está ignorado por -Git. Guarde allí las contraseñas; no las codifique en Compose, SQL ni en -configuración de cliente versionada. +## Credenciales resumidas | Finalidad | Usuario | Contraseña | |---|---|---| | Usuario didáctico común | `DB_USER` | `DB_PASSWORD` | | Administrador MySQL | `root` | `MYSQL_ROOT_PASSWORD` | -| Administrador/superusuario PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | - -`POSTGRES_SUPERUSER` y `DB_USER` deben ser roles distintos. Use `DB_USER` para -los ejercicios habituales. Cambie las contraseñas de ejemplo antes de -compartir o publicar cualquier servicio. - -## Puertos y `BIND_ADDRESS` - -| Servicio | Variable | Valor de ejemplo | -|---|---|---| -| MySQL | `MYSQL_PORT` | `3306` | -| PostgreSQL | `POSTGRES_PORT` | `5432` | -| Adminer | `ADMINER_PORT` | `8081` | - -Por defecto, los tres servicios solo se publican en loopback: - -```env -BIND_ADDRESS=127.0.0.1 -``` - -`127.0.0.1` es el valor local predeterminado. `BIND_ADDRESS=0.0.0.0` publica -los puertos en todas las interfaces. Para LAN o VPN, prefiera la dirección de -una interfaz concreta. Cambie este valor conscientemente y revise firewall, -fortaleza de contraseñas y confianza en la red. - -## Bases didácticas - -### Bases `demo` obligatorias - -Ambos SGBD inicializan `demo`: - -- MySQL: `demo.demo_users` -- PostgreSQL: `demo.public.demo_users` - -Las tablas tienen campos equivalentes `id`, `name`, `email` y `created_at`, y -los mismos cinco usuarios: Alice, Bob, Carol, Dave y Eve. Las comprobaciones -admiten filas adicionales. `make check-env` exige `MYSQL_DATABASE=demo` y -`POSTGRES_DATABASE=demo`. - -### Samples opcionales - -| SGBD | Bases opcionales | Preparación | -|---|---|---| -| MySQL | Chinook, Sakila | `make samples-mysql` | -| PostgreSQL | Pagila, Chinook | `make samples-postgres` | +| Superusuario PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -La preparación descarga y verifica archivos upstream fijados, pero no inicia -contenedores ni importa en una base ya inicializada. Las descargas temporales -son locales, no se versionan y quedan bajo `MYSQL_SAMPLES_DIR` o -`POSTGRES_SAMPLES_DIR`. Procedencia, hashes y licencias están en -[THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). - -Para un data directory vacío: +`POSTGRES_SUPERUSER` y `DB_USER` deben ser roles distintos. Use el usuario didáctico común para ejercicios normales y cambie las contraseñas de ejemplo antes de publicar servicios. -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` +## Bases y comprobaciones clave -Los entrypoints oficiales procesan init solo con el data directory vacío. Para -añadir samples a una instancia existente, haga backup y reinicialice -deliberadamente solo ese SGBD: - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` +Ambos SGBD crean la base obligatoria `demo` con una tabla `demo_users` equivalente. Los samples opcionales son Chinook y Sakila para MySQL, y Pagila y Chinook para PostgreSQL. Prepararlos no los importa en datos ya inicializados. -Un sample ausente se omite y no impide crear `demo`. Un conjunto parcial o una -base inesperada se rechazan sin reparación ni borrado automático. - -## Targets públicos de Make - -`make help` muestra la lista resumida. - -| Comando | Función | -|---|---| -| `make init` | Crear `.docker.env`, validar rutas y crear directorios | -| `make check-env` | Validar variables, roles, bases y managed paths | -| `make pull` | Descargar las tres imágenes fijadas | -| `make config` | Validar la configuración Compose expandida | -| `make up`, `make up-no-ui` | Iniciar ambos SGBD con o sin Adminer | -| `make up-mysql`, `make up-mysql-ui` | Iniciar MySQL, opcionalmente con Adminer | -| `make up-postgres`, `make up-postgres-ui` | Iniciar PostgreSQL, opcionalmente con Adminer | -| `make up-ui`, `make down-ui` | Iniciar o detener solo Adminer | -| `make down` | Detener sin borrar los datos bind-mounted | -| `make status`, `make logs` | Mostrar estado o seguir todos los logs | -| `make log SERVICE=postgres` | Seguir un servicio; también `make log postgres` | -| `make in SERVICE=postgres` | Abrir un shell; también `make in postgres` | -| `make mysql`, `make mysql-user` | Abrir MySQL como admin o `DB_USER` | -| `make postgres`, `make postgres-user` | Abrir PostgreSQL como superusuario o `DB_USER` | -| `make samples-mysql`, `make samples-postgres` | Preparar samples verificados | -| `make check-mysql-access`, `make check-postgres-access` | Comprobar un SGBD activo | -| `make check` | Validar Compose y acceso de `DB_USER` a ambos SGBD | -| `make test-storage-paths` | Probar la protección de managed paths sin Docker runtime | -| `make test-sql-imports` | Smoke-test de los dos imports SQL públicos | -| `make mysql-import FILE=... DATABASE=...` | Importar plain SQL en MySQL como `DB_USER` | -| `make postgres-import FILE=... DATABASE=...` | Importar plain SQL en PostgreSQL como `DB_USER` | -| `make dump`, `make restore` | Exportar o restaurar `demo` de MySQL | -| `make clean-{mysql,postgres,all} CONFIRM=1` | Borrar data directories seleccionados | -| `make reinit-{mysql,postgres,all} CONFIRM=1` | Borrar, recrear y comprobar bases | - -## Comprobaciones - -### Estáticas y locales +Estas comprobaciones estáticas no requieren bases activas: ```bash make check-env @@ -255,134 +144,32 @@ make config make test-storage-paths ``` -`make check-env` crea `.docker.env` si falta y valida valores y rutas. -`make config` valida el modelo Compose expandido. `make test-storage-paths` no -requiere Docker runtime: prueba rutas fuera del proyecto, componentes symlink, -rutas solapadas o anidadas y directorios reservados. - -### Runtime - -```bash -make up-no-ui -make check -make test-sql-imports -make down -``` - -`make check` verifica `demo` y el acceso real de `DB_USER` en ambos SGBD, -además de samples instalados. `make test-sql-imports` requiere ambos SGBD, -invoca `mysql-import` y `postgres-import`, crea tablas temporales con nombres -únicos en `demo`, comprueba marker rows como `DB_USER` y elimina solo esas -tablas. Es un smoke-test del flujo de trusted imports; no es un sandbox ni una -prueba de seguridad para SQL no confiable. - -## Importación de SQL de confianza - -```bash -make mysql-import FILE=path/to/file.sql DATABASE=demo -make postgres-import FILE=path/to/file.sql DATABASE=demo -``` - -Para ambos targets: - -- `FILE` y `DATABASE` son obligatorios. -- El archivo debe existir, ser legible, no estar vacío y ser plain SQL local. -- La base debe existir; las bases de sistema están prohibidas. -- El import se ejecuta como `DB_USER`; no crea la base ni concede grants. -- `DATABASE` elige la conexión inicial, pero no crea un sandbox. -- Nombres cualificados, comandos client/session y los grants reales pueden - afectar otros objetos accesibles. -- Puede producirse una ejecución parcial; no se promete rollback automático. -- Haga backup antes de una importación importante. -- gzip, archivos y backups PostgreSQL custom-format no están soportados. - -## Ciclo de vida de data e init - -```text -data/ -├── mysql/ -└── postgres/ - -initdb/ -├── mysql/ -└── postgres/ -``` - -| SGBD | Data | Init | Samples opcionales | -|---|---|---|---| -| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | -| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | - -Las rutas data y samples son configurables en `.docker.env` y están sujetas a -validación. Los entrypoints ejecutan init únicamente si el data directory está -vacío; editar init no migra una base existente. `make down` no borra los bind -mounts. No edite manualmente los archivos de `data/`; pueden pertenecer a -UID/GID numéricos del contenedor. - -## Backup, limpieza y reinicialización - -Los targets integrados cubren solo la base MySQL `demo` configurada: - -```bash -make dump -make restore -``` - -`make dump` escribe `backup/demo.sql`; `make restore` lo lee y reaplica los -grants didácticos de MySQL. Use otro procedimiento para PostgreSQL. - -> **Advertencia:** todos los targets `clean-*` y `reinit-*` son destructivos y -> exigen la confirmación exacta `CONFIRM=1`. - -```bash -make clean-mysql CONFIRM=1 -make clean-postgres CONFIRM=1 -make clean-all CONFIRM=1 - -make reinit-mysql CONFIRM=1 -make reinit-postgres CONFIRM=1 -make reinit-all CONFIRM=1 -``` - -Los targets individuales borran solo los datos del SGBD elegido; los de tipo -`all` borran ambos. Conservan configuración, init, samples y backups. La -reinicialización vuelve a iniciar y comprobar los SGBD seleccionados; -`reinit-all` inicia ambos sin Adminer. - -## Diagnóstico y solución de problemas - -### Falla la configuración o la validación de rutas - -Ejecute `make check-env`. Los data paths deben estar estrictamente bajo -`data/` y los samples bajo `samples/`; no pueden contener symlinks, solaparse -ni usar directorios reservados. Corrija `.docker.env` y ejecute `make config`. - -### Un servicio no está listo - -```bash -make status -make log SERVICE=mysql -make log SERVICE=postgres -``` - -Compruebe Docker, el puerto, `.docker.env` y los logs antes de tocar datos. +Tras iniciar ambos SGBD, `make check` verifica el acceso de `DB_USER` y `make test-sql-imports` ejercita los targets públicos de importación de confianza. Las páginas detalladas documentan comandos, límites y el orden operativo seguro. -### No aparecen cambios de init o samples +Los directorios data, init y samples de MySQL y PostgreSQL están separados y se configuran mediante `.docker.env`. El validador de managed paths rechaza ubicaciones fuera de `data/` o `samples/`, componentes symlink, solapamientos y directorios reservados. Un sample totalmente ausente se omite; un conjunto parcial o una base inesperada se rechazan sin reparación automática. -Es normal si data ya estaba inicializado. Revise las rutas y la preparación, -haga backup y use `reinit-... CONFIRM=1` solo como último paso deliberado. +La preparación descarga archivos upstream fijados, comprueba su integridad y los conserva localmente; procedencia y licencias están en `THIRD_PARTY_NOTICES.md`. Los controles runtime también verifican las filas obligatorias de `demo`, lectura/escritura del usuario didáctico y samples instalados. -### Un sample está incompleto o tiene propietario inesperado +## Seguridad y ciclo de vida -El loader no sobrescribe ni repara bases inesperadas. Repita -`make samples-mysql` o `make samples-postgres`, inspeccione el error y preserve -los datos antes de reinicializar. +- `BIND_ADDRESS=127.0.0.1` publica servicios solo en loopback. +- `BIND_ADDRESS=0.0.0.0` los publica en todas las interfaces; configure + conscientemente firewall, credentials robustas y confianza de red. +- Los entrypoints oficiales ejecutan init solo con un data directory vacío. +- `make mysql-import` y `make postgres-import` aceptan únicamente SQL de + confianza. No crean un sandbox: puede haber ejecución parcial sin rollback + automático completo. Haga backup antes de una importación importante. +- `make dump` y `make restore` cubren solo MySQL `demo`; no hay target + integrado de backup para PostgreSQL. +- Todos los targets `clean-*` y `reinit-*` son destructivos y exigen + exactamente `CONFIRM=1`. -### Un cliente no conecta +## Documentación -Los clientes del host usan la dirección publicada y `MYSQL_PORT` o -`POSTGRES_PORT`; Adminer usa `mysql` o `postgres` dentro de Compose. Revise -`BIND_ADDRESS`, firewall, base seleccionada y credenciales `DB_USER`. +- [Primeros pasos](es/getting-started.md) +- [Bases y samples](es/databases.md) +- [Comprobaciones y operaciones](es/operations.md) +- [Diagnóstico](es/troubleshooting.md) ## Licencias y avisos de terceros diff --git a/docs/langs/README_fr.md b/docs/langs/README_fr.md index ed473ec..811f8af 100644 --- a/docs/langs/README_fr.md +++ b/docs/langs/README_fr.md @@ -80,16 +80,11 @@ bind-mounted. | Commande | MySQL | PostgreSQL | Adminer | |---|---|---|---| | `make up` | Démarre | Démarre | Démarre | -| `make up-no-ui` | Démarre ou laisse actif | Démarre ou laisse actif | Arrête s’il est actif | -| `make up-mysql` | Démarre | Ne démarre pas automatiquement | Ne démarre pas automatiquement | -| `make up-mysql-ui` | Démarre | Ne démarre pas automatiquement | Démarre | -| `make up-postgres` | Ne démarre pas automatiquement | Démarre | Ne démarre pas automatiquement | -| `make up-postgres-ui` | Ne démarre pas automatiquement | Démarre | Démarre | -| `make up-ui` | Ne change rien | Ne change rien | Démarre | -| `make down-ui` | Ne change rien | Ne change rien | Arrête | +| `make up-no-ui` | Démarre | Démarre | Arrête | +| `make up-mysql` | Démarre | Ne démarre pas | Ne démarre pas | +| `make up-postgres` | Ne démarre pas | Démarre | Ne démarre pas | -Les commandes dédiées à un SGBD n’arrêtent pas l’autre s’il fonctionne déjà. -Adminer se démarre et s’arrête séparément et n’est pas lié uniquement à MySQL. +Les commandes d’un SGBD n’arrêtent pas l’autre déjà actif ; Adminer se gère séparément. ## Connexions @@ -128,129 +123,21 @@ make postgres # superutilisateur PostgreSQL, base demo make postgres-user # DB_USER, base demo ``` -## Identifiants - -`.docker.env` est créé depuis `.docker.env.example` et ignoré par Git. Gardez -les mots de passe dans ce fichier ; ne les codez pas en dur dans Compose, SQL -ou une configuration client versionnée. +## Identifiants en bref | Usage | Utilisateur | Mot de passe | |---|---|---| | Utilisateur pédagogique commun | `DB_USER` | `DB_PASSWORD` | | Administrateur MySQL | `root` | `MYSQL_ROOT_PASSWORD` | -| Administrateur/superutilisateur PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | - -`POSTGRES_SUPERUSER` et `DB_USER` doivent être deux rôles différents. Utilisez -le compte pédagogique pour les exercices courants. Remplacez les mots de passe -d’exemple avant tout partage ou toute publication de service. - -## Ports et `BIND_ADDRESS` - -| Service | Variable | Valeur d’exemple | -|---|---|---| -| MySQL | `MYSQL_PORT` | `3306` | -| PostgreSQL | `POSTGRES_PORT` | `5432` | -| Adminer | `ADMINER_PORT` | `8081` | - -Par défaut, les trois services ne sont publiés que sur loopback : - -```env -BIND_ADDRESS=127.0.0.1 -``` - -`127.0.0.1` est la valeur locale par défaut. `BIND_ADDRESS=0.0.0.0` publie les -ports sur toutes les interfaces. Pour un LAN ou VPN, préférez l’adresse d’une -interface précise. Ce changement doit être volontaire et tenir compte du -firewall, de la robustesse des mots de passe et de la confiance accordée au réseau. +| Superutilisateur PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -## Bases pédagogiques +`POSTGRES_SUPERUSER` et `DB_USER` doivent être des rôles distincts. Utilisez l’utilisateur pédagogique commun pour les exercices et remplacez les mots de passe d’exemple avant toute publication. -### Bases `demo` obligatoires +## Bases et contrôles essentiels -Les deux SGBD initialisent `demo` : +Les deux SGBD créent la base obligatoire `demo` avec une table `demo_users` équivalente. Les samples optionnels sont Chinook et Sakila pour MySQL, Pagila et Chinook pour PostgreSQL. Leur préparation ne les importe pas dans des données déjà initialisées. -- MySQL : `demo.demo_users` -- PostgreSQL : `demo.public.demo_users` - -Les tables ont les champs équivalents `id`, `name`, `email` et `created_at`, -avec Alice, Bob, Carol, Dave et Eve. Les contrôles acceptent des lignes -supplémentaires. `make check-env` impose `MYSQL_DATABASE=demo` et -`POSTGRES_DATABASE=demo`. - -### Samples optionnels - -| SGBD | Bases optionnelles | Préparation | -|---|---|---| -| MySQL | Chinook, Sakila | `make samples-mysql` | -| PostgreSQL | Pagila, Chinook | `make samples-postgres` | - -La préparation télécharge et vérifie des fichiers upstream épinglés, sans -démarrer les conteneurs ni importer dans une base déjà initialisée. Les -téléchargements temporaires restent locaux, ne sont pas commités et sont -placés sous `MYSQL_SAMPLES_DIR` ou `POSTGRES_SAMPLES_DIR`. Provenance, -intégrité et licences figurent dans -[THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). - -Pour un répertoire data vide : - -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` - -Les entrypoints officiels ne traitent init que si le répertoire data est vide. -Pour ajouter des samples à une instance existante, sauvegardez puis -réinitialisez volontairement uniquement le SGBD concerné : - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` - -Un sample totalement absent est ignoré et n’empêche pas la création de `demo`. -Un ensemble incomplet ou une base inattendue est refusé, sans réparation ni -suppression automatique. - -## Targets Make publics - -`make help` affiche la liste concise. - -| Commande | Rôle | -|---|---| -| `make init` | Créer `.docker.env`, valider les chemins et créer les répertoires | -| `make check-env` | Vérifier env, rôles, noms de bases et managed paths | -| `make pull` | Télécharger les trois images épinglées | -| `make config` | Valider la configuration Compose développée | -| `make up`, `make up-no-ui` | Démarrer les deux SGBD avec ou sans Adminer | -| `make up-mysql`, `make up-mysql-ui` | Démarrer MySQL, avec Adminer en option | -| `make up-postgres`, `make up-postgres-ui` | Démarrer PostgreSQL, avec Adminer en option | -| `make up-ui`, `make down-ui` | Démarrer ou arrêter seulement Adminer | -| `make down` | Arrêter sans supprimer les données bind-mounted | -| `make status`, `make logs` | Afficher l’état ou suivre tous les logs | -| `make log SERVICE=postgres` | Suivre un service ; `make log postgres` fonctionne aussi | -| `make in SERVICE=postgres` | Ouvrir un shell ; `make in postgres` fonctionne aussi | -| `make mysql`, `make mysql-user` | Ouvrir MySQL comme admin ou `DB_USER` | -| `make postgres`, `make postgres-user` | Ouvrir PostgreSQL comme superutilisateur ou `DB_USER` | -| `make samples-mysql`, `make samples-postgres` | Préparer les samples vérifiés | -| `make check-mysql-access`, `make check-postgres-access` | Contrôler un SGBD actif | -| `make check` | Valider Compose et l’accès `DB_USER` aux deux SGBD | -| `make test-storage-paths` | Tester les managed paths sans Docker runtime | -| `make test-sql-imports` | Smoke-test des deux imports SQL publics | -| `make mysql-import FILE=... DATABASE=...` | Importer du plain SQL dans MySQL comme `DB_USER` | -| `make postgres-import FILE=... DATABASE=...` | Importer du plain SQL dans PostgreSQL comme `DB_USER` | -| `make dump`, `make restore` | Sauvegarder ou restaurer `demo` dans MySQL | -| `make clean-{mysql,postgres,all} CONFIRM=1` | Supprimer les data directories choisis | -| `make reinit-{mysql,postgres,all} CONFIRM=1` | Supprimer, recréer et contrôler les bases | - -## Contrôles - -### Contrôles statiques et locaux +Ces contrôles statiques ne demandent aucun SGBD actif : ```bash make check-env @@ -258,135 +145,32 @@ make config make test-storage-paths ``` -`make check-env` crée `.docker.env` s’il manque, puis valide valeurs et chemins. -`make config` valide le modèle Compose développé. `make test-storage-paths` ne -demande pas de Docker runtime : il teste les sorties du projet, composants -symlink, chemins qui se chevauchent ou s’imbriquent et répertoires réservés. - -### Contrôles runtime - -```bash -make up-no-ui -make check -make test-sql-imports -make down -``` - -`make check` valide `demo` et l’accès réel de `DB_USER` aux deux SGBD, ainsi que -les samples installés. `make test-sql-imports` exige que les deux SGBD soient -actifs ; il appelle `mysql-import` et `postgres-import`, crée des tables -temporaires aux noms uniques dans `demo`, vérifie les marker rows comme -`DB_USER` puis ne supprime que ces tables. C’est un smoke-test du flux trusted -import, ni un sandbox ni une preuve de sécurité pour du SQL non fiable. - -## Imports SQL de confiance - -```bash -make mysql-import FILE=path/to/file.sql DATABASE=demo -make postgres-import FILE=path/to/file.sql DATABASE=demo -``` - -Pour les deux targets : - -- `FILE` et `DATABASE` sont obligatoires. -- Le fichier local plain SQL doit exister, être lisible et non vide. -- La base doit déjà exister ; les bases système sont interdites. -- L’import s’exécute comme `DB_USER`, sans créer de base ni accorder de grants. -- `DATABASE` choisit la connexion initiale, mais ne crée pas de sandbox. -- Les qualified names, commandes client/session et grants effectifs peuvent - atteindre d’autres objets accessibles. -- Une exécution partielle est possible ; aucun rollback automatique n’est promis. -- Effectuez une sauvegarde avant un import important. -- gzip, archives et backups PostgreSQL custom-format ne sont pas pris en charge. - -## Cycle de vie data/init - -```text -data/ -├── mysql/ -└── postgres/ - -initdb/ -├── mysql/ -└── postgres/ -``` - -| SGBD | Data | Init | Samples optionnels | -|---|---|---|---| -| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | -| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | - -Les chemins data et samples se configurent dans `.docker.env` sous contrôle -des managed paths. Les entrypoints exécutent init uniquement avec un data -directory vide ; modifier init ne migre pas une base existante. `make down` ne -supprime aucun bind mount. Ne modifiez pas manuellement les fichiers de -`data/` : ils peuvent appartenir à des UID/GID numériques du conteneur. - -## Sauvegarde, nettoyage et réinitialisation - -Les targets intégrés couvrent uniquement la base MySQL `demo` configurée : - -```bash -make dump -make restore -``` - -`make dump` écrit `backup/demo.sql` ; `make restore` le lit et réapplique les -grants pédagogiques MySQL. Utilisez une procédure distincte pour PostgreSQL. - -> **Attention :** tous les targets `clean-*` et `reinit-*` sont destructifs et -> exigent la confirmation exacte `CONFIRM=1`. - -```bash -make clean-mysql CONFIRM=1 -make clean-postgres CONFIRM=1 -make clean-all CONFIRM=1 - -make reinit-mysql CONFIRM=1 -make reinit-postgres CONFIRM=1 -make reinit-all CONFIRM=1 -``` - -Les commandes unitaires ne suppriment que les données du SGBD choisi ; `all` -supprime celles des deux. Configuration, init, samples et backups restent en -place. La réinitialisation redémarre et contrôle les SGBD choisis ; -`reinit-all` démarre les deux sans Adminer. - -## Diagnostic et dépannage - -### Échec de configuration ou de validation des chemins - -Lancez `make check-env`. Les data paths doivent rester strictement sous -`data/` et les samples sous `samples/` ; aucun symlink, chevauchement ou -répertoire réservé n’est admis. Corrigez `.docker.env` puis lancez `make config`. - -### Un service n’est pas prêt - -```bash -make status -make log SERVICE=mysql -make log SERVICE=postgres -``` - -Vérifiez Docker, le port, `.docker.env` et les logs avant de toucher aux données. +Après le démarrage des deux SGBD, `make check` vérifie l’accès de `DB_USER` et `make test-sql-imports` exerce les targets publics d’import de confiance. Les pages détaillées couvrent commandes, limites et ordre opératoire sûr. -### Les changements init ou les samples n’apparaissent pas +Les répertoires data, init et samples de MySQL et PostgreSQL restent séparés et se configurent via `.docker.env`. Le validateur de managed paths refuse toute sortie de `data/` ou `samples/`, composant symlink, chevauchement ou répertoire réservé. Un sample totalement absent est ignoré ; un ensemble partiel ou une base inattendue est refusé sans réparation automatique. -C’est normal si data est déjà initialisé. Vérifiez chemins et préparation, -sauvegardez les données importantes et n’utilisez `reinit-... CONFIRM=1` qu’en -dernier recours volontaire. +La préparation télécharge des fichiers upstream épinglés, vérifie leur intégrité et les conserve localement ; provenance et licences figurent dans `THIRD_PARTY_NOTICES.md`. Les contrôles runtime vérifient aussi les lignes obligatoires de `demo`, l’accès lecture/écriture pédagogique et les samples installés. -### Sample incomplet ou propriétaire inattendu +## Sécurité et cycle de vie -Le loader ne remplace ni ne répare une base inattendue. Relancez -`make samples-mysql` ou `make samples-postgres` et inspectez l’erreur ; -préservez les données avant toute réinitialisation. +- `BIND_ADDRESS=127.0.0.1` ne publie les services que sur loopback. +- `BIND_ADDRESS=0.0.0.0` les publie sur toutes les interfaces ; configurez + volontairement firewall, credentials robustes et confiance réseau. +- Les entrypoints officiels n’exécutent init que pour un data directory vide. +- `make mysql-import` et `make postgres-import` n’acceptent que du SQL de + confiance. Ils ne créent pas de sandbox : une exécution partielle est + possible sans rollback automatique complet. Faites un backup auparavant. +- `make dump` et `make restore` couvrent uniquement MySQL `demo` ; aucun + target de backup PostgreSQL n’est intégré. +- Tous les targets `clean-*` et `reinit-*` sont destructifs et exigent + exactement `CONFIRM=1`. -### Un client ne se connecte pas +## Documentation -Les clients hôtes utilisent l’adresse publiée et `MYSQL_PORT` ou -`POSTGRES_PORT` ; Adminer utilise `mysql` ou `postgres` dans Compose. Vérifiez -`BIND_ADDRESS`, firewall, base sélectionnée et identifiants `DB_USER`. +- [Bien démarrer](fr/getting-started.md) +- [Bases et samples](fr/databases.md) +- [Contrôles et opérations](fr/operations.md) +- [Diagnostic et dépannage](fr/troubleshooting.md) ## Licences et mentions de tiers diff --git a/docs/langs/README_zh.md b/docs/langs/README_zh.md index e340c99..ca9f2e1 100644 --- a/docs/langs/README_zh.md +++ b/docs/langs/README_zh.md @@ -77,16 +77,11 @@ make down | 命令 | MySQL | PostgreSQL | Adminer | |---|---|---|---| | `make up` | 启动 | 启动 | 启动 | -| `make up-no-ui` | 启动或保持运行 | 启动或保持运行 | 若运行则停止 | -| `make up-mysql` | 启动 | 不自动启动 | 不自动启动 | -| `make up-mysql-ui` | 启动 | 不自动启动 | 启动 | -| `make up-postgres` | 不自动启动 | 启动 | 不自动启动 | -| `make up-postgres-ui` | 不自动启动 | 启动 | 启动 | -| `make up-ui` | 不改变 | 不改变 | 启动 | -| `make down-ui` | 不改变 | 不改变 | 停止 | +| `make up-no-ui` | 启动 | 启动 | 停止 | +| `make up-mysql` | 启动 | 不启动 | 不启动 | +| `make up-postgres` | 不启动 | 启动 | 不启动 | -单数据库命令不会停止已经运行的另一种数据库。Adminer 可以单独启停, -并非只服务于 MySQL。 +单数据库命令不会停止另一种已运行的数据库;Adminer 可单独管理。 ## 连接 @@ -124,121 +119,21 @@ make postgres # PostgreSQL 超级用户,demo 数据库 make postgres-user # DB_USER,demo 数据库 ``` -## 凭据 +## 凭据概览 -`.docker.env` 从 `.docker.env.example` 创建,并被 Git 忽略。密码应保存在 -该文件中,不要硬编码进受版本控制的 Compose、SQL 或客户端配置。 - -| 用途 | 用户设置 | 密码设置 | +| 用途 | 用户 | 密码 | |---|---|---| | 两种数据库共用的学习用户 | `DB_USER` | `DB_PASSWORD` | | MySQL 管理员 | `root` | `MYSQL_ROOT_PASSWORD` | -| PostgreSQL 管理员/超级用户 | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | - -`POSTGRES_SUPERUSER` 与 `DB_USER` 必须是不同角色。日常练习应使用学习 -用户。对外共享或发布服务前,请替换示例密码。 - -## 端口与 `BIND_ADDRESS` - -| 服务 | 端口变量 | 示例默认值 | -|---|---|---| -| MySQL | `MYSQL_PORT` | `3306` | -| PostgreSQL | `POSTGRES_PORT` | `5432` | -| Adminer | `ADMINER_PORT` | `8081` | - -默认情况下,三个服务只绑定 loopback: - -```env -BIND_ADDRESS=127.0.0.1 -``` - -`127.0.0.1` 是本地默认值。`BIND_ADDRESS=0.0.0.0` 会在所有网络接口上 -发布端口。LAN 或 VPN 访问应优先使用具体接口的地址。修改时必须明确 -评估 firewall、密码强度和网络可信度。 +| PostgreSQL 超级用户 | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -## 学习数据库 +`POSTGRES_SUPERUSER` 与 `DB_USER` 必须是不同角色。日常练习应使用共用学习用户;发布服务前请替换示例密码。 -### 必需的 `demo` 数据库 +## 数据库与关键检查 -两种数据库都会初始化 `demo`: +两种数据库都会创建必需的 `demo`,其中包含等价的 `demo_users` 表。MySQL 的可选 samples 是 Chinook 与 Sakila,PostgreSQL 的是 Pagila 与 Chinook。准备 samples 不会将其导入已初始化的数据。 -- MySQL:`demo.demo_users` -- PostgreSQL:`demo.public.demo_users` - -表包含等价字段 `id`、`name`、`email` 和 `created_at`,以及相同的五名 -用户 Alice、Bob、Carol、Dave 和 Eve;检查允许用户添加额外行。 -`make check-env` 要求 `MYSQL_DATABASE=demo` 与 `POSTGRES_DATABASE=demo`。 - -### 可选 samples - -| 数据库 | 可选数据库 | 准备命令 | -|---|---|---| -| MySQL | Chinook、Sakila | `make samples-mysql` | -| PostgreSQL | Pagila、Chinook | `make samples-postgres` | - -准备命令会下载并校验固定的 upstream 文件,但不会启动容器,也不会向 -已初始化数据库导入数据。临时下载仅保存在本地,不提交到 Git,最终位于 -`MYSQL_SAMPLES_DIR` 或 `POSTGRES_SAMPLES_DIR`。来源、完整性固定值和许可 -见 [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md)。 - -data 目录为空时: - -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` - -官方 entrypoint 仅在相应 data 目录为空时处理 init 文件。要向已初始化 -实例添加 samples,请先备份,再有意地只重新初始化对应数据库: - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` - -完全缺失的 sample 会被跳过,不影响创建 `demo`。不完整的 sample 集合或 -意外存在的 sample 数据库会被拒绝,不会自动修复或删除。 - -## 公共 Make targets - -`make help` 显示简要命令列表。 - -| 命令 | 用途 | -|---|---| -| `make init` | 创建 `.docker.env`、验证 managed paths、创建目录 | -| `make check-env` | 检查 env、角色分离、数据库名与 managed paths | -| `make pull` | 拉取三个固定版本的镜像 | -| `make config` | 验证展开后的 Compose 配置 | -| `make up`、`make up-no-ui` | 启动两个数据库,启用或不启用 Adminer | -| `make up-mysql`、`make up-mysql-ui` | 启动 MySQL,可选 Adminer | -| `make up-postgres`、`make up-postgres-ui` | 启动 PostgreSQL,可选 Adminer | -| `make up-ui`、`make down-ui` | 仅启动或停止 Adminer | -| `make down` | 停止环境但不删除 bind-mounted 数据 | -| `make status`、`make logs` | 查看状态或跟踪所有日志 | -| `make log SERVICE=postgres` | 跟踪单个服务;也支持 `make log postgres` | -| `make in SERVICE=postgres` | 打开服务 shell;也支持 `make in postgres` | -| `make mysql`、`make mysql-user` | 以管理员或 `DB_USER` 打开 MySQL | -| `make postgres`、`make postgres-user` | 以超级用户或 `DB_USER` 打开 PostgreSQL | -| `make samples-mysql`、`make samples-postgres` | 准备已校验的 samples | -| `make check-mysql-access`、`make check-postgres-access` | 检查一个运行中的数据库 | -| `make check` | 验证 Compose 及 `DB_USER` 对两种数据库的访问 | -| `make test-storage-paths` | 无需 Docker runtime 测试 managed path 保护 | -| `make test-sql-imports` | smoke-test 两个公共 SQL import targets | -| `make mysql-import FILE=... DATABASE=...` | 以 `DB_USER` 向 MySQL 导入 plain SQL | -| `make postgres-import FILE=... DATABASE=...` | 以 `DB_USER` 向 PostgreSQL 导入 plain SQL | -| `make dump`、`make restore` | 备份或恢复 MySQL `demo` | -| `make clean-{mysql,postgres,all} CONFIRM=1` | 删除选定的 data 目录 | -| `make reinit-{mysql,postgres,all} CONFIRM=1` | 删除、重建并检查数据库 | - -## 检查 - -### 静态与本地检查 +以下静态检查不要求数据库正在运行: ```bash make check-env @@ -246,130 +141,32 @@ make config make test-storage-paths ``` -`make check-env` 在缺失时创建 `.docker.env`,然后验证配置与 managed -paths。`make config` 验证展开后的 Compose 模型。`make test-storage-paths` -不需要 Docker runtime;它测试项目外路径、symlink 组件、路径重叠/嵌套 -以及 reserved directories。 - -### Runtime 检查 - -```bash -make up-no-ui -make check -make test-sql-imports -make down -``` - -`make check` 验证必需的 `demo` 数据和 `DB_USER` 的实际访问,也检查已安装 -的可选 samples。`make test-sql-imports` 要求两种数据库都已启动;它调用 -公共 `mysql-import` 与 `postgres-import`,在 `demo` 中创建唯一命名的临时 -表,以 `DB_USER` 验证 marker rows,并且只删除这些表。这是 trusted import -工作流的 smoke-test,不是 sandbox,也不能证明不可信 SQL 的安全性。 - -## Trusted SQL 导入 - -```bash -make mysql-import FILE=path/to/file.sql DATABASE=demo -make postgres-import FILE=path/to/file.sql DATABASE=demo -``` - -两个 targets 都遵循以下规则: - -- `FILE` 与 `DATABASE` 必填。 -- 文件必须是存在、可读、非空的本地 plain SQL。 -- 数据库必须已存在;禁止系统数据库。 -- import 以 `DB_USER` 执行,不创建数据库,也不授予 grants。 -- `DATABASE` 只选择初始连接,不创建 sandbox。 -- qualified names、client/session commands 及真实 grants 可能影响其他 - 可访问对象。 -- 可能发生 partial execution;不承诺自动 rollback。 -- 重要导入前必须备份。 -- 不处理 gzip、archives 或 PostgreSQL custom-format backups。 - -## Data 与 init 生命周期 - -```text -data/ -├── mysql/ -└── postgres/ - -initdb/ -├── mysql/ -└── postgres/ -``` - -| 数据库 | Data | Init | 可选 samples | -|---|---|---|---| -| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | -| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | - -data 与 sample 路径可在 `.docker.env` 中修改,但必须通过 managed path -验证。entrypoint 仅在 data 目录为空时执行 init;修改 init 文件不会迁移 -已有数据库。`make down` 不删除 bind mount 数据。不要手工编辑 `data/` -中的数据库文件,它们可能属于容器使用的数字 UID/GID。 - -## 备份、清理与重新初始化 - -内置 targets 只覆盖配置的 MySQL `demo` 数据库: - -```bash -make dump -make restore -``` - -`make dump` 写入 `backup/demo.sql`;`make restore` 读取该文件并重新应用 -MySQL 学习 grants。PostgreSQL 数据应使用独立备份流程。 - -> **警告:** 所有 `clean-*` 和 `reinit-*` 命令都是破坏性的,并且要求 -> 精确确认 `CONFIRM=1`。 - -```bash -make clean-mysql CONFIRM=1 -make clean-postgres CONFIRM=1 -make clean-all CONFIRM=1 - -make reinit-mysql CONFIRM=1 -make reinit-postgres CONFIRM=1 -make reinit-all CONFIRM=1 -``` - -单数据库命令只删除对应 data 目录;`all` 会删除两种数据库的数据。配置、 -init、samples 和 backups 会保留。reinit 随后启动并检查所选数据库; -`reinit-all` 启动两者但不启用 Adminer。 - -## 诊断与故障排除 - -### 配置或 storage path 验证失败 - -运行 `make check-env`。data paths 必须严格位于 `data/` 内,samples 必须 -位于 `samples/` 内;不得包含 symlink、互相重叠或使用 reserved -directories。修正 `.docker.env` 后运行 `make config`。 - -### 服务未就绪 - -```bash -make status -make log SERVICE=mysql -make log SERVICE=postgres -``` - -在修改数据前,检查 Docker、端口、`.docker.env` 与日志。 +启动两种数据库后,`make check` 验证 `DB_USER` 访问,`make test-sql-imports` 测试公共 trusted import targets。下方详细文档列出了全部命令、限制与安全操作顺序。 -### init 修改或 samples 未出现 +MySQL 与 PostgreSQL 的 data、init 和 sample 目录彼此分离,并通过 `.docker.env` 配置。Managed path validator 会拒绝 `data/` 或 `samples/` 之外的位置、symlink 组件、路径重叠以及 reserved directories。可选 sample 完全缺失时会被跳过;若文件集合不完整或 sample 数据库意外存在,则会报错且不会自动修复。 -如果 data 已初始化,这是预期行为。检查路径与准备命令,备份重要数据, -仅在明确需要时最后使用 `reinit-... CONFIRM=1`。 +Sample 准备命令下载固定 revision 的 upstream 文件、校验 integrity,并只保存在本地;来源与许可见 `THIRD_PARTY_NOTICES.md`。Runtime 检查还会验证 `demo` 必需行、学习用户的读写访问以及已安装 samples。所有数据库连接都应优先使用 `DB_USER`,仅在管理操作确实需要时才使用独立的管理员 credentials。 -### sample 不完整或所有者异常 +## 安全与生命周期 -loader 不会覆盖或修复意外数据库。重新运行 `make samples-mysql` 或 -`make samples-postgres` 并检查错误;重新初始化前先保留所需数据。 +- `BIND_ADDRESS=127.0.0.1` 仅在 loopback 发布服务。 +- `BIND_ADDRESS=0.0.0.0` 会在所有接口发布服务;必须明确配置 firewall、 + 强 credentials,并确认网络可信度。 +- 官方 entrypoints 仅对空 data 目录执行 init。 +- `make mysql-import` 与 `make postgres-import` 只接受 trusted SQL。 + 它们不创建 sandbox;可能 partial execution,且不保证完整 automatic + rollback。重要导入前先做 backup。 +- 内置 `make dump` 和 `make restore` 仅覆盖 MySQL `demo`; + PostgreSQL 没有内置 backup target。 +- 所有 `clean-*` 与 `reinit-*` 都是 destructive 操作,并要求精确的 + `CONFIRM=1`。 -### 客户端无法连接 +## 文档 -主机客户端使用发布地址及 `MYSQL_PORT` 或 `POSTGRES_PORT`;Adminer 在 -Compose 网络中使用 `mysql` 或 `postgres`。检查 `BIND_ADDRESS`、 -firewall、数据库选择和非管理员 `DB_USER` 凭据。 +- [开始使用](zh/getting-started.md) +- [数据库与 samples](zh/databases.md) +- [检查与运维](zh/operations.md) +- [诊断与故障排除](zh/troubleshooting.md) ## 许可与第三方声明 diff --git a/docs/langs/de/databases.md b/docs/langs/de/databases.md new file mode 100644 index 0000000..2e92ee8 --- /dev/null +++ b/docs/langs/de/databases.md @@ -0,0 +1,110 @@ +# Datenbanken und Samples + +[← Zurück zur README](../README_de.md) + +[Русский](../ru/databases.md) | [English](../en/databases.md) | [Español](../es/databases.md) | [中文](../zh/databases.md) | [Français](../fr/databases.md) | **Deutsch — Ausgewählt** + +**Seiten in dieser Sprache:** [Erste Schritte](getting-started.md) · **Datenbanken und Samples** · [Prüfungen und Betrieb](operations.md) · [Diagnose und Fehlerbehebung](troubleshooting.md) + + +## Obligatorische `demo`-Datenbanken + +Beide DBMS initialisieren `demo`: + +- MySQL: `demo.demo_users` +- PostgreSQL: `demo.public.demo_users` + +Die Tabellen besitzen entsprechende Felder `id`, `name`, `email` und +`created_at` sowie Alice, Bob, Carol, Dave und Eve. Zusätzliche Zeilen sind +zulässig. `make check-env` verlangt `MYSQL_DATABASE=demo` und +`POSTGRES_DATABASE=demo`. + + +## Optionale Samples + +| DBMS | Optionale Datenbanken | Vorbereitung | +|---|---|---| +| MySQL | Chinook, Sakila | `make samples-mysql` | +| PostgreSQL | Pagila, Chinook | `make samples-postgres` | + + +## Samples vorbereiten + +Die Vorbereitung lädt festgelegte upstream-Dateien herunter und prüft sie, +startet aber keine Container und importiert nichts in bereits initialisierte +Datenbanken. Temporäre Downloads bleiben lokal, werden nicht committed und +liegen unter `MYSQL_SAMPLES_DIR` beziehungsweise `POSTGRES_SAMPLES_DIR`. +Herkunft, Integritätswerte und Lizenzen stehen in +[THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md). + +Bei leerem data directory: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Die offiziellen Entrypoints verarbeiten init nur bei leerem data directory. +Um Samples einer bestehenden Instanz hinzuzufügen, erstellen Sie ein Backup +und initialisieren bewusst nur das betroffene DBMS neu: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` + +Ein vollständig fehlendes Sample wird übersprungen und verhindert `demo` +nicht. Unvollständige Samples oder unerwartete Datenbanken werden ohne +automatische Reparatur oder Löschung abgelehnt. + + +## Speicherstruktur + +```text +data/ +├── mysql/ +└── postgres/ + +initdb/ +├── mysql/ +└── postgres/ +``` + +| DBMS | Data | Init | Optionale Samples | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | + +Data- und Sample-Pfade sind über `.docker.env` konfigurierbar und werden als +managed paths validiert. Entrypoints führen init nur bei leerem data directory +aus; geänderte init-Dateien migrieren keine bestehende Datenbank. `make down` +löscht keine bind mounts. Bearbeiten Sie Dateien in `data/` nicht manuell; sie +können numerischen Container-UID/GID gehören. + + +## Initialisierung und Lebenszyklus + +> **Wichtig:** Offizielle MySQL- und PostgreSQL-Entrypoints führen init-Dateien nur bei +leerem data directory aus. Geänderte init-Dateien migrieren keine bestehende +Datenbank; `make down` erhält bind-mounted Daten. + + +## Lernzugriff und Ownership + +MySQL erstellt `DB_USER` und gewährt Zugriff auf alle beim init +gefundenen Nicht-Systemdatenbanken. PostgreSQL erstellt einen getrennten +`DB_USER` ohne superuser/createdb/createrole und macht ihn zum Eigentümer von +`demo`, dem `public`-Schema und geladenen Sample-Objekten. Administrative +credentials bleiben getrennt: `MYSQL_ROOT_PASSWORD`, `POSTGRES_SUPERUSER` +und `POSTGRES_SUPERUSER_PASSWORD`. Bearbeiten Sie container-owned Dateien in +`data/` nicht manuell. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Zurück zur README](../README_de.md) diff --git a/docs/langs/de/getting-started.md b/docs/langs/de/getting-started.md new file mode 100644 index 0000000..23807e4 --- /dev/null +++ b/docs/langs/de/getting-started.md @@ -0,0 +1,152 @@ +# Erste Schritte + +[← Zurück zur README](../README_de.md) + +[Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | **Deutsch — Ausgewählt** + +**Seiten in dieser Sprache:** **Erste Schritte** · [Datenbanken und Samples](databases.md) · [Prüfungen und Betrieb](operations.md) · [Diagnose und Fehlerbehebung](troubleshooting.md) + + +## Voraussetzungen + +- Docker Engine oder Docker Desktop mit dem Befehl `docker compose` v2. +- GNU Make, Bash und die von den Skripten verwendeten Unix-Werkzeuge (`awk`, + `sed`, `grep`, `find`, `realpath` und `stat`). +- Für optionale Samples: `curl` und `git`; für MySQL zusätzlich `unzip` und + `sha256sum`. + +Führen Sie Befehle im Repository-Stamm aus. Der Standardbranch des Projekts ist +`master`. + + +## Schnellstart + +Erstellen Sie `.docker.env` aus dem versionierten Beispiel, prüfen Sie die +Pfade, legen Sie Arbeitsverzeichnisse an und starten Sie das vollständige Lab: + +```bash +make init +make up +``` + +`make up` startet MySQL, PostgreSQL und Adminer. Mit der Standardkonfiguration +ist Adminer unter `http://127.0.0.1:8081` erreichbar. + +```bash +make status +make logs +make down +``` + +`make down` entfernt Container und Netzwerk, behält aber bind-mounted Daten. + + +## Startmodi + +| Befehl | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Startet | Startet | Startet | +| `make up-no-ui` | Startet | Startet | Stoppt | +| `make up-mysql` | Startet | Startet nicht | Startet nicht | +| `make up-postgres` | Startet nicht | Startet | Startet nicht | + +Einzel-DBMS-Befehle stoppen das andere laufende DBMS nicht; Adminer wird separat verwaltet. + +
+Vollständige Tabelle der Startmodi + +| Befehl | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Startet | Startet | Startet | +| `make up-no-ui` | Startet oder lässt laufen | Startet oder lässt laufen | Stoppt, falls aktiv | +| `make up-mysql` | Startet | Startet nicht automatisch | Startet nicht automatisch | +| `make up-mysql-ui` | Startet | Startet nicht automatisch | Startet | +| `make up-postgres` | Startet nicht automatisch | Startet | Startet nicht automatisch | +| `make up-postgres-ui` | Startet nicht automatisch | Startet | Startet | +| `make up-ui` | Ändert nichts | Ändert nichts | Startet | +| `make down-ui` | Ändert nichts | Ändert nichts | Stoppt | + +Einzel-DBMS-Befehle stoppen ein bereits laufendes anderes DBMS nicht. Adminer +lässt sich separat starten und stoppen und ist nicht nur an MySQL gebunden. + +
+ + +## Verbindungen + +### Adminer + +Im Compose-Netzwerk bietet Adminer zwei vordefinierte Server an: + +```text +MySQL (mysql) +PostgreSQL (postgres) +``` + +Wählen Sie einen Server und melden Sie sich mit `DB_USER`, `DB_PASSWORD` und +einer Datenbank wie `demo` an. `mysql` und `postgres` sind interne +Compose-Dienstnamen, keine Hostnamen für Desktop-Clients. + +### Clients auf dem Host + +| DBMS | Standardhost | Portvariable | Benutzer | Standarddatenbank | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | + +DataGrip, DBeaver, PhpStorm und Host-CLI-Werkzeuge nutzen veröffentlichte +Adresse und Port. Nach einer Änderung von `BIND_ADDRESS` verwenden Sie bei +Bedarf die erreichbare Adresse dieser Schnittstelle. + +### CLI in den Containern + +Passwörter werden über die Containerumgebung übergeben und nicht in die +Shell-History geschrieben: + +```bash +make mysql # MySQL-Administrator, Datenbank demo +make mysql-user # DB_USER, Datenbank demo +make postgres # PostgreSQL-Superuser, Datenbank demo +make postgres-user # DB_USER, Datenbank demo +``` + + +## Zugangsdaten + +`.docker.env` wird aus `.docker.env.example` erstellt und von Git ignoriert. +Bewahren Sie Passwörter dort auf; codieren Sie sie nicht in versioniertem +Compose, SQL oder Client-Konfigurationen. + +| Zweck | Benutzer | Passwort | +|---|---|---| +| Gemeinsamer Lernbenutzer | `DB_USER` | `DB_PASSWORD` | +| MySQL-Administrator | `root` | `MYSQL_ROOT_PASSWORD` | +| PostgreSQL-Administrator/Superuser | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | + +`POSTGRES_SUPERUSER` und `DB_USER` müssen verschiedene Rollen sein. Verwenden +Sie den Lernbenutzer für normale Übungen. Ersetzen Sie Beispielpasswörter, +bevor Dienste geteilt oder außerhalb des lokalen Rechners veröffentlicht werden. + + +## Ports und `BIND_ADDRESS` + +| Dienst | Portvariable | Beispielwert | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | + +Standardmäßig werden alle drei Dienste nur an loopback gebunden: + +```env +BIND_ADDRESS=127.0.0.1 +``` + +`127.0.0.1` ist der lokale Standard. `BIND_ADDRESS=0.0.0.0` veröffentlicht die +Ports auf allen Netzwerkschnittstellen. Für LAN oder VPN ist die Adresse einer +bestimmten Schnittstelle vorzuziehen. Ändern Sie die Bindung bewusst und +beachten Sie Firewall, Passwortstärke und Vertrauenswürdigkeit des Netzes. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Zurück zur README](../README_de.md) diff --git a/docs/langs/de/operations.md b/docs/langs/de/operations.md new file mode 100644 index 0000000..a5d6786 --- /dev/null +++ b/docs/langs/de/operations.md @@ -0,0 +1,153 @@ +# Prüfungen und Betrieb + +[← Zurück zur README](../README_de.md) + +[Русский](../ru/operations.md) | [English](../en/operations.md) | [Español](../es/operations.md) | [中文](../zh/operations.md) | [Français](../fr/operations.md) | **Deutsch — Ausgewählt** + +**Seiten in dieser Sprache:** [Erste Schritte](getting-started.md) · [Datenbanken und Samples](databases.md) · **Prüfungen und Betrieb** · [Diagnose und Fehlerbehebung](troubleshooting.md) + + +## Öffentliche Make targets + +Wichtige Targets sind `make init`, `make up`, `make down`, `make check`, +`make test-storage-paths`, `make test-sql-imports`, `make mysql-import` +und `make postgres-import`. Vertrauenswürdiges SQL ist keine isolierte Umgebung (`sandbox`), kann +partiell ausgeführt werden und erhält keine Garantie für automatic rollback; +erstellen Sie vor wichtigen Imports ein Backup. Integrierte backup targets +decken nur MySQL `demo` ab, nicht PostgreSQL. `clean-*` und `reinit-*` +sind destruktiv und erfordern exakt `CONFIRM=1`. + +
+Vollständige Referenz der öffentlichen Make targets + +`make help` zeigt die kompakte Liste. + +| Befehl | Zweck | +|---|---| +| `make init` | `.docker.env` erstellen, managed paths prüfen, Verzeichnisse anlegen | +| `make check-env` | Env-Werte, Rollen, Datenbanknamen und Pfade prüfen | +| `make pull` | Die drei festgelegten Images laden | +| `make config` | Erweiterte Compose-Konfiguration validieren | +| `make up`, `make up-no-ui` | Beide DBMS mit oder ohne Adminer starten | +| `make up-mysql`, `make up-mysql-ui` | MySQL, optional mit Adminer, starten | +| `make up-postgres`, `make up-postgres-ui` | PostgreSQL, optional mit Adminer, starten | +| `make up-ui`, `make down-ui` | Nur Adminer starten oder stoppen | +| `make down` | Lab stoppen, ohne bind-mounted Daten zu löschen | +| `make status`, `make logs` | Status anzeigen oder alle Logs verfolgen | +| `make log SERVICE=postgres` | Einen Dienst verfolgen; auch `make log postgres` | +| `make in SERVICE=postgres` | Dienst-Shell öffnen; auch `make in postgres` | +| `make mysql`, `make mysql-user` | MySQL als Admin oder `DB_USER` öffnen | +| `make postgres`, `make postgres-user` | PostgreSQL als Superuser oder `DB_USER` öffnen | +| `make samples-mysql`, `make samples-postgres` | Geprüfte Samples vorbereiten | +| `make check-mysql-access`, `make check-postgres-access` | Ein laufendes DBMS prüfen | +| `make check` | Compose und `DB_USER`-Zugriff auf beide DBMS prüfen | +| `make test-storage-paths` | Managed paths ohne Docker runtime testen | +| `make test-sql-imports` | Smoke-Test beider öffentlicher SQL-Imports | +| `make mysql-import FILE=... DATABASE=...` | Plain SQL als `DB_USER` in MySQL importieren | +| `make postgres-import FILE=... DATABASE=...` | Plain SQL als `DB_USER` in PostgreSQL importieren | +| `make dump`, `make restore` | MySQL-`demo` sichern oder wiederherstellen | +| `make clean-{mysql,postgres,all} CONFIRM=1` | Ausgewählte data directories löschen | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | Datenbanken löschen, neu erstellen und prüfen | + +
+ + +## Prüfungen + +### Statische und lokale Prüfungen + +```bash +make check-env +make config +make test-storage-paths +``` + +`make check-env` erstellt bei Bedarf `.docker.env` und validiert Werte und +Pfade. `make config` prüft das erweiterte Compose-Modell. +`make test-storage-paths` benötigt keine Docker runtime und testet Pfade +außerhalb des Projekts, symlink-Komponenten, überlappende oder verschachtelte +Pfade sowie reserved directories. + +### Runtime-Prüfungen + +```bash +make up-no-ui +make check +make test-sql-imports +make down +``` + +`make check` prüft `demo` und den tatsächlichen `DB_USER`-Zugriff in beiden +DBMS sowie installierte Samples. `make test-sql-imports` benötigt beide +laufenden DBMS, ruft `mysql-import` und `postgres-import` auf, erstellt +eindeutig benannte temporäre Tabellen in `demo`, prüft marker rows als +`DB_USER` und löscht nur diese Tabellen. Dies ist ein Smoke-Test des trusted +import workflow, keine isolierte Umgebung (`sandbox`) und kein Sicherheitsnachweis für fremdes SQL. + + +## Sicherheit der storage paths + +`make check-env` führt `scripts/validate-storage-paths.sh` aus. Data +paths müssen strikt unter `data/`, sample paths unter `samples/` liegen; +Symlinks sowie gleiche, verschachtelte, überlappende oder reservierte Pfade +werden abgelehnt. `make test-storage-paths` testet dies ohne Docker runtime. + + +## Import vertrauenswürdiger SQL-Dateien + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +Für beide targets gilt: + +- `FILE` und `DATABASE` sind erforderlich. +- Die lokale plain-SQL-Datei muss existieren, lesbar und nicht leer sein. +- Die Datenbank muss existieren; Systemdatenbanken sind verboten. +- Der Import läuft als `DB_USER`, erstellt keine Datenbank und vergibt keine grants. +- `DATABASE` wählt die erste Verbindung, erzeugt aber keine isolierte Umgebung (`sandbox`). +- Qualified names, Client-/Session-Befehle und tatsächliche grants können + andere erreichbare Objekte betreffen. +- Partielle Ausführung ist möglich; automatischer Rollback wird nicht zugesagt. +- Erstellen Sie vor wichtigen Imports ein Backup. +- gzip, Archive und PostgreSQL-custom-format backups werden nicht verarbeitet. + + +## Backup + +Die eingebauten Targets decken nur die konfigurierte MySQL-Datenbank `demo` ab: + +```bash +make dump +make restore +``` + +`make dump` schreibt `backup/demo.sql`; `make restore` liest die Datei und +wendet die MySQL-Lern-grants erneut an. Verwenden Sie für PostgreSQL ein eigenes +Backup-Verfahren. + + +## Bereinigung und Neuinitialisierung + +> **Warnung:** Alle `clean-*`- und `reinit-*`-Targets sind destruktiv und +> verlangen die exakte Bestätigung `CONFIRM=1`. + +```bash +make clean-mysql CONFIRM=1 +make clean-postgres CONFIRM=1 +make clean-all CONFIRM=1 + +make reinit-mysql CONFIRM=1 +make reinit-postgres CONFIRM=1 +make reinit-all CONFIRM=1 +``` + +Einzelne Targets löschen nur das gewählte DBMS-data directory; `all` löscht +beide. Konfiguration, init, Samples und Backups bleiben erhalten. Reinit +startet und prüft anschließend die gewählten DBMS; `reinit-all` startet beide +ohne Adminer. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Zurück zur README](../README_de.md) diff --git a/docs/langs/de/troubleshooting.md b/docs/langs/de/troubleshooting.md new file mode 100644 index 0000000..376155f --- /dev/null +++ b/docs/langs/de/troubleshooting.md @@ -0,0 +1,57 @@ +# Diagnose und Fehlerbehebung + +[← Zurück zur README](../README_de.md) + +[Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | **Deutsch — Ausgewählt** + +**Seiten in dieser Sprache:** [Erste Schritte](getting-started.md) · [Datenbanken und Samples](databases.md) · [Prüfungen und Betrieb](operations.md) · **Diagnose und Fehlerbehebung** + +Sammeln Sie zuerst Diagnosedaten und korrigieren Sie dann die konkrete +Ursache. Falls eine Neuinitialisierung nötig bleibt, erstellen Sie ein Backup +und verwenden `reinit-... CONFIRM=1` nur als bewussten letzten Schritt. + +Verbindliche Details zu Lebenszyklus und Betrieb: [Datenbanken](databases.md#section-initialization) · [Betrieb](operations.md#section-clean-reinitialize). + + +## Konfiguration oder Pfadvalidierung schlägt fehl + +Führen Sie `make check-env` aus. Data paths müssen strikt unter `data/` und +Samples unter `samples/` liegen; symlinks, Überschneidungen und reservierte +Verzeichnisse sind unzulässig. Korrigieren Sie `.docker.env` und führen Sie +`make config` aus. + + +## Ein Dienst wird nicht bereit + +```bash +make status +make log SERVICE=mysql +make log SERVICE=postgres +``` + +Prüfen Sie Docker, Port, `.docker.env` und Logs, bevor Sie Daten ändern. + + +## Init-Änderungen oder Samples erscheinen nicht + +Bei bereits initialisierten Daten ist das erwartet. Prüfen Sie Pfade und +Vorbereitung, sichern Sie wichtige Daten und verwenden Sie +`reinit-... CONFIRM=1` nur als bewussten letzten Schritt. + + +## Sample ist unvollständig oder hat einen unerwarteten Besitzer + +Der Loader überschreibt oder repariert unerwartete Datenbanken nicht. Führen +Sie `make samples-mysql` oder `make samples-postgres` erneut aus und prüfen Sie +den Fehler; sichern Sie Daten vor einer Neuinitialisierung. + + +## Ein Client kann keine Verbindung herstellen + +Host-Clients verwenden veröffentlichte Adresse und `MYSQL_PORT` oder +`POSTGRES_PORT`; Adminer verwendet `mysql` oder `postgres` im Compose-Netz. +Prüfen Sie `BIND_ADDRESS`, Firewall, Datenbankauswahl und `DB_USER`-Zugangsdaten. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Zurück zur README](../README_de.md) diff --git a/docs/langs/en/databases.md b/docs/langs/en/databases.md new file mode 100644 index 0000000..418f755 --- /dev/null +++ b/docs/langs/en/databases.md @@ -0,0 +1,121 @@ +# Databases and samples + +[← Back to README](../README_en.md) + +[Русский](../ru/databases.md) | **English — Selected** | [Español](../es/databases.md) | [中文](../zh/databases.md) | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) + +**Pages in this language:** [Getting started](getting-started.md) · **Databases and samples** · [Validation and operations](operations.md) · [Troubleshooting](troubleshooting.md) + + +## Required `demo` databases + +Both DBMSs initialize a required database named `demo`: + +- MySQL: `demo.demo_users` +- PostgreSQL: `demo.public.demo_users` + +The tables have equivalent `id`, `name`, `email`, and `created_at` fields and +contain the same five required example users: Alice, Bob, Carol, Dave, and Eve. +The access checks allow additional user-created rows. + +The default database names are enforced by `make check-env` through +`MYSQL_DATABASE=demo` and `POSTGRES_DATABASE=demo`. + + +## Optional samples + +| DBMS | Optional databases | Preparation command | +|---|---|---| +| MySQL | Chinook, Sakila | `make samples-mysql` | +| PostgreSQL | Pagila, Chinook | `make samples-postgres` | + + +## Sample preparation + +The preparation commands download and verify pinned upstream files but do not +start containers or import into an initialized database. Downloads are local, +are excluded from Git, and are stored under `MYSQL_SAMPLES_DIR` or +`POSTGRES_SAMPLES_DIR`. Their provenance, integrity pins, and license terms are +documented in [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md). + +For a DBMS with an empty data directory: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Official image entrypoints process init files only when the corresponding data +directory is empty. To add samples to an already initialized DBMS, first back +up anything important and then deliberately reinitialize only that DBMS: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` + +A completely absent optional sample is skipped and does not prevent the +required `demo` database from being created. A partial sample set or an +unexpected existing sample database is rejected instead of being repaired or +deleted automatically. + + +## Storage layout + +The default bind-mounted storage is separated by DBMS: + +```text +data/ +├── mysql/ +└── postgres/ + +initdb/ +├── mysql/ +└── postgres/ +``` + +The related `.docker.env` settings are separate as well: + +| DBMS | Data | Init | Optional samples | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | + +Data and sample locations can be changed through `.docker.env`, subject to +managed storage-path validation. + +The official MySQL and PostgreSQL entrypoints run their respective init +directory only for an empty data directory. Adding or editing an init file does +not migrate an existing database. `make down` does not delete data from either +bind mount. + +Do not edit database files inside `data/` manually. Container-owned files may +use numeric UID/GID values that differ from the host user. + + +## Initialization lifecycle + +> **Important:** Official MySQL and PostgreSQL entrypoints run init files only for an +empty data directory. Editing init files does not migrate an existing +database, and `make down` preserves bind-mounted data. + + +## Training access and ownership + +MySQL creates `DB_USER` and grants it access to every non-system +database found during init. PostgreSQL creates a separate, non-superuser +`DB_USER` without createdb/createrole privileges and makes it owner of +`demo`, the `public` schema, and loaded sample objects. Administrative +credentials remain separate: `MYSQL_ROOT_PASSWORD`, `POSTGRES_SUPERUSER`, +and `POSTGRES_SUPERUSER_PASSWORD`. Do not edit container-owned files in +`data/` manually. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Back to README](../README_en.md) diff --git a/docs/langs/en/getting-started.md b/docs/langs/en/getting-started.md new file mode 100644 index 0000000..075855d --- /dev/null +++ b/docs/langs/en/getting-started.md @@ -0,0 +1,162 @@ +# Getting started + +[← Back to README](../README_en.md) + +[Русский](../ru/getting-started.md) | **English — Selected** | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) + +**Pages in this language:** **Getting started** · [Databases and samples](databases.md) · [Validation and operations](operations.md) · [Troubleshooting](troubleshooting.md) + + +## Requirements + +- Docker Engine or Docker Desktop with the `docker compose` v2 command. +- GNU Make, Bash, and standard Unix tools used by the scripts (`awk`, `sed`, + `grep`, `find`, `realpath`, and `stat`). +- For optional sample downloads: `curl` and `git`; MySQL samples additionally + require `unzip` and `sha256sum`. + +Run project commands from the repository root. The default project branch is +`master`. + + +## Quick start + +Create `.docker.env` from the tracked example, validate the configured paths, +create the working directories, and start the full lab: + +```bash +make init +make up +``` + +`make up` starts MySQL, PostgreSQL, and Adminer. With the default configuration, +open Adminer at `http://127.0.0.1:8081`. + +Useful follow-up commands: + +```bash +make status +make logs +make down +``` + +`make down` removes the containers and network but preserves the bind-mounted +database data. + + +## Startup modes + +| Command | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Starts | Starts | Starts | +| `make up-no-ui` | Starts | Starts | Stops | +| `make up-mysql` | Starts | Does not start | Does not start | +| `make up-postgres` | Does not start | Starts | Does not start | + +Single-DBMS commands do not stop the other running database; Adminer is managed separately. + +
+Full startup-mode table + +| Command | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Starts | Starts | Starts | +| `make up-no-ui` | Starts or keeps running | Starts or keeps running | Stops if running | +| `make up-mysql` | Starts | Does not start automatically | Does not start automatically | +| `make up-mysql-ui` | Starts | Does not start automatically | Starts | +| `make up-postgres` | Does not start automatically | Starts | Does not start automatically | +| `make up-postgres-ui` | Does not start automatically | Starts | Starts | +| `make up-ui` | Does not change | Does not change | Starts | +| `make down-ui` | Does not change | Does not change | Stops | + +The single-service commands do not stop another database that is already +running. Adminer can be started and stopped separately and is not tied to +MySQL alone. + +
+ + +## Connections + +### Adminer + +Adminer provides two predefined server choices inside the Compose network: + +```text +MySQL (mysql) +PostgreSQL (postgres) +``` + +Select a server, then sign in with `DB_USER`, `DB_PASSWORD`, and a database +name such as `demo`. The service names `mysql` and `postgres` work inside the +Compose network; they are not host names for desktop clients. + +### Host clients + +DataGrip, DBeaver, PhpStorm, and host CLI tools connect through the published +address and port: + +| DBMS | Host with default settings | Port variable | User | Default database | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | + +If you change `BIND_ADDRESS`, use that reachable interface address instead of +`127.0.0.1` where appropriate. + +### Container CLI + +The Make targets pass passwords through the container environment instead of +placing them in shell history: + +```bash +make mysql # MySQL administrator, demo database +make mysql-user # DB_USER, demo database +make postgres # PostgreSQL superuser, demo database +make postgres-user # DB_USER, demo database +``` + + +## Credentials + +Copying `.docker.env.example` creates `.docker.env`; the latter is ignored by +Git. Keep passwords there and do not hardcode them in Compose, SQL, or client +configuration committed to the repository. + +| Purpose | User setting | Password setting | +|---|---|---| +| Shared training user for both DBMSs | `DB_USER` | `DB_PASSWORD` | +| MySQL administrator | `root` | `MYSQL_ROOT_PASSWORD` | +| PostgreSQL administrator/superuser | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | + +`POSTGRES_SUPERUSER` and `DB_USER` must be different roles. Use the shared +training user for normal exercises; do not use root or superuser credentials +for routine work. Replace the example passwords before sharing access or +publishing any service beyond the local machine. + + +## Ports and `BIND_ADDRESS` + +The host-side ports are configured in `.docker.env`: + +| Service | Port variable | Example default | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | + +All three services publish only on loopback by default: + +```env +BIND_ADDRESS=127.0.0.1 +``` + +This is the safe default for a local lab. Setting `BIND_ADDRESS=0.0.0.0` +publishes the configured ports on every network interface. For VPN or LAN +access, prefer the address of the specific interface. Change the binding only +deliberately, after considering firewall rules, password strength, and trust +in every connected network. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Back to README](../README_en.md) diff --git a/docs/langs/en/operations.md b/docs/langs/en/operations.md new file mode 100644 index 0000000..47a5dc4 --- /dev/null +++ b/docs/langs/en/operations.md @@ -0,0 +1,173 @@ +# Validation and operations + +[← Back to README](../README_en.md) + +[Русский](../ru/operations.md) | **English — Selected** | [Español](../es/operations.md) | [中文](../zh/operations.md) | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) + +**Pages in this language:** [Getting started](getting-started.md) · [Databases and samples](databases.md) · **Validation and operations** · [Troubleshooting](troubleshooting.md) + + +## Make targets + +Key targets include `make init`, `make up`, `make down`, `make check`, +`make test-storage-paths`, `make test-sql-imports`, `make mysql-import`, +and `make postgres-import`. Trusted SQL is not a sandbox, may execute +partially, and has no guaranteed automatic rollback; create a backup before an +important import. Built-in backup targets cover MySQL `demo` only, not +PostgreSQL. `clean-*` and `reinit-*` are destructive and require exact +`CONFIRM=1`. + +
+Complete public Make target reference + +Run `make help` for the concise command list. + +| Command | Purpose | +|---|---| +| `make init` | Create `.docker.env`, validate managed paths, and create required working directories | +| `make check-env` | Check required environment values, role separation, database names, and managed paths | +| `make pull` | Pull the three pinned container images | +| `make config` | Validate the expanded Compose configuration | +| `make up`, `make up-no-ui` | Start both DBMSs with or without Adminer | +| `make up-mysql`, `make up-mysql-ui` | Start MySQL, optionally with Adminer | +| `make up-postgres`, `make up-postgres-ui` | Start PostgreSQL, optionally with Adminer | +| `make up-ui`, `make down-ui` | Start or stop only Adminer | +| `make down` | Stop the lab without deleting bind-mounted data | +| `make status` | Show service status | +| `make logs` | Follow logs for all services | +| `make log SERVICE=postgres` | Follow one service log; `make log postgres` is also supported | +| `make in SERVICE=postgres` | Open a service shell; `make in postgres` is also supported | +| `make mysql`, `make mysql-user` | Open MySQL as administrator or `DB_USER` | +| `make postgres`, `make postgres-user` | Open PostgreSQL as superuser or `DB_USER` | +| `make samples-mysql`, `make samples-postgres` | Prepare verified optional samples | +| `make check-mysql-access`, `make check-postgres-access` | Verify training-user access to one running DBMS | +| `make check` | Validate Compose and check `DB_USER` access to both running DBMSs | +| `make test-storage-paths` | Test managed storage-path protection without Docker runtime | +| `make test-sql-imports` | Smoke-test both public trusted SQL import targets | +| `make mysql-import FILE=... DATABASE=...` | Import trusted plain SQL into an existing MySQL database as `DB_USER` | +| `make postgres-import FILE=... DATABASE=...` | Import trusted plain SQL into an existing PostgreSQL database as `DB_USER` | +| `make dump`, `make restore` | Dump or restore the configured MySQL `demo` database | +| `make clean-{mysql,postgres,all} CONFIRM=1` | Delete selected managed data directories | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | Delete, recreate, and check selected databases | + +
+ + +## Validation + +### Static and local checks + +```bash +make check-env +make config +make test-storage-paths +``` + +`make check-env` creates `.docker.env` from the example if it is absent, then +validates required settings and managed paths. `make config` validates the +expanded Compose model. + +`make test-storage-paths` does not require the Docker runtime. It exercises the +guards for paths outside the project, symbolic-link components, overlapping or +nested managed paths, and reserved directories. The same validator protects +the configured MySQL/PostgreSQL data and sample locations during normal setup. + +### Runtime checks + +Start both databases without Adminer, check training access, exercise imports, +and stop the services: + +```bash +make up-no-ui +make check +make test-sql-imports +make down +``` + +`make check` verifies the required `demo` data and actual `DB_USER` access in +both DBMSs. It also checks supported optional samples when they are installed. + +`make test-sql-imports` requires both DBMSs to be running. It invokes the +public `mysql-import` and `postgres-import` targets, creates uniquely named +temporary smoke tables in `demo`, verifies marker rows as `DB_USER`, and +removes only those tables. It tests the trusted SQL import workflow; it does +not prove that untrusted SQL is safe or sandboxed. + + +## Storage-path safety + +`make check-env` runs `scripts/validate-storage-paths.sh`. Data paths +must be strict descendants of `data/`, and sample paths of `samples/`. +Symlink components, equal, nested, overlapping, and reserved paths are +rejected. `make test-storage-paths` exercises these rules without Docker +runtime. + + +## Trusted SQL imports + +Import only trusted local plain SQL files: + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +For both targets: + +- `FILE` and `DATABASE` are required. +- The file must be a readable, non-empty regular file. +- The database name must start with a lowercase ASCII letter and contain only + lowercase ASCII letters, digits, or `_`; system databases are rejected. +- The database must already exist and accept a connection from `DB_USER`. +- Import runs as `DB_USER`, never as MySQL root or PostgreSQL superuser. +- The target neither creates a database nor grants access. +- Archives, gzip streams, and PostgreSQL custom-format backups are not + supported by these targets. + +`DATABASE` selects the initial connection database; it does not create a +sandbox. Qualified names, session or client commands, and the actual grants of +`DB_USER` may permit access to other objects. SQL may modify or delete anything +that role can access. + +An import may complete partially. Neither target promises an automatic full +rollback after an error. Review the file and create an appropriate backup +before an important import. + + +## Backup + +The built-in backup targets cover only the configured MySQL `demo` database: + +```bash +make dump +make restore +``` + +`make dump` writes `backup/demo.sql` with the default configuration. +`make restore` reads that file and reapplies MySQL training grants. Use a +separate PostgreSQL backup procedure when PostgreSQL data must be preserved. + + +## Clean and reinitialize + +> **Warning:** Every `clean-*` and `reinit-*` command below is destructive and +> requires the exact opt-in `CONFIRM=1`. + +```bash +make clean-mysql CONFIRM=1 +make clean-postgres CONFIRM=1 +make clean-all CONFIRM=1 + +make reinit-mysql CONFIRM=1 +make reinit-postgres CONFIRM=1 +make reinit-all CONFIRM=1 +``` + +The single-DBMS commands delete only that DBMS data directory. The `all` +variants delete both database data directories. Configuration, init files, +optional sample downloads, and backups are preserved. Reinitialization then +starts and checks the selected DBMSs; `reinit-all` starts both without Adminer. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Back to README](../README_en.md) diff --git a/docs/langs/en/troubleshooting.md b/docs/langs/en/troubleshooting.md new file mode 100644 index 0000000..147f9c9 --- /dev/null +++ b/docs/langs/en/troubleshooting.md @@ -0,0 +1,66 @@ +# Troubleshooting + +[← Back to README](../README_en.md) + +[Русский](../ru/troubleshooting.md) | **English — Selected** | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) + +**Pages in this language:** [Getting started](getting-started.md) · [Databases and samples](databases.md) · [Validation and operations](operations.md) · **Troubleshooting** + +Collect diagnostics first, then correct the specific cause. If a +reinitialization is still required, create a backup and use confirmed +`reinit-... CONFIRM=1` only as a deliberate last resort. + +Canonical lifecycle and operational details: [databases](databases.md#section-initialization) · [operations](operations.md#section-clean-reinitialize). + + +## Configuration or storage-path validation fails + +Run `make check-env` and read the rejected variable and path in the error. +Managed data paths must be strictly inside the project `data/` tree; sample +paths must be inside `samples/`. They cannot contain symbolic-link components, +overlap one another, or use reserved project directories. Correct +`.docker.env`, then rerun `make check-env` and `make config`. + + +## A service does not become ready + +Check the service state and logs before changing data: + +```bash +make status +make log SERVICE=mysql +make log SERVICE=postgres +``` + +Confirm that Docker is running, the configured host port is available, and +`.docker.env` contains all required values. Fix the specific configuration or +port conflict and start the service again. + + +## Init changes or optional samples do not appear + +This is expected when the data directory is already initialized. Verify the +configured data and sample paths and confirm that the preparation command +succeeded. If existing data matters, back it up. Use the matching +`reinit-... CONFIRM=1` command only as a deliberate last step; it deletes that +DBMS's data. + + +## An optional sample is incomplete or has unexpected ownership + +The loader intentionally refuses to overwrite or repair an unexpected +database. Re-run the appropriate `make samples-mysql` or +`make samples-postgres` preparation command and inspect the error. Preserve any +needed data before considering a confirmed reinitialization. + + +## A client cannot connect + +Host clients use the published host address and `MYSQL_PORT` or +`POSTGRES_PORT`, not the Compose service name. Adminer uses `mysql` or +`postgres` inside the Compose network. Confirm `BIND_ADDRESS`, firewall rules, +the selected database, and the non-administrative `DB_USER` credentials. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Back to README](../README_en.md) diff --git a/docs/langs/es/databases.md b/docs/langs/es/databases.md new file mode 100644 index 0000000..ffb1d40 --- /dev/null +++ b/docs/langs/es/databases.md @@ -0,0 +1,107 @@ +# Bases y samples + +[← Volver al README](../README_es.md) + +[Русский](../ru/databases.md) | [English](../en/databases.md) | **Español — Seleccionado** | [中文](../zh/databases.md) | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) + +**Páginas de este idioma:** [Primeros pasos](getting-started.md) · **Bases y samples** · [Comprobaciones y operaciones](operations.md) · [Diagnóstico](troubleshooting.md) + + +## Bases `demo` obligatorias + +Ambos SGBD inicializan `demo`: + +- MySQL: `demo.demo_users` +- PostgreSQL: `demo.public.demo_users` + +Las tablas tienen campos equivalentes `id`, `name`, `email` y `created_at`, y +los mismos cinco usuarios: Alice, Bob, Carol, Dave y Eve. Las comprobaciones +admiten filas adicionales. `make check-env` exige `MYSQL_DATABASE=demo` y +`POSTGRES_DATABASE=demo`. + + +## Samples opcionales + +| SGBD | Bases opcionales | Preparación | +|---|---|---| +| MySQL | Chinook, Sakila | `make samples-mysql` | +| PostgreSQL | Pagila, Chinook | `make samples-postgres` | + + +## Preparación de samples + +La preparación descarga y verifica archivos upstream fijados, pero no inicia +contenedores ni importa en una base ya inicializada. Las descargas temporales +son locales, no se versionan y quedan bajo `MYSQL_SAMPLES_DIR` o +`POSTGRES_SAMPLES_DIR`. Procedencia, hashes y licencias están en +[THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md). + +Para un data directory vacío: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Los entrypoints oficiales procesan init solo con el data directory vacío. Para +añadir samples a una instancia existente, haga backup y reinicialice +deliberadamente solo ese SGBD: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` + +Un sample ausente se omite y no impide crear `demo`. Un conjunto parcial o una +base inesperada se rechazan sin reparación ni borrado automático. + + +## Estructura de almacenamiento + +```text +data/ +├── mysql/ +└── postgres/ + +initdb/ +├── mysql/ +└── postgres/ +``` + +| SGBD | Data | Init | Samples opcionales | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | + +Las rutas data y samples son configurables en `.docker.env` y están sujetas a +validación. Los entrypoints ejecutan init únicamente si el data directory está +vacío; editar init no migra una base existente. `make down` no borra los bind +mounts. No edite manualmente los archivos de `data/`; pueden pertenecer a +UID/GID numéricos del contenedor. + + +## Inicialización y ciclo de vida + +> **Importante:** Los entrypoints oficiales de MySQL y PostgreSQL ejecutan init solo si el +data directory está vacío. Cambiar init no migra una base existente y +`make down` conserva los datos bind-mounted. + + +## Acceso didáctico y ownership + +MySQL crea `DB_USER` y le concede acceso a todas las bases no +sistémicas encontradas durante init. PostgreSQL crea un `DB_USER` separado, +sin superuser/createdb/createrole, y lo hace propietario de `demo`, de +`public` y de los objetos sample. Las credenciales administrativas siguen +separadas: `MYSQL_ROOT_PASSWORD`, `POSTGRES_SUPERUSER` y +`POSTGRES_SUPERUSER_PASSWORD`. No edite manualmente archivos de `data/`. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Volver al README](../README_es.md) diff --git a/docs/langs/es/getting-started.md b/docs/langs/es/getting-started.md new file mode 100644 index 0000000..aa1415f --- /dev/null +++ b/docs/langs/es/getting-started.md @@ -0,0 +1,151 @@ +# Primeros pasos + +[← Volver al README](../README_es.md) + +[Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | **Español — Seleccionado** | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) + +**Páginas de este idioma:** **Primeros pasos** · [Bases y samples](databases.md) · [Comprobaciones y operaciones](operations.md) · [Diagnóstico](troubleshooting.md) + + +## Requisitos + +- Docker Engine o Docker Desktop con el comando `docker compose` v2. +- GNU Make, Bash y las utilidades Unix usadas por los scripts (`awk`, `sed`, + `grep`, `find`, `realpath` y `stat`). +- Para descargar samples opcionales: `curl` y `git`; para MySQL también + `unzip` y `sha256sum`. + +Ejecute los comandos desde la raíz del repositorio. La rama predeterminada del +proyecto es `master`. + + +## Inicio rápido + +Cree `.docker.env` desde el ejemplo versionado, valide las rutas, cree los +directorios de trabajo e inicie el laboratorio completo: + +```bash +make init +make up +``` + +`make up` inicia MySQL, PostgreSQL y Adminer. Con la configuración por defecto, +Adminer está en `http://127.0.0.1:8081`. + +```bash +make status +make logs +make down +``` + +`make down` elimina los contenedores y la red, pero conserva los datos +bind-mounted. + + +## Modos de inicio + +| Comando | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Inicia | Inicia | Inicia | +| `make up-no-ui` | Inicia | Inicia | Detiene | +| `make up-mysql` | Inicia | No inicia | No inicia | +| `make up-postgres` | No inicia | Inicia | No inicia | + +Los comandos de un SGBD no detienen el otro ya activo; Adminer se gestiona aparte. + +
+Tabla completa de modos de inicio + +| Comando | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Inicia | Inicia | Inicia | +| `make up-no-ui` | Inicia o mantiene activo | Inicia o mantiene activo | Detiene si estaba activo | +| `make up-mysql` | Inicia | No inicia automáticamente | No inicia automáticamente | +| `make up-mysql-ui` | Inicia | No inicia automáticamente | Inicia | +| `make up-postgres` | No inicia automáticamente | Inicia | No inicia automáticamente | +| `make up-postgres-ui` | No inicia automáticamente | Inicia | Inicia | +| `make up-ui` | No cambia | No cambia | Inicia | +| `make down-ui` | No cambia | No cambia | Detiene | + +Los comandos de un solo SGBD no detienen el otro si ya está activo. Adminer se +puede iniciar y detener por separado y no está ligado únicamente a MySQL. + +
+ + +## Conexiones + +### Adminer + +Dentro de la red de Compose, Adminer ofrece dos servidores predefinidos: + +```text +MySQL (mysql) +PostgreSQL (postgres) +``` + +Seleccione uno e introduzca `DB_USER`, `DB_PASSWORD` y una base como `demo`. +`mysql` y `postgres` son nombres internos de servicio, no hosts para clientes +de escritorio. + +### Clientes en el host + +| SGBD | Host predeterminado | Variable de puerto | Usuario | Base predeterminada | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | + +DataGrip, DBeaver, PhpStorm y los CLI del host usan la dirección y el puerto +publicados. Si cambia `BIND_ADDRESS`, use la dirección accesible de esa interfaz. + +### CLI dentro de los contenedores + +Las contraseñas pasan por el entorno del contenedor y no quedan en el historial: + +```bash +make mysql # administrador MySQL, base demo +make mysql-user # DB_USER, base demo +make postgres # superusuario PostgreSQL, base demo +make postgres-user # DB_USER, base demo +``` + + +## Credenciales + +`.docker.env` se crea a partir de `.docker.env.example` y está ignorado por +Git. Guarde allí las contraseñas; no las codifique en Compose, SQL ni en +configuración de cliente versionada. + +| Finalidad | Usuario | Contraseña | +|---|---|---| +| Usuario didáctico común | `DB_USER` | `DB_PASSWORD` | +| Administrador MySQL | `root` | `MYSQL_ROOT_PASSWORD` | +| Administrador/superusuario PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | + +`POSTGRES_SUPERUSER` y `DB_USER` deben ser roles distintos. Use `DB_USER` para +los ejercicios habituales. Cambie las contraseñas de ejemplo antes de +compartir o publicar cualquier servicio. + + +## Puertos y `BIND_ADDRESS` + +| Servicio | Variable | Valor de ejemplo | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | + +Por defecto, los tres servicios solo se publican en loopback: + +```env +BIND_ADDRESS=127.0.0.1 +``` + +`127.0.0.1` es el valor local predeterminado. `BIND_ADDRESS=0.0.0.0` publica +los puertos en todas las interfaces. Para LAN o VPN, prefiera la dirección de +una interfaz concreta. Cambie este valor conscientemente y revise firewall, +fortaleza de contraseñas y confianza en la red. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Volver al README](../README_es.md) diff --git a/docs/langs/es/operations.md b/docs/langs/es/operations.md new file mode 100644 index 0000000..4c29358 --- /dev/null +++ b/docs/langs/es/operations.md @@ -0,0 +1,151 @@ +# Comprobaciones y operaciones + +[← Volver al README](../README_es.md) + +[Русский](../ru/operations.md) | [English](../en/operations.md) | **Español — Seleccionado** | [中文](../zh/operations.md) | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) + +**Páginas de este idioma:** [Primeros pasos](getting-started.md) · [Bases y samples](databases.md) · **Comprobaciones y operaciones** · [Diagnóstico](troubleshooting.md) + + +## Targets públicos de Make + +Targets clave: `make init`, `make up`, `make down`, `make check`, +`make test-storage-paths`, `make test-sql-imports`, `make mysql-import` y +`make postgres-import`. El SQL de confianza no es un sandbox, puede +ejecutarse parcialmente y no ofrece rollback automático completo; haga backup +antes de un import importante. Los backups integrados solo cubren MySQL +`demo`, no PostgreSQL. `clean-*` y `reinit-*` son destructivos y exigen +`CONFIRM=1` exacto. + +
+Referencia completa de targets públicos de Make + +`make help` muestra la lista resumida. + +| Comando | Función | +|---|---| +| `make init` | Crear `.docker.env`, validar rutas y crear directorios | +| `make check-env` | Validar variables, roles, bases y managed paths | +| `make pull` | Descargar las tres imágenes fijadas | +| `make config` | Validar la configuración Compose expandida | +| `make up`, `make up-no-ui` | Iniciar ambos SGBD con o sin Adminer | +| `make up-mysql`, `make up-mysql-ui` | Iniciar MySQL, opcionalmente con Adminer | +| `make up-postgres`, `make up-postgres-ui` | Iniciar PostgreSQL, opcionalmente con Adminer | +| `make up-ui`, `make down-ui` | Iniciar o detener solo Adminer | +| `make down` | Detener sin borrar los datos bind-mounted | +| `make status`, `make logs` | Mostrar estado o seguir todos los logs | +| `make log SERVICE=postgres` | Seguir un servicio; también `make log postgres` | +| `make in SERVICE=postgres` | Abrir un shell; también `make in postgres` | +| `make mysql`, `make mysql-user` | Abrir MySQL como admin o `DB_USER` | +| `make postgres`, `make postgres-user` | Abrir PostgreSQL como superusuario o `DB_USER` | +| `make samples-mysql`, `make samples-postgres` | Preparar samples verificados | +| `make check-mysql-access`, `make check-postgres-access` | Comprobar un SGBD activo | +| `make check` | Validar Compose y acceso de `DB_USER` a ambos SGBD | +| `make test-storage-paths` | Probar la protección de managed paths sin Docker runtime | +| `make test-sql-imports` | Smoke-test de los dos imports SQL públicos | +| `make mysql-import FILE=... DATABASE=...` | Importar plain SQL en MySQL como `DB_USER` | +| `make postgres-import FILE=... DATABASE=...` | Importar plain SQL en PostgreSQL como `DB_USER` | +| `make dump`, `make restore` | Exportar o restaurar `demo` de MySQL | +| `make clean-{mysql,postgres,all} CONFIRM=1` | Borrar data directories seleccionados | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | Borrar, recrear y comprobar bases | + +
+ + +## Comprobaciones + +### Estáticas y locales + +```bash +make check-env +make config +make test-storage-paths +``` + +`make check-env` crea `.docker.env` si falta y valida valores y rutas. +`make config` valida el modelo Compose expandido. `make test-storage-paths` no +requiere Docker runtime: prueba rutas fuera del proyecto, componentes symlink, +rutas solapadas o anidadas y directorios reservados. + +### Runtime + +```bash +make up-no-ui +make check +make test-sql-imports +make down +``` + +`make check` verifica `demo` y el acceso real de `DB_USER` en ambos SGBD, +además de samples instalados. `make test-sql-imports` requiere ambos SGBD, +invoca `mysql-import` y `postgres-import`, crea tablas temporales con nombres +únicos en `demo`, comprueba marker rows como `DB_USER` y elimina solo esas +tablas. Es un smoke-test del flujo de trusted imports; no es un sandbox ni una +prueba de seguridad para SQL no confiable. + + +## Seguridad de storage paths + +`make check-env` ejecuta `scripts/validate-storage-paths.sh`. Los data +paths deben estar estrictamente bajo `data/` y los sample paths bajo +`samples/`; se rechazan symlinks, rutas iguales, anidadas, solapadas o +reservadas. `make test-storage-paths` prueba estas reglas sin Docker runtime. + + +## Importación de SQL de confianza + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +Para ambos targets: + +- `FILE` y `DATABASE` son obligatorios. +- El archivo debe existir, ser legible, no estar vacío y ser plain SQL local. +- La base debe existir; las bases de sistema están prohibidas. +- El import se ejecuta como `DB_USER`; no crea la base ni concede grants. +- `DATABASE` elige la conexión inicial, pero no crea un sandbox. +- Nombres cualificados, comandos client/session y los grants reales pueden + afectar otros objetos accesibles. +- Puede producirse una ejecución parcial; no se promete rollback automático. +- Haga backup antes de una importación importante. +- gzip, archivos y backups PostgreSQL custom-format no están soportados. + + +## Backup + +Los targets integrados cubren solo la base MySQL `demo` configurada: + +```bash +make dump +make restore +``` + +`make dump` escribe `backup/demo.sql`; `make restore` lo lee y reaplica los +grants didácticos de MySQL. Use otro procedimiento para PostgreSQL. + + +## Limpieza y reinicialización + +> **Advertencia:** todos los targets `clean-*` y `reinit-*` son destructivos y +> exigen la confirmación exacta `CONFIRM=1`. + +```bash +make clean-mysql CONFIRM=1 +make clean-postgres CONFIRM=1 +make clean-all CONFIRM=1 + +make reinit-mysql CONFIRM=1 +make reinit-postgres CONFIRM=1 +make reinit-all CONFIRM=1 +``` + +Los targets individuales borran solo los datos del SGBD elegido; los de tipo +`all` borran ambos. Conservan configuración, init, samples y backups. La +reinicialización vuelve a iniciar y comprobar los SGBD seleccionados; +`reinit-all` inicia ambos sin Adminer. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Volver al README](../README_es.md) diff --git a/docs/langs/es/troubleshooting.md b/docs/langs/es/troubleshooting.md new file mode 100644 index 0000000..3be6618 --- /dev/null +++ b/docs/langs/es/troubleshooting.md @@ -0,0 +1,55 @@ +# Diagnóstico + +[← Volver al README](../README_es.md) + +[Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | **Español — Seleccionado** | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) + +**Páginas de este idioma:** [Primeros pasos](getting-started.md) · [Bases y samples](databases.md) · [Comprobaciones y operaciones](operations.md) · **Diagnóstico** + +Primero reúna diagnósticos y después corrija la causa concreta. Si aún +hace falta reinicializar, cree un backup y use `reinit-... CONFIRM=1` solo +como última medida deliberada. + +Detalles canónicos del ciclo de vida y las operaciones: [bases](databases.md#section-initialization) · [operaciones](operations.md#section-clean-reinitialize). + + +## Falla la configuración o la validación de rutas + +Ejecute `make check-env`. Los data paths deben estar estrictamente bajo +`data/` y los samples bajo `samples/`; no pueden contener symlinks, solaparse +ni usar directorios reservados. Corrija `.docker.env` y ejecute `make config`. + + +## Un servicio no está listo + +```bash +make status +make log SERVICE=mysql +make log SERVICE=postgres +``` + +Compruebe Docker, el puerto, `.docker.env` y los logs antes de tocar datos. + + +## No aparecen cambios de init o samples + +Es normal si data ya estaba inicializado. Revise las rutas y la preparación, +haga backup y use `reinit-... CONFIRM=1` solo como último paso deliberado. + + +## Un sample está incompleto o tiene propietario inesperado + +El loader no sobrescribe ni repara bases inesperadas. Repita +`make samples-mysql` o `make samples-postgres`, inspeccione el error y preserve +los datos antes de reinicializar. + + +## Un cliente no conecta + +Los clientes del host usan la dirección publicada y `MYSQL_PORT` o +`POSTGRES_PORT`; Adminer usa `mysql` o `postgres` dentro de Compose. Revise +`BIND_ADDRESS`, firewall, base seleccionada y credenciales `DB_USER`. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Volver al README](../README_es.md) diff --git a/docs/langs/fr/databases.md b/docs/langs/fr/databases.md new file mode 100644 index 0000000..1c73a33 --- /dev/null +++ b/docs/langs/fr/databases.md @@ -0,0 +1,110 @@ +# Bases et samples + +[← Retour au README](../README_fr.md) + +[Русский](../ru/databases.md) | [English](../en/databases.md) | [Español](../es/databases.md) | [中文](../zh/databases.md) | **Français — Sélectionné** | [Deutsch](../de/databases.md) + +**Pages dans cette langue:** [Prise en main](getting-started.md) · **Bases et samples** · [Contrôles et opérations](operations.md) · [Diagnostic et dépannage](troubleshooting.md) + + +## Bases `demo` obligatoires + +Les deux SGBD initialisent `demo` : + +- MySQL : `demo.demo_users` +- PostgreSQL : `demo.public.demo_users` + +Les tables ont les champs équivalents `id`, `name`, `email` et `created_at`, +avec Alice, Bob, Carol, Dave et Eve. Les contrôles acceptent des lignes +supplémentaires. `make check-env` impose `MYSQL_DATABASE=demo` et +`POSTGRES_DATABASE=demo`. + + +## Samples optionnels + +| SGBD | Bases optionnelles | Préparation | +|---|---|---| +| MySQL | Chinook, Sakila | `make samples-mysql` | +| PostgreSQL | Pagila, Chinook | `make samples-postgres` | + + +## Préparation des samples + +La préparation télécharge et vérifie des fichiers upstream épinglés, sans +démarrer les conteneurs ni importer dans une base déjà initialisée. Les +téléchargements temporaires restent locaux, ne sont pas commités et sont +placés sous `MYSQL_SAMPLES_DIR` ou `POSTGRES_SAMPLES_DIR`. Provenance, +intégrité et licences figurent dans +[THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md). + +Pour un répertoire data vide : + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Les entrypoints officiels ne traitent init que si le répertoire data est vide. +Pour ajouter des samples à une instance existante, sauvegardez puis +réinitialisez volontairement uniquement le SGBD concerné : + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` + +Un sample totalement absent est ignoré et n’empêche pas la création de `demo`. +Un ensemble incomplet ou une base inattendue est refusé, sans réparation ni +suppression automatique. + + +## Organisation du stockage + +```text +data/ +├── mysql/ +└── postgres/ + +initdb/ +├── mysql/ +└── postgres/ +``` + +| SGBD | Data | Init | Samples optionnels | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | + +Les chemins data et samples se configurent dans `.docker.env` sous contrôle +des managed paths. Les entrypoints exécutent init uniquement avec un data +directory vide ; modifier init ne migre pas une base existante. `make down` ne +supprime aucun bind mount. Ne modifiez pas manuellement les fichiers de +`data/` : ils peuvent appartenir à des UID/GID numériques du conteneur. + + +## Initialisation et cycle de vie + +> **Important:** Les entrypoints officiels MySQL et PostgreSQL n’exécutent init que si le +data directory est vide. Modifier init ne migre pas une base existante et +`make down` conserve les données bind-mounted. + + +## Accès pédagogique et ownership + +MySQL crée `DB_USER` et lui accorde l’accès à toutes les bases non +système trouvées pendant init. PostgreSQL crée un `DB_USER` distinct, sans +superuser/createdb/createrole, et le rend propriétaire de `demo`, du schéma +`public` et des objets sample. Les credentials administratifs restent +séparés : `MYSQL_ROOT_PASSWORD`, `POSTGRES_SUPERUSER` et +`POSTGRES_SUPERUSER_PASSWORD`. Ne modifiez pas manuellement les fichiers de +`data/` appartenant aux conteneurs. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Retour au README](../README_fr.md) diff --git a/docs/langs/fr/getting-started.md b/docs/langs/fr/getting-started.md new file mode 100644 index 0000000..b1fa5f7 --- /dev/null +++ b/docs/langs/fr/getting-started.md @@ -0,0 +1,152 @@ +# Prise en main + +[← Retour au README](../README_fr.md) + +[Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | **Français — Sélectionné** | [Deutsch](../de/getting-started.md) + +**Pages dans cette langue:** **Prise en main** · [Bases et samples](databases.md) · [Contrôles et opérations](operations.md) · [Diagnostic et dépannage](troubleshooting.md) + + +## Prérequis + +- Docker Engine ou Docker Desktop avec la commande `docker compose` v2. +- GNU Make, Bash et les outils Unix utilisés par les scripts (`awk`, `sed`, + `grep`, `find`, `realpath` et `stat`). +- Pour les samples optionnels : `curl` et `git` ; MySQL demande aussi `unzip` + et `sha256sum`. + +Exécutez les commandes depuis la racine du dépôt. La branche par défaut du +projet est `master`. + + +## Démarrage rapide + +Créez `.docker.env` depuis l’exemple suivi par Git, validez les chemins, créez +les répertoires de travail et démarrez le laboratoire complet : + +```bash +make init +make up +``` + +`make up` démarre MySQL, PostgreSQL et Adminer. Avec la configuration par +défaut, Adminer est disponible sur `http://127.0.0.1:8081`. + +```bash +make status +make logs +make down +``` + +`make down` supprime les conteneurs et le réseau, mais conserve les données +bind-mounted. + + +## Modes de démarrage + +| Commande | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Démarre | Démarre | Démarre | +| `make up-no-ui` | Démarre | Démarre | Arrête | +| `make up-mysql` | Démarre | Ne démarre pas | Ne démarre pas | +| `make up-postgres` | Ne démarre pas | Démarre | Ne démarre pas | + +Les commandes d’un SGBD n’arrêtent pas l’autre déjà actif ; Adminer se gère séparément. + +
+Tableau complet des modes de démarrage + +| Commande | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Démarre | Démarre | Démarre | +| `make up-no-ui` | Démarre ou laisse actif | Démarre ou laisse actif | Arrête s’il est actif | +| `make up-mysql` | Démarre | Ne démarre pas automatiquement | Ne démarre pas automatiquement | +| `make up-mysql-ui` | Démarre | Ne démarre pas automatiquement | Démarre | +| `make up-postgres` | Ne démarre pas automatiquement | Démarre | Ne démarre pas automatiquement | +| `make up-postgres-ui` | Ne démarre pas automatiquement | Démarre | Démarre | +| `make up-ui` | Ne change rien | Ne change rien | Démarre | +| `make down-ui` | Ne change rien | Ne change rien | Arrête | + +Les commandes dédiées à un SGBD n’arrêtent pas l’autre s’il fonctionne déjà. +Adminer se démarre et s’arrête séparément et n’est pas lié uniquement à MySQL. + +
+ + +## Connexions + +### Adminer + +Dans le réseau Compose, Adminer propose deux serveurs prédéfinis : + +```text +MySQL (mysql) +PostgreSQL (postgres) +``` + +Choisissez un serveur, puis saisissez `DB_USER`, `DB_PASSWORD` et une base telle +que `demo`. `mysql` et `postgres` sont des noms internes au réseau Compose, pas +des noms d’hôte pour les clients desktop. + +### Clients sur l’hôte + +| SGBD | Hôte par défaut | Variable de port | Utilisateur | Base par défaut | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | + +DataGrip, DBeaver, PhpStorm et les CLI de l’hôte utilisent l’adresse et le port +publiés. Si `BIND_ADDRESS` change, utilisez l’adresse joignable de l’interface. + +### CLI dans les conteneurs + +Les mots de passe passent par l’environnement du conteneur et non par +l’historique du shell : + +```bash +make mysql # administrateur MySQL, base demo +make mysql-user # DB_USER, base demo +make postgres # superutilisateur PostgreSQL, base demo +make postgres-user # DB_USER, base demo +``` + + +## Identifiants + +`.docker.env` est créé depuis `.docker.env.example` et ignoré par Git. Gardez +les mots de passe dans ce fichier ; ne les codez pas en dur dans Compose, SQL +ou une configuration client versionnée. + +| Usage | Utilisateur | Mot de passe | +|---|---|---| +| Utilisateur pédagogique commun | `DB_USER` | `DB_PASSWORD` | +| Administrateur MySQL | `root` | `MYSQL_ROOT_PASSWORD` | +| Administrateur/superutilisateur PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | + +`POSTGRES_SUPERUSER` et `DB_USER` doivent être deux rôles différents. Utilisez +le compte pédagogique pour les exercices courants. Remplacez les mots de passe +d’exemple avant tout partage ou toute publication de service. + + +## Ports et `BIND_ADDRESS` + +| Service | Variable | Valeur d’exemple | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | + +Par défaut, les trois services ne sont publiés que sur loopback : + +```env +BIND_ADDRESS=127.0.0.1 +``` + +`127.0.0.1` est la valeur locale par défaut. `BIND_ADDRESS=0.0.0.0` publie les +ports sur toutes les interfaces. Pour un LAN ou VPN, préférez l’adresse d’une +interface précise. Ce changement doit être volontaire et tenir compte du +firewall, de la robustesse des mots de passe et de la confiance accordée au réseau. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Retour au README](../README_fr.md) diff --git a/docs/langs/fr/operations.md b/docs/langs/fr/operations.md new file mode 100644 index 0000000..09dc1e7 --- /dev/null +++ b/docs/langs/fr/operations.md @@ -0,0 +1,151 @@ +# Contrôles et opérations + +[← Retour au README](../README_fr.md) + +[Русский](../ru/operations.md) | [English](../en/operations.md) | [Español](../es/operations.md) | [中文](../zh/operations.md) | **Français — Sélectionné** | [Deutsch](../de/operations.md) + +**Pages dans cette langue:** [Prise en main](getting-started.md) · [Bases et samples](databases.md) · **Contrôles et opérations** · [Diagnostic et dépannage](troubleshooting.md) + + +## Targets Make publics + +Targets essentiels : `make init`, `make up`, `make down`, `make check`, +`make test-storage-paths`, `make test-sql-imports`, `make mysql-import` et +`make postgres-import`. Le SQL de confiance n’est pas un sandbox, peut être +exécuté partiellement et n’offre aucun rollback automatique garanti ; faites +un backup avant tout import important. Les backups intégrés couvrent seulement +MySQL `demo`, pas PostgreSQL. `clean-*` et `reinit-*` sont destructifs et +exigent `CONFIRM=1` exact. + +
+Référence complète des targets Make publics + +`make help` affiche la liste concise. + +| Commande | Rôle | +|---|---| +| `make init` | Créer `.docker.env`, valider les chemins et créer les répertoires | +| `make check-env` | Vérifier env, rôles, noms de bases et managed paths | +| `make pull` | Télécharger les trois images épinglées | +| `make config` | Valider la configuration Compose développée | +| `make up`, `make up-no-ui` | Démarrer les deux SGBD avec ou sans Adminer | +| `make up-mysql`, `make up-mysql-ui` | Démarrer MySQL, avec Adminer en option | +| `make up-postgres`, `make up-postgres-ui` | Démarrer PostgreSQL, avec Adminer en option | +| `make up-ui`, `make down-ui` | Démarrer ou arrêter seulement Adminer | +| `make down` | Arrêter sans supprimer les données bind-mounted | +| `make status`, `make logs` | Afficher l’état ou suivre tous les logs | +| `make log SERVICE=postgres` | Suivre un service ; `make log postgres` fonctionne aussi | +| `make in SERVICE=postgres` | Ouvrir un shell ; `make in postgres` fonctionne aussi | +| `make mysql`, `make mysql-user` | Ouvrir MySQL comme admin ou `DB_USER` | +| `make postgres`, `make postgres-user` | Ouvrir PostgreSQL comme superutilisateur ou `DB_USER` | +| `make samples-mysql`, `make samples-postgres` | Préparer les samples vérifiés | +| `make check-mysql-access`, `make check-postgres-access` | Contrôler un SGBD actif | +| `make check` | Valider Compose et l’accès `DB_USER` aux deux SGBD | +| `make test-storage-paths` | Tester les managed paths sans Docker runtime | +| `make test-sql-imports` | Smoke-test des deux imports SQL publics | +| `make mysql-import FILE=... DATABASE=...` | Importer du plain SQL dans MySQL comme `DB_USER` | +| `make postgres-import FILE=... DATABASE=...` | Importer du plain SQL dans PostgreSQL comme `DB_USER` | +| `make dump`, `make restore` | Sauvegarder ou restaurer `demo` dans MySQL | +| `make clean-{mysql,postgres,all} CONFIRM=1` | Supprimer les data directories choisis | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | Supprimer, recréer et contrôler les bases | + +
+ + +## Contrôles + +### Contrôles statiques et locaux + +```bash +make check-env +make config +make test-storage-paths +``` + +`make check-env` crée `.docker.env` s’il manque, puis valide valeurs et chemins. +`make config` valide le modèle Compose développé. `make test-storage-paths` ne +demande pas de Docker runtime : il teste les sorties du projet, composants +symlink, chemins qui se chevauchent ou s’imbriquent et répertoires réservés. + +### Contrôles runtime + +```bash +make up-no-ui +make check +make test-sql-imports +make down +``` + +`make check` valide `demo` et l’accès réel de `DB_USER` aux deux SGBD, ainsi que +les samples installés. `make test-sql-imports` exige que les deux SGBD soient +actifs ; il appelle `mysql-import` et `postgres-import`, crée des tables +temporaires aux noms uniques dans `demo`, vérifie les marker rows comme +`DB_USER` puis ne supprime que ces tables. C’est un smoke-test du flux trusted +import, ni un sandbox ni une preuve de sécurité pour du SQL non fiable. + + +## Sécurité des storage paths + +`make check-env` exécute `scripts/validate-storage-paths.sh`. Les data +paths doivent rester strictement sous `data/`, les sample paths sous +`samples/` ; symlinks, chemins égaux, imbriqués, chevauchants ou réservés +sont refusés. `make test-storage-paths` teste ces règles sans Docker runtime. + + +## Imports SQL de confiance + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +Pour les deux targets : + +- `FILE` et `DATABASE` sont obligatoires. +- Le fichier local plain SQL doit exister, être lisible et non vide. +- La base doit déjà exister ; les bases système sont interdites. +- L’import s’exécute comme `DB_USER`, sans créer de base ni accorder de grants. +- `DATABASE` choisit la connexion initiale, mais ne crée pas de sandbox. +- Les qualified names, commandes client/session et grants effectifs peuvent + atteindre d’autres objets accessibles. +- Une exécution partielle est possible ; aucun rollback automatique n’est promis. +- Effectuez une sauvegarde avant un import important. +- gzip, archives et backups PostgreSQL custom-format ne sont pas pris en charge. + + +## Sauvegarde + +Les targets intégrés couvrent uniquement la base MySQL `demo` configurée : + +```bash +make dump +make restore +``` + +`make dump` écrit `backup/demo.sql` ; `make restore` le lit et réapplique les +grants pédagogiques MySQL. Utilisez une procédure distincte pour PostgreSQL. + + +## Nettoyage et réinitialisation + +> **Attention :** tous les targets `clean-*` et `reinit-*` sont destructifs et +> exigent la confirmation exacte `CONFIRM=1`. + +```bash +make clean-mysql CONFIRM=1 +make clean-postgres CONFIRM=1 +make clean-all CONFIRM=1 + +make reinit-mysql CONFIRM=1 +make reinit-postgres CONFIRM=1 +make reinit-all CONFIRM=1 +``` + +Les commandes unitaires ne suppriment que les données du SGBD choisi ; `all` +supprime celles des deux. Configuration, init, samples et backups restent en +place. La réinitialisation redémarre et contrôle les SGBD choisis ; +`reinit-all` démarre les deux sans Adminer. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Retour au README](../README_fr.md) diff --git a/docs/langs/fr/troubleshooting.md b/docs/langs/fr/troubleshooting.md new file mode 100644 index 0000000..67e3d20 --- /dev/null +++ b/docs/langs/fr/troubleshooting.md @@ -0,0 +1,56 @@ +# Diagnostic et dépannage + +[← Retour au README](../README_fr.md) + +[Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | **Français — Sélectionné** | [Deutsch](../de/troubleshooting.md) + +**Pages dans cette langue:** [Prise en main](getting-started.md) · [Bases et samples](databases.md) · [Contrôles et opérations](operations.md) · **Diagnostic et dépannage** + +Collectez d’abord le diagnostic, puis corrigez la cause précise. Si une +réinitialisation reste nécessaire, effectuez un backup et n’utilisez +`reinit-... CONFIRM=1` qu’en dernier recours volontaire. + +Détails canoniques du cycle de vie et des opérations : [bases](databases.md#section-initialization) · [opérations](operations.md#section-clean-reinitialize). + + +## Échec de configuration ou de validation des chemins + +Lancez `make check-env`. Les data paths doivent rester strictement sous +`data/` et les samples sous `samples/` ; aucun symlink, chevauchement ou +répertoire réservé n’est admis. Corrigez `.docker.env` puis lancez `make config`. + + +## Un service n’est pas prêt + +```bash +make status +make log SERVICE=mysql +make log SERVICE=postgres +``` + +Vérifiez Docker, le port, `.docker.env` et les logs avant de toucher aux données. + + +## Les changements init ou les samples n’apparaissent pas + +C’est normal si data est déjà initialisé. Vérifiez chemins et préparation, +sauvegardez les données importantes et n’utilisez `reinit-... CONFIRM=1` qu’en +dernier recours volontaire. + + +## Sample incomplet ou propriétaire inattendu + +Le loader ne remplace ni ne répare une base inattendue. Relancez +`make samples-mysql` ou `make samples-postgres` et inspectez l’erreur ; +préservez les données avant toute réinitialisation. + + +## Un client ne se connecte pas + +Les clients hôtes utilisent l’adresse publiée et `MYSQL_PORT` ou +`POSTGRES_PORT` ; Adminer utilise `mysql` ou `postgres` dans Compose. Vérifiez +`BIND_ADDRESS`, firewall, base sélectionnée et identifiants `DB_USER`. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Retour au README](../README_fr.md) diff --git a/docs/langs/ru/databases.md b/docs/langs/ru/databases.md new file mode 100644 index 0000000..5345bba --- /dev/null +++ b/docs/langs/ru/databases.md @@ -0,0 +1,121 @@ +# Базы и samples + +[← Вернуться к README](../../../README.md) + +**Русский — Выбран** | [English](../en/databases.md) | [Español](../es/databases.md) | [中文](../zh/databases.md) | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) + +**Разделы этого языка:** [Начало работы](getting-started.md) · **Базы и samples** · [Проверки и операции](operations.md) · [Диагностика](troubleshooting.md) + + +## Обязательные базы `demo` + +Обе СУБД инициализируют обязательную базу с именем `demo`: + +- MySQL: `demo.demo_users` +- PostgreSQL: `demo.public.demo_users` + +Таблицы содержат эквивалентные поля `id`, `name`, `email`, `created_at` и +одинаковые пять обязательных пользователей: Alice, Bob, Carol, Dave и Eve. +Проверки допускают дополнительные строки, созданные пользователем. + +Имена баз по умолчанию задаются как `MYSQL_DATABASE=demo` и +`POSTGRES_DATABASE=demo`; `make check-env` требует именно эти значения. + + +## Необязательные учебные базы + +| СУБД | Необязательные базы | Команда подготовки | +|---|---|---| +| MySQL | Chinook, Sakila | `make samples-mysql` | +| PostgreSQL | Pagila, Chinook | `make samples-postgres` | + + +## Подготовка samples + +Команды подготовки загружают и проверяют закреплённые upstream-файлы, но не +запускают контейнеры и не импортируют данные в уже инициализированную СУБД. +Загрузки остаются локальными, исключаются из Git и сохраняются в +`MYSQL_SAMPLES_DIR` или `POSTGRES_SAMPLES_DIR`. Происхождение, integrity pins и +лицензии описаны в [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md). + +Для СУБД с пустым data-каталогом: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Официальные entrypoints образов обрабатывают init-файлы только при пустом +data-каталоге соответствующей СУБД. Чтобы добавить samples в уже +инициализированную СУБД, сначала сохраните важные данные, затем осознанно +переинициализируйте только её: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` + +Полностью отсутствующий optional sample пропускается и не мешает создать +обязательную `demo`. Частичный набор sample-файлов или неожиданная существующая +sample-база отклоняются без автоматического исправления или удаления. + + +## Структура хранения + +Bind-mounted storage по умолчанию разделён по СУБД: + +```text +data/ +├── mysql/ +└── postgres/ + +initdb/ +├── mysql/ +└── postgres/ +``` + +Связанные настройки `.docker.env` также разделены: + +| СУБД | Данные | Init | Optional samples | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | + +Data- и sample-пути можно изменить через `.docker.env` с учётом проверки +managed storage paths. + +Официальные entrypoints MySQL и PostgreSQL выполняют соответствующий +init-каталог только для пустого data-каталога. Добавление или изменение +init-файла не мигрирует существующую базу. `make down` не удаляет данные ни из +одного bind mount. + +Не редактируйте файлы СУБД внутри `data/` вручную. Container-owned файлы могут +иметь числовые UID/GID, отличающиеся от пользователя хоста. + + +## Инициализация и жизненный цикл + +> **Важно:** Официальные entrypoints MySQL и PostgreSQL выполняют init-файлы только +при пустом data-каталоге. Изменение init-файлов не мигрирует уже созданную +базу, а `make down` не удаляет bind-mounted данные. + + +## Доступ учебного пользователя и ownership + +MySQL создаёт `DB_USER` и выдаёт ему права на все пользовательские +базы, обнаруженные во время init. PostgreSQL создаёт отдельную роль +`DB_USER` без superuser/createdb/createrole и назначает её владельцем +`demo`, схемы `public` и загруженных sample-объектов. Административные +credentials остаются отдельными: `MYSQL_ROOT_PASSWORD`, +`POSTGRES_SUPERUSER` и `POSTGRES_SUPERUSER_PASSWORD`. Не редактируйте +container-owned файлы в `data/` вручную. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Вернуться к README](../../../README.md) diff --git a/docs/langs/ru/getting-started.md b/docs/langs/ru/getting-started.md new file mode 100644 index 0000000..f4ddf91 --- /dev/null +++ b/docs/langs/ru/getting-started.md @@ -0,0 +1,160 @@ +# Начало работы + +[← Вернуться к README](../../../README.md) + +**Русский — Выбран** | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) + +**Разделы этого языка:** **Начало работы** · [Базы и samples](databases.md) · [Проверки и операции](operations.md) · [Диагностика](troubleshooting.md) + + +## Требования + +- Docker Engine или Docker Desktop с командой `docker compose` v2. +- GNU Make, Bash и стандартные Unix-утилиты, используемые скриптами (`awk`, + `sed`, `grep`, `find`, `realpath` и `stat`). +- Для загрузки optional samples: `curl` и `git`; для MySQL samples также нужны + `unzip` и `sha256sum`. + +Выполняйте команды из корня репозитория. Ветка проекта по умолчанию — `master`. + + +## Быстрый старт + +Создайте `.docker.env` из отслеживаемого примера, проверьте настроенные пути, +создайте рабочие каталоги и запустите полный стенд: + +```bash +make init +make up +``` + +`make up` запускает MySQL, PostgreSQL и Adminer. С конфигурацией по умолчанию +Adminer доступен по адресу `http://127.0.0.1:8081`. + +Полезные следующие команды: + +```bash +make status +make logs +make down +``` + +`make down` удаляет контейнеры и сеть, но сохраняет bind-mounted данные СУБД. + + +## Режимы запуска + +| Команда | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Запускает | Запускает | Запускает | +| `make up-no-ui` | Запускает | Запускает | Останавливает | +| `make up-mysql` | Запускает | Не запускает | Не запускает | +| `make up-postgres` | Не запускает | Запускает | Не запускает | + +Команды одной СУБД не останавливают уже работающую другую; Adminer управляется отдельно. + +
+Полная таблица режимов запуска + +| Команда | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Запускает | Запускает | Запускает | +| `make up-no-ui` | Запускает или оставляет активным | Запускает или оставляет активным | Останавливает, если запущен | +| `make up-mysql` | Запускает | Не запускает автоматически | Не запускает автоматически | +| `make up-mysql-ui` | Запускает | Не запускает автоматически | Запускает | +| `make up-postgres` | Не запускает автоматически | Запускает | Не запускает автоматически | +| `make up-postgres-ui` | Не запускает автоматически | Запускает | Запускает | +| `make up-ui` | Не меняет состояние | Не меняет состояние | Запускает | +| `make down-ui` | Не меняет состояние | Не меняет состояние | Останавливает | + +Команды одиночного запуска не останавливают другую уже работающую СУБД. +Adminer можно запускать и останавливать отдельно; он не привязан только к +MySQL. + +
+ + +## Подключения + +### Adminer + +Внутри Compose-сети Adminer предлагает два заранее заданных сервера: + +```text +MySQL (mysql) +PostgreSQL (postgres) +``` + +Выберите сервер, затем укажите `DB_USER`, `DB_PASSWORD` и имя базы, например +`demo`. Имена сервисов `mysql` и `postgres` работают внутри Compose-сети; для +desktop-клиентов на хосте это не адреса серверов. + +### Клиенты на хосте + +DataGrip, DBeaver, PhpStorm и host CLI подключаются через опубликованный адрес +и порт: + +| СУБД | Хост по умолчанию | Переменная порта | Пользователь | База по умолчанию | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | + +Если вы изменили `BIND_ADDRESS`, при необходимости используйте вместо +`127.0.0.1` доступный адрес этого интерфейса. + +### CLI в контейнерах + +Make-targets передают пароли через environment контейнера и не помещают их в +историю shell: + +```bash +make mysql # администратор MySQL, база demo +make mysql-user # DB_USER, база demo +make postgres # superuser PostgreSQL, база demo +make postgres-user # DB_USER, база demo +``` + + +## Учётные данные + +При копировании `.docker.env.example` создаётся `.docker.env`; этот файл +исключён из Git. Храните пароли в нём и не хардкодьте их в Compose, SQL или +отслеживаемой конфигурации клиентов. + +| Назначение | Настройка пользователя | Настройка пароля | +|---|---|---| +| Общий учебный пользователь двух СУБД | `DB_USER` | `DB_PASSWORD` | +| Администратор MySQL | `root` | `MYSQL_ROOT_PASSWORD` | +| Администратор/superuser PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | + +`POSTGRES_SUPERUSER` и `DB_USER` должны быть разными ролями. Для обычных +упражнений используйте общего учебного пользователя, а не root или superuser. +Замените пароли из примера до предоставления общего доступа или публикации +любого сервиса за пределами локального компьютера. + + +## Порты и `BIND_ADDRESS` + +Порты хоста настраиваются в `.docker.env`: + +| Сервис | Переменная порта | Значение примера | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | + +По умолчанию все три сервиса публикуются только на loopback: + +```env +BIND_ADDRESS=127.0.0.1 +``` + +Это безопасный default для локального стенда. Значение +`BIND_ADDRESS=0.0.0.0` публикует настроенные порты на всех сетевых интерфейсах. +Для доступа через VPN или LAN предпочтительнее адрес конкретного интерфейса. +Меняйте binding осознанно, учитывая правила firewall, надёжность паролей и +доверие ко всем подключённым сетям. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Вернуться к README](../../../README.md) diff --git a/docs/langs/ru/operations.md b/docs/langs/ru/operations.md new file mode 100644 index 0000000..ea9c6a0 --- /dev/null +++ b/docs/langs/ru/operations.md @@ -0,0 +1,175 @@ +# Проверки и операции + +[← Вернуться к README](../../../README.md) + +**Русский — Выбран** | [English](../en/operations.md) | [Español](../es/operations.md) | [中文](../zh/operations.md) | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) + +**Разделы этого языка:** [Начало работы](getting-started.md) · [Базы и samples](databases.md) · **Проверки и операции** · [Диагностика](troubleshooting.md) + + +## Команды Makefile + +Ключевые targets: `make init`, `make up`, `make down`, `make check`, +`make test-storage-paths`, `make test-sql-imports`, `make mysql-import` и +`make postgres-import`. Trusted SQL не является sandbox, может выполниться +частично и не получает гарантии automatic rollback; перед важным импортом +нужен backup. Встроенные backup targets покрывают только MySQL `demo`, не +PostgreSQL. `clean-*` и `reinit-*` destructive и требуют точного +`CONFIRM=1`. + +
+Полный справочник публичных Make-целей + +Краткий список команд выводит `make help`. + +| Команда | Назначение | +|---|---| +| `make init` | Создать `.docker.env`, проверить managed paths и создать рабочие каталоги | +| `make check-env` | Проверить обязательные env-значения, разделение ролей, имена баз и managed paths | +| `make pull` | Загрузить три закреплённых container images | +| `make config` | Проверить развёрнутую Compose-конфигурацию | +| `make up`, `make up-no-ui` | Запустить обе СУБД с Adminer или без него | +| `make up-mysql`, `make up-mysql-ui` | Запустить MySQL, опционально с Adminer | +| `make up-postgres`, `make up-postgres-ui` | Запустить PostgreSQL, опционально с Adminer | +| `make up-ui`, `make down-ui` | Запустить или остановить только Adminer | +| `make down` | Остановить стенд без удаления bind-mounted данных | +| `make status` | Показать состояние сервисов | +| `make logs` | Следить за логами всех сервисов | +| `make log SERVICE=postgres` | Следить за логом одного сервиса; также работает `make log postgres` | +| `make in SERVICE=postgres` | Открыть shell сервиса; также работает `make in postgres` | +| `make mysql`, `make mysql-user` | Открыть MySQL как администратор или `DB_USER` | +| `make postgres`, `make postgres-user` | Открыть PostgreSQL как superuser или `DB_USER` | +| `make samples-mysql`, `make samples-postgres` | Подготовить проверенные optional samples | +| `make check-mysql-access`, `make check-postgres-access` | Проверить доступ учебного пользователя к одной запущенной СУБД | +| `make check` | Проверить Compose и доступ `DB_USER` к двум запущенным СУБД | +| `make test-storage-paths` | Проверить защиту managed storage paths без Docker runtime | +| `make test-sql-imports` | Выполнить smoke-test двух публичных trusted SQL import targets | +| `make mysql-import FILE=... DATABASE=...` | Импортировать доверенный plain SQL в существующую MySQL-базу от `DB_USER` | +| `make postgres-import FILE=... DATABASE=...` | Импортировать доверенный plain SQL в существующую PostgreSQL-базу от `DB_USER` | +| `make dump`, `make restore` | Создать или восстановить dump настроенной MySQL-базы `demo` | +| `make clean-{mysql,postgres,all} CONFIRM=1` | Удалить выбранные managed data-каталоги | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | Удалить, пересоздать и проверить выбранные базы | + +
+ + +## Проверки + +### Статические и локальные проверки + +```bash +make check-env +make config +make test-storage-paths +``` + +`make check-env` создаёт `.docker.env` из примера, если файла ещё нет, затем +проверяет обязательные настройки и managed paths. `make config` проверяет +развёрнутую Compose-модель. + +Для `make test-storage-paths` Docker runtime не требуется. Тест проверяет +защиту от путей за пределами проекта, symlink-компонентов, пересекающихся или +вложенных managed paths и зарезервированных каталогов. Тот же validator +защищает настроенные data- и sample-каталоги MySQL/PostgreSQL при обычной +инициализации. + +### Runtime-проверки + +Запустите обе СУБД без Adminer, проверьте учебный доступ и imports, затем +остановите сервисы: + +```bash +make up-no-ui +make check +make test-sql-imports +make down +``` + +`make check` проверяет обязательные данные `demo` и фактический доступ +`DB_USER` в обеих СУБД. Если установлены поддерживаемые optional samples, они +также проверяются. + +Для `make test-sql-imports` обе СУБД должны быть запущены. Тест вызывает +публичные targets `mysql-import` и `postgres-import`, создаёт уникальные +временные smoke-таблицы в `demo`, проверяет marker rows от имени `DB_USER` и +удаляет только эти таблицы. Это проверка trusted SQL import workflow, а не +доказательство безопасности или sandbox для недоверенного SQL. + + +## Безопасность storage paths + +`make check-env` запускает `scripts/validate-storage-paths.sh`. +Data paths должны быть строго внутри `data/`, sample paths — внутри +`samples/`; symlink-компоненты, совпадающие, вложенные, пересекающиеся и +зарезервированные пути отклоняются. `make test-storage-paths` проверяет эти +ограничения без Docker runtime. + + +## Импорт доверенных SQL-файлов + +Импортируйте только доверенные локальные plain SQL-файлы: + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +Для обоих targets: + +- `FILE` и `DATABASE` обязательны. +- Файл должен быть существующим, читаемым и непустым обычным файлом. +- Имя базы должно начинаться со строчной ASCII-буквы и содержать только + строчные ASCII-буквы, цифры или `_`; системные базы запрещены. +- База должна существовать и принимать подключение от `DB_USER`. +- Import выполняется от `DB_USER`, а не от MySQL root или PostgreSQL superuser. +- Target не создаёт базу и не выдаёт grants. +- Targets не обрабатывают архивы, gzip-потоки и PostgreSQL backups в custom + format. + +`DATABASE` выбирает начальную базу подключения, но не создаёт sandbox. +Qualified names (полные имена объектов), session/client commands и реальные +grants роли `DB_USER` могут разрешить доступ к другим объектам. SQL способен +изменить или удалить всё, к чему у этой роли есть доступ. + +Import может выполниться частично. Ни один target не обещает автоматический +полный rollback после ошибки. Перед важным импортом изучите файл и создайте +подходящий backup. + + +## Backup + +Встроенные backup-targets работают только с настроенной MySQL-базой `demo`: + +```bash +make dump +make restore +``` + +С конфигурацией по умолчанию `make dump` записывает `backup/demo.sql`. +`make restore` читает этот файл и повторно применяет учебные MySQL grants. Для +сохранения PostgreSQL используйте отдельную процедуру резервного копирования. + + +## Очистка и переинициализация + +> **Внимание:** все перечисленные ниже `clean-*` и `reinit-*` команды +> destructive и требуют точного подтверждения `CONFIRM=1`. + +```bash +make clean-mysql CONFIRM=1 +make clean-postgres CONFIRM=1 +make clean-all CONFIRM=1 + +make reinit-mysql CONFIRM=1 +make reinit-postgres CONFIRM=1 +make reinit-all CONFIRM=1 +``` + +Одиночные команды удаляют только data-каталог выбранной СУБД. Варианты `all` +удаляют data-каталоги обеих СУБД. Конфигурация, init-файлы, загруженные +optional samples и backups сохраняются. Затем reinit запускает и проверяет +выбранные СУБД; `reinit-all` запускает обе без Adminer. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Вернуться к README](../../../README.md) diff --git a/docs/langs/ru/troubleshooting.md b/docs/langs/ru/troubleshooting.md new file mode 100644 index 0000000..156c649 --- /dev/null +++ b/docs/langs/ru/troubleshooting.md @@ -0,0 +1,67 @@ +# Диагностика + +[← Вернуться к README](../../../README.md) + +**Русский — Выбран** | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) + +**Разделы этого языка:** [Начало работы](getting-started.md) · [Базы и samples](databases.md) · [Проверки и операции](operations.md) · **Диагностика** + +Сначала соберите диагностику, затем исправьте конкретную причину. Если +изменение всё же требует переинициализации, сначала сделайте backup и только +после этого используйте подтверждённый `reinit-... CONFIRM=1` как +осознанную последнюю меру. + +Канонические описания жизненного цикла и операций: [базы](databases.md#section-initialization) · [операции](operations.md#section-clean-reinitialize). + + +## Ошибка конфигурации или storage-path validation + +Выполните `make check-env` и найдите в ошибке отклонённую переменную и путь. +Managed data paths должны находиться строго внутри каталога проекта `data/`, а +sample paths — внутри `samples/`. Они не могут содержать symlink-компоненты, +пересекаться между собой или использовать зарезервированные каталоги проекта. +Исправьте `.docker.env`, затем повторите `make check-env` и `make config`. + + +## Сервис не переходит в состояние готовности + +До изменения данных проверьте состояние и логи: + +```bash +make status +make log SERVICE=mysql +make log SERVICE=postgres +``` + +Убедитесь, что Docker запущен, настроенный host port свободен, а +`.docker.env` содержит обязательные значения. Исправьте конкретную настройку +или конфликт порта и снова запустите сервис. + + +## Изменения init или optional samples не появились + +Для уже инициализированного data-каталога это ожидаемое поведение. Проверьте +настроенные data- и sample-пути и успешность команды подготовки. Если +существующие данные важны, сохраните их. Используйте соответствующую команду +`reinit-... CONFIRM=1` только как осознанную последнюю меру: она удаляет данные +этой СУБД. + + +## Optional sample неполон или имеет неожиданного владельца + +Loader намеренно не перезаписывает и не исправляет неожиданную базу. Повторите +подходящую подготовку `make samples-mysql` или `make samples-postgres` и +изучите ошибку. Сохраните нужные данные, прежде чем рассматривать +переинициализацию с подтверждением. + + +## Клиент не подключается + +Клиенты на хосте используют опубликованный host address и `MYSQL_PORT` или +`POSTGRES_PORT`, а не имя Compose-сервиса. Adminer использует `mysql` или +`postgres` внутри Compose-сети. Проверьте `BIND_ADDRESS`, firewall, выбранную +базу и неадминистративные credentials `DB_USER`. + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[Вернуться к README](../../../README.md) diff --git a/docs/langs/zh/databases.md b/docs/langs/zh/databases.md new file mode 100644 index 0000000..526a117 --- /dev/null +++ b/docs/langs/zh/databases.md @@ -0,0 +1,103 @@ +# 数据库与 samples + +[← 返回 README](../README_zh.md) + +[Русский](../ru/databases.md) | [English](../en/databases.md) | [Español](../es/databases.md) | **中文 — 已选择** | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) + +**本语言页面:** [入门](getting-started.md) · **数据库与 samples** · [检查与运维](operations.md) · [诊断与故障排除](troubleshooting.md) + + +## 必需的 `demo` 数据库 + +两种数据库都会初始化 `demo`: + +- MySQL:`demo.demo_users` +- PostgreSQL:`demo.public.demo_users` + +表包含等价字段 `id`、`name`、`email` 和 `created_at`,以及相同的五名 +用户 Alice、Bob、Carol、Dave 和 Eve;检查允许用户添加额外行。 +`make check-env` 要求 `MYSQL_DATABASE=demo` 与 `POSTGRES_DATABASE=demo`。 + + +## 可选 samples + +| 数据库 | 可选数据库 | 准备命令 | +|---|---|---| +| MySQL | Chinook、Sakila | `make samples-mysql` | +| PostgreSQL | Pagila、Chinook | `make samples-postgres` | + + +## 准备 samples + +准备命令会下载并校验固定的 upstream 文件,但不会启动容器,也不会向 +已初始化数据库导入数据。临时下载仅保存在本地,不提交到 Git,最终位于 +`MYSQL_SAMPLES_DIR` 或 `POSTGRES_SAMPLES_DIR`。来源、完整性固定值和许可 +见 [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md)。 + +data 目录为空时: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +官方 entrypoint 仅在相应 data 目录为空时处理 init 文件。要向已初始化 +实例添加 samples,请先备份,再有意地只重新初始化对应数据库: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` + +完全缺失的 sample 会被跳过,不影响创建 `demo`。不完整的 sample 集合或 +意外存在的 sample 数据库会被拒绝,不会自动修复或删除。 + + +## 存储目录结构 + +```text +data/ +├── mysql/ +└── postgres/ + +initdb/ +├── mysql/ +└── postgres/ +``` + +| 数据库 | Data | Init | 可选 samples | +|---|---|---|---| +| MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | +| PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | + +data 与 sample 路径可在 `.docker.env` 中修改,但必须通过 managed path +验证。entrypoint 仅在 data 目录为空时执行 init;修改 init 文件不会迁移 +已有数据库。`make down` 不删除 bind mount 数据。不要手工编辑 `data/` +中的数据库文件,它们可能属于容器使用的数字 UID/GID。 + + +## 初始化生命周期 + +> **重要:** MySQL 与 PostgreSQL 官方 entrypoints 仅对空 data 目录执行 init +文件。修改 init 不会迁移已有数据库;`make down` 会保留 bind-mounted +数据。 + + +## 学习用户访问与 ownership + +MySQL 在 init 时创建 `DB_USER`,并授予它所有非系统数据库的 +访问权。PostgreSQL 创建独立的非 superuser `DB_USER`,不授予 +createdb/createrole,并让它拥有 `demo`、`public` schema 和已加载 +sample 对象。管理员 credentials 保持独立:`MYSQL_ROOT_PASSWORD`、 +`POSTGRES_SUPERUSER` 与 `POSTGRES_SUPERUSER_PASSWORD`。不要手工编辑 +`data/` 中由容器拥有的文件。 + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[返回 README](../README_zh.md) diff --git a/docs/langs/zh/getting-started.md b/docs/langs/zh/getting-started.md new file mode 100644 index 0000000..2432210 --- /dev/null +++ b/docs/langs/zh/getting-started.md @@ -0,0 +1,146 @@ +# 入门 + +[← 返回 README](../README_zh.md) + +[Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | **中文 — 已选择** | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) + +**本语言页面:** **入门** · [数据库与 samples](databases.md) · [检查与运维](operations.md) · [诊断与故障排除](troubleshooting.md) + + +## 要求 + +- Docker Engine 或 Docker Desktop,并支持 `docker compose` v2 命令。 +- GNU Make、Bash,以及脚本使用的 Unix 工具:`awk`、`sed`、`grep`、 + `find`、`realpath` 和 `stat`。 +- 下载可选 samples 需要 `curl` 和 `git`;MySQL 还需要 `unzip` 与 + `sha256sum`。 + +请在仓库根目录执行命令。项目默认分支为 `master`。 + + +## 快速开始 + +从受版本控制的示例创建 `.docker.env`,验证路径,创建工作目录并启动 +完整环境: + +```bash +make init +make up +``` + +`make up` 会启动 MySQL、PostgreSQL 和 Adminer。默认配置下,Adminer +地址为 `http://127.0.0.1:8081`。 + +```bash +make status +make logs +make down +``` + +`make down` 删除容器和网络,但保留 bind-mounted 数据。 + + +## 启动模式 + +| 命令 | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | 启动 | 启动 | 启动 | +| `make up-no-ui` | 启动 | 启动 | 停止 | +| `make up-mysql` | 启动 | 不启动 | 不启动 | +| `make up-postgres` | 不启动 | 启动 | 不启动 | + +单数据库命令不会停止另一种已运行的数据库;Adminer 可单独管理。 + +
+完整启动模式表 + +| 命令 | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | 启动 | 启动 | 启动 | +| `make up-no-ui` | 启动或保持运行 | 启动或保持运行 | 若运行则停止 | +| `make up-mysql` | 启动 | 不自动启动 | 不自动启动 | +| `make up-mysql-ui` | 启动 | 不自动启动 | 启动 | +| `make up-postgres` | 不自动启动 | 启动 | 不自动启动 | +| `make up-postgres-ui` | 不自动启动 | 启动 | 启动 | +| `make up-ui` | 不改变 | 不改变 | 启动 | +| `make down-ui` | 不改变 | 不改变 | 停止 | + +单数据库命令不会停止已经运行的另一种数据库。Adminer 可以单独启停, +并非只服务于 MySQL。 + +
+ + +## 连接 + +### Adminer + +在 Compose 网络内,Adminer 提供两个预设服务器: + +```text +MySQL (mysql) +PostgreSQL (postgres) +``` + +选择服务器后,使用 `DB_USER`、`DB_PASSWORD` 和数据库名(如 `demo`) +登录。`mysql` 与 `postgres` 是 Compose 内部服务名,不是桌面客户端的 +主机名。 + +### 主机客户端 + +| 数据库 | 默认主机 | 端口变量 | 用户 | 默认数据库 | +|---|---|---|---|---| +| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | +| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | + +DataGrip、DBeaver、PhpStorm 和主机 CLI 使用发布的地址与端口。如果修改 +`BIND_ADDRESS`,请按需改用对应接口可达的地址。 + +### 容器内 CLI + +Make targets 通过容器环境传递密码,不会把密码写入 shell history: + +```bash +make mysql # MySQL 管理员,demo 数据库 +make mysql-user # DB_USER,demo 数据库 +make postgres # PostgreSQL 超级用户,demo 数据库 +make postgres-user # DB_USER,demo 数据库 +``` + + +## 凭据 + +`.docker.env` 从 `.docker.env.example` 创建,并被 Git 忽略。密码应保存在 +该文件中,不要硬编码进受版本控制的 Compose、SQL 或客户端配置。 + +| 用途 | 用户设置 | 密码设置 | +|---|---|---| +| 两种数据库共用的学习用户 | `DB_USER` | `DB_PASSWORD` | +| MySQL 管理员 | `root` | `MYSQL_ROOT_PASSWORD` | +| PostgreSQL 管理员/超级用户 | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | + +`POSTGRES_SUPERUSER` 与 `DB_USER` 必须是不同角色。日常练习应使用学习 +用户。对外共享或发布服务前,请替换示例密码。 + + +## 端口与 `BIND_ADDRESS` + +| 服务 | 端口变量 | 示例默认值 | +|---|---|---| +| MySQL | `MYSQL_PORT` | `3306` | +| PostgreSQL | `POSTGRES_PORT` | `5432` | +| Adminer | `ADMINER_PORT` | `8081` | + +默认情况下,三个服务只绑定 loopback: + +```env +BIND_ADDRESS=127.0.0.1 +``` + +`127.0.0.1` 是本地默认值。`BIND_ADDRESS=0.0.0.0` 会在所有网络接口上 +发布端口。LAN 或 VPN 访问应优先使用具体接口的地址。修改时必须明确 +评估 firewall、密码强度和网络可信度。 + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[返回 README](../README_zh.md) diff --git a/docs/langs/zh/operations.md b/docs/langs/zh/operations.md new file mode 100644 index 0000000..3d2fce5 --- /dev/null +++ b/docs/langs/zh/operations.md @@ -0,0 +1,149 @@ +# 检查与运维 + +[← 返回 README](../README_zh.md) + +[Русский](../ru/operations.md) | [English](../en/operations.md) | [Español](../es/operations.md) | **中文 — 已选择** | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) + +**本语言页面:** [入门](getting-started.md) · [数据库与 samples](databases.md) · **检查与运维** · [诊断与故障排除](troubleshooting.md) + + +## 公共 Make targets + +关键 targets 包括 `make init`、`make up`、`make down`、 +`make check`、`make test-storage-paths`、`make test-sql-imports`、 +`make mysql-import` 和 `make postgres-import`。Trusted SQL 不是 +sandbox,可能 partial execution,且不保证 automatic rollback;重要导入 +前先做 backup。内置 backup targets 仅覆盖 MySQL `demo`,不覆盖 +PostgreSQL。`clean-*` 与 `reinit-*` 是 destructive 操作,并要求精确 +`CONFIRM=1`。 + +
+完整公共 Make targets 参考 + +`make help` 显示简要命令列表。 + +| 命令 | 用途 | +|---|---| +| `make init` | 创建 `.docker.env`、验证 managed paths、创建目录 | +| `make check-env` | 检查 env、角色分离、数据库名与 managed paths | +| `make pull` | 拉取三个固定版本的镜像 | +| `make config` | 验证展开后的 Compose 配置 | +| `make up`、`make up-no-ui` | 启动两个数据库,启用或不启用 Adminer | +| `make up-mysql`、`make up-mysql-ui` | 启动 MySQL,可选 Adminer | +| `make up-postgres`、`make up-postgres-ui` | 启动 PostgreSQL,可选 Adminer | +| `make up-ui`、`make down-ui` | 仅启动或停止 Adminer | +| `make down` | 停止环境但不删除 bind-mounted 数据 | +| `make status`、`make logs` | 查看状态或跟踪所有日志 | +| `make log SERVICE=postgres` | 跟踪单个服务;也支持 `make log postgres` | +| `make in SERVICE=postgres` | 打开服务 shell;也支持 `make in postgres` | +| `make mysql`、`make mysql-user` | 以管理员或 `DB_USER` 打开 MySQL | +| `make postgres`、`make postgres-user` | 以超级用户或 `DB_USER` 打开 PostgreSQL | +| `make samples-mysql`、`make samples-postgres` | 准备已校验的 samples | +| `make check-mysql-access`、`make check-postgres-access` | 检查一个运行中的数据库 | +| `make check` | 验证 Compose 及 `DB_USER` 对两种数据库的访问 | +| `make test-storage-paths` | 无需 Docker runtime 测试 managed path 保护 | +| `make test-sql-imports` | smoke-test 两个公共 SQL import targets | +| `make mysql-import FILE=... DATABASE=...` | 以 `DB_USER` 向 MySQL 导入 plain SQL | +| `make postgres-import FILE=... DATABASE=...` | 以 `DB_USER` 向 PostgreSQL 导入 plain SQL | +| `make dump`、`make restore` | 备份或恢复 MySQL `demo` | +| `make clean-{mysql,postgres,all} CONFIRM=1` | 删除选定的 data 目录 | +| `make reinit-{mysql,postgres,all} CONFIRM=1` | 删除、重建并检查数据库 | + +
+ + +## 检查 + +### 静态与本地检查 + +```bash +make check-env +make config +make test-storage-paths +``` + +`make check-env` 在缺失时创建 `.docker.env`,然后验证配置与 managed +paths。`make config` 验证展开后的 Compose 模型。`make test-storage-paths` +不需要 Docker runtime;它测试项目外路径、symlink 组件、路径重叠/嵌套 +以及 reserved directories。 + +### Runtime 检查 + +```bash +make up-no-ui +make check +make test-sql-imports +make down +``` + +`make check` 验证必需的 `demo` 数据和 `DB_USER` 的实际访问,也检查已安装 +的可选 samples。`make test-sql-imports` 要求两种数据库都已启动;它调用 +公共 `mysql-import` 与 `postgres-import`,在 `demo` 中创建唯一命名的临时 +表,以 `DB_USER` 验证 marker rows,并且只删除这些表。这是 trusted import +工作流的 smoke-test,不是 sandbox,也不能证明不可信 SQL 的安全性。 + + +## Storage path 安全 + +`make check-env` 会运行 `scripts/validate-storage-paths.sh`。Data +paths 必须严格位于 `data/` 内,sample paths 必须严格位于 +`samples/` 内;symlink、相同、嵌套、重叠和 reserved paths 都会被拒绝。 +`make test-storage-paths` 无需 Docker runtime 即可测试这些规则。 + + +## Trusted SQL 导入 + +```bash +make mysql-import FILE=path/to/file.sql DATABASE=demo +make postgres-import FILE=path/to/file.sql DATABASE=demo +``` + +两个 targets 都遵循以下规则: + +- `FILE` 与 `DATABASE` 必填。 +- 文件必须是存在、可读、非空的本地 plain SQL。 +- 数据库必须已存在;禁止系统数据库。 +- import 以 `DB_USER` 执行,不创建数据库,也不授予 grants。 +- `DATABASE` 只选择初始连接,不创建 sandbox。 +- qualified names、client/session commands 及真实 grants 可能影响其他 + 可访问对象。 +- 可能发生 partial execution;不承诺自动 rollback。 +- 重要导入前必须备份。 +- 不处理 gzip、archives 或 PostgreSQL custom-format backups。 + + +## 备份 + +内置 targets 只覆盖配置的 MySQL `demo` 数据库: + +```bash +make dump +make restore +``` + +`make dump` 写入 `backup/demo.sql`;`make restore` 读取该文件并重新应用 +MySQL 学习 grants。PostgreSQL 数据应使用独立备份流程。 + + +## 清理与重新初始化 + +> **警告:** 所有 `clean-*` 和 `reinit-*` 命令都是破坏性的,并且要求 +> 精确确认 `CONFIRM=1`。 + +```bash +make clean-mysql CONFIRM=1 +make clean-postgres CONFIRM=1 +make clean-all CONFIRM=1 + +make reinit-mysql CONFIRM=1 +make reinit-postgres CONFIRM=1 +make reinit-all CONFIRM=1 +``` + +单数据库命令只删除对应 data 目录;`all` 会删除两种数据库的数据。配置、 +init、samples 和 backups 会保留。reinit 随后启动并检查所选数据库; +`reinit-all` 启动两者但不启用 Adminer。 + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[返回 README](../README_zh.md) diff --git a/docs/langs/zh/troubleshooting.md b/docs/langs/zh/troubleshooting.md new file mode 100644 index 0000000..45e465c --- /dev/null +++ b/docs/langs/zh/troubleshooting.md @@ -0,0 +1,53 @@ +# 诊断与故障排除 + +[← 返回 README](../README_zh.md) + +[Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | **中文 — 已选择** | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) + +**本语言页面:** [入门](getting-started.md) · [数据库与 samples](databases.md) · [检查与运维](operations.md) · **诊断与故障排除** + +先收集诊断信息,再针对原因修正。若仍需重新初始化,请先做 +backup,并仅将确认后的 `reinit-... CONFIRM=1` 作为有意的最后手段。 + +生命周期与运维的规范说明:[数据库](databases.md#section-initialization) · [运维](operations.md#section-clean-reinitialize)。 + + +## 配置或 storage path 验证失败 + +运行 `make check-env`。data paths 必须严格位于 `data/` 内,samples 必须 +位于 `samples/` 内;不得包含 symlink、互相重叠或使用 reserved +directories。修正 `.docker.env` 后运行 `make config`。 + + +## 服务未就绪 + +```bash +make status +make log SERVICE=mysql +make log SERVICE=postgres +``` + +在修改数据前,检查 Docker、端口、`.docker.env` 与日志。 + + +## init 修改或 samples 未出现 + +如果 data 已初始化,这是预期行为。检查路径与准备命令,备份重要数据, +仅在明确需要时最后使用 `reinit-... CONFIRM=1`。 + + +## sample 不完整或所有者异常 + +loader 不会覆盖或修复意外数据库。重新运行 `make samples-mysql` 或 +`make samples-postgres` 并检查错误;重新初始化前先保留所需数据。 + + +## 客户端无法连接 + +主机客户端使用发布地址及 `MYSQL_PORT` 或 `POSTGRES_PORT`;Adminer 在 +Compose 网络中使用 `mysql` 或 `postgres`。检查 `BIND_ADDRESS`、 +firewall、数据库选择和非管理员 `DB_USER` 凭据。 + +[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) + +[返回 README](../README_zh.md) From 2881742ba7fc8075f0cf80b3ea712b4fc8074e4b Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Mon, 20 Jul 2026 17:26:41 +0300 Subject: [PATCH 14/17] =?UTF-8?q?docs(readme):=20=D1=83=D0=BB=D1=83=D1=87?= =?UTF-8?q?=D1=88=D0=B8=D1=82=D1=8C=20quick=20start=20=D0=B8=20=D0=BD?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D0=B3=D0=B0=D1=86=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 198 +++++++++++++++------------- docs/langs/README_de.md | 211 ++++++++++++++++-------------- docs/langs/README_en.md | 217 +++++++++++++++--------------- docs/langs/README_es.md | 210 +++++++++++++++-------------- docs/langs/README_fr.md | 218 ++++++++++++++++--------------- docs/langs/README_zh.md | 201 +++++++++++++++------------- docs/langs/de/databases.md | 14 +- docs/langs/de/getting-started.md | 14 +- docs/langs/de/operations.md | 14 +- docs/langs/de/troubleshooting.md | 12 +- docs/langs/en/databases.md | 14 +- docs/langs/en/getting-started.md | 14 +- docs/langs/en/operations.md | 14 +- docs/langs/en/troubleshooting.md | 12 +- docs/langs/es/databases.md | 14 +- docs/langs/es/getting-started.md | 14 +- docs/langs/es/operations.md | 14 +- docs/langs/es/troubleshooting.md | 12 +- docs/langs/fr/databases.md | 14 +- docs/langs/fr/getting-started.md | 14 +- docs/langs/fr/operations.md | 14 +- docs/langs/fr/troubleshooting.md | 12 +- docs/langs/ru/databases.md | 14 +- docs/langs/ru/getting-started.md | 14 +- docs/langs/ru/operations.md | 14 +- docs/langs/ru/troubleshooting.md | 12 +- docs/langs/zh/databases.md | 14 +- docs/langs/zh/getting-started.md | 14 +- docs/langs/zh/operations.md | 14 +- docs/langs/zh/troubleshooting.md | 12 +- 30 files changed, 933 insertions(+), 646 deletions(-) diff --git a/README.md b/README.md index cea3a9c..dedea0d 100644 --- a/README.md +++ b/README.md @@ -14,9 +14,10 @@ | --- | --- | --- | --- | --- | --- | | **Выбран** | [English](docs/langs/README_en.md) | [Español](docs/langs/README_es.md) | [中文](docs/langs/README_zh.md) | [Français](docs/langs/README_fr.md) | [Deutsch](docs/langs/README_de.md) | -Локальный стенд на Docker Compose для изучения и сравнения MySQL и PostgreSQL. -Каждую СУБД можно запускать независимо, обе можно использовать одновременно, -а Adminer подключать только при необходимости браузерного UI. +Локальный Docker Compose-стенд для практики SQL и знакомства с MySQL и +PostgreSQL. Каждую СУБД можно запускать отдельно или обе вместе. Компактная +`demo` создаётся автоматически, а optional Sakila, Pagila и Chinook дают +готовые данные для упражнений. Adminer подключается только при необходимости. ## Стек @@ -26,122 +27,137 @@ - Docker Compose v2 - GNU Make и Bash для команд проекта и init-скриптов -Версии образов закреплены в `.docker.env`. Не используйте стенд как шаблон -production-развёртывания без отдельного анализа учётных данных, сетевой -доступности, хранения данных, резервного копирования и эксплуатации. +Закреплённые значения по умолчанию заданы в +[`.docker.env.example`](.docker.env.example); `make init` создаёт из него +локальный `.docker.env`. Сервисы описаны в +[`docker-compose.yml`](docker-compose.yml). + +
+⚠️ Важно: это учебное окружение + +Проект не является готовым production template. Для внешнего использования +нужны отдельные решения по credentials, network exposure, storage, backup и +operations. + +
## Основные возможности -- Независимые сервисы MySQL и PostgreSQL, которые также работают одновременно. -- Общий для двух СУБД опциональный Adminer без зависимости от конкретного - сервиса базы данных. -- Обязательная база `demo` в каждой СУБД с одинаковыми пятью пользователями. -- Опциональные Sakila и Chinook для MySQL, Pagila и Chinook для PostgreSQL. -- Раздельные bind-mounted data-, init- и sample-каталоги каждой СУБД. -- Общие учебные credentials и отдельные credentials администраторов СУБД. -- Статические проверки конфигурации, защита managed storage paths, runtime- - проверки доступа и smoke-test импорта доверенного SQL. -- Явное подтверждение destructive-команд очистки и переинициализации. +- MySQL и PostgreSQL работают независимо или одновременно. +- Обязательная `demo` в каждой СУБД содержит одинаковые seed rows. +- Optional Sakila и Chinook доступны для MySQL, Pagila и Chinook — для + PostgreSQL. +- Adminer — отдельный optional UI для обеих СУБД. +- Data-, init- и sample-каталоги СУБД разделены и подключены как bind mounts. +- Проверки конфигурации и доступа, trusted SQL imports и destructive-команды + собраны в [`Makefile`](Makefile). ## Требования -- Docker Engine или Docker Desktop с командой `docker compose` v2. -- GNU Make, Bash и стандартные Unix-утилиты, используемые скриптами (`awk`, - `sed`, `grep`, `find`, `realpath` и `stat`). -- Для загрузки optional samples: `curl` и `git`; для MySQL samples также нужны - `unzip` и `sha256sum`. +1. Docker Engine или Docker Desktop с `docker compose` v2. +2. GNU Make, Bash и базовые Unix CLI utilities, используемые скриптами. -Выполняйте команды из корня репозитория. Ветка проекта по умолчанию — `master`. +Рекомендуемая среда: Linux; macOS с Docker Desktop; Windows с Docker Desktop +и WSL2. Выполняйте команды из корня репозитория. Ветка проекта по умолчанию — +`master`. ## Быстрый старт -Создайте `.docker.env` из отслеживаемого примера, проверьте настроенные пути, -создайте рабочие каталоги и запустите полный стенд: - ```bash make init make up ``` -`make up` запускает MySQL, PostgreSQL и Adminer. С конфигурацией по умолчанию -Adminer доступен по адресу `http://127.0.0.1:8081`. +`make init` создаёт локальный `.docker.env` из отслеживаемого +[`.docker.env.example`](.docker.env.example), проверяет managed paths и +создаёт рабочие каталоги. При первом запуске official entrypoints +инициализируют обе СУБД. Даже без optional samples вы получите рабочие MySQL и +PostgreSQL с обязательной `demo` и seed rows. + +`make up` запускает MySQL, PostgreSQL и Adminer; `make up-no-ui` — обе СУБД +без Adminer. С настройками по умолчанию Adminer доступен по адресу +`http://127.0.0.1:8081`. + +Подробно о запуске, подключениях и credentials: +[Начало работы](docs/langs/ru/getting-started.md). + +### Нужны готовые учебные данные? + +Optional samples не обязательны: `demo` создаётся всегда; для MySQL доступны Sakila и Chinook, для PostgreSQL — Pagila и Chinook. -Полезные следующие команды: +**Первый запуск, data-каталоги пусты** ```bash -make status -make logs -make down +make init +make samples-mysql +make samples-postgres +make up ``` -`make down` удаляет контейнеры и сеть, но сохраняет bind-mounted данные СУБД. +Samples подготавливаются до первой инициализации; official entrypoints загрузят их вместе с `demo`. -## Режимы запуска +> **Внимание:** если data-каталог уже инициализирован без samples, их добавление требует backup и подтверждённого destructive reinit. -| Команда | MySQL | PostgreSQL | Adminer | -|---|---|---|---| -| `make up` | Запускает | Запускает | Запускает | -| `make up-no-ui` | Запускает | Запускает | Останавливает | -| `make up-mysql` | Запускает | Не запускает | Не запускает | -| `make up-postgres` | Не запускает | Запускает | Не запускает | +
+Стенд уже запускался: добавить или повторно использовать samples -Команды одной СУБД не останавливают уже работающую другую; Adminer управляется отдельно. +**Уже инициализировано без samples.** Обычный `make up` новые init/sample files не применит. Сначала сохраните важные данные, затем выполните нужный вариант: -## Подключения +- MySQL: `make samples-mysql`, затем `make reinit-mysql CONFIRM=1`. +- PostgreSQL: `make samples-postgres`, затем `make reinit-postgres CONFIRM=1`. +- Обе СУБД: `make samples-mysql`, `make samples-postgres`, затем `make reinit-all CONFIRM=1`. -### Adminer +> **Внимание:** `reinit-*` удаляет данные выбранной СУБД и выполняется только с точным `CONFIRM=1`. -Внутри Compose-сети Adminer предлагает два заранее заданных сервера: +**Samples уже установлены.** Используйте обычный `make up` или выбранный `make up-*`: повторные download и reinit не нужны, базы сохраняются в bind-mounted storage. -```text -MySQL (mysql) -PostgreSQL (postgres) -``` +
-Выберите сервер, затем укажите `DB_USER`, `DB_PASSWORD` и имя базы, например -`demo`. Имена сервисов `mysql` и `postgres` работают внутри Compose-сети; для -desktop-клиентов на хосте это не адреса серверов. +Подробнее: [Базы и samples](docs/langs/ru/databases.md). -### Клиенты на хосте +## Режимы запуска -DataGrip, DBeaver, PhpStorm и host CLI подключаются через опубликованный адрес -и порт: +| Команда | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Запускает | Запускает | Запускает | +| `make up-no-ui` | Запускает | Запускает | Останавливает | +| `make up-mysql` | Запускает | Не запускает | Не запускает | +| `make up-postgres` | Не запускает | Запускает | Не запускает | -| СУБД | Хост по умолчанию | Переменная порта | Пользователь | База по умолчанию | -|---|---|---|---|---| -| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | -| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | +Команды одной СУБД не останавливают уже работающую другую; Adminer управляется +отдельно. Полный набор targets описан в [`Makefile`](Makefile). -Если вы изменили `BIND_ADDRESS`, при необходимости используйте вместо -`127.0.0.1` доступный адрес этого интерфейса. +## Подключения и доступные базы -### CLI в контейнерах +Внутри Compose-сети Adminer использует серверы `mysql` и `postgres`. Клиенты на +хосте используют `127.0.0.1` и настроенные `MYSQL_PORT` или `POSTGRES_PORT`. +Для обычной работы укажите `DB_USER` и `DB_PASSWORD`. -Make-targets передают пароли через environment контейнера и не помещают их в -историю shell: +| СУБД | Доступна всегда | После optional sample initialization | +|---|---|---| +| MySQL | `demo` | `sakila`, `chinook` | +| PostgreSQL | `demo` | `pagila`, `chinook` | -```bash -make mysql # администратор MySQL, база demo -make mysql-user # DB_USER, база demo -make postgres # superuser PostgreSQL, база demo -make postgres-user # DB_USER, база demo -``` +Имена optional баз действительны только после их фактической инициализации. +Подробности: [запуск и подключения](docs/langs/ru/getting-started.md) · +[базы и samples](docs/langs/ru/databases.md). ## Кратко об учётных данных | Назначение | Пользователь | Пароль | |---|---|---| -| Общий учебный пользователь двух СУБД | `DB_USER` | `DB_PASSWORD` | +| Общий учебный пользователь | `DB_USER` | `DB_PASSWORD` | | Администратор MySQL | `root` | `MYSQL_ROOT_PASSWORD` | | Superuser PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -`POSTGRES_SUPERUSER` и `DB_USER` должны быть разными ролями. Для обычных упражнений используйте общего учебного пользователя и замените примерные пароли до публикации сервисов. +`POSTGRES_SUPERUSER` и `DB_USER` должны быть разными ролями. Для упражнений +используйте учебного пользователя и замените примерные пароли до публикации +сервисов. ## Базы и ключевые проверки -Обе СУБД создают обязательную базу `demo` с эквивалентной таблицей `demo_users`. Optional samples: Chinook и Sakila для MySQL, Pagila и Chinook для PostgreSQL. Подготовка samples не импортирует их в уже инициализированные данные. - -Статическая проверка не требует запуска СУБД: +Обе `demo` содержат эквивалентную таблицу `demo_users` с пятью строками. +Статические проверки не требуют запущенных СУБД: ```bash make check-env @@ -149,38 +165,32 @@ make config make test-storage-paths ``` -После запуска обеих СУБД `make check` проверяет доступ `DB_USER`, а `make test-sql-imports` — публичные trusted import targets. Подробные команды, ограничения и порядок безопасных действий вынесены в документацию ниже. - -Data-, init- и sample-каталоги MySQL/PostgreSQL разделены и настраиваются через `.docker.env`. Managed path validator не допускает выход за `data/` или `samples/`, symlink-компоненты, пересечения и зарезервированные каталоги. Полностью отсутствующий optional sample пропускается, а частичный набор или неожиданная существующая sample-база отклоняются без автоматического исправления. - -Подготовка samples загружает закреплённые upstream-файлы, проверяет integrity и оставляет их локально; provenance и лицензии находятся в `THIRD_PARTY_NOTICES.md`. Runtime-проверки также подтверждают обязательные строки `demo`, read/write-доступ учебного пользователя и установленные samples. +После запуска `make check` проверяет `demo` и доступ `DB_USER`, а +`make test-sql-imports` — public trusted import targets. Порядок и ограничения: +[Проверки и операции](docs/langs/ru/operations.md). ## Безопасность и жизненный цикл - `BIND_ADDRESS=127.0.0.1` публикует сервисы только на loopback. -- `BIND_ADDRESS=0.0.0.0` публикует их на всех интерфейсах: заранее настройте +- `BIND_ADDRESS=0.0.0.0` открывает их на всех интерфейсах: заранее настройте firewall, надёжные credentials и доверенную сеть. -- Официальные entrypoints выполняют init только для пустого data-каталога. -- `make mysql-import` и `make postgres-import` принимают только доверенный - SQL. Это не sandbox: возможна частичная запись без полного automatic rollback. - Перед важным импортом сделайте backup. +- Official entrypoints выполняют init только для пустого data-каталога. +- `make mysql-import` и `make postgres-import` принимают только доверенный SQL. + Это не sandbox: возможна частичная запись без полного automatic rollback. + Перед важным импортом проверьте SQL-файл и сделайте подходящий backup. - Встроенные `make dump` и `make restore` покрывают только MySQL `demo`; встроенного backup target для PostgreSQL нет. - Все `clean-*` и `reinit-*` destructive и требуют точного `CONFIRM=1`. -## Документация - -- [Начало работы](docs/langs/ru/getting-started.md) -- [Базы и samples](docs/langs/ru/databases.md) -- [Проверки и операции](docs/langs/ru/operations.md) -- [Диагностика](docs/langs/ru/troubleshooting.md) +Безопасные последовательности: [Проверки и операции](docs/langs/ru/operations.md). +При ошибках сначала соберите диагностику: +[Диагностика](docs/langs/ru/troubleshooting.md). -## Лицензии и сторонние компоненты +## Лицензии учебных данных -Docker SQL Lab распространяется по лицензии MIT; см. -[LICENSE.md](LICENSE.md). Optional sample-базы сохраняют upstream-лицензии и -уведомления; источники, закреплённые ревизии, integrity information и тексты -лицензий приведены в [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). +Optional sample datasets сохраняют лицензии и notices upstream projects. +Provenance, закреплённые revisions, integrity information и тексты лицензий +приведены в [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). --- diff --git a/docs/langs/README_de.md b/docs/langs/README_de.md index 920d7fe..13445cc 100644 --- a/docs/langs/README_de.md +++ b/docs/langs/README_de.md @@ -14,9 +14,11 @@ | --- | --- | --- | --- | --- | --- | | [Русский](../../README.md) | [English](README_en.md) | [Español](README_es.md) | [中文](README_zh.md) | [Français](README_fr.md) | **Ausgewählt** | -Eine lokale Docker-Compose-Umgebung zum Lernen und Vergleichen von MySQL und -PostgreSQL. Beide DBMS lassen sich einzeln oder gemeinsam ausführen; Adminer -wird nur bei Bedarf als Browseroberfläche zugeschaltet. +Eine lokale Docker-Compose-Umgebung zum Üben von SQL sowie zum Kennenlernen +und Vergleichen von MySQL und PostgreSQL. Beide DBMS lassen sich einzeln oder +gemeinsam starten. Die kompakte `demo`-Datenbank entsteht automatisch; +optionale Sakila-, Pagila- und Chinook-Datensätze liefern sofort abfragbare +Übungsdaten. Adminer wird nur bei Bedarf aktiviert. ## Stack und festgelegte Versionen @@ -26,102 +28,119 @@ wird nur bei Bedarf als Browseroberfläche zugeschaltet. - Docker Compose v2 - GNU Make und Bash für Projektbefehle und Initialisierungsskripte -Die Image-Versionen sind in `.docker.env` festgelegt. Verwenden Sie das Lab -nicht ungeprüft als Produktionsvorlage; Zugangsdaten, Netzwerkfreigabe, -Speicherung, Backups und Betrieb benötigen eine eigene Bewertung. +Die festgelegten Standardwerte stehen in +[`.docker.env.example`](../../.docker.env.example); `make init` erstellt daraus +die lokale `.docker.env`. Die Services stehen in +[`docker-compose.yml`](../../docker-compose.yml). + +
+⚠️ Wichtig: Dies ist eine Lernumgebung + +Das Projekt ist kein produktionsfertiges Template. Für externe Nutzung sind +eigene Entscheidungen zu Zugangsdaten, Netzwerkfreigabe, Storage, Backups und +Betrieb nötig. + +
## Hauptfunktionen -- Unabhängige MySQL- und PostgreSQL-Dienste, die auch gemeinsam laufen. -- Optionaler Adminer für beide DBMS, ohne Bindung an einen bestimmten Dienst. -- Obligatorische `demo`-Datenbank in jedem DBMS mit denselben fünf Beispieldatensätzen. -- Optionale Samples: Sakila und Chinook für MySQL, Pagila und Chinook für PostgreSQL. -- Getrennte bind-mounted Verzeichnisse für data, init und samples je DBMS. -- Gemeinsame Lern-Zugangsdaten und getrennte Administrator-Zugangsdaten. -- Statische Konfigurationsprüfungen, Schutz der managed storage paths, - Runtime-Zugriffsprüfungen und Smoke-Test für vertrauenswürdige SQL-Imports. -- Explizite Bestätigung für destruktive Bereinigung und Neuinitialisierung. +- MySQL und PostgreSQL laufen einzeln oder gemeinsam. +- Jedes DBMS hat eine obligatorische `demo` mit denselben Seed-Datensätzen. +- Optional: Sakila und Chinook für MySQL, Pagila und Chinook für PostgreSQL. +- Adminer ist eine unabhängige optionale Oberfläche für beide DBMS. +- Daten-, Init- und Sample-Verzeichnisse sind je DBMS getrennt eingebunden. +- Prüfungen, vertrauenswürdige SQL-Imports und destructive Aktionen bündelt das + [`Makefile`](../../Makefile). ## Voraussetzungen -- Docker Engine oder Docker Desktop mit dem Befehl `docker compose` v2. -- GNU Make, Bash und die von den Skripten verwendeten Unix-Werkzeuge (`awk`, - `sed`, `grep`, `find`, `realpath` und `stat`). -- Für optionale Samples: `curl` und `git`; für MySQL zusätzlich `unzip` und - `sha256sum`. +1. Docker Engine oder Docker Desktop mit `docker compose` v2. +2. GNU Make, Bash und die von den Skripten verwendeten Unix-CLI-Basiswerkzeuge. -Führen Sie Befehle im Repository-Stamm aus. Der Standardbranch des Projekts ist +Empfohlen: Linux; macOS mit Docker Desktop; Windows mit Docker Desktop und +WSL2. Befehle werden im Repository-Stamm ausgeführt. Der Standardbranch ist `master`. ## Schnellstart -Erstellen Sie `.docker.env` aus dem versionierten Beispiel, prüfen Sie die -Pfade, legen Sie Arbeitsverzeichnisse an und starten Sie das vollständige Lab: - ```bash make init make up ``` -`make up` startet MySQL, PostgreSQL und Adminer. Mit der Standardkonfiguration -ist Adminer unter `http://127.0.0.1:8081` erreichbar. +`make init` erzeugt die lokale `.docker.env` aus +[`.docker.env.example`](../../.docker.env.example), prüft verwaltete Pfade und +legt Arbeitsverzeichnisse an. Beim ersten Containerstart initialisieren die +offiziellen Entrypoints beide DBMS. Auch ohne optionale Samples erhalten Sie +MySQL und PostgreSQL mit `demo` und Seed-Datensätzen. + +`make up` startet MySQL, PostgreSQL und Adminer; `make up-no-ui` startet beide +DBMS ohne Adminer. Standardmäßig ist Adminer unter +`http://127.0.0.1:8081` erreichbar. + +Startmodi, Verbindungen und Zugangsdaten: +[Erste Schritte](de/getting-started.md). + +### Fertige Übungsdaten gewünscht? + +Samples sind optional: `demo` wird immer erstellt; Sakila und Chinook sind für MySQL verfügbar, Pagila und Chinook für PostgreSQL. + +**Erster Start mit leeren Datenverzeichnissen** ```bash -make status -make logs -make down +make init +make samples-mysql +make samples-postgres +make up ``` -`make down` entfernt Container und Netzwerk, behält aber bind-mounted Daten. +Bereiten Sie Samples vor der ersten Initialisierung vor; die Entrypoints laden sie zusammen mit `demo`. -## Startmodi +> **Warnung:** Wurde ein Datenverzeichnis ohne Samples initialisiert, erfordert das Hinzufügen ein Backup und eine ausdrücklich bestätigte destructive Neuinitialisierung. -| Befehl | MySQL | PostgreSQL | Adminer | -|---|---|---|---| -| `make up` | Startet | Startet | Startet | -| `make up-no-ui` | Startet | Startet | Stoppt | -| `make up-mysql` | Startet | Startet nicht | Startet nicht | -| `make up-postgres` | Startet nicht | Startet | Startet nicht | +
+Das Lab lief bereits: Samples hinzufügen oder erneut verwenden -Einzel-DBMS-Befehle stoppen das andere laufende DBMS nicht; Adminer wird separat verwaltet. +**Ohne Samples initialisiert.** `make up` wendet neue Init-/Sample-Dateien nicht an. Sichern Sie wichtige Daten und wählen Sie dann die passende Variante: -## Verbindungen +- MySQL: `make samples-mysql`, danach `make reinit-mysql CONFIRM=1`. +- PostgreSQL: `make samples-postgres`, danach `make reinit-postgres CONFIRM=1`. +- Beide DBMS: `make samples-mysql`, `make samples-postgres`, danach `make reinit-all CONFIRM=1`. -### Adminer +> **Warnung:** `reinit-*` löscht die gewählten Daten und läuft nur mit dem exakten `CONFIRM=1`. -Im Compose-Netzwerk bietet Adminer zwei vordefinierte Server an: +**Samples bereits installiert.** Nutzen Sie `make up` oder das gewünschte `make up-*`: Erneuter download und reinit entfallen; die Datenbanken bleiben im bind-mounted storage erhalten. -```text -MySQL (mysql) -PostgreSQL (postgres) -``` +
-Wählen Sie einen Server und melden Sie sich mit `DB_USER`, `DB_PASSWORD` und -einer Datenbank wie `demo` an. `mysql` und `postgres` sind interne -Compose-Dienstnamen, keine Hostnamen für Desktop-Clients. +Details: [Datenbanken und Samples](de/databases.md). + +## Startmodi -### Clients auf dem Host +| Befehl | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Startet | Startet | Startet | +| `make up-no-ui` | Startet | Startet | Stoppt | +| `make up-mysql` | Startet | Startet nicht | Startet nicht | +| `make up-postgres` | Startet nicht | Startet | Startet nicht | -| DBMS | Standardhost | Portvariable | Benutzer | Standarddatenbank | -|---|---|---|---|---| -| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | -| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | +Ein Einzel-DBMS-Befehl stoppt das andere nicht; Adminer wird separat verwaltet. +Alle Targets stehen im [`Makefile`](../../Makefile). -DataGrip, DBeaver, PhpStorm und Host-CLI-Werkzeuge nutzen veröffentlichte -Adresse und Port. Nach einer Änderung von `BIND_ADDRESS` verwenden Sie bei -Bedarf die erreichbare Adresse dieser Schnittstelle. +## Verbindungen und verfügbare Datenbanken -### CLI in den Containern +Im Compose-Netz nutzt Adminer `mysql` und `postgres`. Host-Clients nutzen +`127.0.0.1` und `MYSQL_PORT` oder `POSTGRES_PORT`. Für Übungen dienen +`DB_USER` und `DB_PASSWORD`. -Passwörter werden über die Containerumgebung übergeben und nicht in die -Shell-History geschrieben: +| DBMS | Immer verfügbar | Nach optionaler Sample-Initialisierung | +|---|---|---| +| MySQL | `demo` | `sakila`, `chinook` | +| PostgreSQL | `demo` | `pagila`, `chinook` | -```bash -make mysql # MySQL-Administrator, Datenbank demo -make mysql-user # DB_USER, Datenbank demo -make postgres # PostgreSQL-Superuser, Datenbank demo -make postgres-user # DB_USER, Datenbank demo -``` +Optionale Datenbanken existieren erst nach der tatsächlichen Initialisierung. +Details: [Start und Verbindungen](de/getting-started.md) · +[Datenbanken und Samples](de/databases.md). ## Zugangsdaten im Überblick @@ -131,13 +150,13 @@ make postgres-user # DB_USER, Datenbank demo | MySQL-Administrator | `root` | `MYSQL_ROOT_PASSWORD` | | PostgreSQL-Superuser | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -`POSTGRES_SUPERUSER` und `DB_USER` müssen verschiedene Rollen sein. Verwenden Sie den gemeinsamen Lernbenutzer für Übungen und ersetzen Sie Beispielpasswörter vor einer Veröffentlichung. +`POSTGRES_SUPERUSER` und `DB_USER` müssen verschieden sein. Verwenden Sie für +Übungen den Lernbenutzer und ersetzen Sie Beispielpasswörter vor Freigaben. ## Datenbanken und wichtige Prüfungen -Beide DBMS erstellen die obligatorische Datenbank `demo` mit einer entsprechenden `demo_users`-Tabelle. Optionale Samples sind Chinook und Sakila für MySQL sowie Pagila und Chinook für PostgreSQL. Ihre Vorbereitung importiert nichts in bereits initialisierte Daten. - -Diese statischen Prüfungen benötigen keine laufenden Datenbanken: +Beide `demo`-Datenbanken enthalten eine äquivalente Tabelle `demo_users` mit +fünf Zeilen. Diese Prüfungen brauchen keine laufenden DBMS: ```bash make check-env @@ -145,39 +164,35 @@ make config make test-storage-paths ``` -Nach dem Start beider DBMS prüft `make check` den `DB_USER`-Zugriff; `make test-sql-imports` testet die öffentlichen trusted import targets. Die Detailseiten beschreiben alle Befehle, Einschränkungen und die sichere Reihenfolge. - -Die Data-, Init- und Sample-Verzeichnisse von MySQL und PostgreSQL bleiben getrennt und werden über `.docker.env` konfiguriert. Der Managed-path-Validator lehnt Orte außerhalb von `data/` oder `samples/`, Symlink-Komponenten, Überschneidungen und reservierte Verzeichnisse ab. Ein vollständig fehlendes Sample wird übersprungen; unvollständige Dateien oder eine unerwartete Sample-Datenbank werden ohne automatische Reparatur abgelehnt. - -Die Vorbereitung lädt festgelegte Upstream-Dateien, prüft ihre Integrität und behält sie lokal; Herkunft und Lizenzen stehen in `THIRD_PARTY_NOTICES.md`. Runtime-Prüfungen validieren außerdem die obligatorischen `demo`-Zeilen, Lese-/Schreibzugriff des Lernbenutzers und installierte Samples. +Nach dem Start prüft `make check` die `demo` und den Zugriff von `DB_USER`; +`make test-sql-imports` testet die öffentlichen Trusted-Import-Targets. +Reihenfolge und Grenzen: +[Prüfungen und Betrieb](de/operations.md). ## Sicherheit und Lebenszyklus -- `BIND_ADDRESS=127.0.0.1` veröffentlicht Dienste nur auf loopback. -- `BIND_ADDRESS=0.0.0.0` veröffentlicht sie auf allen Schnittstellen; - konfigurieren Sie Firewall, starke credentials und Netzvertrauen bewusst. -- Offizielle Entrypoints führen init nur für ein leeres data directory aus. +- `BIND_ADDRESS=127.0.0.1` veröffentlicht nur auf Loopback. +- `BIND_ADDRESS=0.0.0.0` öffnet alle Interfaces; richten Sie vorher Firewall, + starke Zugangsdaten und ein vertrauenswürdiges Netz ein. +- Offizielle Entrypoints führen Init nur bei leeren Daten aus. - `make mysql-import` und `make postgres-import` akzeptieren nur - vertrauenswürdiges SQL. Sie erzeugen keine isolierte Umgebung (`sandbox`): partielle Ausführung ohne - vollständigen automatic rollback ist möglich. Erstellen Sie vorher ein Backup. -- `make dump` und `make restore` decken nur MySQL `demo` ab; ein - integriertes PostgreSQL-backup target fehlt. -- Alle `clean-*`- und `reinit-*`-Targets sind destruktiv und verlangen die - exakte Bestätigung `CONFIRM=1`. - -## Dokumentation - -- [Erste Schritte](de/getting-started.md) -- [Datenbanken und Samples](de/databases.md) -- [Prüfungen und Betrieb](de/operations.md) -- [Diagnose und Fehlerbehebung](de/troubleshooting.md) - -## Lizenzen und Hinweise zu Drittanbietern - -Docker SQL Lab steht unter der MIT License: -[LICENSE.md](../../LICENSE.md). Optionale Samples behalten ihre -upstream-Lizenzen; Quellen, festgelegte Revisionen, Integritätswerte und Texte -stehen in [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). + vertrauenswürdiges SQL. Sie sind keine Sandbox: partielle Ausführung ohne + vollständigen automatischen Rollback ist möglich. + Prüfen Sie vor einem wichtigen Import die SQL-Datei und erstellen Sie ein geeignetes Backup. +- `make dump` und `make restore` sichern nur MySQL `demo`; ein eingebautes + PostgreSQL-Backup-Target fehlt. +- Alle `clean-*`- und `reinit-*`-Befehle sind destructive und verlangen exakt + `CONFIRM=1`. + +Sichere Abläufe: [Prüfungen und Betrieb](de/operations.md). Bei Fehlern zuerst +Diagnosedaten sammeln: +[Diagnose und Fehlerbehebung](de/troubleshooting.md). + +## Lizenzen der Übungsdaten + +Optionale Datensätze behalten Lizenzen und Hinweise ihrer Upstream-Projekte. +Herkunft, festgelegte Revisionen, Integrität und Lizenztexte stehen in +[`THIRD_PARTY_NOTICES.md`](../../THIRD_PARTY_NOTICES.md).

diff --git a/docs/langs/README_en.md b/docs/langs/README_en.md index 9c4793f..376eac9 100644 --- a/docs/langs/README_en.md +++ b/docs/langs/README_en.md @@ -14,9 +14,11 @@ | --- | --- | --- | --- | --- | --- | | [Русский](../../README.md) | **Selected** | [Español](README_es.md) | [中文](README_zh.md) | [Français](README_fr.md) | [Deutsch](README_de.md) | -A local Docker Compose environment for learning and comparing MySQL and -PostgreSQL. Run either database independently, run both together, and add -Adminer only when you need a browser UI. +A local Docker Compose lab for practicing SQL and exploring and comparing +MySQL and PostgreSQL. Run either DBMS independently or both together. A compact +`demo` database is created automatically, while optional Sakila, Pagila, and +Chinook datasets provide ready-to-query training data. Enable Adminer only +when you need it. ## Stack @@ -24,128 +26,139 @@ Adminer only when you need a browser UI. - PostgreSQL 18.4 - Adminer 5.4.2 Docker Official Image - Docker Compose v2 -- GNU Make and Bash for the project commands and initialization scripts +- GNU Make and Bash for project commands and initialization scripts -The image versions are pinned in `.docker.env`. Do not use this lab as a -production deployment template without reviewing its credentials, exposure, -storage, backup, and operational requirements. +Pinned defaults are defined in +[`.docker.env.example`](../../.docker.env.example); `make init` creates the +local `.docker.env` from it. Services are defined in +[`docker-compose.yml`](../../docker-compose.yml). + +

+⚠️ Important: this is a training environment + +This project is not a production-ready template. External use requires +separate decisions about credentials, network exposure, storage, backups, and +operations. + +
## Features -- Independent MySQL and PostgreSQL services that can also run together. -- Optional Adminer shared by both databases; it has no dependency on a - particular database service. -- A required `demo` database in each DBMS with the same five example users. -- Optional Sakila and Chinook samples for MySQL, and Pagila and Chinook for +- MySQL and PostgreSQL run independently or together. +- A required `demo` database in each DBMS contains equivalent seed rows. +- Optional Sakila and Chinook are available for MySQL; Pagila and Chinook for PostgreSQL. -- Separate bind-mounted data, init, and sample directories for each DBMS. -- Shared training credentials with separate database administrator - credentials. -- Static configuration checks, managed storage-path validation, runtime - access checks, and a trusted SQL import smoke-test. -- Explicit confirmation for destructive clean and reinitialization commands. +- Adminer is a separate optional UI shared by both DBMSs. +- Each DBMS has separate bind-mounted data, init, and sample directories. +- Configuration and access checks, trusted SQL imports, and destructive + commands are collected in the [`Makefile`](../../Makefile). ## Requirements -- Docker Engine or Docker Desktop with the `docker compose` v2 command. -- GNU Make, Bash, and standard Unix tools used by the scripts (`awk`, `sed`, - `grep`, `find`, `realpath`, and `stat`). -- For optional sample downloads: `curl` and `git`; MySQL samples additionally - require `unzip` and `sha256sum`. +1. Docker Engine or Docker Desktop with `docker compose` v2. +2. GNU Make, Bash, and the basic Unix CLI utilities used by the scripts. -Run project commands from the repository root. The default project branch is -`master`. +Recommended environments: Linux; macOS with Docker Desktop; Windows with +Docker Desktop and WSL2. Run commands from the repository root. The project's +default branch is `master`. ## Quick start -Create `.docker.env` from the tracked example, validate the configured paths, -create the working directories, and start the full lab: - ```bash make init make up ``` -`make up` starts MySQL, PostgreSQL, and Adminer. With the default configuration, -open Adminer at `http://127.0.0.1:8081`. +`make init` creates the local `.docker.env` from the tracked +[`.docker.env.example`](../../.docker.env.example), validates managed paths, +and creates working directories. On the first container start, the official +entrypoints initialize both DBMSs. Even without optional samples, you get +working MySQL and PostgreSQL instances with the required `demo` database and +seed rows. + +`make up` starts MySQL, PostgreSQL, and Adminer; `make up-no-ui` starts both +DBMSs without Adminer. With the defaults, Adminer is available at +`http://127.0.0.1:8081`. + +For startup modes, connections, and credentials, see +[Getting started](en/getting-started.md). + +### Want ready-made training data? + +Optional samples are not required: `demo` is always created; MySQL supports Sakila and Chinook, while PostgreSQL supports Pagila and Chinook. -Useful follow-up commands: +**First start with empty data directories** ```bash -make status -make logs -make down +make init +make samples-mysql +make samples-postgres +make up ``` -`make down` removes the containers and network but preserves the bind-mounted -database data. +Prepare samples before the first initialization; the official entrypoints load them alongside `demo`. -## Startup modes +> **Warning:** if a data directory was initialized without samples, adding them requires a backup and an explicitly confirmed destructive reinitialization. -| Command | MySQL | PostgreSQL | Adminer | -|---|---|---|---| -| `make up` | Starts | Starts | Starts | -| `make up-no-ui` | Starts | Starts | Stops | -| `make up-mysql` | Starts | Does not start | Does not start | -| `make up-postgres` | Does not start | Starts | Does not start | +
+The lab has run before: add or reuse samples -Single-DBMS commands do not stop the other running database; Adminer is managed separately. +**Initialized without samples.** A regular `make up` does not apply new init/sample files. Back up important data, then use the appropriate option: -## Connections +- MySQL: `make samples-mysql`, then `make reinit-mysql CONFIRM=1`. +- PostgreSQL: `make samples-postgres`, then `make reinit-postgres CONFIRM=1`. +- Both DBMSs: `make samples-mysql`, `make samples-postgres`, then `make reinit-all CONFIRM=1`. -### Adminer +> **Warning:** `reinit-*` deletes the selected DBMS data and runs only with the exact `CONFIRM=1`. -Adminer provides two predefined server choices inside the Compose network: +**Samples already installed.** Use the regular `make up` or a selected `make up-*`: no repeated download or reinitialization is needed, and databases persist in bind-mounted storage. -```text -MySQL (mysql) -PostgreSQL (postgres) -``` +
-Select a server, then sign in with `DB_USER`, `DB_PASSWORD`, and a database -name such as `demo`. The service names `mysql` and `postgres` work inside the -Compose network; they are not host names for desktop clients. +Details: [Databases and samples](en/databases.md). -### Host clients +## Startup modes -DataGrip, DBeaver, PhpStorm, and host CLI tools connect through the published -address and port: +| Command | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Starts | Starts | Starts | +| `make up-no-ui` | Starts | Starts | Stops | +| `make up-mysql` | Starts | Does not start | Does not start | +| `make up-postgres` | Does not start | Starts | Does not start | -| DBMS | Host with default settings | Port variable | User | Default database | -|---|---|---|---|---| -| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | -| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | +A single-DBMS command does not stop the other running DBMS; Adminer is managed +separately. The complete target list is in the [`Makefile`](../../Makefile). -If you change `BIND_ADDRESS`, use that reachable interface address instead of -`127.0.0.1` where appropriate. +## Connections and available databases -### Container CLI +Inside the Compose network, Adminer uses `mysql` and `postgres`. Host clients +use `127.0.0.1` with the configured `MYSQL_PORT` or `POSTGRES_PORT`. Sign in +for routine work with `DB_USER` and `DB_PASSWORD`. -The Make targets pass passwords through the container environment instead of -placing them in shell history: +| DBMS | Always available | After optional sample initialization | +|---|---|---| +| MySQL | `demo` | `sakila`, `chinook` | +| PostgreSQL | `demo` | `pagila`, `chinook` | -```bash -make mysql # MySQL administrator, demo database -make mysql-user # DB_USER, demo database -make postgres # PostgreSQL superuser, demo database -make postgres-user # DB_USER, demo database -``` +Optional database names are valid only after actual initialization. Details: +[startup and connections](en/getting-started.md) · +[databases and samples](en/databases.md). ## Credentials at a glance | Purpose | User | Password | |---|---|---| -| Shared training user for both DBMSs | `DB_USER` | `DB_PASSWORD` | +| Shared training user | `DB_USER` | `DB_PASSWORD` | | MySQL administrator | `root` | `MYSQL_ROOT_PASSWORD` | | PostgreSQL superuser | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -`POSTGRES_SUPERUSER` and `DB_USER` must be different roles. Use the shared training user for routine exercises and replace example passwords before publishing services. +`POSTGRES_SUPERUSER` and `DB_USER` must be different roles. Use the training +user for exercises, and replace example passwords before publishing services. ## Databases and key checks -Both DBMSs create a required `demo` database with an equivalent `demo_users` table. Optional samples are Chinook and Sakila for MySQL, and Pagila and Chinook for PostgreSQL. Preparing samples does not import them into initialized data. - -These static checks do not require running databases: +Both `demo` databases contain an equivalent `demo_users` table with five rows. +These static checks do not require running DBMSs: ```bash make check-env @@ -153,39 +166,35 @@ make config make test-storage-paths ``` -After both DBMSs start, `make check` verifies `DB_USER` access and `make test-sql-imports` exercises the public trusted import targets. The detailed pages below document every command, limitation, and safe operating sequence. - -MySQL and PostgreSQL data, init, and sample directories remain separate and are configured through `.docker.env`. The managed-path validator rejects locations outside `data/` or `samples/`, symlink components, overlaps, and reserved directories. A completely absent optional sample is skipped; a partial set or unexpected existing sample database is rejected without automatic repair. - -Sample preparation downloads pinned upstream files, verifies integrity, and keeps them local; provenance and licensing are in `THIRD_PARTY_NOTICES.md`. Runtime checks also verify required `demo` rows, training-user read/write access, and any installed samples. +After startup, `make check` verifies `demo` and `DB_USER` access; +`make test-sql-imports` exercises the public trusted import targets. For the +safe order and limitations, see +[Validation and operations](en/operations.md). ## Safety and lifecycle - `BIND_ADDRESS=127.0.0.1` publishes services only on loopback. -- `BIND_ADDRESS=0.0.0.0` publishes them on every interface; configure the - firewall, strong credentials, and network trust deliberately. +- `BIND_ADDRESS=0.0.0.0` exposes them on every interface; configure the + firewall, strong credentials, and network trust first. - Official entrypoints run init only for an empty data directory. - `make mysql-import` and `make postgres-import` accept trusted SQL only. - They do not create a sandbox: partial execution is possible without a - guaranteed full automatic rollback. Back up important data first. -- Built-in `make dump` and `make restore` cover only MySQL `demo`; there - is no built-in PostgreSQL backup target. -- Every `clean-*` and `reinit-*` target is destructive and requires the - exact confirmation `CONFIRM=1`. - -## Documentation - -- [Getting started](en/getting-started.md) -- [Databases and samples](en/databases.md) -- [Validation and operations](en/operations.md) -- [Troubleshooting](en/troubleshooting.md) - -## Licenses and third-party notices - -Docker SQL Lab is licensed under the MIT License; see -[LICENSE.md](../../LICENSE.md). Optional sample databases retain their upstream -licenses and notices; see [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md) for -sources, pinned revisions, integrity information, and license text. + This is not a sandbox: partial execution is possible without a guaranteed + full automatic rollback. + Review the SQL file and create a suitable backup before an important import. +- Built-in `make dump` and `make restore` cover only MySQL `demo`; there is no + built-in PostgreSQL backup target. +- Every `clean-*` and `reinit-*` command is destructive and requires the exact + `CONFIRM=1`. + +Safe sequences: [Validation and operations](en/operations.md). For failures, +collect evidence first: [Troubleshooting](en/troubleshooting.md). + +## Training data licenses + +Optional sample datasets retain the licenses and notices of their upstream +projects. Provenance, pinned revisions, integrity information, and license +texts are in +[`THIRD_PARTY_NOTICES.md`](../../THIRD_PARTY_NOTICES.md).

diff --git a/docs/langs/README_es.md b/docs/langs/README_es.md index 610a48c..d07623f 100644 --- a/docs/langs/README_es.md +++ b/docs/langs/README_es.md @@ -14,9 +14,11 @@ | --- | --- | --- | --- | --- | --- | | [Русский](../../README.md) | [English](README_en.md) | **Seleccionado** | [中文](README_zh.md) | [Français](README_fr.md) | [Deutsch](README_de.md) | -Entorno local basado en Docker Compose para aprender y comparar MySQL y -PostgreSQL. Puede ejecutar cada SGBD por separado, ambos a la vez y añadir -Adminer solo cuando necesite una interfaz web. +Un laboratorio local con Docker Compose para practicar SQL y conocer y comparar +MySQL y PostgreSQL. Puede iniciar cada SGBD por separado o ambos a la vez. +La base compacta `demo` se crea automáticamente; los datasets opcionales +Sakila, Pagila y Chinook ofrecen datos listos para consultar. Active Adminer +solo cuando lo necesite. ## Stack @@ -24,103 +26,120 @@ Adminer solo cuando necesite una interfaz web. - PostgreSQL 18.4 - Adminer 5.4.2 Docker Official Image - Docker Compose v2 -- GNU Make y Bash para los comandos del proyecto y los scripts de inicialización +- GNU Make y Bash para los comandos y scripts de inicialización -Las versiones de las imágenes están fijadas en `.docker.env`. No use este -laboratorio como plantilla de producción sin revisar credenciales, exposición -de red, almacenamiento, copias de seguridad y operación. +Los valores predeterminados fijados se definen en +[`.docker.env.example`](../../.docker.env.example); `make init` crea desde él +el `.docker.env` local. Los servicios se definen en +[`docker-compose.yml`](../../docker-compose.yml). + +

+⚠️ Importante: este es un entorno didáctico + +El proyecto no es una plantilla lista para producción. El uso externo exige +decisiones propias sobre credenciales, exposición de red, almacenamiento, +backups y operación. + +
## Funciones principales -- Servicios MySQL y PostgreSQL independientes que también funcionan juntos. -- Adminer opcional y compartido por ambos SGBD, sin depender de uno concreto. -- Una base obligatoria `demo` en cada SGBD con los mismos cinco usuarios de ejemplo. -- Samples opcionales: Sakila y Chinook para MySQL; Pagila y Chinook para PostgreSQL. -- Directorios bind-mounted de data, init y samples separados por SGBD. -- Credenciales didácticas comunes y credenciales administrativas separadas. -- Validaciones estáticas, protección de managed storage paths, comprobaciones - runtime y smoke-test de importación de SQL de confianza. -- Confirmación explícita para los comandos destructivos de limpieza y reinicialización. +- MySQL y PostgreSQL funcionan por separado o juntos. +- Cada SGBD incluye una base `demo` obligatoria con los mismos seed rows. +- MySQL admite Sakila y Chinook opcionales; PostgreSQL, Pagila y Chinook. +- Adminer es una interfaz opcional e independiente para ambos SGBD. +- Cada SGBD tiene directorios bind-mounted separados para datos, init y samples. +- Las comprobaciones, imports SQL de confianza y acciones destructivas se + centralizan en el [`Makefile`](../../Makefile). ## Requisitos -- Docker Engine o Docker Desktop con el comando `docker compose` v2. -- GNU Make, Bash y las utilidades Unix usadas por los scripts (`awk`, `sed`, - `grep`, `find`, `realpath` y `stat`). -- Para descargar samples opcionales: `curl` y `git`; para MySQL también - `unzip` y `sha256sum`. +1. Docker Engine o Docker Desktop con `docker compose` v2. +2. GNU Make, Bash y las utilidades Unix CLI básicas usadas por los scripts. -Ejecute los comandos desde la raíz del repositorio. La rama predeterminada del -proyecto es `master`. +Entornos recomendados: Linux; macOS con Docker Desktop; Windows con Docker +Desktop y WSL2. Ejecute los comandos desde la raíz del repositorio. La rama +predeterminada del proyecto es `master`. ## Inicio rápido -Cree `.docker.env` desde el ejemplo versionado, valide las rutas, cree los -directorios de trabajo e inicie el laboratorio completo: - ```bash make init make up ``` -`make up` inicia MySQL, PostgreSQL y Adminer. Con la configuración por defecto, -Adminer está en `http://127.0.0.1:8081`. +`make init` crea el `.docker.env` local desde +[`.docker.env.example`](../../.docker.env.example), valida las rutas gestionadas +y crea los directorios de trabajo. En el primer arranque, los entrypoints +oficiales inicializan ambos SGBD. Sin samples opcionales seguirá teniendo MySQL +y PostgreSQL operativos con `demo` y sus seed rows. + +`make up` inicia MySQL, PostgreSQL y Adminer; `make up-no-ui` inicia ambos SGBD +sin Adminer. Por defecto, Adminer está en `http://127.0.0.1:8081`. + +Modos, conexiones y credenciales: +[Primeros pasos](es/getting-started.md). + +### ¿Necesita datos didácticos preparados? + +Los samples son opcionales: `demo` se crea siempre; MySQL ofrece Sakila y Chinook, y PostgreSQL, Pagila y Chinook. + +**Primer arranque con directorios de datos vacíos** ```bash -make status -make logs -make down +make init +make samples-mysql +make samples-postgres +make up ``` -`make down` elimina los contenedores y la red, pero conserva los datos -bind-mounted. +Prepare los samples antes de la primera inicialización; los entrypoints los cargarán junto con `demo`. -## Modos de inicio +> **Advertencia:** si un directorio ya se inicializó sin samples, añadirlos exige un backup y una reinicialización destructiva confirmada explícitamente. -| Comando | MySQL | PostgreSQL | Adminer | -|---|---|---|---| -| `make up` | Inicia | Inicia | Inicia | -| `make up-no-ui` | Inicia | Inicia | Detiene | -| `make up-mysql` | Inicia | No inicia | No inicia | -| `make up-postgres` | No inicia | Inicia | No inicia | +
+El laboratorio ya se inició: añadir o reutilizar samples -Los comandos de un SGBD no detienen el otro ya activo; Adminer se gestiona aparte. +**Inicializado sin samples.** `make up` no aplica nuevos archivos init/sample. Haga backup de los datos importantes y use la opción adecuada: -## Conexiones +- MySQL: `make samples-mysql` y después `make reinit-mysql CONFIRM=1`. +- PostgreSQL: `make samples-postgres` y después `make reinit-postgres CONFIRM=1`. +- Ambos SGBD: `make samples-mysql`, `make samples-postgres` y después `make reinit-all CONFIRM=1`. -### Adminer +> **Advertencia:** `reinit-*` elimina los datos seleccionados y solo se ejecuta con `CONFIRM=1` exacto. -Dentro de la red de Compose, Adminer ofrece dos servidores predefinidos: +**Samples ya instalados.** Use `make up` o el `make up-*` elegido: no repita download ni reinit; las bases persisten en el almacenamiento bind-mounted. -```text -MySQL (mysql) -PostgreSQL (postgres) -``` +
-Seleccione uno e introduzca `DB_USER`, `DB_PASSWORD` y una base como `demo`. -`mysql` y `postgres` son nombres internos de servicio, no hosts para clientes -de escritorio. +Detalles: [Bases y samples](es/databases.md). -### Clientes en el host +## Modos de inicio -| SGBD | Host predeterminado | Variable de puerto | Usuario | Base predeterminada | -|---|---|---|---|---| -| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | -| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | +| Comando | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Inicia | Inicia | Inicia | +| `make up-no-ui` | Inicia | Inicia | Detiene | +| `make up-mysql` | Inicia | No inicia | No inicia | +| `make up-postgres` | No inicia | Inicia | No inicia | -DataGrip, DBeaver, PhpStorm y los CLI del host usan la dirección y el puerto -publicados. Si cambia `BIND_ADDRESS`, use la dirección accesible de esa interfaz. +Un comando de un solo SGBD no detiene al otro; Adminer se gestiona aparte. La +lista completa está en el [`Makefile`](../../Makefile). -### CLI dentro de los contenedores +## Conexiones y bases disponibles -Las contraseñas pasan por el entorno del contenedor y no quedan en el historial: +Dentro de Compose, Adminer usa `mysql` y `postgres`. Los clientes del host usan +`127.0.0.1` y `MYSQL_PORT` o `POSTGRES_PORT`. Para el trabajo habitual, use +`DB_USER` y `DB_PASSWORD`. -```bash -make mysql # administrador MySQL, base demo -make mysql-user # DB_USER, base demo -make postgres # superusuario PostgreSQL, base demo -make postgres-user # DB_USER, base demo -``` +| SGBD | Siempre disponible | Tras inicializar samples opcionales | +|---|---|---| +| MySQL | `demo` | `sakila`, `chinook` | +| PostgreSQL | `demo` | `pagila`, `chinook` | + +Las bases opcionales solo existen tras su inicialización real. Detalles: +[inicio y conexiones](es/getting-started.md) · +[bases y samples](es/databases.md). ## Credenciales resumidas @@ -130,13 +149,13 @@ make postgres-user # DB_USER, base demo | Administrador MySQL | `root` | `MYSQL_ROOT_PASSWORD` | | Superusuario PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -`POSTGRES_SUPERUSER` y `DB_USER` deben ser roles distintos. Use el usuario didáctico común para ejercicios normales y cambie las contraseñas de ejemplo antes de publicar servicios. +`POSTGRES_SUPERUSER` y `DB_USER` deben ser roles distintos. Use el usuario +didáctico para ejercicios y cambie las contraseñas de ejemplo antes de publicar. ## Bases y comprobaciones clave -Ambos SGBD crean la base obligatoria `demo` con una tabla `demo_users` equivalente. Los samples opcionales son Chinook y Sakila para MySQL, y Pagila y Chinook para PostgreSQL. Prepararlos no los importa en datos ya inicializados. - -Estas comprobaciones estáticas no requieren bases activas: +Ambas `demo` contienen una tabla `demo_users` equivalente con cinco filas. +Estas comprobaciones no requieren SGBD en ejecución: ```bash make check-env @@ -144,39 +163,32 @@ make config make test-storage-paths ``` -Tras iniciar ambos SGBD, `make check` verifica el acceso de `DB_USER` y `make test-sql-imports` ejercita los targets públicos de importación de confianza. Las páginas detalladas documentan comandos, límites y el orden operativo seguro. - -Los directorios data, init y samples de MySQL y PostgreSQL están separados y se configuran mediante `.docker.env`. El validador de managed paths rechaza ubicaciones fuera de `data/` o `samples/`, componentes symlink, solapamientos y directorios reservados. Un sample totalmente ausente se omite; un conjunto parcial o una base inesperada se rechazan sin reparación automática. - -La preparación descarga archivos upstream fijados, comprueba su integridad y los conserva localmente; procedencia y licencias están en `THIRD_PARTY_NOTICES.md`. Los controles runtime también verifican las filas obligatorias de `demo`, lectura/escritura del usuario didáctico y samples instalados. +Tras el arranque, `make check` valida `demo` y el acceso de `DB_USER`; +`make test-sql-imports` prueba los imports públicos de confianza. Orden y +límites: [Comprobaciones y operaciones](es/operations.md). ## Seguridad y ciclo de vida -- `BIND_ADDRESS=127.0.0.1` publica servicios solo en loopback. -- `BIND_ADDRESS=0.0.0.0` los publica en todas las interfaces; configure - conscientemente firewall, credentials robustas y confianza de red. -- Los entrypoints oficiales ejecutan init solo con un data directory vacío. +- `BIND_ADDRESS=127.0.0.1` publica solo en loopback. +- `BIND_ADDRESS=0.0.0.0` expone todos los interfaces; configure antes firewall, + credenciales robustas y una red de confianza. +- Los entrypoints oficiales ejecutan init solo con datos vacíos. - `make mysql-import` y `make postgres-import` aceptan únicamente SQL de - confianza. No crean un sandbox: puede haber ejecución parcial sin rollback - automático completo. Haga backup antes de una importación importante. -- `make dump` y `make restore` cubren solo MySQL `demo`; no hay target - integrado de backup para PostgreSQL. -- Todos los targets `clean-*` y `reinit-*` son destructivos y exigen - exactamente `CONFIRM=1`. - -## Documentación - -- [Primeros pasos](es/getting-started.md) -- [Bases y samples](es/databases.md) -- [Comprobaciones y operaciones](es/operations.md) -- [Diagnóstico](es/troubleshooting.md) - -## Licencias y avisos de terceros - -Docker SQL Lab usa la licencia MIT: [LICENSE.md](../../LICENSE.md). Los samples -mantienen sus licencias upstream; fuentes, revisiones fijadas, integridad y -textos están en -[THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). + confianza. No son un sandbox: puede haber ejecución parcial sin rollback + automático completo. + Antes de un import importante, revise el archivo SQL y cree un backup adecuado. +- `make dump` y `make restore` cubren solo `demo` de MySQL; no hay target de + backup integrado para PostgreSQL. +- Cada comando `clean-*` y `reinit-*` es destructivo y exige `CONFIRM=1` exacto. + +Secuencias seguras: [Comprobaciones y operaciones](es/operations.md). +Ante fallos, reúna primero diagnósticos: [Diagnóstico](es/troubleshooting.md). + +## Licencias de los datos didácticos + +Los datasets opcionales conservan las licencias y avisos de sus proyectos +upstream. Procedencia, revisiones fijadas, integridad y textos están en +[`THIRD_PARTY_NOTICES.md`](../../THIRD_PARTY_NOTICES.md).

diff --git a/docs/langs/README_fr.md b/docs/langs/README_fr.md index 811f8af..b713347 100644 --- a/docs/langs/README_fr.md +++ b/docs/langs/README_fr.md @@ -14,9 +14,11 @@ | --- | --- | --- | --- | --- | --- | | [Русский](../../README.md) | [English](README_en.md) | [Español](README_es.md) | [中文](README_zh.md) | **Sélectionné** | [Deutsch](README_de.md) | -Environnement local fondé sur Docker Compose pour apprendre et comparer MySQL -et PostgreSQL. Chaque SGBD peut fonctionner seul, les deux peuvent fonctionner -ensemble et Adminer ne s’ajoute que lorsqu’une interface web est utile. +Un environnement Docker Compose local pour pratiquer SQL, découvrir et +comparer MySQL et PostgreSQL. Lancez chaque SGBD séparément ou les deux +ensemble. La petite base `demo` est créée automatiquement ; les datasets +optionnels Sakila, Pagila et Chinook offrent des données prêtes à interroger. +Activez Adminer uniquement au besoin. ## Stack et versions épinglées @@ -24,120 +26,136 @@ ensemble et Adminer ne s’ajoute que lorsqu’une interface web est utile. - PostgreSQL 18.4 - Adminer 5.4.2 Docker Official Image - Docker Compose v2 -- GNU Make et Bash pour les commandes et scripts d’initialisation +- GNU Make et Bash pour les commandes et scripts d'initialisation -Les versions d’images sont épinglées dans `.docker.env`. N’utilisez pas ce -laboratoire comme modèle de production sans réévaluer les identifiants, -l’exposition réseau, le stockage, les sauvegardes et l’exploitation. +Les valeurs par défaut épinglées sont définies dans +[`.docker.env.example`](../../.docker.env.example) ; `make init` crée à partir +de ce fichier le `.docker.env` local. Les services sont définis dans +[`docker-compose.yml`](../../docker-compose.yml). + +

+⚠️ Important : environnement de formation + +Ce projet n'est pas un template prêt pour la production. Un usage externe +nécessite des choix dédiés pour les identifiants, l'exposition réseau, le +stockage, les sauvegardes et l'exploitation. + +
## Fonctionnalités principales -- Services MySQL et PostgreSQL indépendants, utilisables aussi simultanément. -- Adminer optionnel, commun aux deux SGBD et sans dépendance à l’un d’eux. -- Base `demo` obligatoire dans chaque SGBD avec les mêmes cinq utilisateurs. -- Samples optionnels : Sakila et Chinook pour MySQL, Pagila et Chinook pour PostgreSQL. -- Répertoires bind-mounted data, init et samples séparés par SGBD. -- Identifiants pédagogiques communs et identifiants administratifs distincts. -- Contrôles statiques, protection des managed storage paths, contrôles runtime - et smoke-test des imports SQL de confiance. -- Confirmation explicite des opérations destructives de nettoyage et réinitialisation. +- MySQL et PostgreSQL fonctionnent séparément ou ensemble. +- Chaque SGBD possède une base `demo` obligatoire avec les mêmes seed rows. +- MySQL propose Sakila et Chinook en option ; PostgreSQL, Pagila et Chinook. +- Adminer est une interface optionnelle et indépendante pour les deux SGBD. +- Données, init et samples ont des bind mounts distincts pour chaque SGBD. +- Contrôles, imports SQL de confiance et actions destructives sont regroupés + dans le [`Makefile`](../../Makefile). ## Prérequis -- Docker Engine ou Docker Desktop avec la commande `docker compose` v2. -- GNU Make, Bash et les outils Unix utilisés par les scripts (`awk`, `sed`, - `grep`, `find`, `realpath` et `stat`). -- Pour les samples optionnels : `curl` et `git` ; MySQL demande aussi `unzip` - et `sha256sum`. +1. Docker Engine ou Docker Desktop avec `docker compose` v2. +2. GNU Make, Bash et les utilitaires Unix CLI de base utilisés par les scripts. -Exécutez les commandes depuis la racine du dépôt. La branche par défaut du -projet est `master`. +Environnements conseillés : Linux ; macOS avec Docker Desktop ; Windows avec +Docker Desktop et WSL2. Exécutez les commandes depuis la racine du dépôt. La +branche par défaut du projet est `master`. ## Démarrage rapide -Créez `.docker.env` depuis l’exemple suivi par Git, validez les chemins, créez -les répertoires de travail et démarrez le laboratoire complet : - ```bash make init make up ``` -`make up` démarre MySQL, PostgreSQL et Adminer. Avec la configuration par -défaut, Adminer est disponible sur `http://127.0.0.1:8081`. +`make init` crée le `.docker.env` local depuis +[`.docker.env.example`](../../.docker.env.example), valide les chemins gérés et +crée les répertoires de travail. Au premier démarrage, les entrypoints officiels +initialisent les deux SGBD. Sans samples optionnels, MySQL et PostgreSQL restent +opérationnels avec `demo` et ses seed rows. + +`make up` lance MySQL, PostgreSQL et Adminer ; `make up-no-ui` lance les deux +SGBD sans Adminer. Par défaut, Adminer répond sur `http://127.0.0.1:8081`. + +Modes, connexions et identifiants : +[Prise en main](fr/getting-started.md). + +### Besoin de données d'entraînement prêtes à l'emploi ? + +Les samples sont optionnels : `demo` est toujours créée ; Sakila et Chinook sont proposés pour MySQL, Pagila et Chinook pour PostgreSQL. + +**Premier démarrage avec data vide** ```bash -make status -make logs -make down +make init +make samples-mysql +make samples-postgres +make up ``` -`make down` supprime les conteneurs et le réseau, mais conserve les données -bind-mounted. +Préparez les samples avant la première initialisation ; les entrypoints les chargeront avec `demo`. -## Modes de démarrage +> **Attention :** si un répertoire data a été initialisé sans samples, leur ajout exige un backup et une réinitialisation destructive confirmée. -| Commande | MySQL | PostgreSQL | Adminer | -|---|---|---|---| -| `make up` | Démarre | Démarre | Démarre | -| `make up-no-ui` | Démarre | Démarre | Arrête | -| `make up-mysql` | Démarre | Ne démarre pas | Ne démarre pas | -| `make up-postgres` | Ne démarre pas | Démarre | Ne démarre pas | +
+Le laboratoire a déjà démarré : ajouter ou réutiliser les samples -Les commandes d’un SGBD n’arrêtent pas l’autre déjà actif ; Adminer se gère séparément. +**Déjà initialisé sans samples.** `make up` n'applique pas les nouveaux fichiers init/sample. Sauvegardez les données importantes, puis choisissez l'option adaptée : -## Connexions +- MySQL : `make samples-mysql`, puis `make reinit-mysql CONFIRM=1`. +- PostgreSQL : `make samples-postgres`, puis `make reinit-postgres CONFIRM=1`. +- Les deux SGBD : `make samples-mysql`, `make samples-postgres`, puis `make reinit-all CONFIRM=1`. -### Adminer +> **Attention :** `reinit-*` supprime les données sélectionnées et exige exactement `CONFIRM=1`. -Dans le réseau Compose, Adminer propose deux serveurs prédéfinis : +**Samples déjà installés.** Utilisez `make up` ou le `make up-*` choisi : aucun nouveau download ni reinit ; les bases persistent dans le stockage bind-mounted. -```text -MySQL (mysql) -PostgreSQL (postgres) -``` +
-Choisissez un serveur, puis saisissez `DB_USER`, `DB_PASSWORD` et une base telle -que `demo`. `mysql` et `postgres` sont des noms internes au réseau Compose, pas -des noms d’hôte pour les clients desktop. +Détails : [Bases et samples](fr/databases.md). -### Clients sur l’hôte +## Modes de démarrage -| SGBD | Hôte par défaut | Variable de port | Utilisateur | Base par défaut | -|---|---|---|---|---| -| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | -| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | +| Commande | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | Lance | Lance | Lance | +| `make up-no-ui` | Lance | Lance | Arrête | +| `make up-mysql` | Lance | Ne lance pas | Ne lance pas | +| `make up-postgres` | Ne lance pas | Lance | Ne lance pas | -DataGrip, DBeaver, PhpStorm et les CLI de l’hôte utilisent l’adresse et le port -publiés. Si `BIND_ADDRESS` change, utilisez l’adresse joignable de l’interface. +Une commande mono-SGBD n'arrête pas l'autre ; Adminer se gère séparément. La +liste complète figure dans le [`Makefile`](../../Makefile). -### CLI dans les conteneurs +## Connexions et bases disponibles -Les mots de passe passent par l’environnement du conteneur et non par -l’historique du shell : +Dans le réseau Compose, Adminer utilise `mysql` et `postgres`. Les clients de +l'hôte utilisent `127.0.0.1` et `MYSQL_PORT` ou `POSTGRES_PORT`. Pour les +exercices, utilisez `DB_USER` et `DB_PASSWORD`. -```bash -make mysql # administrateur MySQL, base demo -make mysql-user # DB_USER, base demo -make postgres # superutilisateur PostgreSQL, base demo -make postgres-user # DB_USER, base demo -``` +| SGBD | Toujours disponible | Après initialisation des samples | +|---|---|---| +| MySQL | `demo` | `sakila`, `chinook` | +| PostgreSQL | `demo` | `pagila`, `chinook` | + +Les bases optionnelles n'existent qu'après leur initialisation effective. +Détails : [démarrage et connexions](fr/getting-started.md) · +[bases et samples](fr/databases.md). ## Identifiants en bref | Usage | Utilisateur | Mot de passe | |---|---|---| -| Utilisateur pédagogique commun | `DB_USER` | `DB_PASSWORD` | +| Utilisateur de formation commun | `DB_USER` | `DB_PASSWORD` | | Administrateur MySQL | `root` | `MYSQL_ROOT_PASSWORD` | -| Superutilisateur PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | +| Superuser PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -`POSTGRES_SUPERUSER` et `DB_USER` doivent être des rôles distincts. Utilisez l’utilisateur pédagogique commun pour les exercices et remplacez les mots de passe d’exemple avant toute publication. +`POSTGRES_SUPERUSER` et `DB_USER` doivent être distincts. Utilisez le compte de +formation et remplacez les mots de passe d'exemple avant toute publication. ## Bases et contrôles essentiels -Les deux SGBD créent la base obligatoire `demo` avec une table `demo_users` équivalente. Les samples optionnels sont Chinook et Sakila pour MySQL, Pagila et Chinook pour PostgreSQL. Leur préparation ne les importe pas dans des données déjà initialisées. - -Ces contrôles statiques ne demandent aucun SGBD actif : +Les deux `demo` contiennent une table `demo_users` équivalente de cinq lignes. +Ces contrôles ne nécessitent aucun SGBD lancé : ```bash make check-env @@ -145,39 +163,33 @@ make config make test-storage-paths ``` -Après le démarrage des deux SGBD, `make check` vérifie l’accès de `DB_USER` et `make test-sql-imports` exerce les targets publics d’import de confiance. Les pages détaillées couvrent commandes, limites et ordre opératoire sûr. - -Les répertoires data, init et samples de MySQL et PostgreSQL restent séparés et se configurent via `.docker.env`. Le validateur de managed paths refuse toute sortie de `data/` ou `samples/`, composant symlink, chevauchement ou répertoire réservé. Un sample totalement absent est ignoré ; un ensemble partiel ou une base inattendue est refusé sans réparation automatique. - -La préparation télécharge des fichiers upstream épinglés, vérifie leur intégrité et les conserve localement ; provenance et licences figurent dans `THIRD_PARTY_NOTICES.md`. Les contrôles runtime vérifient aussi les lignes obligatoires de `demo`, l’accès lecture/écriture pédagogique et les samples installés. +Après démarrage, `make check` vérifie `demo` et l'accès de `DB_USER` ; +`make test-sql-imports` teste les imports publics de confiance. Ordre et +limites : [Contrôles et opérations](fr/operations.md). ## Sécurité et cycle de vie -- `BIND_ADDRESS=127.0.0.1` ne publie les services que sur loopback. -- `BIND_ADDRESS=0.0.0.0` les publie sur toutes les interfaces ; configurez - volontairement firewall, credentials robustes et confiance réseau. -- Les entrypoints officiels n’exécutent init que pour un data directory vide. -- `make mysql-import` et `make postgres-import` n’acceptent que du SQL de - confiance. Ils ne créent pas de sandbox : une exécution partielle est - possible sans rollback automatique complet. Faites un backup auparavant. -- `make dump` et `make restore` couvrent uniquement MySQL `demo` ; aucun - target de backup PostgreSQL n’est intégré. -- Tous les targets `clean-*` et `reinit-*` sont destructifs et exigent - exactement `CONFIRM=1`. - -## Documentation - -- [Bien démarrer](fr/getting-started.md) -- [Bases et samples](fr/databases.md) -- [Contrôles et opérations](fr/operations.md) -- [Diagnostic et dépannage](fr/troubleshooting.md) - -## Licences et mentions de tiers - -Docker SQL Lab est sous licence MIT : [LICENSE.md](../../LICENSE.md). Les -samples conservent leurs licences upstream ; sources, révisions épinglées, -intégrité et textes figurent dans -[THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md). +- `BIND_ADDRESS=127.0.0.1` publie uniquement sur loopback. +- `BIND_ADDRESS=0.0.0.0` expose toutes les interfaces ; configurez d'abord + firewall, identifiants robustes et réseau de confiance. +- Les entrypoints officiels exécutent init uniquement sur des données vides. +- `make mysql-import` et `make postgres-import` n'acceptent que du SQL de + confiance. Ce n'est pas un sandbox : une exécution partielle sans rollback + automatique complet reste possible. + Avant un import important, vérifiez le fichier SQL et créez un backup adapté. +- `make dump` et `make restore` couvrent seulement `demo` MySQL ; aucun target + de backup PostgreSQL n'est intégré. +- Tout `clean-*` et `reinit-*` est destructif et exige exactement `CONFIRM=1`. + +Séquences sûres : [Contrôles et opérations](fr/operations.md). En cas d'échec, +collectez d'abord le diagnostic : +[Diagnostic et dépannage](fr/troubleshooting.md). + +## Licences des données d'entraînement + +Les datasets optionnels conservent les licences et notices de leurs projets +upstream. Provenance, révisions épinglées, intégrité et textes figurent dans +[`THIRD_PARTY_NOTICES.md`](../../THIRD_PARTY_NOTICES.md).

diff --git a/docs/langs/README_zh.md b/docs/langs/README_zh.md index ca9f2e1..646c5c6 100644 --- a/docs/langs/README_zh.md +++ b/docs/langs/README_zh.md @@ -14,9 +14,10 @@ | --- | --- | --- | --- | --- | --- | | [Русский](../../README.md) | [English](README_en.md) | [Español](README_es.md) | **已选择** | [Français](README_fr.md) | [Deutsch](README_de.md) | -这是一个基于 Docker Compose 的本地环境,用于学习和比较 MySQL 与 -PostgreSQL。两种数据库既可独立运行,也可同时运行;仅在需要浏览器 -界面时启用 Adminer。 +用于练习 SQL、了解并比较 MySQL 与 PostgreSQL 的本地 Docker Compose +实验环境。两种数据库既可单独启动,也可同时运行。精简的 `demo` +数据库会自动创建;可选的 Sakila、Pagila 和 Chinook 数据集提供开箱即用 +的查询练习数据。仅在需要时启用 Adminer。 ## 技术栈与固定版本 @@ -24,116 +25,134 @@ PostgreSQL。两种数据库既可独立运行,也可同时运行;仅在需 - PostgreSQL 18.4 - Adminer 5.4.2 Docker Official Image - Docker Compose v2 -- GNU Make 和 Bash,用于项目命令及初始化脚本 +- GNU Make 与 Bash,用于项目命令和初始化脚本 -镜像版本固定在 `.docker.env` 中。在将本项目用于生产环境之前,必须 -单独评估凭据、网络暴露、存储、备份和运维要求。 +固定的默认值定义在 +[`.docker.env.example`](../../.docker.env.example);`make init` 会据此创建 +本地 `.docker.env`。服务定义在 +[`docker-compose.yml`](../../docker-compose.yml)。 + +

+⚠️ 重要:这是学习环境 + +本项目不是可直接用于 production 的模板。对外使用前,必须另行设计 +credentials、网络暴露、存储、备份与运维方案。 + +
## 主要功能 -- MySQL 与 PostgreSQL 相互独立,也可以同时运行。 -- Adminer 为可选组件,可连接两种数据库,不依赖某个特定数据库服务。 -- 每种数据库都有必需的 `demo` 数据库和相同的五个示例用户。 -- 可选 samples:MySQL 使用 Sakila 和 Chinook;PostgreSQL 使用 Pagila 和 Chinook。 -- 每种数据库的 data、init 和 sample bind mount 相互分离。 -- 两种数据库共用学习凭据,管理员凭据彼此独立。 -- 提供静态配置检查、managed storage path 保护、runtime 访问检查和 - trusted SQL import smoke-test。 -- 清理与重新初始化等破坏性命令必须显式确认。 +- MySQL 与 PostgreSQL 可单独运行,也可同时运行。 +- 每种数据库都有必需的 `demo`,并包含相同的 seed rows。 +- MySQL 可选 Sakila 和 Chinook;PostgreSQL 可选 Pagila 和 Chinook。 +- Adminer 是供两种数据库共用、独立启用的可选界面。 +- 两种数据库分别使用 bind-mounted data、init 与 sample 目录。 +- 配置与访问检查、可信 SQL 导入和 destructive 操作集中在 + [`Makefile`](../../Makefile)。 ## 要求 -- Docker Engine 或 Docker Desktop,并支持 `docker compose` v2 命令。 -- GNU Make、Bash,以及脚本使用的 Unix 工具:`awk`、`sed`、`grep`、 - `find`、`realpath` 和 `stat`。 -- 下载可选 samples 需要 `curl` 和 `git`;MySQL 还需要 `unzip` 与 - `sha256sum`。 +1. Docker Engine 或带有 `docker compose` v2 的 Docker Desktop。 +2. GNU Make、Bash 以及脚本使用的基础 Unix CLI 工具。 -请在仓库根目录执行命令。项目默认分支为 `master`。 +推荐环境:Linux;装有 Docker Desktop 的 macOS;Docker Desktop + +WSL2 的 Windows。所有命令都从仓库根目录执行。项目默认分支为 +`master`。 ## 快速开始 -从受版本控制的示例创建 `.docker.env`,验证路径,创建工作目录并启动 -完整环境: - ```bash make init make up ``` -`make up` 会启动 MySQL、PostgreSQL 和 Adminer。默认配置下,Adminer -地址为 `http://127.0.0.1:8081`。 +`make init` 从受版本控制的 +[`.docker.env.example`](../../.docker.env.example) 创建本地 `.docker.env`, +检查 managed paths 并创建工作目录。首次启动容器时,官方 entrypoints +会初始化两种数据库。即使不安装可选 samples,MySQL 与 PostgreSQL +仍可正常使用,并都包含必需的 `demo` 与 seed rows。 + +`make up` 启动 MySQL、PostgreSQL 和 Adminer;`make up-no-ui` 只启动两种 +数据库。默认可通过 `http://127.0.0.1:8081` 访问 Adminer。 + +启动模式、连接与凭据详见:[入门](zh/getting-started.md)。 + +### 需要现成的练习数据吗? + +Samples 并非必需:`demo` 始终创建;MySQL 支持 Sakila 和 Chinook,PostgreSQL 支持 Pagila 和 Chinook。 + +**首次启动,data 目录为空** ```bash -make status -make logs -make down +make init +make samples-mysql +make samples-postgres +make up ``` -`make down` 删除容器和网络,但保留 bind-mounted 数据。 +请在首次初始化前准备 samples;官方 entrypoints 会将它们与 `demo` 一起载入。 -## 启动模式 +> **警告:** 如果 data 目录已在没有 samples 时初始化,添加 samples 需要先做 backup,并明确确认 destructive reinit。 -| 命令 | MySQL | PostgreSQL | Adminer | -|---|---|---|---| -| `make up` | 启动 | 启动 | 启动 | -| `make up-no-ui` | 启动 | 启动 | 停止 | -| `make up-mysql` | 启动 | 不启动 | 不启动 | -| `make up-postgres` | 不启动 | 启动 | 不启动 | +
+环境已启动过:添加或继续使用 samples -单数据库命令不会停止另一种已运行的数据库;Adminer 可单独管理。 +**已在没有 samples 时初始化。** 普通的 `make up` 不会应用新增的 init/sample 文件。请先备份重要数据,再选择对应方式: -## 连接 +- MySQL:`make samples-mysql`,然后 `make reinit-mysql CONFIRM=1`。 +- PostgreSQL:`make samples-postgres`,然后 `make reinit-postgres CONFIRM=1`。 +- 两种数据库:`make samples-mysql`、`make samples-postgres`,然后 `make reinit-all CONFIRM=1`。 -### Adminer +> **警告:** `reinit-*` 会删除所选数据库的数据,且只有准确提供 `CONFIRM=1` 才会执行。 -在 Compose 网络内,Adminer 提供两个预设服务器: +**Samples 已安装。** 直接使用 `make up` 或所选的 `make up-*`:无需重复 download 或 reinit,数据库会保留在 bind-mounted storage 中。 -```text -MySQL (mysql) -PostgreSQL (postgres) -``` +
-选择服务器后,使用 `DB_USER`、`DB_PASSWORD` 和数据库名(如 `demo`) -登录。`mysql` 与 `postgres` 是 Compose 内部服务名,不是桌面客户端的 -主机名。 +详见:[数据库与 samples](zh/databases.md)。 -### 主机客户端 +## 启动模式 -| 数据库 | 默认主机 | 端口变量 | 用户 | 默认数据库 | -|---|---|---|---|---| -| MySQL | `127.0.0.1` | `MYSQL_PORT` | `DB_USER` | `demo` | -| PostgreSQL | `127.0.0.1` | `POSTGRES_PORT` | `DB_USER` | `demo` | +| 命令 | MySQL | PostgreSQL | Adminer | +|---|---|---|---| +| `make up` | 启动 | 启动 | 启动 | +| `make up-no-ui` | 启动 | 启动 | 停止 | +| `make up-mysql` | 启动 | 不启动 | 不启动 | +| `make up-postgres` | 不启动 | 启动 | 不启动 | -DataGrip、DBeaver、PhpStorm 和主机 CLI 使用发布的地址与端口。如果修改 -`BIND_ADDRESS`,请按需改用对应接口可达的地址。 +单数据库命令不会停止另一个已运行的数据库;Adminer 单独管理。完整 +targets 列表见 [`Makefile`](../../Makefile)。 -### 容器内 CLI +## 连接与可用数据库 -Make targets 通过容器环境传递密码,不会把密码写入 shell history: +在 Compose 网络内,Adminer 使用 `mysql` 和 `postgres`。宿主机客户端 +使用 `127.0.0.1` 以及配置的 `MYSQL_PORT` 或 `POSTGRES_PORT`。日常练习 +使用 `DB_USER` 和 `DB_PASSWORD`。 -```bash -make mysql # MySQL 管理员,demo 数据库 -make mysql-user # DB_USER,demo 数据库 -make postgres # PostgreSQL 超级用户,demo 数据库 -make postgres-user # DB_USER,demo 数据库 -``` +| 数据库 | 始终可用 | 可选 samples 初始化后 | +|---|---|---| +| MySQL | `demo` | `sakila`、`chinook` | +| PostgreSQL | `demo` | `pagila`、`chinook` | + +可选数据库只有在实际初始化后才存在。详见: +[启动与连接](zh/getting-started.md) · +[数据库与 samples](zh/databases.md)。 ## 凭据概览 | 用途 | 用户 | 密码 | |---|---|---| -| 两种数据库共用的学习用户 | `DB_USER` | `DB_PASSWORD` | +| 共用学习用户 | `DB_USER` | `DB_PASSWORD` | | MySQL 管理员 | `root` | `MYSQL_ROOT_PASSWORD` | -| PostgreSQL 超级用户 | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | +| PostgreSQL superuser | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | -`POSTGRES_SUPERUSER` 与 `DB_USER` 必须是不同角色。日常练习应使用共用学习用户;发布服务前请替换示例密码。 +`POSTGRES_SUPERUSER` 与 `DB_USER` 必须是不同角色。练习时使用学习用户; +对外发布服务前请替换示例密码。 ## 数据库与关键检查 -两种数据库都会创建必需的 `demo`,其中包含等价的 `demo_users` 表。MySQL 的可选 samples 是 Chinook 与 Sakila,PostgreSQL 的是 Pagila 与 Chinook。准备 samples 不会将其导入已初始化的数据。 - -以下静态检查不要求数据库正在运行: +两种 `demo` 都包含等价的 `demo_users` 表和五行数据。以下静态检查 +无需启动数据库: ```bash make check-env @@ -141,38 +160,32 @@ make config make test-storage-paths ``` -启动两种数据库后,`make check` 验证 `DB_USER` 访问,`make test-sql-imports` 测试公共 trusted import targets。下方详细文档列出了全部命令、限制与安全操作顺序。 - -MySQL 与 PostgreSQL 的 data、init 和 sample 目录彼此分离,并通过 `.docker.env` 配置。Managed path validator 会拒绝 `data/` 或 `samples/` 之外的位置、symlink 组件、路径重叠以及 reserved directories。可选 sample 完全缺失时会被跳过;若文件集合不完整或 sample 数据库意外存在,则会报错且不会自动修复。 - -Sample 准备命令下载固定 revision 的 upstream 文件、校验 integrity,并只保存在本地;来源与许可见 `THIRD_PARTY_NOTICES.md`。Runtime 检查还会验证 `demo` 必需行、学习用户的读写访问以及已安装 samples。所有数据库连接都应优先使用 `DB_USER`,仅在管理操作确实需要时才使用独立的管理员 credentials。 +启动后,`make check` 检查 `demo` 与 `DB_USER` 访问; +`make test-sql-imports` 测试公开的可信导入 targets。顺序与限制详见: +[检查与运维](zh/operations.md)。 ## 安全与生命周期 -- `BIND_ADDRESS=127.0.0.1` 仅在 loopback 发布服务。 -- `BIND_ADDRESS=0.0.0.0` 会在所有接口发布服务;必须明确配置 firewall、 - 强 credentials,并确认网络可信度。 -- 官方 entrypoints 仅对空 data 目录执行 init。 -- `make mysql-import` 与 `make postgres-import` 只接受 trusted SQL。 - 它们不创建 sandbox;可能 partial execution,且不保证完整 automatic - rollback。重要导入前先做 backup。 -- 内置 `make dump` 和 `make restore` 仅覆盖 MySQL `demo`; - PostgreSQL 没有内置 backup target。 -- 所有 `clean-*` 与 `reinit-*` 都是 destructive 操作,并要求精确的 +- `BIND_ADDRESS=127.0.0.1` 仅在 loopback 上发布服务。 +- `BIND_ADDRESS=0.0.0.0` 会暴露所有网络接口;请先配置 firewall、 + 强凭据与可信网络。 +- 官方 entrypoints 仅在 data 为空时执行 init。 +- `make mysql-import` 与 `make postgres-import` 只接受可信 SQL。它们不是 + sandbox:可能部分执行,且不保证完整自动 rollback。 + 重要导入前,请检查 SQL 文件并创建合适的 backup。 +- 内置 `make dump` 与 `make restore` 只覆盖 MySQL `demo`;没有内置 + PostgreSQL backup target。 +- 所有 `clean-*` 与 `reinit-*` 都是 destructive 操作,并且必须准确提供 `CONFIRM=1`。 -## 文档 - -- [开始使用](zh/getting-started.md) -- [数据库与 samples](zh/databases.md) -- [检查与运维](zh/operations.md) -- [诊断与故障排除](zh/troubleshooting.md) +安全操作顺序:[检查与运维](zh/operations.md)。出现问题时先收集诊断: +[诊断与故障排除](zh/troubleshooting.md)。 -## 许可与第三方声明 +## 练习数据许可证 -Docker SQL Lab 使用 MIT License,见 [LICENSE.md](../../LICENSE.md)。 -可选 samples 保留 upstream 许可;来源、固定 revision、完整性信息和许可 -文本见 [THIRD_PARTY_NOTICES.md](../../THIRD_PARTY_NOTICES.md)。 +可选数据集保留各 upstream 项目的许可证与 notices。来源、固定 +revision、完整性信息与许可证文本见 +[`THIRD_PARTY_NOTICES.md`](../../THIRD_PARTY_NOTICES.md)。

diff --git a/docs/langs/de/databases.md b/docs/langs/de/databases.md index 2e92ee8..d6ba506 100644 --- a/docs/langs/de/databases.md +++ b/docs/langs/de/databases.md @@ -2,9 +2,17 @@ [← Zurück zur README](../README_de.md) -[Русский](../ru/databases.md) | [English](../en/databases.md) | [Español](../es/databases.md) | [中文](../zh/databases.md) | [Français](../fr/databases.md) | **Deutsch — Ausgewählt** +## Sprache -**Seiten in dieser Sprache:** [Erste Schritte](getting-started.md) · **Datenbanken und Samples** · [Prüfungen und Betrieb](operations.md) · [Diagnose und Fehlerbehebung](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/databases.md) | [English](../en/databases.md) | [Español](../es/databases.md) | [中文](../zh/databases.md) | [Français](../fr/databases.md) | **Ausgewählt** | + +## Abschnitt + +| Erste Schritte | Datenbanken und Samples | Prüfungen und Betrieb | Diagnose und Fehlerbehebung | +| --- | --- | --- | --- | +| [Erste Schritte](getting-started.md) | **Ausgewählt** | [Prüfungen und Betrieb](operations.md) | [Diagnose und Fehlerbehebung](troubleshooting.md) | ## Obligatorische `demo`-Datenbanken @@ -30,6 +38,8 @@ zulässig. `make check-env` verlangt `MYSQL_DATABASE=demo` und ## Samples vorbereiten +Die Vorbereitung benötigt `curl` und `git`; MySQL-Samples erfordern zusätzlich `unzip` und `sha256sum`. + Die Vorbereitung lädt festgelegte upstream-Dateien herunter und prüft sie, startet aber keine Container und importiert nichts in bereits initialisierte Datenbanken. Temporäre Downloads bleiben lokal, werden nicht committed und diff --git a/docs/langs/de/getting-started.md b/docs/langs/de/getting-started.md index 23807e4..1b587c2 100644 --- a/docs/langs/de/getting-started.md +++ b/docs/langs/de/getting-started.md @@ -2,9 +2,17 @@ [← Zurück zur README](../README_de.md) -[Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | **Deutsch — Ausgewählt** +## Sprache -**Seiten in dieser Sprache:** **Erste Schritte** · [Datenbanken und Samples](databases.md) · [Prüfungen und Betrieb](operations.md) · [Diagnose und Fehlerbehebung](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | **Ausgewählt** | + +## Abschnitt + +| Erste Schritte | Datenbanken und Samples | Prüfungen und Betrieb | Diagnose und Fehlerbehebung | +| --- | --- | --- | --- | +| **Ausgewählt** | [Datenbanken und Samples](databases.md) | [Prüfungen und Betrieb](operations.md) | [Diagnose und Fehlerbehebung](troubleshooting.md) | ## Voraussetzungen @@ -113,7 +121,7 @@ make postgres-user # DB_USER, Datenbank demo ## Zugangsdaten -`.docker.env` wird aus `.docker.env.example` erstellt und von Git ignoriert. +`.docker.env` wird aus [`.docker.env.example`](../../../.docker.env.example) erstellt und von Git ignoriert. Bewahren Sie Passwörter dort auf; codieren Sie sie nicht in versioniertem Compose, SQL oder Client-Konfigurationen. diff --git a/docs/langs/de/operations.md b/docs/langs/de/operations.md index a5d6786..f58a41f 100644 --- a/docs/langs/de/operations.md +++ b/docs/langs/de/operations.md @@ -2,13 +2,23 @@ [← Zurück zur README](../README_de.md) -[Русский](../ru/operations.md) | [English](../en/operations.md) | [Español](../es/operations.md) | [中文](../zh/operations.md) | [Français](../fr/operations.md) | **Deutsch — Ausgewählt** +## Sprache -**Seiten in dieser Sprache:** [Erste Schritte](getting-started.md) · [Datenbanken und Samples](databases.md) · **Prüfungen und Betrieb** · [Diagnose und Fehlerbehebung](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/operations.md) | [English](../en/operations.md) | [Español](../es/operations.md) | [中文](../zh/operations.md) | [Français](../fr/operations.md) | **Ausgewählt** | + +## Abschnitt + +| Erste Schritte | Datenbanken und Samples | Prüfungen und Betrieb | Diagnose und Fehlerbehebung | +| --- | --- | --- | --- | +| [Erste Schritte](getting-started.md) | [Datenbanken und Samples](databases.md) | **Ausgewählt** | [Diagnose und Fehlerbehebung](troubleshooting.md) | ## Öffentliche Make targets +Öffentliche Targets und ihre Implementierung stehen im [`Makefile`](../../../Makefile). + Wichtige Targets sind `make init`, `make up`, `make down`, `make check`, `make test-storage-paths`, `make test-sql-imports`, `make mysql-import` und `make postgres-import`. Vertrauenswürdiges SQL ist keine isolierte Umgebung (`sandbox`), kann diff --git a/docs/langs/de/troubleshooting.md b/docs/langs/de/troubleshooting.md index 376155f..5382a6b 100644 --- a/docs/langs/de/troubleshooting.md +++ b/docs/langs/de/troubleshooting.md @@ -2,9 +2,17 @@ [← Zurück zur README](../README_de.md) -[Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | **Deutsch — Ausgewählt** +## Sprache -**Seiten in dieser Sprache:** [Erste Schritte](getting-started.md) · [Datenbanken und Samples](databases.md) · [Prüfungen und Betrieb](operations.md) · **Diagnose und Fehlerbehebung** +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | **Ausgewählt** | + +## Abschnitt + +| Erste Schritte | Datenbanken und Samples | Prüfungen und Betrieb | Diagnose und Fehlerbehebung | +| --- | --- | --- | --- | +| [Erste Schritte](getting-started.md) | [Datenbanken und Samples](databases.md) | [Prüfungen und Betrieb](operations.md) | **Ausgewählt** | Sammeln Sie zuerst Diagnosedaten und korrigieren Sie dann die konkrete Ursache. Falls eine Neuinitialisierung nötig bleibt, erstellen Sie ein Backup diff --git a/docs/langs/en/databases.md b/docs/langs/en/databases.md index 418f755..54651b5 100644 --- a/docs/langs/en/databases.md +++ b/docs/langs/en/databases.md @@ -2,9 +2,17 @@ [← Back to README](../README_en.md) -[Русский](../ru/databases.md) | **English — Selected** | [Español](../es/databases.md) | [中文](../zh/databases.md) | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) +## Language -**Pages in this language:** [Getting started](getting-started.md) · **Databases and samples** · [Validation and operations](operations.md) · [Troubleshooting](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/databases.md) | **Selected** | [Español](../es/databases.md) | [中文](../zh/databases.md) | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) | + +## Section + +| Getting started | Databases and samples | Validation and operations | Troubleshooting | +| --- | --- | --- | --- | +| [Getting started](getting-started.md) | **Selected** | [Validation and operations](operations.md) | [Troubleshooting](troubleshooting.md) | ## Required `demo` databases @@ -32,6 +40,8 @@ The default database names are enforced by `make check-env` through ## Sample preparation +Preparation requires `curl` and `git`; MySQL samples additionally require `unzip` and `sha256sum`. + The preparation commands download and verify pinned upstream files but do not start containers or import into an initialized database. Downloads are local, are excluded from Git, and are stored under `MYSQL_SAMPLES_DIR` or diff --git a/docs/langs/en/getting-started.md b/docs/langs/en/getting-started.md index 075855d..4d0d12c 100644 --- a/docs/langs/en/getting-started.md +++ b/docs/langs/en/getting-started.md @@ -2,9 +2,17 @@ [← Back to README](../README_en.md) -[Русский](../ru/getting-started.md) | **English — Selected** | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) +## Language -**Pages in this language:** **Getting started** · [Databases and samples](databases.md) · [Validation and operations](operations.md) · [Troubleshooting](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/getting-started.md) | **Selected** | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) | + +## Section + +| Getting started | Databases and samples | Validation and operations | Troubleshooting | +| --- | --- | --- | --- | +| **Selected** | [Databases and samples](databases.md) | [Validation and operations](operations.md) | [Troubleshooting](troubleshooting.md) | ## Requirements @@ -119,7 +127,7 @@ make postgres-user # DB_USER, demo database ## Credentials -Copying `.docker.env.example` creates `.docker.env`; the latter is ignored by +Copying [`.docker.env.example`](../../../.docker.env.example) creates `.docker.env`; the latter is ignored by Git. Keep passwords there and do not hardcode them in Compose, SQL, or client configuration committed to the repository. diff --git a/docs/langs/en/operations.md b/docs/langs/en/operations.md index 47a5dc4..6abc2b4 100644 --- a/docs/langs/en/operations.md +++ b/docs/langs/en/operations.md @@ -2,13 +2,23 @@ [← Back to README](../README_en.md) -[Русский](../ru/operations.md) | **English — Selected** | [Español](../es/operations.md) | [中文](../zh/operations.md) | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) +## Language -**Pages in this language:** [Getting started](getting-started.md) · [Databases and samples](databases.md) · **Validation and operations** · [Troubleshooting](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/operations.md) | **Selected** | [Español](../es/operations.md) | [中文](../zh/operations.md) | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) | + +## Section + +| Getting started | Databases and samples | Validation and operations | Troubleshooting | +| --- | --- | --- | --- | +| [Getting started](getting-started.md) | [Databases and samples](databases.md) | **Selected** | [Troubleshooting](troubleshooting.md) | ## Make targets +Public targets and their implementation are in the [`Makefile`](../../../Makefile). + Key targets include `make init`, `make up`, `make down`, `make check`, `make test-storage-paths`, `make test-sql-imports`, `make mysql-import`, and `make postgres-import`. Trusted SQL is not a sandbox, may execute diff --git a/docs/langs/en/troubleshooting.md b/docs/langs/en/troubleshooting.md index 147f9c9..80aacae 100644 --- a/docs/langs/en/troubleshooting.md +++ b/docs/langs/en/troubleshooting.md @@ -2,9 +2,17 @@ [← Back to README](../README_en.md) -[Русский](../ru/troubleshooting.md) | **English — Selected** | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) +## Language -**Pages in this language:** [Getting started](getting-started.md) · [Databases and samples](databases.md) · [Validation and operations](operations.md) · **Troubleshooting** +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/troubleshooting.md) | **Selected** | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) | + +## Section + +| Getting started | Databases and samples | Validation and operations | Troubleshooting | +| --- | --- | --- | --- | +| [Getting started](getting-started.md) | [Databases and samples](databases.md) | [Validation and operations](operations.md) | **Selected** | Collect diagnostics first, then correct the specific cause. If a reinitialization is still required, create a backup and use confirmed diff --git a/docs/langs/es/databases.md b/docs/langs/es/databases.md index ffb1d40..6630e95 100644 --- a/docs/langs/es/databases.md +++ b/docs/langs/es/databases.md @@ -2,9 +2,17 @@ [← Volver al README](../README_es.md) -[Русский](../ru/databases.md) | [English](../en/databases.md) | **Español — Seleccionado** | [中文](../zh/databases.md) | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) +## Idioma -**Páginas de este idioma:** [Primeros pasos](getting-started.md) · **Bases y samples** · [Comprobaciones y operaciones](operations.md) · [Diagnóstico](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/databases.md) | [English](../en/databases.md) | **Seleccionado** | [中文](../zh/databases.md) | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) | + +## Sección + +| Primeros pasos | Bases y samples | Comprobaciones y operaciones | Diagnóstico | +| --- | --- | --- | --- | +| [Primeros pasos](getting-started.md) | **Seleccionado** | [Comprobaciones y operaciones](operations.md) | [Diagnóstico](troubleshooting.md) | ## Bases `demo` obligatorias @@ -30,6 +38,8 @@ admiten filas adicionales. `make check-env` exige `MYSQL_DATABASE=demo` y ## Preparación de samples +La preparación requiere `curl` y `git`; los samples MySQL también necesitan `unzip` y `sha256sum`. + La preparación descarga y verifica archivos upstream fijados, pero no inicia contenedores ni importa en una base ya inicializada. Las descargas temporales son locales, no se versionan y quedan bajo `MYSQL_SAMPLES_DIR` o diff --git a/docs/langs/es/getting-started.md b/docs/langs/es/getting-started.md index aa1415f..bfbb257 100644 --- a/docs/langs/es/getting-started.md +++ b/docs/langs/es/getting-started.md @@ -2,9 +2,17 @@ [← Volver al README](../README_es.md) -[Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | **Español — Seleccionado** | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) +## Idioma -**Páginas de este idioma:** **Primeros pasos** · [Bases y samples](databases.md) · [Comprobaciones y operaciones](operations.md) · [Diagnóstico](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | **Seleccionado** | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) | + +## Sección + +| Primeros pasos | Bases y samples | Comprobaciones y operaciones | Diagnóstico | +| --- | --- | --- | --- | +| **Seleccionado** | [Bases y samples](databases.md) | [Comprobaciones y operaciones](operations.md) | [Diagnóstico](troubleshooting.md) | ## Requisitos @@ -112,7 +120,7 @@ make postgres-user # DB_USER, base demo ## Credenciales -`.docker.env` se crea a partir de `.docker.env.example` y está ignorado por +`.docker.env` se crea a partir de [`.docker.env.example`](../../../.docker.env.example) y está ignorado por Git. Guarde allí las contraseñas; no las codifique en Compose, SQL ni en configuración de cliente versionada. diff --git a/docs/langs/es/operations.md b/docs/langs/es/operations.md index 4c29358..97b816b 100644 --- a/docs/langs/es/operations.md +++ b/docs/langs/es/operations.md @@ -2,13 +2,23 @@ [← Volver al README](../README_es.md) -[Русский](../ru/operations.md) | [English](../en/operations.md) | **Español — Seleccionado** | [中文](../zh/operations.md) | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) +## Idioma -**Páginas de este idioma:** [Primeros pasos](getting-started.md) · [Bases y samples](databases.md) · **Comprobaciones y operaciones** · [Diagnóstico](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/operations.md) | [English](../en/operations.md) | **Seleccionado** | [中文](../zh/operations.md) | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) | + +## Sección + +| Primeros pasos | Bases y samples | Comprobaciones y operaciones | Diagnóstico | +| --- | --- | --- | --- | +| [Primeros pasos](getting-started.md) | [Bases y samples](databases.md) | **Seleccionado** | [Diagnóstico](troubleshooting.md) | ## Targets públicos de Make +Los targets públicos y su implementación están en el [`Makefile`](../../../Makefile). + Targets clave: `make init`, `make up`, `make down`, `make check`, `make test-storage-paths`, `make test-sql-imports`, `make mysql-import` y `make postgres-import`. El SQL de confianza no es un sandbox, puede diff --git a/docs/langs/es/troubleshooting.md b/docs/langs/es/troubleshooting.md index 3be6618..ca1c6cc 100644 --- a/docs/langs/es/troubleshooting.md +++ b/docs/langs/es/troubleshooting.md @@ -2,9 +2,17 @@ [← Volver al README](../README_es.md) -[Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | **Español — Seleccionado** | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) +## Idioma -**Páginas de este idioma:** [Primeros pasos](getting-started.md) · [Bases y samples](databases.md) · [Comprobaciones y operaciones](operations.md) · **Diagnóstico** +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | **Seleccionado** | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) | + +## Sección + +| Primeros pasos | Bases y samples | Comprobaciones y operaciones | Diagnóstico | +| --- | --- | --- | --- | +| [Primeros pasos](getting-started.md) | [Bases y samples](databases.md) | [Comprobaciones y operaciones](operations.md) | **Seleccionado** | Primero reúna diagnósticos y después corrija la causa concreta. Si aún hace falta reinicializar, cree un backup y use `reinit-... CONFIRM=1` solo diff --git a/docs/langs/fr/databases.md b/docs/langs/fr/databases.md index 1c73a33..3a63027 100644 --- a/docs/langs/fr/databases.md +++ b/docs/langs/fr/databases.md @@ -2,9 +2,17 @@ [← Retour au README](../README_fr.md) -[Русский](../ru/databases.md) | [English](../en/databases.md) | [Español](../es/databases.md) | [中文](../zh/databases.md) | **Français — Sélectionné** | [Deutsch](../de/databases.md) +## Langue -**Pages dans cette langue:** [Prise en main](getting-started.md) · **Bases et samples** · [Contrôles et opérations](operations.md) · [Diagnostic et dépannage](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/databases.md) | [English](../en/databases.md) | [Español](../es/databases.md) | [中文](../zh/databases.md) | **Sélectionné** | [Deutsch](../de/databases.md) | + +## Section + +| Prise en main | Bases et samples | Contrôles et opérations | Diagnostic et dépannage | +| --- | --- | --- | --- | +| [Prise en main](getting-started.md) | **Sélectionné** | [Contrôles et opérations](operations.md) | [Diagnostic et dépannage](troubleshooting.md) | ## Bases `demo` obligatoires @@ -30,6 +38,8 @@ supplémentaires. `make check-env` impose `MYSQL_DATABASE=demo` et ## Préparation des samples +La préparation demande `curl` et `git` ; les samples MySQL exigent aussi `unzip` et `sha256sum`. + La préparation télécharge et vérifie des fichiers upstream épinglés, sans démarrer les conteneurs ni importer dans une base déjà initialisée. Les téléchargements temporaires restent locaux, ne sont pas commités et sont diff --git a/docs/langs/fr/getting-started.md b/docs/langs/fr/getting-started.md index b1fa5f7..7f9b004 100644 --- a/docs/langs/fr/getting-started.md +++ b/docs/langs/fr/getting-started.md @@ -2,9 +2,17 @@ [← Retour au README](../README_fr.md) -[Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | **Français — Sélectionné** | [Deutsch](../de/getting-started.md) +## Langue -**Pages dans cette langue:** **Prise en main** · [Bases et samples](databases.md) · [Contrôles et opérations](operations.md) · [Diagnostic et dépannage](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | **Sélectionné** | [Deutsch](../de/getting-started.md) | + +## Section + +| Prise en main | Bases et samples | Contrôles et opérations | Diagnostic et dépannage | +| --- | --- | --- | --- | +| **Sélectionné** | [Bases et samples](databases.md) | [Contrôles et opérations](operations.md) | [Diagnostic et dépannage](troubleshooting.md) | ## Prérequis @@ -113,7 +121,7 @@ make postgres-user # DB_USER, base demo ## Identifiants -`.docker.env` est créé depuis `.docker.env.example` et ignoré par Git. Gardez +`.docker.env` est créé depuis [`.docker.env.example`](../../../.docker.env.example) et ignoré par Git. Gardez les mots de passe dans ce fichier ; ne les codez pas en dur dans Compose, SQL ou une configuration client versionnée. diff --git a/docs/langs/fr/operations.md b/docs/langs/fr/operations.md index 09dc1e7..8449042 100644 --- a/docs/langs/fr/operations.md +++ b/docs/langs/fr/operations.md @@ -2,13 +2,23 @@ [← Retour au README](../README_fr.md) -[Русский](../ru/operations.md) | [English](../en/operations.md) | [Español](../es/operations.md) | [中文](../zh/operations.md) | **Français — Sélectionné** | [Deutsch](../de/operations.md) +## Langue -**Pages dans cette langue:** [Prise en main](getting-started.md) · [Bases et samples](databases.md) · **Contrôles et opérations** · [Diagnostic et dépannage](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/operations.md) | [English](../en/operations.md) | [Español](../es/operations.md) | [中文](../zh/operations.md) | **Sélectionné** | [Deutsch](../de/operations.md) | + +## Section + +| Prise en main | Bases et samples | Contrôles et opérations | Diagnostic et dépannage | +| --- | --- | --- | --- | +| [Prise en main](getting-started.md) | [Bases et samples](databases.md) | **Sélectionné** | [Diagnostic et dépannage](troubleshooting.md) | ## Targets Make publics +Les targets publics et leur implémentation figurent dans le [`Makefile`](../../../Makefile). + Targets essentiels : `make init`, `make up`, `make down`, `make check`, `make test-storage-paths`, `make test-sql-imports`, `make mysql-import` et `make postgres-import`. Le SQL de confiance n’est pas un sandbox, peut être diff --git a/docs/langs/fr/troubleshooting.md b/docs/langs/fr/troubleshooting.md index 67e3d20..4aec45a 100644 --- a/docs/langs/fr/troubleshooting.md +++ b/docs/langs/fr/troubleshooting.md @@ -2,9 +2,17 @@ [← Retour au README](../README_fr.md) -[Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | **Français — Sélectionné** | [Deutsch](../de/troubleshooting.md) +## Langue -**Pages dans cette langue:** [Prise en main](getting-started.md) · [Bases et samples](databases.md) · [Contrôles et opérations](operations.md) · **Diagnostic et dépannage** +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | **Sélectionné** | [Deutsch](../de/troubleshooting.md) | + +## Section + +| Prise en main | Bases et samples | Contrôles et opérations | Diagnostic et dépannage | +| --- | --- | --- | --- | +| [Prise en main](getting-started.md) | [Bases et samples](databases.md) | [Contrôles et opérations](operations.md) | **Sélectionné** | Collectez d’abord le diagnostic, puis corrigez la cause précise. Si une réinitialisation reste nécessaire, effectuez un backup et n’utilisez diff --git a/docs/langs/ru/databases.md b/docs/langs/ru/databases.md index 5345bba..f18a174 100644 --- a/docs/langs/ru/databases.md +++ b/docs/langs/ru/databases.md @@ -2,9 +2,17 @@ [← Вернуться к README](../../../README.md) -**Русский — Выбран** | [English](../en/databases.md) | [Español](../es/databases.md) | [中文](../zh/databases.md) | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) +## Язык -**Разделы этого языка:** [Начало работы](getting-started.md) · **Базы и samples** · [Проверки и операции](operations.md) · [Диагностика](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| **Выбран** | [English](../en/databases.md) | [Español](../es/databases.md) | [中文](../zh/databases.md) | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) | + +## Раздел + +| Начало работы | Базы и samples | Проверки и операции | Диагностика | +| --- | --- | --- | --- | +| [Начало работы](getting-started.md) | **Выбран** | [Проверки и операции](operations.md) | [Диагностика](troubleshooting.md) | ## Обязательные базы `demo` @@ -32,6 +40,8 @@ ## Подготовка samples +Для подготовки нужны `curl` и `git`; MySQL samples дополнительно требуют `unzip` и `sha256sum`. + Команды подготовки загружают и проверяют закреплённые upstream-файлы, но не запускают контейнеры и не импортируют данные в уже инициализированную СУБД. Загрузки остаются локальными, исключаются из Git и сохраняются в diff --git a/docs/langs/ru/getting-started.md b/docs/langs/ru/getting-started.md index f4ddf91..31e3cbe 100644 --- a/docs/langs/ru/getting-started.md +++ b/docs/langs/ru/getting-started.md @@ -2,9 +2,17 @@ [← Вернуться к README](../../../README.md) -**Русский — Выбран** | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) +## Язык -**Разделы этого языка:** **Начало работы** · [Базы и samples](databases.md) · [Проверки и операции](operations.md) · [Диагностика](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| **Выбран** | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | [中文](../zh/getting-started.md) | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) | + +## Раздел + +| Начало работы | Базы и samples | Проверки и операции | Диагностика | +| --- | --- | --- | --- | +| **Выбран** | [Базы и samples](databases.md) | [Проверки и операции](operations.md) | [Диагностика](troubleshooting.md) | ## Требования @@ -117,7 +125,7 @@ make postgres-user # DB_USER, база demo ## Учётные данные -При копировании `.docker.env.example` создаётся `.docker.env`; этот файл +При копировании [`.docker.env.example`](../../../.docker.env.example) создаётся `.docker.env`; этот файл исключён из Git. Храните пароли в нём и не хардкодьте их в Compose, SQL или отслеживаемой конфигурации клиентов. diff --git a/docs/langs/ru/operations.md b/docs/langs/ru/operations.md index ea9c6a0..6ba2907 100644 --- a/docs/langs/ru/operations.md +++ b/docs/langs/ru/operations.md @@ -2,13 +2,23 @@ [← Вернуться к README](../../../README.md) -**Русский — Выбран** | [English](../en/operations.md) | [Español](../es/operations.md) | [中文](../zh/operations.md) | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) +## Язык -**Разделы этого языка:** [Начало работы](getting-started.md) · [Базы и samples](databases.md) · **Проверки и операции** · [Диагностика](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| **Выбран** | [English](../en/operations.md) | [Español](../es/operations.md) | [中文](../zh/operations.md) | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) | + +## Раздел + +| Начало работы | Базы и samples | Проверки и операции | Диагностика | +| --- | --- | --- | --- | +| [Начало работы](getting-started.md) | [Базы и samples](databases.md) | **Выбран** | [Диагностика](troubleshooting.md) | ## Команды Makefile +Публичные targets и их фактическая реализация находятся в [`Makefile`](../../../Makefile). + Ключевые targets: `make init`, `make up`, `make down`, `make check`, `make test-storage-paths`, `make test-sql-imports`, `make mysql-import` и `make postgres-import`. Trusted SQL не является sandbox, может выполниться diff --git a/docs/langs/ru/troubleshooting.md b/docs/langs/ru/troubleshooting.md index 156c649..b9ec958 100644 --- a/docs/langs/ru/troubleshooting.md +++ b/docs/langs/ru/troubleshooting.md @@ -2,9 +2,17 @@ [← Вернуться к README](../../../README.md) -**Русский — Выбран** | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) +## Язык -**Разделы этого языка:** [Начало работы](getting-started.md) · [Базы и samples](databases.md) · [Проверки и операции](operations.md) · **Диагностика** +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| **Выбран** | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | [中文](../zh/troubleshooting.md) | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) | + +## Раздел + +| Начало работы | Базы и samples | Проверки и операции | Диагностика | +| --- | --- | --- | --- | +| [Начало работы](getting-started.md) | [Базы и samples](databases.md) | [Проверки и операции](operations.md) | **Выбран** | Сначала соберите диагностику, затем исправьте конкретную причину. Если изменение всё же требует переинициализации, сначала сделайте backup и только diff --git a/docs/langs/zh/databases.md b/docs/langs/zh/databases.md index 526a117..56d5468 100644 --- a/docs/langs/zh/databases.md +++ b/docs/langs/zh/databases.md @@ -2,9 +2,17 @@ [← 返回 README](../README_zh.md) -[Русский](../ru/databases.md) | [English](../en/databases.md) | [Español](../es/databases.md) | **中文 — 已选择** | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) +## 语言 -**本语言页面:** [入门](getting-started.md) · **数据库与 samples** · [检查与运维](operations.md) · [诊断与故障排除](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/databases.md) | [English](../en/databases.md) | [Español](../es/databases.md) | **已选择** | [Français](../fr/databases.md) | [Deutsch](../de/databases.md) | + +## 章节 + +| 入门 | 数据库与 samples | 检查与运维 | 诊断与故障排除 | +| --- | --- | --- | --- | +| [入门](getting-started.md) | **已选择** | [检查与运维](operations.md) | [诊断与故障排除](troubleshooting.md) | ## 必需的 `demo` 数据库 @@ -29,6 +37,8 @@ ## 准备 samples +准备过程需要 `curl` 和 `git`;MySQL samples 还需要 `unzip` 与 `sha256sum`。 + 准备命令会下载并校验固定的 upstream 文件,但不会启动容器,也不会向 已初始化数据库导入数据。临时下载仅保存在本地,不提交到 Git,最终位于 `MYSQL_SAMPLES_DIR` 或 `POSTGRES_SAMPLES_DIR`。来源、完整性固定值和许可 diff --git a/docs/langs/zh/getting-started.md b/docs/langs/zh/getting-started.md index 2432210..94bda25 100644 --- a/docs/langs/zh/getting-started.md +++ b/docs/langs/zh/getting-started.md @@ -2,9 +2,17 @@ [← 返回 README](../README_zh.md) -[Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | **中文 — 已选择** | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) +## 语言 -**本语言页面:** **入门** · [数据库与 samples](databases.md) · [检查与运维](operations.md) · [诊断与故障排除](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/getting-started.md) | [English](../en/getting-started.md) | [Español](../es/getting-started.md) | **已选择** | [Français](../fr/getting-started.md) | [Deutsch](../de/getting-started.md) | + +## 章节 + +| 入门 | 数据库与 samples | 检查与运维 | 诊断与故障排除 | +| --- | --- | --- | --- | +| **已选择** | [数据库与 samples](databases.md) | [检查与运维](operations.md) | [诊断与故障排除](troubleshooting.md) | ## 要求 @@ -110,7 +118,7 @@ make postgres-user # DB_USER,demo 数据库 ## 凭据 -`.docker.env` 从 `.docker.env.example` 创建,并被 Git 忽略。密码应保存在 +`.docker.env` 从 [`.docker.env.example`](../../../.docker.env.example) 创建,并被 Git 忽略。密码应保存在 该文件中,不要硬编码进受版本控制的 Compose、SQL 或客户端配置。 | 用途 | 用户设置 | 密码设置 | diff --git a/docs/langs/zh/operations.md b/docs/langs/zh/operations.md index 3d2fce5..1710c81 100644 --- a/docs/langs/zh/operations.md +++ b/docs/langs/zh/operations.md @@ -2,13 +2,23 @@ [← 返回 README](../README_zh.md) -[Русский](../ru/operations.md) | [English](../en/operations.md) | [Español](../es/operations.md) | **中文 — 已选择** | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) +## 语言 -**本语言页面:** [入门](getting-started.md) · [数据库与 samples](databases.md) · **检查与运维** · [诊断与故障排除](troubleshooting.md) +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/operations.md) | [English](../en/operations.md) | [Español](../es/operations.md) | **已选择** | [Français](../fr/operations.md) | [Deutsch](../de/operations.md) | + +## 章节 + +| 入门 | 数据库与 samples | 检查与运维 | 诊断与故障排除 | +| --- | --- | --- | --- | +| [入门](getting-started.md) | [数据库与 samples](databases.md) | **已选择** | [诊断与故障排除](troubleshooting.md) | ## 公共 Make targets +公共 targets 及其实现位于 [`Makefile`](../../../Makefile)。 + 关键 targets 包括 `make init`、`make up`、`make down`、 `make check`、`make test-storage-paths`、`make test-sql-imports`、 `make mysql-import` 和 `make postgres-import`。Trusted SQL 不是 diff --git a/docs/langs/zh/troubleshooting.md b/docs/langs/zh/troubleshooting.md index 45e465c..e511f69 100644 --- a/docs/langs/zh/troubleshooting.md +++ b/docs/langs/zh/troubleshooting.md @@ -2,9 +2,17 @@ [← 返回 README](../README_zh.md) -[Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | **中文 — 已选择** | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) +## 语言 -**本语言页面:** [入门](getting-started.md) · [数据库与 samples](databases.md) · [检查与运维](operations.md) · **诊断与故障排除** +| Русский | English | Español | 中文 | Français | Deutsch | +| --- | --- | --- | --- | --- | --- | +| [Русский](../ru/troubleshooting.md) | [English](../en/troubleshooting.md) | [Español](../es/troubleshooting.md) | **已选择** | [Français](../fr/troubleshooting.md) | [Deutsch](../de/troubleshooting.md) | + +## 章节 + +| 入门 | 数据库与 samples | 检查与运维 | 诊断与故障排除 | +| --- | --- | --- | --- | +| [入门](getting-started.md) | [数据库与 samples](databases.md) | [检查与运维](operations.md) | **已选择** | 先收集诊断信息,再针对原因修正。若仍需重新初始化,请先做 backup,并仅将确认后的 `reinit-... CONFIRM=1` 作为有意的最后手段。 From dc83e6ead4742ec45a928f3b1f1cb7116f09179f Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Mon, 20 Jul 2026 21:28:01 +0300 Subject: [PATCH 15/17] =?UTF-8?q?docs(readme):=20=D1=83=D0=BD=D0=B8=D1=84?= =?UTF-8?q?=D0=B8=D1=86=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=20=D1=82?= =?UTF-8?q?=D0=B5=D1=80=D0=BC=D0=B8=D0=BD=D0=BE=D0=BB=D0=BE=D0=B3=D0=B8?= =?UTF-8?q?=D1=8E=20=D0=B8=20=D0=BD=D0=B0=D0=B2=D0=B8=D0=B3=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 104 +++++++++++++---------- docs/langs/README_de.md | 2 +- docs/langs/README_en.md | 2 +- docs/langs/README_es.md | 2 +- docs/langs/README_fr.md | 2 +- docs/langs/README_zh.md | 2 +- docs/langs/de/databases.md | 69 +++++++-------- docs/langs/de/getting-started.md | 25 ++++-- docs/langs/de/operations.md | 8 +- docs/langs/de/troubleshooting.md | 2 - docs/langs/en/databases.md | 71 ++++++++-------- docs/langs/en/getting-started.md | 24 ++++-- docs/langs/en/operations.md | 8 +- docs/langs/en/troubleshooting.md | 2 - docs/langs/es/databases.md | 67 +++++++-------- docs/langs/es/getting-started.md | 25 ++++-- docs/langs/es/operations.md | 8 +- docs/langs/es/troubleshooting.md | 2 - docs/langs/fr/databases.md | 69 +++++++-------- docs/langs/fr/getting-started.md | 25 ++++-- docs/langs/fr/operations.md | 8 +- docs/langs/fr/troubleshooting.md | 2 - docs/langs/ru/databases.md | 114 ++++++++++++------------- docs/langs/ru/getting-started.md | 59 +++++++------ docs/langs/ru/operations.md | 139 ++++++++++++++++--------------- docs/langs/ru/troubleshooting.md | 34 ++++---- docs/langs/zh/databases.md | 61 +++++++------- docs/langs/zh/getting-started.md | 21 +++-- docs/langs/zh/operations.md | 7 +- docs/langs/zh/troubleshooting.md | 2 - 30 files changed, 511 insertions(+), 455 deletions(-) diff --git a/README.md b/README.md index dedea0d..e7e8cb5 100644 --- a/README.md +++ b/README.md @@ -16,8 +16,9 @@ Локальный Docker Compose-стенд для практики SQL и знакомства с MySQL и PostgreSQL. Каждую СУБД можно запускать отдельно или обе вместе. Компактная -`demo` создаётся автоматически, а optional Sakila, Pagila и Chinook дают -готовые данные для упражнений. Adminer подключается только при необходимости. +`demo` создаётся автоматически, а необязательные учебные базы Sakila, Pagila +и Chinook дают готовые данные для упражнений. Adminer подключается только при +необходимости. ## Стек @@ -25,7 +26,7 @@ PostgreSQL. Каждую СУБД можно запускать отдельно - PostgreSQL 18.4 - Adminer 5.4.2 Docker Official Image - Docker Compose v2 -- GNU Make и Bash для команд проекта и init-скриптов +- GNU Make и Bash для команд проекта и сценариев инициализации Закреплённые значения по умолчанию заданы в [`.docker.env.example`](.docker.env.example); `make init` создаёт из него @@ -35,27 +36,30 @@ PostgreSQL. Каждую СУБД можно запускать отдельно

⚠️ Важно: это учебное окружение -Проект не является готовым production template. Для внешнего использования -нужны отдельные решения по credentials, network exposure, storage, backup и -operations. +Проект не является готовым шаблоном для промышленной эксплуатации. Для +внешнего использования нужны отдельные решения по учётным данным, публикации +сервисов в сети, хранению данных, резервному копированию и эксплуатации.
## Основные возможности - MySQL и PostgreSQL работают независимо или одновременно. -- Обязательная `demo` в каждой СУБД содержит одинаковые seed rows. -- Optional Sakila и Chinook доступны для MySQL, Pagila и Chinook — для +- Обязательная `demo` в каждой СУБД содержит одинаковые начальные записи. +- Необязательные Sakila и Chinook доступны для MySQL, Pagila и Chinook — для PostgreSQL. -- Adminer — отдельный optional UI для обеих СУБД. -- Data-, init- и sample-каталоги СУБД разделены и подключены как bind mounts. -- Проверки конфигурации и доступа, trusted SQL imports и destructive-команды +- Adminer — отдельный дополнительный веб-интерфейс для обеих СУБД. +- Каталоги данных, инициализации и учебных баз разделены по СУБД и подключены + в контейнеры с хоста. +- Проверки конфигурации и доступа, импорт доверенных SQL-файлов и команды + очистки и переинициализации, удаляющие данные, собраны в [`Makefile`](Makefile). ## Требования 1. Docker Engine или Docker Desktop с `docker compose` v2. -2. GNU Make, Bash и базовые Unix CLI utilities, используемые скриптами. +2. GNU Make, Bash и базовые утилиты командной строки Unix, используемые + сценариями. Рекомендуемая среда: Linux; macOS с Docker Desktop; Windows с Docker Desktop и WSL2. Выполняйте команды из корня репозитория. Ветка проекта по умолчанию — @@ -69,23 +73,24 @@ make up ``` `make init` создаёт локальный `.docker.env` из отслеживаемого -[`.docker.env.example`](.docker.env.example), проверяет managed paths и -создаёт рабочие каталоги. При первом запуске official entrypoints -инициализируют обе СУБД. Даже без optional samples вы получите рабочие MySQL и -PostgreSQL с обязательной `demo` и seed rows. +[`.docker.env.example`](.docker.env.example), проверяет контролируемые пути +хранения и создаёт рабочие каталоги. При первом запуске официальные точки +входа инициализируют обе СУБД. Даже без необязательных учебных баз вы получите +рабочие MySQL и PostgreSQL с обязательной `demo` и начальными записями. `make up` запускает MySQL, PostgreSQL и Adminer; `make up-no-ui` — обе СУБД без Adminer. С настройками по умолчанию Adminer доступен по адресу `http://127.0.0.1:8081`. -Подробно о запуске, подключениях и credentials: +Подробно о запуске, подключениях и учётных данных: [Начало работы](docs/langs/ru/getting-started.md). ### Нужны готовые учебные данные? -Optional samples не обязательны: `demo` создаётся всегда; для MySQL доступны Sakila и Chinook, для PostgreSQL — Pagila и Chinook. +Учебные базы не обязательны: `demo` создаётся всегда; для MySQL доступны +Sakila и Chinook, для PostgreSQL — Pagila и Chinook. -**Первый запуск, data-каталоги пусты** +**Первый запуск, каталоги данных пусты** ```bash make init @@ -94,14 +99,19 @@ make samples-postgres make up ``` -Samples подготавливаются до первой инициализации; official entrypoints загрузят их вместе с `demo`. +Учебные базы подготавливаются до первой инициализации; официальные точки входа +загрузят их вместе с `demo`. -> **Внимание:** если data-каталог уже инициализирован без samples, их добавление требует backup и подтверждённого destructive reinit. +> **Внимание:** если каталог данных уже инициализирован без учебных баз, для +> их добавления требуется резервная копия и подтверждённая переинициализация, +> удаляющая данные.
-Стенд уже запускался: добавить или повторно использовать samples +📦 Стенд уже запускался: добавить или повторно использовать учебные базы -**Уже инициализировано без samples.** Обычный `make up` новые init/sample files не применит. Сначала сохраните важные данные, затем выполните нужный вариант: +**Уже инициализировано без учебных баз.** Обычный `make up` не применит новые +файлы инициализации или учебных баз. Сначала сохраните важные данные, затем +выполните нужный вариант: - MySQL: `make samples-mysql`, затем `make reinit-mysql CONFIRM=1`. - PostgreSQL: `make samples-postgres`, затем `make reinit-postgres CONFIRM=1`. @@ -109,11 +119,13 @@ Samples подготавливаются до первой инициализа > **Внимание:** `reinit-*` удаляет данные выбранной СУБД и выполняется только с точным `CONFIRM=1`. -**Samples уже установлены.** Используйте обычный `make up` или выбранный `make up-*`: повторные download и reinit не нужны, базы сохраняются в bind-mounted storage. +**Учебные базы уже установлены.** Используйте обычный `make up` или выбранную +цель `make up-*`: повторная загрузка и переинициализация не нужны, базы +сохраняются в каталогах хоста, подключённых в контейнеры.
-Подробнее: [Базы и samples](docs/langs/ru/databases.md). +Подробнее: [Базы и учебные данные](docs/langs/ru/databases.md). ## Режимы запуска @@ -125,7 +137,7 @@ Samples подготавливаются до первой инициализа | `make up-postgres` | Не запускает | Запускает | Не запускает | Команды одной СУБД не останавливают уже работающую другую; Adminer управляется -отдельно. Полный набор targets описан в [`Makefile`](Makefile). +отдельно. Полный набор целей описан в [`Makefile`](Makefile). ## Подключения и доступные базы @@ -133,14 +145,14 @@ Samples подготавливаются до первой инициализа хосте используют `127.0.0.1` и настроенные `MYSQL_PORT` или `POSTGRES_PORT`. Для обычной работы укажите `DB_USER` и `DB_PASSWORD`. -| СУБД | Доступна всегда | После optional sample initialization | +| СУБД | Доступна всегда | После инициализации необязательных учебных баз | |---|---|---| | MySQL | `demo` | `sakila`, `chinook` | | PostgreSQL | `demo` | `pagila`, `chinook` | -Имена optional баз действительны только после их фактической инициализации. +Имена необязательных баз действительны только после их фактической инициализации. Подробности: [запуск и подключения](docs/langs/ru/getting-started.md) · -[базы и samples](docs/langs/ru/databases.md). +[базы и учебные данные](docs/langs/ru/databases.md). ## Кратко об учётных данных @@ -148,7 +160,7 @@ Samples подготавливаются до первой инициализа |---|---|---| | Общий учебный пользователь | `DB_USER` | `DB_PASSWORD` | | Администратор MySQL | `root` | `MYSQL_ROOT_PASSWORD` | -| Superuser PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | +| Суперпользователь PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | `POSTGRES_SUPERUSER` и `DB_USER` должны быть разными ролями. Для упражнений используйте учебного пользователя и замените примерные пароли до публикации @@ -166,31 +178,37 @@ make test-storage-paths ``` После запуска `make check` проверяет `demo` и доступ `DB_USER`, а -`make test-sql-imports` — public trusted import targets. Порядок и ограничения: -[Проверки и операции](docs/langs/ru/operations.md). +`make test-sql-imports` — публичные цели импорта доверенных SQL-файлов. Порядок +и ограничения: [Проверки и эксплуатация](docs/langs/ru/operations.md). ## Безопасность и жизненный цикл -- `BIND_ADDRESS=127.0.0.1` публикует сервисы только на loopback. +- `BIND_ADDRESS=127.0.0.1` публикует сервисы только на интерфейсе обратной петли + (loopback). - `BIND_ADDRESS=0.0.0.0` открывает их на всех интерфейсах: заранее настройте - firewall, надёжные credentials и доверенную сеть. -- Official entrypoints выполняют init только для пустого data-каталога. + межсетевой экран, надёжные учётные данные и доверенную сеть. +- Официальные точки входа выполняют инициализацию только для пустого каталога + данных. - `make mysql-import` и `make postgres-import` принимают только доверенный SQL. - Это не sandbox: возможна частичная запись без полного automatic rollback. - Перед важным импортом проверьте SQL-файл и сделайте подходящий backup. + Это не изолированная среда (`sandbox`): возможна частичная запись без полного + автоматического отката. Перед важным импортом проверьте SQL-файл и сделайте + подходящую резервную копию. - Встроенные `make dump` и `make restore` покрывают только MySQL `demo`; - встроенного backup target для PostgreSQL нет. -- Все `clean-*` и `reinit-*` destructive и требуют точного `CONFIRM=1`. + встроенной цели резервного копирования для PostgreSQL нет. +- Все цели `clean-*` и `reinit-*` удаляют данные и требуют точного + `CONFIRM=1`. -Безопасные последовательности: [Проверки и операции](docs/langs/ru/operations.md). +Безопасные последовательности: +[Проверки и эксплуатация](docs/langs/ru/operations.md). При ошибках сначала соберите диагностику: [Диагностика](docs/langs/ru/troubleshooting.md). ## Лицензии учебных данных -Optional sample datasets сохраняют лицензии и notices upstream projects. -Provenance, закреплённые revisions, integrity information и тексты лицензий -приведены в [`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). +Необязательные учебные наборы данных сохраняют лицензии и уведомления об +авторских правах и лицензиях исходных проектов. Происхождение, закреплённые +ревизии, сведения о целостности и тексты лицензий приведены в +[`THIRD_PARTY_NOTICES.md`](THIRD_PARTY_NOTICES.md). --- diff --git a/docs/langs/README_de.md b/docs/langs/README_de.md index 13445cc..e3f9825 100644 --- a/docs/langs/README_de.md +++ b/docs/langs/README_de.md @@ -99,7 +99,7 @@ Bereiten Sie Samples vor der ersten Initialisierung vor; die Entrypoints laden s > **Warnung:** Wurde ein Datenverzeichnis ohne Samples initialisiert, erfordert das Hinzufügen ein Backup und eine ausdrücklich bestätigte destructive Neuinitialisierung.
-Das Lab lief bereits: Samples hinzufügen oder erneut verwenden +📦 Das Lab lief bereits: Samples hinzufügen oder erneut verwenden **Ohne Samples initialisiert.** `make up` wendet neue Init-/Sample-Dateien nicht an. Sichern Sie wichtige Daten und wählen Sie dann die passende Variante: diff --git a/docs/langs/README_en.md b/docs/langs/README_en.md index 376eac9..2e27d4c 100644 --- a/docs/langs/README_en.md +++ b/docs/langs/README_en.md @@ -101,7 +101,7 @@ Prepare samples before the first initialization; the official entrypoints load t > **Warning:** if a data directory was initialized without samples, adding them requires a backup and an explicitly confirmed destructive reinitialization.
-The lab has run before: add or reuse samples +📦 The lab has run before: add or reuse samples **Initialized without samples.** A regular `make up` does not apply new init/sample files. Back up important data, then use the appropriate option: diff --git a/docs/langs/README_es.md b/docs/langs/README_es.md index d07623f..a2a066e 100644 --- a/docs/langs/README_es.md +++ b/docs/langs/README_es.md @@ -98,7 +98,7 @@ Prepare los samples antes de la primera inicialización; los entrypoints los car > **Advertencia:** si un directorio ya se inicializó sin samples, añadirlos exige un backup y una reinicialización destructiva confirmada explícitamente.
-El laboratorio ya se inició: añadir o reutilizar samples +📦 El laboratorio ya se inició: añadir o reutilizar samples **Inicializado sin samples.** `make up` no aplica nuevos archivos init/sample. Haga backup de los datos importantes y use la opción adecuada: diff --git a/docs/langs/README_fr.md b/docs/langs/README_fr.md index b713347..77fe9f6 100644 --- a/docs/langs/README_fr.md +++ b/docs/langs/README_fr.md @@ -98,7 +98,7 @@ Préparez les samples avant la première initialisation ; les entrypoints les ch > **Attention :** si un répertoire data a été initialisé sans samples, leur ajout exige un backup et une réinitialisation destructive confirmée.
-Le laboratoire a déjà démarré : ajouter ou réutiliser les samples +📦 Le laboratoire a déjà démarré : ajouter ou réutiliser les samples **Déjà initialisé sans samples.** `make up` n'applique pas les nouveaux fichiers init/sample. Sauvegardez les données importantes, puis choisissez l'option adaptée : diff --git a/docs/langs/README_zh.md b/docs/langs/README_zh.md index 646c5c6..d4df5d7 100644 --- a/docs/langs/README_zh.md +++ b/docs/langs/README_zh.md @@ -95,7 +95,7 @@ make up > **警告:** 如果 data 目录已在没有 samples 时初始化,添加 samples 需要先做 backup,并明确确认 destructive reinit。
-环境已启动过:添加或继续使用 samples +📦 环境已启动过:添加或继续使用 samples **已在没有 samples 时初始化。** 普通的 `make up` 不会应用新增的 init/sample 文件。请先备份重要数据,再选择对应方式: diff --git a/docs/langs/de/databases.md b/docs/langs/de/databases.md index d6ba506..a123cc7 100644 --- a/docs/langs/de/databases.md +++ b/docs/langs/de/databases.md @@ -32,8 +32,8 @@ zulässig. `make check-env` verlangt `MYSQL_DATABASE=demo` und | DBMS | Optionale Datenbanken | Vorbereitung | |---|---|---| -| MySQL | Chinook, Sakila | `make samples-mysql` | -| PostgreSQL | Pagila, Chinook | `make samples-postgres` | +| MySQL | `chinook`, `sakila` | `make samples-mysql` | +| PostgreSQL | `pagila`, `chinook` | `make samples-postgres` | ## Samples vorbereiten @@ -45,29 +45,11 @@ startet aber keine Container und importiert nichts in bereits initialisierte Datenbanken. Temporäre Downloads bleiben lokal, werden nicht committed und liegen unter `MYSQL_SAMPLES_DIR` beziehungsweise `POSTGRES_SAMPLES_DIR`. Herkunft, Integritätswerte und Lizenzen stehen in -[THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md). +[`THIRD_PARTY_NOTICES.md`](../../../THIRD_PARTY_NOTICES.md). -Bei leerem data directory: - -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` - -Die offiziellen Entrypoints verarbeiten init nur bei leerem data directory. -Um Samples einer bestehenden Instanz hinzuzufügen, erstellen Sie ein Backup -und initialisieren bewusst nur das betroffene DBMS neu: - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` +Wann die Vorbereitung erfolgen muss und wie ein vorhandenes DBMS neu +initialisiert wird, steht unter +[Initialisierung und Lebenszyklus](#section-initialization). Ein vollständig fehlendes Sample wird übersprungen und verhindert `demo` nicht. Unvollständige Samples oder unerwartete Datenbanken werden ohne @@ -92,17 +74,40 @@ initdb/ | PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | Data- und Sample-Pfade sind über `.docker.env` konfigurierbar und werden als -managed paths validiert. Entrypoints führen init nur bei leerem data directory -aus; geänderte init-Dateien migrieren keine bestehende Datenbank. `make down` -löscht keine bind mounts. Bearbeiten Sie Dateien in `data/` nicht manuell; sie -können numerischen Container-UID/GID gehören. +managed paths validiert. Die Regeln für init-Verzeichnisse stehen unter +[Initialisierung und Lebenszyklus](#section-initialization). Bearbeiten Sie +Dateien in `data/` nicht manuell; sie können numerischen Container-UID/GID +gehören. ## Initialisierung und Lebenszyklus -> **Wichtig:** Offizielle MySQL- und PostgreSQL-Entrypoints führen init-Dateien nur bei -leerem data directory aus. Geänderte init-Dateien migrieren keine bestehende -Datenbank; `make down` erhält bind-mounted Daten. +> **Wichtig:** Offizielle MySQL- und PostgreSQL-Entrypoints führen init-Dateien +> nur bei leerem data directory aus. Nach der Initialisierung hinzugefügte +> Dateien ändern keine bestehende Datenbank. `make down` erhält die Daten; eine +> bestätigte Neuinitialisierung löscht dagegen alle Daten des gewählten DBMS. +> Zuvor ist ein Backup erforderlich. + +Bereiten Sie Samples für die erste Initialisierung vor dem ersten Start vor: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Erstellen Sie bei einem initialisierten DBMS ein Backup und verwenden Sie dann +nur die passende bestätigte Neuinitialisierung: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` ## Lernzugriff und Ownership @@ -115,6 +120,4 @@ credentials bleiben getrennt: `MYSQL_ROOT_PASSWORD`, `POSTGRES_SUPERUSER` und `POSTGRES_SUPERUSER_PASSWORD`. Bearbeiten Sie container-owned Dateien in `data/` nicht manuell. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Zurück zur README](../README_de.md) diff --git a/docs/langs/de/getting-started.md b/docs/langs/de/getting-started.md index 1b587c2..fa9bd4a 100644 --- a/docs/langs/de/getting-started.md +++ b/docs/langs/de/getting-started.md @@ -18,10 +18,9 @@ ## Voraussetzungen - Docker Engine oder Docker Desktop mit dem Befehl `docker compose` v2. -- GNU Make, Bash und die von den Skripten verwendeten Unix-Werkzeuge (`awk`, - `sed`, `grep`, `find`, `realpath` und `stat`). -- Für optionale Samples: `curl` und `git`; für MySQL zusätzlich `unzip` und - `sha256sum`. +- GNU Make, Bash und grundlegende Unix-Kommandozeilenwerkzeuge. +- Empfohlene Umgebungen: Linux; macOS mit Docker Desktop; oder Windows mit + Docker Desktop und WSL2. Führen Sie Befehle im Repository-Stamm aus. Der Standardbranch des Projekts ist `master`. @@ -29,8 +28,10 @@ Führen Sie Befehle im Repository-Stamm aus. Der Standardbranch des Projekts ist ## Schnellstart -Erstellen Sie `.docker.env` aus dem versionierten Beispiel, prüfen Sie die -Pfade, legen Sie Arbeitsverzeichnisse an und starten Sie das vollständige Lab: +`make init` erstellt eine lokale `.docker.env` aus +[`.docker.env.example`](../../../.docker.env.example), prüft die verwalteten +Speicherpfade und legt die Arbeitsverzeichnisse an. Starten Sie danach das +vollständige Lab: ```bash make init @@ -40,6 +41,14 @@ make up `make up` startet MySQL, PostgreSQL und Adminer. Mit der Standardkonfiguration ist Adminer unter `http://127.0.0.1:8081` erreichbar. +Mit `make up-no-ui` starten Sie beide DBMS ohne Adminer. Die obligatorische +`demo`-Datenbank wird bei der ersten Initialisierung immer erstellt; +Beispieldatensätze sind optional. Um sie bei der ersten Initialisierung zu +laden, bereiten Sie sie vor dem ersten `make up` vor. Bei bereits +initialisierten Datenverzeichnissen erstellen Sie ein Backup vor einer +bestätigten Neuinitialisierung, die Daten löscht. Das genaue Verfahren steht +unter [Initialisierung und Lebenszyklus](databases.md#section-initialization). + ```bash make status make logs @@ -61,7 +70,7 @@ make down Einzel-DBMS-Befehle stoppen das andere laufende DBMS nicht; Adminer wird separat verwaltet.
-Vollständige Tabelle der Startmodi +📋 Vollständige Tabelle der Startmodi | Befehl | MySQL | PostgreSQL | Adminer | |---|---|---|---| @@ -155,6 +164,4 @@ Ports auf allen Netzwerkschnittstellen. Für LAN oder VPN ist die Adresse einer bestimmten Schnittstelle vorzuziehen. Ändern Sie die Bindung bewusst und beachten Sie Firewall, Passwortstärke und Vertrauenswürdigkeit des Netzes. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Zurück zur README](../README_de.md) diff --git a/docs/langs/de/operations.md b/docs/langs/de/operations.md index f58a41f..ffb8f18 100644 --- a/docs/langs/de/operations.md +++ b/docs/langs/de/operations.md @@ -28,7 +28,7 @@ decken nur MySQL `demo` ab, nicht PostgreSQL. `clean-*` und `reinit-*` sind destruktiv und erfordern exakt `CONFIRM=1`.
-Vollständige Referenz der öffentlichen Make targets +📋 Vollständige Referenz der öffentlichen Make targets `make help` zeigt die kompakte Liste. @@ -97,7 +97,9 @@ import workflow, keine isolierte Umgebung (`sandbox`) und kein Sicherheitsnachwe ## Sicherheit der storage paths -`make check-env` führt `scripts/validate-storage-paths.sh` aus. Data +`make check-env` führt +[`scripts/validate-storage-paths.sh`](../../../scripts/validate-storage-paths.sh) +aus. Data paths müssen strikt unter `data/`, sample paths unter `samples/` liegen; Symlinks sowie gleiche, verschachtelte, überlappende oder reservierte Pfade werden abgelehnt. `make test-storage-paths` testet dies ohne Docker runtime. @@ -158,6 +160,4 @@ beide. Konfiguration, init, Samples und Backups bleiben erhalten. Reinit startet und prüft anschließend die gewählten DBMS; `reinit-all` startet beide ohne Adminer. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Zurück zur README](../README_de.md) diff --git a/docs/langs/de/troubleshooting.md b/docs/langs/de/troubleshooting.md index 5382a6b..9365da9 100644 --- a/docs/langs/de/troubleshooting.md +++ b/docs/langs/de/troubleshooting.md @@ -60,6 +60,4 @@ Host-Clients verwenden veröffentlichte Adresse und `MYSQL_PORT` oder `POSTGRES_PORT`; Adminer verwendet `mysql` oder `postgres` im Compose-Netz. Prüfen Sie `BIND_ADDRESS`, Firewall, Datenbankauswahl und `DB_USER`-Zugangsdaten. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Zurück zur README](../README_de.md) diff --git a/docs/langs/en/databases.md b/docs/langs/en/databases.md index 54651b5..565bcd5 100644 --- a/docs/langs/en/databases.md +++ b/docs/langs/en/databases.md @@ -34,8 +34,8 @@ The default database names are enforced by `make check-env` through | DBMS | Optional databases | Preparation command | |---|---|---| -| MySQL | Chinook, Sakila | `make samples-mysql` | -| PostgreSQL | Pagila, Chinook | `make samples-postgres` | +| MySQL | `chinook`, `sakila` | `make samples-mysql` | +| PostgreSQL | `pagila`, `chinook` | `make samples-postgres` | ## Sample preparation @@ -46,29 +46,11 @@ The preparation commands download and verify pinned upstream files but do not start containers or import into an initialized database. Downloads are local, are excluded from Git, and are stored under `MYSQL_SAMPLES_DIR` or `POSTGRES_SAMPLES_DIR`. Their provenance, integrity pins, and license terms are -documented in [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md). +documented in +[`THIRD_PARTY_NOTICES.md`](../../../THIRD_PARTY_NOTICES.md). -For a DBMS with an empty data directory: - -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` - -Official image entrypoints process init files only when the corresponding data -directory is empty. To add samples to an already initialized DBMS, first back -up anything important and then deliberately reinitialize only that DBMS: - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` +See [Initialization lifecycle](#section-initialization) for when preparation +must occur and how an initialized DBMS can be reinitialized. A completely absent optional sample is skipped and does not prevent the required `demo` database from being created. A partial sample set or an @@ -98,12 +80,9 @@ The related `.docker.env` settings are separate as well: | PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | Data and sample locations can be changed through `.docker.env`, subject to -managed storage-path validation. - -The official MySQL and PostgreSQL entrypoints run their respective init -directory only for an empty data directory. Adding or editing an init file does -not migrate an existing database. `make down` does not delete data from either -bind mount. +managed storage-path validation. See +[Initialization lifecycle](#section-initialization) for the rules governing +the init directories. Do not edit database files inside `data/` manually. Container-owned files may use numeric UID/GID values that differ from the host user. @@ -111,9 +90,33 @@ use numeric UID/GID values that differ from the host user. ## Initialization lifecycle -> **Important:** Official MySQL and PostgreSQL entrypoints run init files only for an -empty data directory. Editing init files does not migrate an existing -database, and `make down` preserves bind-mounted data. +> **Important:** Official MySQL and PostgreSQL entrypoints run init files only +> for an empty data directory. Adding files after initialization does not +> change an existing database. `make down` preserves data, while confirmed +> reinitialization deletes all data for the selected DBMS; a backup is required +> beforehand. + +For first initialization with sample datasets, prepare them before the first +start: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +For an initialized DBMS, create a backup and then use only its matching +confirmed reinitialization: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` ## Training access and ownership @@ -126,6 +129,4 @@ credentials remain separate: `MYSQL_ROOT_PASSWORD`, `POSTGRES_SUPERUSER`, and `POSTGRES_SUPERUSER_PASSWORD`. Do not edit container-owned files in `data/` manually. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Back to README](../README_en.md) diff --git a/docs/langs/en/getting-started.md b/docs/langs/en/getting-started.md index 4d0d12c..9239041 100644 --- a/docs/langs/en/getting-started.md +++ b/docs/langs/en/getting-started.md @@ -18,10 +18,9 @@ ## Requirements - Docker Engine or Docker Desktop with the `docker compose` v2 command. -- GNU Make, Bash, and standard Unix tools used by the scripts (`awk`, `sed`, - `grep`, `find`, `realpath`, and `stat`). -- For optional sample downloads: `curl` and `git`; MySQL samples additionally - require `unzip` and `sha256sum`. +- GNU Make, Bash, and basic Unix CLI utilities. +- Recommended environments: Linux; macOS with Docker Desktop; or Windows with + Docker Desktop and WSL2. Run project commands from the repository root. The default project branch is `master`. @@ -29,8 +28,9 @@ Run project commands from the repository root. The default project branch is ## Quick start -Create `.docker.env` from the tracked example, validate the configured paths, -create the working directories, and start the full lab: +`make init` creates a local `.docker.env` from +[`.docker.env.example`](../../../.docker.env.example), validates the managed +storage paths, and creates the working directories. Then start the full lab: ```bash make init @@ -40,6 +40,14 @@ make up `make up` starts MySQL, PostgreSQL, and Adminer. With the default configuration, open Adminer at `http://127.0.0.1:8081`. +Use `make up-no-ui` to start both DBMSs without Adminer. The required `demo` +database is always created during first initialization; sample datasets are +optional. To include them in the first initialization, prepare them before the +first `make up`. For initialized data directories, create a backup before a +confirmed reinitialization that deletes data. See +[Initialization lifecycle](databases.md#section-initialization) for the exact +procedure. + Useful follow-up commands: ```bash @@ -64,7 +72,7 @@ database data. Single-DBMS commands do not stop the other running database; Adminer is managed separately.
-Full startup-mode table +📋 Full startup-mode table | Command | MySQL | PostgreSQL | Adminer | |---|---|---|---| @@ -165,6 +173,4 @@ access, prefer the address of the specific interface. Change the binding only deliberately, after considering firewall rules, password strength, and trust in every connected network. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Back to README](../README_en.md) diff --git a/docs/langs/en/operations.md b/docs/langs/en/operations.md index 6abc2b4..36f640c 100644 --- a/docs/langs/en/operations.md +++ b/docs/langs/en/operations.md @@ -28,7 +28,7 @@ PostgreSQL. `clean-*` and `reinit-*` are destructive and require exact `CONFIRM=1`.
-Complete public Make target reference +📋 Complete public Make target reference Run `make help` for the concise command list. @@ -106,7 +106,9 @@ not prove that untrusted SQL is safe or sandboxed. ## Storage-path safety -`make check-env` runs `scripts/validate-storage-paths.sh`. Data paths +`make check-env` runs +[`scripts/validate-storage-paths.sh`](../../../scripts/validate-storage-paths.sh). +Data paths must be strict descendants of `data/`, and sample paths of `samples/`. Symlink components, equal, nested, overlapping, and reserved paths are rejected. `make test-storage-paths` exercises these rules without Docker @@ -178,6 +180,4 @@ variants delete both database data directories. Configuration, init files, optional sample downloads, and backups are preserved. Reinitialization then starts and checks the selected DBMSs; `reinit-all` starts both without Adminer. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Back to README](../README_en.md) diff --git a/docs/langs/en/troubleshooting.md b/docs/langs/en/troubleshooting.md index 80aacae..32414ce 100644 --- a/docs/langs/en/troubleshooting.md +++ b/docs/langs/en/troubleshooting.md @@ -69,6 +69,4 @@ Host clients use the published host address and `MYSQL_PORT` or `postgres` inside the Compose network. Confirm `BIND_ADDRESS`, firewall rules, the selected database, and the non-administrative `DB_USER` credentials. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Back to README](../README_en.md) diff --git a/docs/langs/es/databases.md b/docs/langs/es/databases.md index 6630e95..1be6102 100644 --- a/docs/langs/es/databases.md +++ b/docs/langs/es/databases.md @@ -32,8 +32,8 @@ admiten filas adicionales. `make check-env` exige `MYSQL_DATABASE=demo` y | SGBD | Bases opcionales | Preparación | |---|---|---| -| MySQL | Chinook, Sakila | `make samples-mysql` | -| PostgreSQL | Pagila, Chinook | `make samples-postgres` | +| MySQL | `chinook`, `sakila` | `make samples-mysql` | +| PostgreSQL | `pagila`, `chinook` | `make samples-postgres` | ## Preparación de samples @@ -44,29 +44,10 @@ La preparación descarga y verifica archivos upstream fijados, pero no inicia contenedores ni importa en una base ya inicializada. Las descargas temporales son locales, no se versionan y quedan bajo `MYSQL_SAMPLES_DIR` o `POSTGRES_SAMPLES_DIR`. Procedencia, hashes y licencias están en -[THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md). +[`THIRD_PARTY_NOTICES.md`](../../../THIRD_PARTY_NOTICES.md). -Para un data directory vacío: - -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` - -Los entrypoints oficiales procesan init solo con el data directory vacío. Para -añadir samples a una instancia existente, haga backup y reinicialice -deliberadamente solo ese SGBD: - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` +Consulte [Inicialización y ciclo de vida](#section-initialization) para saber +cuándo preparar los samples y cómo reinicializar un SGBD existente. Un sample ausente se omite y no impide crear `demo`. Un conjunto parcial o una base inesperada se rechazan sin reparación ni borrado automático. @@ -90,17 +71,39 @@ initdb/ | PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | Las rutas data y samples son configurables en `.docker.env` y están sujetas a -validación. Los entrypoints ejecutan init únicamente si el data directory está -vacío; editar init no migra una base existente. `make down` no borra los bind -mounts. No edite manualmente los archivos de `data/`; pueden pertenecer a -UID/GID numéricos del contenedor. +validación. Las reglas de los directorios init se describen en +[Inicialización y ciclo de vida](#section-initialization). No edite manualmente +los archivos de `data/`; pueden pertenecer a UID/GID numéricos del contenedor. ## Inicialización y ciclo de vida -> **Importante:** Los entrypoints oficiales de MySQL y PostgreSQL ejecutan init solo si el -data directory está vacío. Cambiar init no migra una base existente y -`make down` conserva los datos bind-mounted. +> **Importante:** Los entrypoints oficiales de MySQL y PostgreSQL ejecutan init +> solo si el data directory está vacío. Añadir archivos tras la inicialización +> no cambia una base existente. `make down` conserva los datos, mientras que +> una reinicialización confirmada elimina todos los datos del SGBD elegido; +> antes es obligatorio crear un backup. + +Para una primera inicialización con samples, prepárelos antes del primer inicio: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Para un SGBD inicializado, cree un backup y use únicamente su reinicialización +confirmada correspondiente: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` ## Acceso didáctico y ownership @@ -112,6 +115,4 @@ sin superuser/createdb/createrole, y lo hace propietario de `demo`, de separadas: `MYSQL_ROOT_PASSWORD`, `POSTGRES_SUPERUSER` y `POSTGRES_SUPERUSER_PASSWORD`. No edite manualmente archivos de `data/`. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Volver al README](../README_es.md) diff --git a/docs/langs/es/getting-started.md b/docs/langs/es/getting-started.md index bfbb257..410e7f0 100644 --- a/docs/langs/es/getting-started.md +++ b/docs/langs/es/getting-started.md @@ -18,10 +18,9 @@ ## Requisitos - Docker Engine o Docker Desktop con el comando `docker compose` v2. -- GNU Make, Bash y las utilidades Unix usadas por los scripts (`awk`, `sed`, - `grep`, `find`, `realpath` y `stat`). -- Para descargar samples opcionales: `curl` y `git`; para MySQL también - `unzip` y `sha256sum`. +- GNU Make, Bash y utilidades básicas de línea de comandos Unix. +- Entornos recomendados: Linux; macOS con Docker Desktop; o Windows con + Docker Desktop y WSL2. Ejecute los comandos desde la raíz del repositorio. La rama predeterminada del proyecto es `master`. @@ -29,8 +28,10 @@ proyecto es `master`. ## Inicio rápido -Cree `.docker.env` desde el ejemplo versionado, valide las rutas, cree los -directorios de trabajo e inicie el laboratorio completo: +`make init` crea un `.docker.env` local desde +[`.docker.env.example`](../../../.docker.env.example), valida las rutas de +almacenamiento gestionadas y crea los directorios de trabajo. Después, inicie +el laboratorio completo: ```bash make init @@ -40,6 +41,14 @@ make up `make up` inicia MySQL, PostgreSQL y Adminer. Con la configuración por defecto, Adminer está en `http://127.0.0.1:8081`. +Use `make up-no-ui` para iniciar ambos SGBD sin Adminer. La base obligatoria +`demo` siempre se crea durante la primera inicialización; los datasets de +ejemplo son opcionales. Para incluirlos en la primera inicialización, +prepárelos antes del primer `make up`. Si los directorios de datos ya están +inicializados, cree un backup antes de una reinicialización confirmada que +borra datos. Consulte el procedimiento exacto en +[Inicialización y ciclo de vida](databases.md#section-initialization). + ```bash make status make logs @@ -62,7 +71,7 @@ bind-mounted. Los comandos de un SGBD no detienen el otro ya activo; Adminer se gestiona aparte.
-Tabla completa de modos de inicio +📋 Tabla completa de modos de inicio | Comando | MySQL | PostgreSQL | Adminer | |---|---|---|---| @@ -154,6 +163,4 @@ los puertos en todas las interfaces. Para LAN o VPN, prefiera la dirección de una interfaz concreta. Cambie este valor conscientemente y revise firewall, fortaleza de contraseñas y confianza en la red. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Volver al README](../README_es.md) diff --git a/docs/langs/es/operations.md b/docs/langs/es/operations.md index 97b816b..0e610bc 100644 --- a/docs/langs/es/operations.md +++ b/docs/langs/es/operations.md @@ -28,7 +28,7 @@ antes de un import importante. Los backups integrados solo cubren MySQL `CONFIRM=1` exacto.
-Referencia completa de targets públicos de Make +📋 Referencia completa de targets públicos de Make `make help` muestra la lista resumida. @@ -96,7 +96,9 @@ prueba de seguridad para SQL no confiable. ## Seguridad de storage paths -`make check-env` ejecuta `scripts/validate-storage-paths.sh`. Los data +`make check-env` ejecuta +[`scripts/validate-storage-paths.sh`](../../../scripts/validate-storage-paths.sh). +Los data paths deben estar estrictamente bajo `data/` y los sample paths bajo `samples/`; se rechazan symlinks, rutas iguales, anidadas, solapadas o reservadas. `make test-storage-paths` prueba estas reglas sin Docker runtime. @@ -156,6 +158,4 @@ Los targets individuales borran solo los datos del SGBD elegido; los de tipo reinicialización vuelve a iniciar y comprobar los SGBD seleccionados; `reinit-all` inicia ambos sin Adminer. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Volver al README](../README_es.md) diff --git a/docs/langs/es/troubleshooting.md b/docs/langs/es/troubleshooting.md index ca1c6cc..ae778b5 100644 --- a/docs/langs/es/troubleshooting.md +++ b/docs/langs/es/troubleshooting.md @@ -58,6 +58,4 @@ Los clientes del host usan la dirección publicada y `MYSQL_PORT` o `POSTGRES_PORT`; Adminer usa `mysql` o `postgres` dentro de Compose. Revise `BIND_ADDRESS`, firewall, base seleccionada y credenciales `DB_USER`. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Volver al README](../README_es.md) diff --git a/docs/langs/fr/databases.md b/docs/langs/fr/databases.md index 3a63027..cf22404 100644 --- a/docs/langs/fr/databases.md +++ b/docs/langs/fr/databases.md @@ -32,8 +32,8 @@ supplémentaires. `make check-env` impose `MYSQL_DATABASE=demo` et | SGBD | Bases optionnelles | Préparation | |---|---|---| -| MySQL | Chinook, Sakila | `make samples-mysql` | -| PostgreSQL | Pagila, Chinook | `make samples-postgres` | +| MySQL | `chinook`, `sakila` | `make samples-mysql` | +| PostgreSQL | `pagila`, `chinook` | `make samples-postgres` | ## Préparation des samples @@ -45,29 +45,10 @@ démarrer les conteneurs ni importer dans une base déjà initialisée. Les téléchargements temporaires restent locaux, ne sont pas commités et sont placés sous `MYSQL_SAMPLES_DIR` ou `POSTGRES_SAMPLES_DIR`. Provenance, intégrité et licences figurent dans -[THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md). +[`THIRD_PARTY_NOTICES.md`](../../../THIRD_PARTY_NOTICES.md). -Pour un répertoire data vide : - -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` - -Les entrypoints officiels ne traitent init que si le répertoire data est vide. -Pour ajouter des samples à une instance existante, sauvegardez puis -réinitialisez volontairement uniquement le SGBD concerné : - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` +Consultez [Initialisation et cycle de vie](#section-initialization) pour le +moment de la préparation et la réinitialisation d’un SGBD existant. Un sample totalement absent est ignoré et n’empêche pas la création de `demo`. Un ensemble incomplet ou une base inattendue est refusé, sans réparation ni @@ -92,17 +73,41 @@ initdb/ | PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | Les chemins data et samples se configurent dans `.docker.env` sous contrôle -des managed paths. Les entrypoints exécutent init uniquement avec un data -directory vide ; modifier init ne migre pas une base existante. `make down` ne -supprime aucun bind mount. Ne modifiez pas manuellement les fichiers de -`data/` : ils peuvent appartenir à des UID/GID numériques du conteneur. +des managed paths. Les règles des répertoires init sont décrites dans +[Initialisation et cycle de vie](#section-initialization). Ne modifiez pas +manuellement les fichiers de `data/` : ils peuvent appartenir à des UID/GID +numériques du conteneur. ## Initialisation et cycle de vie -> **Important:** Les entrypoints officiels MySQL et PostgreSQL n’exécutent init que si le -data directory est vide. Modifier init ne migre pas une base existante et -`make down` conserve les données bind-mounted. +> **Important :** Les entrypoints officiels MySQL et PostgreSQL n’exécutent +> init que si le data directory est vide. Ajouter des fichiers après +> l’initialisation ne modifie pas une base existante. `make down` conserve les +> données, tandis qu’une réinitialisation confirmée supprime toutes les données +> du SGBD choisi ; une sauvegarde préalable est obligatoire. + +Pour une première initialisation avec samples, préparez-les avant le premier +démarrage : + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Pour un SGBD déjà initialisé, créez une sauvegarde puis utilisez uniquement sa +réinitialisation confirmée correspondante : + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` ## Accès pédagogique et ownership @@ -115,6 +120,4 @@ séparés : `MYSQL_ROOT_PASSWORD`, `POSTGRES_SUPERUSER` et `POSTGRES_SUPERUSER_PASSWORD`. Ne modifiez pas manuellement les fichiers de `data/` appartenant aux conteneurs. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Retour au README](../README_fr.md) diff --git a/docs/langs/fr/getting-started.md b/docs/langs/fr/getting-started.md index 7f9b004..2706324 100644 --- a/docs/langs/fr/getting-started.md +++ b/docs/langs/fr/getting-started.md @@ -18,10 +18,9 @@ ## Prérequis - Docker Engine ou Docker Desktop avec la commande `docker compose` v2. -- GNU Make, Bash et les outils Unix utilisés par les scripts (`awk`, `sed`, - `grep`, `find`, `realpath` et `stat`). -- Pour les samples optionnels : `curl` et `git` ; MySQL demande aussi `unzip` - et `sha256sum`. +- GNU Make, Bash et les utilitaires Unix de base en ligne de commande. +- Environnements recommandés : Linux ; macOS avec Docker Desktop ; ou Windows + avec Docker Desktop et WSL2. Exécutez les commandes depuis la racine du dépôt. La branche par défaut du projet est `master`. @@ -29,8 +28,10 @@ projet est `master`. ## Démarrage rapide -Créez `.docker.env` depuis l’exemple suivi par Git, validez les chemins, créez -les répertoires de travail et démarrez le laboratoire complet : +`make init` crée un `.docker.env` local depuis +[`.docker.env.example`](../../../.docker.env.example), valide les chemins de +stockage gérés et crée les répertoires de travail. Démarrez ensuite le +laboratoire complet : ```bash make init @@ -40,6 +41,14 @@ make up `make up` démarre MySQL, PostgreSQL et Adminer. Avec la configuration par défaut, Adminer est disponible sur `http://127.0.0.1:8081`. +Utilisez `make up-no-ui` pour démarrer les deux SGBD sans Adminer. La base +obligatoire `demo` est toujours créée à la première initialisation ; les jeux +de données d’exemple sont optionnels. Pour les inclure à la première +initialisation, préparez-les avant le premier `make up`. Si les répertoires de +données sont déjà initialisés, créez une sauvegarde avant une réinitialisation +confirmée qui supprime les données. Consultez la procédure exacte dans +[Initialisation et cycle de vie](databases.md#section-initialization). + ```bash make status make logs @@ -62,7 +71,7 @@ bind-mounted. Les commandes d’un SGBD n’arrêtent pas l’autre déjà actif ; Adminer se gère séparément.
-Tableau complet des modes de démarrage +📋 Tableau complet des modes de démarrage | Commande | MySQL | PostgreSQL | Adminer | |---|---|---|---| @@ -155,6 +164,4 @@ ports sur toutes les interfaces. Pour un LAN ou VPN, préférez l’adresse d’ interface précise. Ce changement doit être volontaire et tenir compte du firewall, de la robustesse des mots de passe et de la confiance accordée au réseau. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Retour au README](../README_fr.md) diff --git a/docs/langs/fr/operations.md b/docs/langs/fr/operations.md index 8449042..009b86a 100644 --- a/docs/langs/fr/operations.md +++ b/docs/langs/fr/operations.md @@ -28,7 +28,7 @@ MySQL `demo`, pas PostgreSQL. `clean-*` et `reinit-*` sont destructifs et exigent `CONFIRM=1` exact.
-Référence complète des targets Make publics +📋 Référence complète des targets Make publics `make help` affiche la liste concise. @@ -96,7 +96,9 @@ import, ni un sandbox ni une preuve de sécurité pour du SQL non fiable. ## Sécurité des storage paths -`make check-env` exécute `scripts/validate-storage-paths.sh`. Les data +`make check-env` exécute +[`scripts/validate-storage-paths.sh`](../../../scripts/validate-storage-paths.sh). +Les data paths doivent rester strictement sous `data/`, les sample paths sous `samples/` ; symlinks, chemins égaux, imbriqués, chevauchants ou réservés sont refusés. `make test-storage-paths` teste ces règles sans Docker runtime. @@ -156,6 +158,4 @@ supprime celles des deux. Configuration, init, samples et backups restent en place. La réinitialisation redémarre et contrôle les SGBD choisis ; `reinit-all` démarre les deux sans Adminer. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Retour au README](../README_fr.md) diff --git a/docs/langs/fr/troubleshooting.md b/docs/langs/fr/troubleshooting.md index 4aec45a..e558bce 100644 --- a/docs/langs/fr/troubleshooting.md +++ b/docs/langs/fr/troubleshooting.md @@ -59,6 +59,4 @@ Les clients hôtes utilisent l’adresse publiée et `MYSQL_PORT` ou `POSTGRES_PORT` ; Adminer utilise `mysql` ou `postgres` dans Compose. Vérifiez `BIND_ADDRESS`, firewall, base sélectionnée et identifiants `DB_USER`. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Retour au README](../README_fr.md) diff --git a/docs/langs/ru/databases.md b/docs/langs/ru/databases.md index f18a174..6213c8c 100644 --- a/docs/langs/ru/databases.md +++ b/docs/langs/ru/databases.md @@ -1,4 +1,4 @@ -# Базы и samples +# Базы и учебные данные [← Вернуться к README](../../../README.md) @@ -10,9 +10,9 @@ ## Раздел -| Начало работы | Базы и samples | Проверки и операции | Диагностика | +| Начало работы | Базы и учебные данные | Проверки и эксплуатация | Диагностика | | --- | --- | --- | --- | -| [Начало работы](getting-started.md) | **Выбран** | [Проверки и операции](operations.md) | [Диагностика](troubleshooting.md) | +| [Начало работы](getting-started.md) | **Выбран** | [Проверки и эксплуатация](operations.md) | [Диагностика](troubleshooting.md) | ## Обязательные базы `demo` @@ -34,51 +34,34 @@ | СУБД | Необязательные базы | Команда подготовки | |---|---|---| -| MySQL | Chinook, Sakila | `make samples-mysql` | -| PostgreSQL | Pagila, Chinook | `make samples-postgres` | +| MySQL | `chinook`, `sakila` | `make samples-mysql` | +| PostgreSQL | `pagila`, `chinook` | `make samples-postgres` | -## Подготовка samples +## Подготовка учебных баз -Для подготовки нужны `curl` и `git`; MySQL samples дополнительно требуют `unzip` и `sha256sum`. +Для подготовки нужны `curl` и `git`; учебные базы MySQL дополнительно требуют +`unzip` и `sha256sum`. -Команды подготовки загружают и проверяют закреплённые upstream-файлы, но не +Команды подготовки загружают и проверяют закреплённые файлы исходных проектов, но не запускают контейнеры и не импортируют данные в уже инициализированную СУБД. Загрузки остаются локальными, исключаются из Git и сохраняются в -`MYSQL_SAMPLES_DIR` или `POSTGRES_SAMPLES_DIR`. Происхождение, integrity pins и -лицензии описаны в [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md). +`MYSQL_SAMPLES_DIR` или `POSTGRES_SAMPLES_DIR`. Происхождение, контрольные +значения целостности и лицензии описаны в +[`THIRD_PARTY_NOTICES.md`](../../../THIRD_PARTY_NOTICES.md). -Для СУБД с пустым data-каталогом: +Порядок подготовки относительно первого запуска и повторной инициализации +описан в разделе [«Инициализация и жизненный цикл»](#section-initialization). -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` - -Официальные entrypoints образов обрабатывают init-файлы только при пустом -data-каталоге соответствующей СУБД. Чтобы добавить samples в уже -инициализированную СУБД, сначала сохраните важные данные, затем осознанно -переинициализируйте только её: - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` - -Полностью отсутствующий optional sample пропускается и не мешает создать -обязательную `demo`. Частичный набор sample-файлов или неожиданная существующая -sample-база отклоняются без автоматического исправления или удаления. +Полностью отсутствующая необязательная учебная база пропускается и не мешает +создать обязательную `demo`. Частичный набор файлов учебных баз или неожиданно +существующая учебная база отклоняются без автоматического исправления или +удаления. ## Структура хранения -Bind-mounted storage по умолчанию разделён по СУБД: +Каталоги хоста для хранения данных по умолчанию разделены по СУБД: ```text data/ @@ -92,40 +75,57 @@ initdb/ Связанные настройки `.docker.env` также разделены: -| СУБД | Данные | Init | Optional samples | +| СУБД | Данные | Инициализация | Необязательные учебные базы | |---|---|---|---| | MySQL | `MYSQL_DATA_DIR` (`./data/mysql`) | `MYSQL_INITDB_DIR` (`./initdb/mysql`) | `MYSQL_SAMPLES_DIR` (`./samples/mysql`) | | PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | -Data- и sample-пути можно изменить через `.docker.env` с учётом проверки -managed storage paths. +Пути данных и учебных баз можно изменить через `.docker.env` с учётом проверки +контролируемых путей хранения. Правила применения каталогов инициализации +описаны в разделе [«Инициализация и жизненный цикл»](#section-initialization). -Официальные entrypoints MySQL и PostgreSQL выполняют соответствующий -init-каталог только для пустого data-каталога. Добавление или изменение -init-файла не мигрирует существующую базу. `make down` не удаляет данные ни из -одного bind mount. - -Не редактируйте файлы СУБД внутри `data/` вручную. Container-owned файлы могут -иметь числовые UID/GID, отличающиеся от пользователя хоста. +Не редактируйте файлы СУБД внутри `data/` вручную. Файлы, принадлежащие +контейнерам, могут иметь числовые UID/GID, отличающиеся от пользователя хоста. ## Инициализация и жизненный цикл -> **Важно:** Официальные entrypoints MySQL и PostgreSQL выполняют init-файлы только -при пустом data-каталоге. Изменение init-файлов не мигрирует уже созданную -базу, а `make down` не удаляет bind-mounted данные. +> **Важно:** Официальные точки входа MySQL и PostgreSQL выполняют файлы +> инициализации только при пустом каталоге данных. Добавление файлов после +> инициализации не изменяет существующую базу. `make down` сохраняет данные, +> а подтверждённая переинициализация удаляет все данные выбранной СУБД; +> предварительное создание резервной копии обязательно. + +Для первой инициализации с учебными базами подготовьте их до первого запуска: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +Для уже инициализированной СУБД после создания резервной копии используйте +только соответствующую подтверждённую переинициализацию: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` -## Доступ учебного пользователя и ownership +## Доступ учебного пользователя и владение объектами MySQL создаёт `DB_USER` и выдаёт ему права на все пользовательские -базы, обнаруженные во время init. PostgreSQL создаёт отдельную роль -`DB_USER` без superuser/createdb/createrole и назначает её владельцем -`demo`, схемы `public` и загруженных sample-объектов. Административные -credentials остаются отдельными: `MYSQL_ROOT_PASSWORD`, +базы, обнаруженные во время инициализации. PostgreSQL создаёт отдельную роль +`DB_USER` без прав `superuser`, `createdb` и `createrole` и назначает её владельцем +`demo`, схемы `public` и загруженных объектов учебных баз. Административные +учётные данные остаются отдельными: `MYSQL_ROOT_PASSWORD`, `POSTGRES_SUPERUSER` и `POSTGRES_SUPERUSER_PASSWORD`. Не редактируйте -container-owned файлы в `data/` вручную. - -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) +файлы в `data/`, принадлежащие контейнерам, вручную. [Вернуться к README](../../../README.md) diff --git a/docs/langs/ru/getting-started.md b/docs/langs/ru/getting-started.md index 31e3cbe..0d467de 100644 --- a/docs/langs/ru/getting-started.md +++ b/docs/langs/ru/getting-started.md @@ -10,26 +10,26 @@ ## Раздел -| Начало работы | Базы и samples | Проверки и операции | Диагностика | +| Начало работы | Базы и учебные данные | Проверки и эксплуатация | Диагностика | | --- | --- | --- | --- | -| **Выбран** | [Базы и samples](databases.md) | [Проверки и операции](operations.md) | [Диагностика](troubleshooting.md) | +| **Выбран** | [Базы и учебные данные](databases.md) | [Проверки и эксплуатация](operations.md) | [Диагностика](troubleshooting.md) | ## Требования - Docker Engine или Docker Desktop с командой `docker compose` v2. -- GNU Make, Bash и стандартные Unix-утилиты, используемые скриптами (`awk`, - `sed`, `grep`, `find`, `realpath` и `stat`). -- Для загрузки optional samples: `curl` и `git`; для MySQL samples также нужны - `unzip` и `sha256sum`. +- GNU Make, Bash и базовые утилиты командной строки Unix. +- Рекомендуемая среда: Linux; macOS с Docker Desktop; Windows с Docker Desktop + и WSL2. Выполняйте команды из корня репозитория. Ветка проекта по умолчанию — `master`. ## Быстрый старт -Создайте `.docker.env` из отслеживаемого примера, проверьте настроенные пути, -создайте рабочие каталоги и запустите полный стенд: +`make init` создаёт локальный `.docker.env` из +[`.docker.env.example`](../../../.docker.env.example), проверяет контролируемые +пути хранения и создаёт рабочие каталоги. Затем запустите полный стенд: ```bash make init @@ -39,6 +39,14 @@ make up `make up` запускает MySQL, PostgreSQL и Adminer. С конфигурацией по умолчанию Adminer доступен по адресу `http://127.0.0.1:8081`. +Чтобы запустить обе СУБД без Adminer, используйте `make up-no-ui`. При первой +инициализации всегда создаётся обязательная база `demo`; учебные базы +необязательны. Если они нужны при первой инициализации, подготовьте их до +первого `make up`. Для уже инициализированных каталогов данных сначала +создайте резервную копию, затем выполните подтверждённую переинициализацию, +удаляющую данные. Точный порядок действий приведён в разделе +[«Инициализация и жизненный цикл»](databases.md#section-initialization). + Полезные следующие команды: ```bash @@ -47,7 +55,8 @@ make logs make down ``` -`make down` удаляет контейнеры и сеть, но сохраняет bind-mounted данные СУБД. +`make down` удаляет контейнеры и сеть, но сохраняет данные СУБД в каталогах +хоста, подключённых в контейнеры. ## Режимы запуска @@ -62,7 +71,7 @@ make down Команды одной СУБД не останавливают уже работающую другую; Adminer управляется отдельно.
-Полная таблица режимов запуска +📋 Полная таблица режимов запуска | Команда | MySQL | PostgreSQL | Adminer | |---|---|---|---| @@ -95,12 +104,12 @@ PostgreSQL (postgres) Выберите сервер, затем укажите `DB_USER`, `DB_PASSWORD` и имя базы, например `demo`. Имена сервисов `mysql` и `postgres` работают внутри Compose-сети; для -desktop-клиентов на хосте это не адреса серверов. +клиентов на компьютере пользователя это не адреса серверов. ### Клиенты на хосте -DataGrip, DBeaver, PhpStorm и host CLI подключаются через опубликованный адрес -и порт: +DataGrip, DBeaver, PhpStorm и клиенты командной строки на компьютере +пользователя подключаются через опубликованный адрес и порт: | СУБД | Хост по умолчанию | Переменная порта | Пользователь | База по умолчанию | |---|---|---|---|---| @@ -112,13 +121,13 @@ DataGrip, DBeaver, PhpStorm и host CLI подключаются через оп ### CLI в контейнерах -Make-targets передают пароли через environment контейнера и не помещают их в -историю shell: +Цели Make передают пароли через окружение контейнера и не помещают их в +историю командной оболочки: ```bash make mysql # администратор MySQL, база demo make mysql-user # DB_USER, база demo -make postgres # superuser PostgreSQL, база demo +make postgres # суперпользователь PostgreSQL, база demo make postgres-user # DB_USER, база demo ``` @@ -126,17 +135,18 @@ make postgres-user # DB_USER, база demo ## Учётные данные При копировании [`.docker.env.example`](../../../.docker.env.example) создаётся `.docker.env`; этот файл -исключён из Git. Храните пароли в нём и не хардкодьте их в Compose, SQL или -отслеживаемой конфигурации клиентов. +исключён из Git. Храните пароли в нём и не записывайте их напрямую в Compose, +SQL или отслеживаемую конфигурацию клиентов. | Назначение | Настройка пользователя | Настройка пароля | |---|---|---| | Общий учебный пользователь двух СУБД | `DB_USER` | `DB_PASSWORD` | | Администратор MySQL | `root` | `MYSQL_ROOT_PASSWORD` | -| Администратор/superuser PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | +| Администратор/суперпользователь PostgreSQL | `POSTGRES_SUPERUSER` | `POSTGRES_SUPERUSER_PASSWORD` | `POSTGRES_SUPERUSER` и `DB_USER` должны быть разными ролями. Для обычных -упражнений используйте общего учебного пользователя, а не root или superuser. +упражнений используйте общего учебного пользователя, а не `root` или +суперпользователя. Замените пароли из примера до предоставления общего доступа или публикации любого сервиса за пределами локального компьютера. @@ -151,18 +161,17 @@ make postgres-user # DB_USER, база demo | PostgreSQL | `POSTGRES_PORT` | `5432` | | Adminer | `ADMINER_PORT` | `8081` | -По умолчанию все три сервиса публикуются только на loopback: +По умолчанию все три сервиса публикуются только на интерфейсе обратной петли +(loopback): ```env BIND_ADDRESS=127.0.0.1 ``` -Это безопасный default для локального стенда. Значение +Это безопасное значение по умолчанию для локального стенда. Значение `BIND_ADDRESS=0.0.0.0` публикует настроенные порты на всех сетевых интерфейсах. Для доступа через VPN или LAN предпочтительнее адрес конкретного интерфейса. -Меняйте binding осознанно, учитывая правила firewall, надёжность паролей и +Меняйте привязку осознанно, учитывая правила межсетевого экрана, надёжность паролей и доверие ко всем подключённым сетям. -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [Вернуться к README](../../../README.md) diff --git a/docs/langs/ru/operations.md b/docs/langs/ru/operations.md index 6ba2907..6e18efa 100644 --- a/docs/langs/ru/operations.md +++ b/docs/langs/ru/operations.md @@ -1,4 +1,4 @@ -# Проверки и операции +# Проверки и эксплуатация [← Вернуться к README](../../../README.md) @@ -10,54 +10,55 @@ ## Раздел -| Начало работы | Базы и samples | Проверки и операции | Диагностика | +| Начало работы | Базы и учебные данные | Проверки и эксплуатация | Диагностика | | --- | --- | --- | --- | -| [Начало работы](getting-started.md) | [Базы и samples](databases.md) | **Выбран** | [Диагностика](troubleshooting.md) | +| [Начало работы](getting-started.md) | [Базы и учебные данные](databases.md) | **Выбран** | [Диагностика](troubleshooting.md) | -## Команды Makefile +## Команды `Makefile` -Публичные targets и их фактическая реализация находятся в [`Makefile`](../../../Makefile). +Публичные цели и их фактическая реализация находятся в +[`Makefile`](../../../Makefile). -Ключевые targets: `make init`, `make up`, `make down`, `make check`, +Ключевые цели: `make init`, `make up`, `make down`, `make check`, `make test-storage-paths`, `make test-sql-imports`, `make mysql-import` и -`make postgres-import`. Trusted SQL не является sandbox, может выполниться -частично и не получает гарантии automatic rollback; перед важным импортом -нужен backup. Встроенные backup targets покрывают только MySQL `demo`, не -PostgreSQL. `clean-*` и `reinit-*` destructive и требуют точного -`CONFIRM=1`. +`make postgres-import`. Импорт доверенного SQL не является изолированной +средой (`sandbox`), может выполниться частично и не гарантирует автоматический +откат; перед важным импортом нужна резервная копия. Встроенные цели резервного +копирования покрывают только MySQL `demo`, но не PostgreSQL. Цели `clean-*` и +`reinit-*` удаляют данные и требуют точного `CONFIRM=1`.
-Полный справочник публичных Make-целей +📋 Полный справочник публичных целей Make Краткий список команд выводит `make help`. | Команда | Назначение | |---|---| -| `make init` | Создать `.docker.env`, проверить managed paths и создать рабочие каталоги | -| `make check-env` | Проверить обязательные env-значения, разделение ролей, имена баз и managed paths | -| `make pull` | Загрузить три закреплённых container images | +| `make init` | Создать `.docker.env`, проверить контролируемые пути хранения и создать рабочие каталоги | +| `make check-env` | Проверить обязательные значения окружения, разделение ролей, имена баз и контролируемые пути хранения | +| `make pull` | Загрузить три закреплённых образа контейнеров | | `make config` | Проверить развёрнутую Compose-конфигурацию | | `make up`, `make up-no-ui` | Запустить обе СУБД с Adminer или без него | -| `make up-mysql`, `make up-mysql-ui` | Запустить MySQL, опционально с Adminer | -| `make up-postgres`, `make up-postgres-ui` | Запустить PostgreSQL, опционально с Adminer | +| `make up-mysql`, `make up-mysql-ui` | Запустить MySQL, при необходимости с Adminer | +| `make up-postgres`, `make up-postgres-ui` | Запустить PostgreSQL, при необходимости с Adminer | | `make up-ui`, `make down-ui` | Запустить или остановить только Adminer | -| `make down` | Остановить стенд без удаления bind-mounted данных | +| `make down` | Остановить стенд без удаления данных в каталогах хоста, подключённых в контейнеры | | `make status` | Показать состояние сервисов | | `make logs` | Следить за логами всех сервисов | | `make log SERVICE=postgres` | Следить за логом одного сервиса; также работает `make log postgres` | -| `make in SERVICE=postgres` | Открыть shell сервиса; также работает `make in postgres` | +| `make in SERVICE=postgres` | Открыть командную оболочку сервиса; также работает `make in postgres` | | `make mysql`, `make mysql-user` | Открыть MySQL как администратор или `DB_USER` | -| `make postgres`, `make postgres-user` | Открыть PostgreSQL как superuser или `DB_USER` | -| `make samples-mysql`, `make samples-postgres` | Подготовить проверенные optional samples | +| `make postgres`, `make postgres-user` | Открыть PostgreSQL как суперпользователь или `DB_USER` | +| `make samples-mysql`, `make samples-postgres` | Подготовить проверенные необязательные учебные базы | | `make check-mysql-access`, `make check-postgres-access` | Проверить доступ учебного пользователя к одной запущенной СУБД | | `make check` | Проверить Compose и доступ `DB_USER` к двум запущенным СУБД | -| `make test-storage-paths` | Проверить защиту managed storage paths без Docker runtime | -| `make test-sql-imports` | Выполнить smoke-test двух публичных trusted SQL import targets | -| `make mysql-import FILE=... DATABASE=...` | Импортировать доверенный plain SQL в существующую MySQL-базу от `DB_USER` | -| `make postgres-import FILE=... DATABASE=...` | Импортировать доверенный plain SQL в существующую PostgreSQL-базу от `DB_USER` | +| `make test-storage-paths` | Проверить защиту контролируемых путей хранения без запуска Docker | +| `make test-sql-imports` | Быстро проверить две публичные цели импорта доверенных SQL-файлов | +| `make mysql-import FILE=... DATABASE=...` | Импортировать доверенный файл в формате `plain SQL` в существующую базу MySQL от `DB_USER` | +| `make postgres-import FILE=... DATABASE=...` | Импортировать доверенный файл в формате `plain SQL` в существующую базу PostgreSQL от `DB_USER` | | `make dump`, `make restore` | Создать или восстановить dump настроенной MySQL-базы `demo` | -| `make clean-{mysql,postgres,all} CONFIRM=1` | Удалить выбранные managed data-каталоги | +| `make clean-{mysql,postgres,all} CONFIRM=1` | Удалить выбранные контролируемые каталоги данных | | `make reinit-{mysql,postgres,all} CONFIRM=1` | Удалить, пересоздать и проверить выбранные базы |
@@ -74,18 +75,18 @@ make test-storage-paths ``` `make check-env` создаёт `.docker.env` из примера, если файла ещё нет, затем -проверяет обязательные настройки и managed paths. `make config` проверяет +проверяет обязательные настройки и контролируемые пути хранения. `make config` проверяет развёрнутую Compose-модель. -Для `make test-storage-paths` Docker runtime не требуется. Тест проверяет -защиту от путей за пределами проекта, symlink-компонентов, пересекающихся или -вложенных managed paths и зарезервированных каталогов. Тот же validator -защищает настроенные data- и sample-каталоги MySQL/PostgreSQL при обычной -инициализации. +Для `make test-storage-paths` запуск Docker не требуется. Тест проверяет защиту +от путей за пределами проекта, компонентов символических ссылок, +пересекающихся или вложенных контролируемых путей и зарезервированных +каталогов. Та же проверка защищает настроенные каталоги данных и учебных баз +MySQL/PostgreSQL при обычной инициализации. -### Runtime-проверки +### Проверки после запуска -Запустите обе СУБД без Adminer, проверьте учебный доступ и imports, затем +Запустите обе СУБД без Adminer, проверьте учебный доступ и импорт, затем остановите сервисы: ```bash @@ -96,59 +97,62 @@ make down ``` `make check` проверяет обязательные данные `demo` и фактический доступ -`DB_USER` в обеих СУБД. Если установлены поддерживаемые optional samples, они +`DB_USER` в обеих СУБД. Если установлены поддерживаемые учебные базы, они также проверяются. Для `make test-sql-imports` обе СУБД должны быть запущены. Тест вызывает -публичные targets `mysql-import` и `postgres-import`, создаёт уникальные -временные smoke-таблицы в `demo`, проверяет marker rows от имени `DB_USER` и -удаляет только эти таблицы. Это проверка trusted SQL import workflow, а не -доказательство безопасности или sandbox для недоверенного SQL. +публичные цели `mysql-import` и `postgres-import`, создаёт уникальные временные +проверочные таблицы в `demo`, проверяет контрольные записи от имени `DB_USER` и +удаляет только эти таблицы. Это проверка процесса импорта доверенного SQL, а не +доказательство безопасности или изолированная среда для недоверенного SQL. -## Безопасность storage paths +## Безопасность путей хранения -`make check-env` запускает `scripts/validate-storage-paths.sh`. -Data paths должны быть строго внутри `data/`, sample paths — внутри -`samples/`; symlink-компоненты, совпадающие, вложенные, пересекающиеся и +`make check-env` запускает +[`scripts/validate-storage-paths.sh`](../../../scripts/validate-storage-paths.sh). +Пути данных должны быть строго внутри `data/`, пути учебных баз — внутри +`samples/`; компоненты символических ссылок, совпадающие, вложенные, пересекающиеся и зарезервированные пути отклоняются. `make test-storage-paths` проверяет эти -ограничения без Docker runtime. +ограничения без запуска Docker. ## Импорт доверенных SQL-файлов -Импортируйте только доверенные локальные plain SQL-файлы: +Импортируйте только доверенные локальные файлы в формате `plain SQL`: ```bash make mysql-import FILE=path/to/file.sql DATABASE=demo make postgres-import FILE=path/to/file.sql DATABASE=demo ``` -Для обоих targets: +Для обеих целей: - `FILE` и `DATABASE` обязательны. - Файл должен быть существующим, читаемым и непустым обычным файлом. - Имя базы должно начинаться со строчной ASCII-буквы и содержать только строчные ASCII-буквы, цифры или `_`; системные базы запрещены. - База должна существовать и принимать подключение от `DB_USER`. -- Import выполняется от `DB_USER`, а не от MySQL root или PostgreSQL superuser. -- Target не создаёт базу и не выдаёт grants. -- Targets не обрабатывают архивы, gzip-потоки и PostgreSQL backups в custom - format. - -`DATABASE` выбирает начальную базу подключения, но не создаёт sandbox. -Qualified names (полные имена объектов), session/client commands и реальные -grants роли `DB_USER` могут разрешить доступ к другим объектам. SQL способен +- Импорт выполняется от `DB_USER`, а не от `root` MySQL или суперпользователя + PostgreSQL. +- Цель не создаёт базу и не выдаёт права. +- Цели не обрабатывают архивы, потоки `gzip` и резервные копии PostgreSQL в + формате `custom format`. + +`DATABASE` выбирает начальную базу подключения, но не создаёт изолированную +среду. Полные имена объектов, команды сеанса или клиента и фактические права +роли `DB_USER` могут разрешить доступ к другим объектам. SQL способен изменить или удалить всё, к чему у этой роли есть доступ. -Import может выполниться частично. Ни один target не обещает автоматический -полный rollback после ошибки. Перед важным импортом изучите файл и создайте -подходящий backup. +Импорт может выполниться частично. Ни одна цель не обещает автоматический +полный откат после ошибки. Перед важным импортом изучите файл и создайте +подходящую резервную копию. -## Backup +## Резервное копирование -Встроенные backup-targets работают только с настроенной MySQL-базой `demo`: +Встроенные цели резервного копирования работают только с настроенной базой +MySQL `demo`: ```bash make dump @@ -156,14 +160,14 @@ make restore ``` С конфигурацией по умолчанию `make dump` записывает `backup/demo.sql`. -`make restore` читает этот файл и повторно применяет учебные MySQL grants. Для +`make restore` читает этот файл и повторно применяет учебные права MySQL. Для сохранения PostgreSQL используйте отдельную процедуру резервного копирования. ## Очистка и переинициализация -> **Внимание:** все перечисленные ниже `clean-*` и `reinit-*` команды -> destructive и требуют точного подтверждения `CONFIRM=1`. +> **Внимание:** все перечисленные ниже команды `clean-*` и `reinit-*` удаляют +> данные и требуют точного подтверждения `CONFIRM=1`. ```bash make clean-mysql CONFIRM=1 @@ -175,11 +179,10 @@ make reinit-postgres CONFIRM=1 make reinit-all CONFIRM=1 ``` -Одиночные команды удаляют только data-каталог выбранной СУБД. Варианты `all` -удаляют data-каталоги обеих СУБД. Конфигурация, init-файлы, загруженные -optional samples и backups сохраняются. Затем reinit запускает и проверяет -выбранные СУБД; `reinit-all` запускает обе без Adminer. - -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) +Одиночные команды удаляют только каталог данных выбранной СУБД. Варианты +`all` удаляют каталоги данных обеих СУБД. Конфигурация, файлы инициализации, +загруженные учебные базы и резервные копии сохраняются. Затем +переинициализация запускает и проверяет выбранные СУБД; `reinit-all` запускает +обе без Adminer. [Вернуться к README](../../../README.md) diff --git a/docs/langs/ru/troubleshooting.md b/docs/langs/ru/troubleshooting.md index b9ec958..08d285b 100644 --- a/docs/langs/ru/troubleshooting.md +++ b/docs/langs/ru/troubleshooting.md @@ -10,23 +10,24 @@ ## Раздел -| Начало работы | Базы и samples | Проверки и операции | Диагностика | +| Начало работы | Базы и учебные данные | Проверки и эксплуатация | Диагностика | | --- | --- | --- | --- | -| [Начало работы](getting-started.md) | [Базы и samples](databases.md) | [Проверки и операции](operations.md) | **Выбран** | +| [Начало работы](getting-started.md) | [Базы и учебные данные](databases.md) | [Проверки и эксплуатация](operations.md) | **Выбран** | Сначала соберите диагностику, затем исправьте конкретную причину. Если -изменение всё же требует переинициализации, сначала сделайте backup и только +изменение всё же требует переинициализации, сначала сделайте резервную копию и только после этого используйте подтверждённый `reinit-... CONFIRM=1` как осознанную последнюю меру. Канонические описания жизненного цикла и операций: [базы](databases.md#section-initialization) · [операции](operations.md#section-clean-reinitialize). -## Ошибка конфигурации или storage-path validation +## Ошибка конфигурации или проверки путей хранения Выполните `make check-env` и найдите в ошибке отклонённую переменную и путь. -Managed data paths должны находиться строго внутри каталога проекта `data/`, а -sample paths — внутри `samples/`. Они не могут содержать symlink-компоненты, +Контролируемые пути данных должны находиться строго внутри каталога проекта +`data/`, а пути учебных баз — внутри `samples/`. Они не могут содержать +компоненты символических ссылок, пересекаться между собой или использовать зарезервированные каталоги проекта. Исправьте `.docker.env`, затем повторите `make check-env` и `make config`. @@ -41,23 +42,23 @@ make log SERVICE=mysql make log SERVICE=postgres ``` -Убедитесь, что Docker запущен, настроенный host port свободен, а +Убедитесь, что Docker запущен, настроенный порт компьютера свободен, а `.docker.env` содержит обязательные значения. Исправьте конкретную настройку или конфликт порта и снова запустите сервис. -## Изменения init или optional samples не появились +## Изменения инициализации или учебных баз не появились -Для уже инициализированного data-каталога это ожидаемое поведение. Проверьте -настроенные data- и sample-пути и успешность команды подготовки. Если +Для уже инициализированного каталога данных это ожидаемое поведение. Проверьте +настроенные пути данных и учебных баз и успешность команды подготовки. Если существующие данные важны, сохраните их. Используйте соответствующую команду `reinit-... CONFIRM=1` только как осознанную последнюю меру: она удаляет данные этой СУБД. -## Optional sample неполон или имеет неожиданного владельца +## Учебная база неполна или имеет неожиданного владельца -Loader намеренно не перезаписывает и не исправляет неожиданную базу. Повторите +Загрузчик намеренно не перезаписывает и не исправляет неожиданную базу. Повторите подходящую подготовку `make samples-mysql` или `make samples-postgres` и изучите ошибку. Сохраните нужные данные, прежде чем рассматривать переинициализацию с подтверждением. @@ -65,11 +66,10 @@ Loader намеренно не перезаписывает и не исправ ## Клиент не подключается -Клиенты на хосте используют опубликованный host address и `MYSQL_PORT` или +Клиенты на компьютере пользователя используют опубликованный адрес и +`MYSQL_PORT` или `POSTGRES_PORT`, а не имя Compose-сервиса. Adminer использует `mysql` или -`postgres` внутри Compose-сети. Проверьте `BIND_ADDRESS`, firewall, выбранную -базу и неадминистративные credentials `DB_USER`. - -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) +`postgres` внутри Compose-сети. Проверьте `BIND_ADDRESS`, межсетевой экран, +выбранную базу и учётные данные непривилегированного пользователя `DB_USER`. [Вернуться к README](../../../README.md) diff --git a/docs/langs/zh/databases.md b/docs/langs/zh/databases.md index 56d5468..ce3199e 100644 --- a/docs/langs/zh/databases.md +++ b/docs/langs/zh/databases.md @@ -31,8 +31,8 @@ | 数据库 | 可选数据库 | 准备命令 | |---|---|---| -| MySQL | Chinook、Sakila | `make samples-mysql` | -| PostgreSQL | Pagila、Chinook | `make samples-postgres` | +| MySQL | `chinook`、`sakila` | `make samples-mysql` | +| PostgreSQL | `pagila`、`chinook` | `make samples-postgres` | ## 准备 samples @@ -42,28 +42,10 @@ 准备命令会下载并校验固定的 upstream 文件,但不会启动容器,也不会向 已初始化数据库导入数据。临时下载仅保存在本地,不提交到 Git,最终位于 `MYSQL_SAMPLES_DIR` 或 `POSTGRES_SAMPLES_DIR`。来源、完整性固定值和许可 -见 [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md)。 +见 [`THIRD_PARTY_NOTICES.md`](../../../THIRD_PARTY_NOTICES.md)。 -data 目录为空时: - -```bash -make samples-mysql -make up-mysql - -make samples-postgres -make up-postgres -``` - -官方 entrypoint 仅在相应 data 目录为空时处理 init 文件。要向已初始化 -实例添加 samples,请先备份,再有意地只重新初始化对应数据库: - -```bash -make samples-mysql -make reinit-mysql CONFIRM=1 - -make samples-postgres -make reinit-postgres CONFIRM=1 -``` +准备时机以及重新初始化现有数据库的方法见 +[初始化生命周期](#section-initialization)。 完全缺失的 sample 会被跳过,不影响创建 `demo`。不完整的 sample 集合或 意外存在的 sample 数据库会被拒绝,不会自动修复或删除。 @@ -87,16 +69,35 @@ initdb/ | PostgreSQL | `POSTGRES_DATA_DIR` (`./data/postgres`) | `POSTGRES_INITDB_DIR` (`./initdb/postgres`) | `POSTGRES_SAMPLES_DIR` (`./samples/postgres`) | data 与 sample 路径可在 `.docker.env` 中修改,但必须通过 managed path -验证。entrypoint 仅在 data 目录为空时执行 init;修改 init 文件不会迁移 -已有数据库。`make down` 不删除 bind mount 数据。不要手工编辑 `data/` -中的数据库文件,它们可能属于容器使用的数字 UID/GID。 +验证。init 目录的应用规则见[初始化生命周期](#section-initialization)。 +不要手工编辑 `data/` 中的数据库文件,它们可能属于容器使用的数字 UID/GID。 ## 初始化生命周期 -> **重要:** MySQL 与 PostgreSQL 官方 entrypoints 仅对空 data 目录执行 init -文件。修改 init 不会迁移已有数据库;`make down` 会保留 bind-mounted -数据。 +> **重要:** MySQL 与 PostgreSQL 官方 entrypoints 仅对空 data 目录执行 +> init 文件。初始化后添加文件不会改变已有数据库。`make down` 会保留 +> 数据,而确认后的重新初始化会删除所选数据库的全部数据;必须事先备份。 + +如需在首次初始化时包含 samples,请在第一次启动前准备: + +```bash +make samples-mysql +make up-mysql + +make samples-postgres +make up-postgres +``` + +对于已经初始化的数据库,请先备份,然后只执行对应的确认重新初始化: + +```bash +make samples-mysql +make reinit-mysql CONFIRM=1 + +make samples-postgres +make reinit-postgres CONFIRM=1 +``` ## 学习用户访问与 ownership @@ -108,6 +109,4 @@ sample 对象。管理员 credentials 保持独立:`MYSQL_ROOT_PASSWORD`、 `POSTGRES_SUPERUSER` 与 `POSTGRES_SUPERUSER_PASSWORD`。不要手工编辑 `data/` 中由容器拥有的文件。 -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [返回 README](../README_zh.md) diff --git a/docs/langs/zh/getting-started.md b/docs/langs/zh/getting-started.md index 94bda25..531300a 100644 --- a/docs/langs/zh/getting-started.md +++ b/docs/langs/zh/getting-started.md @@ -18,18 +18,17 @@ ## 要求 - Docker Engine 或 Docker Desktop,并支持 `docker compose` v2 命令。 -- GNU Make、Bash,以及脚本使用的 Unix 工具:`awk`、`sed`、`grep`、 - `find`、`realpath` 和 `stat`。 -- 下载可选 samples 需要 `curl` 和 `git`;MySQL 还需要 `unzip` 与 - `sha256sum`。 +- GNU Make、Bash 和基本 Unix 命令行工具。 +- 推荐环境:Linux;使用 Docker Desktop 的 macOS;或使用 Docker Desktop + 与 WSL2 的 Windows。 请在仓库根目录执行命令。项目默认分支为 `master`。 ## 快速开始 -从受版本控制的示例创建 `.docker.env`,验证路径,创建工作目录并启动 -完整环境: +`make init` 会根据 [`.docker.env.example`](../../../.docker.env.example) +创建本地 `.docker.env`,验证受控存储路径并创建工作目录。然后启动完整环境: ```bash make init @@ -39,6 +38,12 @@ make up `make up` 会启动 MySQL、PostgreSQL 和 Adminer。默认配置下,Adminer 地址为 `http://127.0.0.1:8081`。 +使用 `make up-no-ui` 可启动两种数据库而不启动 Adminer。首次初始化时 +始终创建必需的 `demo` 数据库;示例数据集是可选的。如需在首次初始化时 +加载它们,请在第一次 `make up` 前完成准备。对于已经初始化的数据目录, +请先备份,再执行会删除数据且经过确认的重新初始化。准确步骤见 +[初始化生命周期](databases.md#section-initialization)。 + ```bash make status make logs @@ -60,7 +65,7 @@ make down 单数据库命令不会停止另一种已运行的数据库;Adminer 可单独管理。
-完整启动模式表 +📋 完整启动模式表 | 命令 | MySQL | PostgreSQL | Adminer | |---|---|---|---| @@ -149,6 +154,4 @@ BIND_ADDRESS=127.0.0.1 发布端口。LAN 或 VPN 访问应优先使用具体接口的地址。修改时必须明确 评估 firewall、密码强度和网络可信度。 -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [返回 README](../README_zh.md) diff --git a/docs/langs/zh/operations.md b/docs/langs/zh/operations.md index 1710c81..a28375e 100644 --- a/docs/langs/zh/operations.md +++ b/docs/langs/zh/operations.md @@ -28,7 +28,7 @@ PostgreSQL。`clean-*` 与 `reinit-*` 是 destructive 操作,并要求精确 `CONFIRM=1`。
-完整公共 Make targets 参考 +📋 完整公共 Make targets 参考 `make help` 显示简要命令列表。 @@ -95,7 +95,8 @@ make down ## Storage path 安全 -`make check-env` 会运行 `scripts/validate-storage-paths.sh`。Data +`make check-env` 会运行 +[`scripts/validate-storage-paths.sh`](../../../scripts/validate-storage-paths.sh)。Data paths 必须严格位于 `data/` 内,sample paths 必须严格位于 `samples/` 内;symlink、相同、嵌套、重叠和 reserved paths 都会被拒绝。 `make test-storage-paths` 无需 Docker runtime 即可测试这些规则。 @@ -154,6 +155,4 @@ make reinit-all CONFIRM=1 init、samples 和 backups 会保留。reinit 随后启动并检查所选数据库; `reinit-all` 启动两者但不启用 Adminer。 -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [返回 README](../README_zh.md) diff --git a/docs/langs/zh/troubleshooting.md b/docs/langs/zh/troubleshooting.md index e511f69..46e039d 100644 --- a/docs/langs/zh/troubleshooting.md +++ b/docs/langs/zh/troubleshooting.md @@ -56,6 +56,4 @@ loader 不会覆盖或修复意外数据库。重新运行 `make samples-mysql` Compose 网络中使用 `mysql` 或 `postgres`。检查 `BIND_ADDRESS`、 firewall、数据库选择和非管理员 `DB_USER` 凭据。 -[LICENSE.md](../../../LICENSE.md) · [THIRD_PARTY_NOTICES.md](../../../THIRD_PARTY_NOTICES.md) - [返回 README](../README_zh.md) From 3c0fc96ac8a5216bcb09b831c476784a59b2111e Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Wed, 22 Jul 2026 18:56:23 +0300 Subject: [PATCH 16/17] =?UTF-8?q?fix(reinit):=20=D0=B7=D0=B0=D0=BF=D1=83?= =?UTF-8?q?=D1=81=D0=BA=D0=B0=D1=82=D1=8C=20Adminer=20=D0=B8=20=D0=BE?= =?UTF-8?q?=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D1=8C=20=D0=B4=D0=BE=D0=BA?= =?UTF-8?q?=D1=83=D0=BC=D0=B5=D0=BD=D1=82=D0=B0=D1=86=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Makefile | 2 +- README.md | 18 ++++++++++++++---- docs/langs/README_de.md | 17 ++++++++++++++--- docs/langs/README_en.md | 17 ++++++++++++++--- docs/langs/README_es.md | 17 ++++++++++++++--- docs/langs/README_fr.md | 17 ++++++++++++++--- docs/langs/README_zh.md | 17 ++++++++++++++--- docs/langs/de/databases.md | 10 ++++++---- docs/langs/de/getting-started.md | 4 ++-- docs/langs/de/operations.md | 4 ++-- docs/langs/de/troubleshooting.md | 8 ++++---- docs/langs/en/databases.md | 9 +++++---- docs/langs/en/getting-started.md | 6 +++--- docs/langs/en/operations.md | 3 ++- docs/langs/en/troubleshooting.md | 4 ++-- docs/langs/es/databases.md | 9 +++++---- docs/langs/es/getting-started.md | 8 ++++---- docs/langs/es/operations.md | 3 ++- docs/langs/es/troubleshooting.md | 9 +++++---- docs/langs/fr/databases.md | 9 +++++---- docs/langs/fr/getting-started.md | 6 +++--- docs/langs/fr/operations.md | 3 ++- docs/langs/fr/troubleshooting.md | 10 +++++----- docs/langs/ru/databases.md | 11 +++++++---- docs/langs/ru/getting-started.md | 8 ++++---- docs/langs/ru/operations.md | 2 +- docs/langs/ru/troubleshooting.md | 6 +++--- docs/langs/zh/databases.md | 6 ++++-- docs/langs/zh/getting-started.md | 4 ++-- docs/langs/zh/operations.md | 2 +- docs/langs/zh/troubleshooting.md | 8 ++++---- 31 files changed, 168 insertions(+), 89 deletions(-) diff --git a/Makefile b/Makefile index 743a813..d1d7d59 100644 --- a/Makefile +++ b/Makefile @@ -611,5 +611,5 @@ reinit-postgres: clean-postgres @$(MAKE) --no-print-directory check-postgres-access reinit-all: clean-all - @$(MAKE) --no-print-directory up-no-ui + @$(MAKE) --no-print-directory up @$(MAKE) --no-print-directory check diff --git a/README.md b/README.md index e7e8cb5..bdb689b 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,16 @@ PostgreSQL. Каждую СУБД можно запускать отдельно и Chinook дают готовые данные для упражнений. Adminer подключается только при необходимости. +## Скринкасты + +В записях используется PhpStorm. Вместо него подойдут DataGrip, DBeaver, +Adminer или другой клиент MySQL/PostgreSQL. + +| Сценарий | Яндекс.Диск | Google Drive | Что показано | +|---|---|---|---| +| Первый запуск с обязательной `demo`, затем добавление учебных баз | [Смотреть](https://disk.yandex.ru/i/Kj4TcMSBuIDVeA "docker-sql-lab-demo-then-training-databases.mp4") | [Смотреть](https://drive.google.com/file/d/1HzYWbMuBEobXlbGQYNfHYVAq95TLqEPf/view?usp=sharing "docker-sql-lab-demo-then-training-databases.mp4") | Запуск MySQL и PostgreSQL с обязательной `demo`; проверка; подготовка Sakila, Pagila и Chinook; подтверждённая переинициализация; повторная проверка и SQL-запросы. | +| Первый запуск с заранее подготовленными учебными базами | [Смотреть](https://disk.yandex.ru/i/nFgJZto8agbdWw "docker-sql-lab-training-databases-first-start.mp4") | [Смотреть](https://drive.google.com/file/d/1nKiGrJ4QINLCQcRk-k6vfTakpWsw-JS7/view?usp=sharing "docker-sql-lab-training-databases-first-start.mp4") | Подготовка Sakila, Pagila и Chinook до первого запуска; единая инициализация обязательной `demo` и учебных баз; проверка доступа и SQL-запросы. | + ## Стек - MySQL 9.7.1 LTS @@ -57,7 +67,7 @@ PostgreSQL. Каждую СУБД можно запускать отдельно ## Требования -1. Docker Engine или Docker Desktop с `docker compose` v2. +1. Docker Engine или Docker Desktop с Docker Compose v2. 2. GNU Make, Bash и базовые утилиты командной строки Unix, используемые сценариями. @@ -102,9 +112,9 @@ make up Учебные базы подготавливаются до первой инициализации; официальные точки входа загрузят их вместе с `demo`. -> **Внимание:** если каталог данных уже инициализирован без учебных баз, для -> их добавления требуется резервная копия и подтверждённая переинициализация, -> удаляющая данные. +> **Внимание:** переинициализация удаляет данные выбранной СУБД. Резервная +> копия нужна, только если требуется сохранить собственные данные; для +> одноразового учебного стенда без ценных изменений она не обязательна.
📦 Стенд уже запускался: добавить или повторно использовать учебные базы diff --git a/docs/langs/README_de.md b/docs/langs/README_de.md index e3f9825..8c7696c 100644 --- a/docs/langs/README_de.md +++ b/docs/langs/README_de.md @@ -20,6 +20,16 @@ gemeinsam starten. Die kompakte `demo`-Datenbank entsteht automatisch; optionale Sakila-, Pagila- und Chinook-Datensätze liefern sofort abfragbare Übungsdaten. Adminer wird nur bei Bedarf aktiviert. +## Bildschirmaufzeichnungen + +Die Aufzeichnungen verwenden PhpStorm; DataGrip, DBeaver, Adminer oder ein +anderer MySQL-/PostgreSQL-Client eignen sich ebenfalls. Sie wurden auf Russisch aufgenommen. + +| Szenario | Yandex Disk | Google Drive | Gezeigt wird | +|---|---|---|---| +| Erster Start mit obligatorischem `demo`, danach Übungsdatenbanken hinzufügen | [Ansehen](https://disk.yandex.ru/i/Kj4TcMSBuIDVeA "docker-sql-lab-demo-then-training-databases.mp4") | [Ansehen](https://drive.google.com/file/d/1HzYWbMuBEobXlbGQYNfHYVAq95TLqEPf/view?usp=sharing "docker-sql-lab-demo-then-training-databases.mp4") | Startet MySQL und PostgreSQL mit obligatorischem `demo`; prüft; bereitet Sakila, Pagila und Chinook vor; bestätigt die Neuinitialisierung; prüft erneut und führt SQL-Abfragen aus. | +| Erster Start mit vorab vorbereiteten Übungsdatenbanken | [Ansehen](https://disk.yandex.ru/i/nFgJZto8agbdWw "docker-sql-lab-training-databases-first-start.mp4") | [Ansehen](https://drive.google.com/file/d/1nKiGrJ4QINLCQcRk-k6vfTakpWsw-JS7/view?usp=sharing "docker-sql-lab-training-databases-first-start.mp4") | Bereitet Sakila, Pagila und Chinook vor dem ersten Start vor; initialisiert obligatorisches `demo` und Übungsdatenbanken zusammen; prüft Zugriff und führt SQL-Abfragen aus. | + ## Stack und festgelegte Versionen - MySQL 9.7.1 LTS @@ -54,7 +64,7 @@ Betrieb nötig. ## Voraussetzungen -1. Docker Engine oder Docker Desktop mit `docker compose` v2. +1. Docker Engine oder Docker Desktop mit Docker Compose v2. 2. GNU Make, Bash und die von den Skripten verwendeten Unix-CLI-Basiswerkzeuge. Empfohlen: Linux; macOS mit Docker Desktop; Windows mit Docker Desktop und @@ -96,12 +106,13 @@ make up Bereiten Sie Samples vor der ersten Initialisierung vor; die Entrypoints laden sie zusammen mit `demo`. -> **Warnung:** Wurde ein Datenverzeichnis ohne Samples initialisiert, erfordert das Hinzufügen ein Backup und eine ausdrücklich bestätigte destructive Neuinitialisierung. +> **Warnung:** Die Neuinitialisierung löscht die Daten des gewählten DBMS. +> Sichern Sie nur eigene Daten, die erhalten bleiben sollen; ein einmaliges Lab ohne wertvolle Änderungen braucht kein Backup.
📦 Das Lab lief bereits: Samples hinzufügen oder erneut verwenden -**Ohne Samples initialisiert.** `make up` wendet neue Init-/Sample-Dateien nicht an. Sichern Sie wichtige Daten und wählen Sie dann die passende Variante: +**Ohne Samples initialisiert.** `make up` wendet neue Init-/Sample-Dateien nicht an. Wenn wichtige Daten erhalten bleiben sollen, sichern Sie sie und wählen dann die passende Variante: - MySQL: `make samples-mysql`, danach `make reinit-mysql CONFIRM=1`. - PostgreSQL: `make samples-postgres`, danach `make reinit-postgres CONFIRM=1`. diff --git a/docs/langs/README_en.md b/docs/langs/README_en.md index 2e27d4c..df88aaa 100644 --- a/docs/langs/README_en.md +++ b/docs/langs/README_en.md @@ -20,6 +20,16 @@ MySQL and PostgreSQL. Run either DBMS independently or both together. A compact Chinook datasets provide ready-to-query training data. Enable Adminer only when you need it. +## Screencasts + +The recordings use PhpStorm. DataGrip, DBeaver, Adminer, or another +MySQL/PostgreSQL client will work instead. The screencasts are recorded in Russian. + +| Scenario | Yandex Disk | Google Drive | What it shows | +|---|---|---|---| +| First start with required `demo`, then add training databases | [Watch](https://disk.yandex.ru/i/Kj4TcMSBuIDVeA "docker-sql-lab-demo-then-training-databases.mp4") | [Watch](https://drive.google.com/file/d/1HzYWbMuBEobXlbGQYNfHYVAq95TLqEPf/view?usp=sharing "docker-sql-lab-demo-then-training-databases.mp4") | Start MySQL and PostgreSQL with required `demo`; check them; prepare Sakila, Pagila, and Chinook; confirm reinitialization; check again and run SQL queries. | +| First start with training databases prepared in advance | [Watch](https://disk.yandex.ru/i/nFgJZto8agbdWw "docker-sql-lab-training-databases-first-start.mp4") | [Watch](https://drive.google.com/file/d/1nKiGrJ4QINLCQcRk-k6vfTakpWsw-JS7/view?usp=sharing "docker-sql-lab-training-databases-first-start.mp4") | Prepare Sakila, Pagila, and Chinook before the first start; initialize required `demo` and the training databases together; check access and run SQL queries. | + ## Stack - MySQL 9.7.1 LTS @@ -55,7 +65,7 @@ operations. ## Requirements -1. Docker Engine or Docker Desktop with `docker compose` v2. +1. Docker Engine or Docker Desktop with Docker Compose v2. 2. GNU Make, Bash, and the basic Unix CLI utilities used by the scripts. Recommended environments: Linux; macOS with Docker Desktop; Windows with @@ -98,12 +108,13 @@ make up Prepare samples before the first initialization; the official entrypoints load them alongside `demo`. -> **Warning:** if a data directory was initialized without samples, adding them requires a backup and an explicitly confirmed destructive reinitialization. +> **Warning:** reinitialization deletes the selected DBMS data. Back up only +> custom data you need to keep; a one-off lab with no valuable changes needs no backup.
📦 The lab has run before: add or reuse samples -**Initialized without samples.** A regular `make up` does not apply new init/sample files. Back up important data, then use the appropriate option: +**Initialized without samples.** A regular `make up` does not apply new init/sample files. If you need to preserve important data, back it up, then use the appropriate option: - MySQL: `make samples-mysql`, then `make reinit-mysql CONFIRM=1`. - PostgreSQL: `make samples-postgres`, then `make reinit-postgres CONFIRM=1`. diff --git a/docs/langs/README_es.md b/docs/langs/README_es.md index a2a066e..c660f48 100644 --- a/docs/langs/README_es.md +++ b/docs/langs/README_es.md @@ -20,6 +20,16 @@ La base compacta `demo` se crea automáticamente; los datasets opcionales Sakila, Pagila y Chinook ofrecen datos listos para consultar. Active Adminer solo cuando lo necesite. +## Videotutoriales + +Las grabaciones usan PhpStorm; también sirven DataGrip, DBeaver, Adminer u otro +cliente MySQL/PostgreSQL. Los screencasts están grabados en ruso. + +| Escenario | Yandex Disk | Google Drive | Qué muestra | +|---|---|---|---| +| Primer inicio con `demo` obligatoria y posterior adición de bases didácticas | [Ver](https://disk.yandex.ru/i/Kj4TcMSBuIDVeA "docker-sql-lab-demo-then-training-databases.mp4") | [Ver](https://drive.google.com/file/d/1HzYWbMuBEobXlbGQYNfHYVAq95TLqEPf/view?usp=sharing "docker-sql-lab-demo-then-training-databases.mp4") | Inicia MySQL y PostgreSQL con `demo` obligatoria; comprueba; prepara Sakila, Pagila y Chinook; confirma la reinicialización; vuelve a comprobar y ejecuta consultas SQL. | +| Primer inicio con las bases didácticas preparadas de antemano | [Ver](https://disk.yandex.ru/i/nFgJZto8agbdWw "docker-sql-lab-training-databases-first-start.mp4") | [Ver](https://drive.google.com/file/d/1nKiGrJ4QINLCQcRk-k6vfTakpWsw-JS7/view?usp=sharing "docker-sql-lab-training-databases-first-start.mp4") | Prepara Sakila, Pagila y Chinook antes del primer inicio; inicializa juntas `demo` obligatoria y las bases didácticas; comprueba el acceso y ejecuta consultas SQL. | + ## Stack - MySQL 9.7.1 LTS @@ -54,7 +64,7 @@ backups y operación. ## Requisitos -1. Docker Engine o Docker Desktop con `docker compose` v2. +1. Docker Engine o Docker Desktop con Docker Compose v2. 2. GNU Make, Bash y las utilidades Unix CLI básicas usadas por los scripts. Entornos recomendados: Linux; macOS con Docker Desktop; Windows con Docker @@ -95,12 +105,13 @@ make up Prepare los samples antes de la primera inicialización; los entrypoints los cargarán junto con `demo`. -> **Advertencia:** si un directorio ya se inicializó sin samples, añadirlos exige un backup y una reinicialización destructiva confirmada explícitamente. +> **Advertencia:** la reinicialización elimina los datos del SGBD elegido. Haga +> backup solo de los datos propios que quiera conservar; un laboratorio puntual sin cambios valiosos no lo necesita.
📦 El laboratorio ya se inició: añadir o reutilizar samples -**Inicializado sin samples.** `make up` no aplica nuevos archivos init/sample. Haga backup de los datos importantes y use la opción adecuada: +**Inicializado sin samples.** `make up` no aplica nuevos archivos init/sample. Si necesita conservar datos importantes, haga backup y use la opción adecuada: - MySQL: `make samples-mysql` y después `make reinit-mysql CONFIRM=1`. - PostgreSQL: `make samples-postgres` y después `make reinit-postgres CONFIRM=1`. diff --git a/docs/langs/README_fr.md b/docs/langs/README_fr.md index 77fe9f6..d653abe 100644 --- a/docs/langs/README_fr.md +++ b/docs/langs/README_fr.md @@ -20,6 +20,16 @@ ensemble. La petite base `demo` est créée automatiquement ; les datasets optionnels Sakila, Pagila et Chinook offrent des données prêtes à interroger. Activez Adminer uniquement au besoin. +## Vidéos de démonstration + +Les enregistrements utilisent PhpStorm ; DataGrip, DBeaver, Adminer ou un autre +client MySQL/PostgreSQL conviennent aussi. Les screencasts sont enregistrés en russe. + +| Scénario | Yandex Disk | Google Drive | Contenu | +|---|---|---|---| +| Premier démarrage avec `demo` obligatoire, puis ajout des bases d’entraînement | [Voir](https://disk.yandex.ru/i/Kj4TcMSBuIDVeA "docker-sql-lab-demo-then-training-databases.mp4") | [Voir](https://drive.google.com/file/d/1HzYWbMuBEobXlbGQYNfHYVAq95TLqEPf/view?usp=sharing "docker-sql-lab-demo-then-training-databases.mp4") | Démarre MySQL et PostgreSQL avec `demo` obligatoire ; vérifie ; prépare Sakila, Pagila et Chinook ; confirme la réinitialisation ; vérifie de nouveau et exécute des requêtes SQL. | +| Premier démarrage avec les bases d’entraînement préparées à l’avance | [Voir](https://disk.yandex.ru/i/nFgJZto8agbdWw "docker-sql-lab-training-databases-first-start.mp4") | [Voir](https://drive.google.com/file/d/1nKiGrJ4QINLCQcRk-k6vfTakpWsw-JS7/view?usp=sharing "docker-sql-lab-training-databases-first-start.mp4") | Prépare Sakila, Pagila et Chinook avant le premier démarrage ; initialise ensemble `demo` obligatoire et les bases d’entraînement ; vérifie l’accès et exécute des requêtes SQL. | + ## Stack et versions épinglées - MySQL 9.7.1 LTS @@ -54,7 +64,7 @@ stockage, les sauvegardes et l'exploitation. ## Prérequis -1. Docker Engine ou Docker Desktop avec `docker compose` v2. +1. Docker Engine ou Docker Desktop avec Docker Compose v2. 2. GNU Make, Bash et les utilitaires Unix CLI de base utilisés par les scripts. Environnements conseillés : Linux ; macOS avec Docker Desktop ; Windows avec @@ -95,12 +105,13 @@ make up Préparez les samples avant la première initialisation ; les entrypoints les chargeront avec `demo`. -> **Attention :** si un répertoire data a été initialisé sans samples, leur ajout exige un backup et une réinitialisation destructive confirmée. +> **Attention :** la réinitialisation supprime les données du SGBD choisi. Ne +> sauvegardez que les données personnelles à conserver ; un lab ponctuel sans changement précieux n’exige pas de sauvegarde.
📦 Le laboratoire a déjà démarré : ajouter ou réutiliser les samples -**Déjà initialisé sans samples.** `make up` n'applique pas les nouveaux fichiers init/sample. Sauvegardez les données importantes, puis choisissez l'option adaptée : +**Déjà initialisé sans samples.** `make up` n'applique pas les nouveaux fichiers init/sample. Si vous devez conserver des données importantes, sauvegardez-les, puis choisissez l'option adaptée : - MySQL : `make samples-mysql`, puis `make reinit-mysql CONFIRM=1`. - PostgreSQL : `make samples-postgres`, puis `make reinit-postgres CONFIRM=1`. diff --git a/docs/langs/README_zh.md b/docs/langs/README_zh.md index d4df5d7..2fecfa5 100644 --- a/docs/langs/README_zh.md +++ b/docs/langs/README_zh.md @@ -19,6 +19,16 @@ 数据库会自动创建;可选的 Sakila、Pagila 和 Chinook 数据集提供开箱即用 的查询练习数据。仅在需要时启用 Adminer。 +## 录屏演示 + +录屏使用 PhpStorm;也可使用 DataGrip、DBeaver、Adminer 或其他 +MySQL/PostgreSQL 客户端。录屏以俄语录制。 + +| 场景 | Yandex Disk | Google Drive | 演示内容 | +|---|---|---|---| +| 首次启动必需的 `demo`,随后添加练习数据库 | [观看](https://disk.yandex.ru/i/Kj4TcMSBuIDVeA "docker-sql-lab-demo-then-training-databases.mp4") | [观看](https://drive.google.com/file/d/1HzYWbMuBEobXlbGQYNfHYVAq95TLqEPf/view?usp=sharing "docker-sql-lab-demo-then-training-databases.mp4") | 使用必需的 `demo` 启动 MySQL 和 PostgreSQL;检查;准备 Sakila、Pagila 和 Chinook;确认重新初始化;再次检查并执行 SQL 查询。 | +| 首次启动前已准备好练习数据库 | [观看](https://disk.yandex.ru/i/nFgJZto8agbdWw "docker-sql-lab-training-databases-first-start.mp4") | [观看](https://drive.google.com/file/d/1nKiGrJ4QINLCQcRk-k6vfTakpWsw-JS7/view?usp=sharing "docker-sql-lab-training-databases-first-start.mp4") | 在首次启动前准备 Sakila、Pagila 和 Chinook;一起初始化必需的 `demo` 和练习数据库;检查访问并执行 SQL 查询。 | + ## 技术栈与固定版本 - MySQL 9.7.1 LTS @@ -52,7 +62,7 @@ credentials、网络暴露、存储、备份与运维方案。 ## 要求 -1. Docker Engine 或带有 `docker compose` v2 的 Docker Desktop。 +1. Docker Engine 或带有 Docker Compose v2 的 Docker Desktop。 2. GNU Make、Bash 以及脚本使用的基础 Unix CLI 工具。 推荐环境:Linux;装有 Docker Desktop 的 macOS;Docker Desktop + @@ -92,12 +102,13 @@ make up 请在首次初始化前准备 samples;官方 entrypoints 会将它们与 `demo` 一起载入。 -> **警告:** 如果 data 目录已在没有 samples 时初始化,添加 samples 需要先做 backup,并明确确认 destructive reinit。 +> **警告:** 重新初始化会删除所选数据库的数据。只有需要保留自己的数据时 +> 才需备份;没有重要改动的一次性学习环境不要求备份。
📦 环境已启动过:添加或继续使用 samples -**已在没有 samples 时初始化。** 普通的 `make up` 不会应用新增的 init/sample 文件。请先备份重要数据,再选择对应方式: +**已在没有 samples 时初始化。** 普通的 `make up` 不会应用新增的 init/sample 文件。若需保留重要数据,请先备份,再选择对应方式: - MySQL:`make samples-mysql`,然后 `make reinit-mysql CONFIRM=1`。 - PostgreSQL:`make samples-postgres`,然后 `make reinit-postgres CONFIRM=1`。 diff --git a/docs/langs/de/databases.md b/docs/langs/de/databases.md index a123cc7..9f57b60 100644 --- a/docs/langs/de/databases.md +++ b/docs/langs/de/databases.md @@ -85,8 +85,10 @@ gehören. > **Wichtig:** Offizielle MySQL- und PostgreSQL-Entrypoints führen init-Dateien > nur bei leerem data directory aus. Nach der Initialisierung hinzugefügte > Dateien ändern keine bestehende Datenbank. `make down` erhält die Daten; eine -> bestätigte Neuinitialisierung löscht dagegen alle Daten des gewählten DBMS. -> Zuvor ist ein Backup erforderlich. +> bestätigte Neuinitialisierung löscht dagegen die aktuellen Daten des gewählten +> DBMS und erstellt die Datenbanken aus den aktuellen Init-Skripten neu. Ein +> Backup ist nur nötig, wenn eigene Daten erhalten bleiben sollen; ein einmaliges +> Lab ohne wertvolle Änderungen braucht keines. Bereiten Sie Samples für die erste Initialisierung vor dem ersten Start vor: @@ -98,8 +100,8 @@ make samples-postgres make up-postgres ``` -Erstellen Sie bei einem initialisierten DBMS ein Backup und verwenden Sie dann -nur die passende bestätigte Neuinitialisierung: +Sichern Sie bei einem initialisierten DBMS eigene Daten bei Bedarf und verwenden +Sie dann nur die passende bestätigte Neuinitialisierung: ```bash make samples-mysql diff --git a/docs/langs/de/getting-started.md b/docs/langs/de/getting-started.md index fa9bd4a..1adbbf0 100644 --- a/docs/langs/de/getting-started.md +++ b/docs/langs/de/getting-started.md @@ -17,7 +17,7 @@ ## Voraussetzungen -- Docker Engine oder Docker Desktop mit dem Befehl `docker compose` v2. +- Docker Engine oder Docker Desktop mit Docker Compose v2. - GNU Make, Bash und grundlegende Unix-Kommandozeilenwerkzeuge. - Empfohlene Umgebungen: Linux; macOS mit Docker Desktop; oder Windows mit Docker Desktop und WSL2. @@ -46,7 +46,7 @@ Mit `make up-no-ui` starten Sie beide DBMS ohne Adminer. Die obligatorische Beispieldatensätze sind optional. Um sie bei der ersten Initialisierung zu laden, bereiten Sie sie vor dem ersten `make up` vor. Bei bereits initialisierten Datenverzeichnissen erstellen Sie ein Backup vor einer -bestätigten Neuinitialisierung, die Daten löscht. Das genaue Verfahren steht +bestätigten Neuinitialisierung nur, wenn eigene Daten erhalten bleiben sollen. Das genaue Verfahren steht unter [Initialisierung und Lebenszyklus](databases.md#section-initialization). ```bash diff --git a/docs/langs/de/operations.md b/docs/langs/de/operations.md index ffb8f18..6591a69 100644 --- a/docs/langs/de/operations.md +++ b/docs/langs/de/operations.md @@ -157,7 +157,7 @@ make reinit-all CONFIRM=1 Einzelne Targets löschen nur das gewählte DBMS-data directory; `all` löscht beide. Konfiguration, init, Samples und Backups bleiben erhalten. Reinit -startet und prüft anschließend die gewählten DBMS; `reinit-all` startet beide -ohne Adminer. +startet und prüft anschließend die gewählten DBMS; `reinit-all` startet MySQL, +PostgreSQL und Adminer und führt anschließend die gemeinsame Zugriffsprüfung aus. [Zurück zur README](../README_de.md) diff --git a/docs/langs/de/troubleshooting.md b/docs/langs/de/troubleshooting.md index 9365da9..cf5a78d 100644 --- a/docs/langs/de/troubleshooting.md +++ b/docs/langs/de/troubleshooting.md @@ -15,8 +15,8 @@ | [Erste Schritte](getting-started.md) | [Datenbanken und Samples](databases.md) | [Prüfungen und Betrieb](operations.md) | **Ausgewählt** | Sammeln Sie zuerst Diagnosedaten und korrigieren Sie dann die konkrete -Ursache. Falls eine Neuinitialisierung nötig bleibt, erstellen Sie ein Backup -und verwenden `reinit-... CONFIRM=1` nur als bewussten letzten Schritt. +Ursache. Falls eine Neuinitialisierung nötig bleibt, sichern Sie eigene Daten +nur, wenn sie erhalten bleiben sollen, und verwenden `reinit-... CONFIRM=1` nur als bewussten letzten Schritt. Verbindliche Details zu Lebenszyklus und Betrieb: [Datenbanken](databases.md#section-initialization) · [Betrieb](operations.md#section-clean-reinitialize). @@ -43,8 +43,8 @@ Prüfen Sie Docker, Port, `.docker.env` und Logs, bevor Sie Daten ändern. ## Init-Änderungen oder Samples erscheinen nicht Bei bereits initialisierten Daten ist das erwartet. Prüfen Sie Pfade und -Vorbereitung, sichern Sie wichtige Daten und verwenden Sie -`reinit-... CONFIRM=1` nur als bewussten letzten Schritt. +Vorbereitung; wenn wichtige Daten erhalten bleiben sollen, sichern Sie sie und +verwenden `reinit-... CONFIRM=1` nur als bewussten letzten Schritt. ## Sample ist unvollständig oder hat einen unerwarteten Besitzer diff --git a/docs/langs/en/databases.md b/docs/langs/en/databases.md index 565bcd5..ac59ecd 100644 --- a/docs/langs/en/databases.md +++ b/docs/langs/en/databases.md @@ -93,8 +93,9 @@ use numeric UID/GID values that differ from the host user. > **Important:** Official MySQL and PostgreSQL entrypoints run init files only > for an empty data directory. Adding files after initialization does not > change an existing database. `make down` preserves data, while confirmed -> reinitialization deletes all data for the selected DBMS; a backup is required -> beforehand. +> reinitialization deletes the selected DBMS's current data and recreates its +> databases from the current init scripts. Back up custom data only when you +> need to preserve it; a one-off lab with no valuable changes needs no backup. For first initialization with sample datasets, prepare them before the first start: @@ -107,8 +108,8 @@ make samples-postgres make up-postgres ``` -For an initialized DBMS, create a backup and then use only its matching -confirmed reinitialization: +For an initialized DBMS, preserve custom data if needed and then use only its +matching confirmed reinitialization: ```bash make samples-mysql diff --git a/docs/langs/en/getting-started.md b/docs/langs/en/getting-started.md index 9239041..9e4d6ae 100644 --- a/docs/langs/en/getting-started.md +++ b/docs/langs/en/getting-started.md @@ -17,7 +17,7 @@ ## Requirements -- Docker Engine or Docker Desktop with the `docker compose` v2 command. +- Docker Engine or Docker Desktop with Docker Compose v2. - GNU Make, Bash, and basic Unix CLI utilities. - Recommended environments: Linux; macOS with Docker Desktop; or Windows with Docker Desktop and WSL2. @@ -43,8 +43,8 @@ open Adminer at `http://127.0.0.1:8081`. Use `make up-no-ui` to start both DBMSs without Adminer. The required `demo` database is always created during first initialization; sample datasets are optional. To include them in the first initialization, prepare them before the -first `make up`. For initialized data directories, create a backup before a -confirmed reinitialization that deletes data. See +first `make up`. For initialized data directories, create a backup before +confirmed reinitialization only when you need to preserve custom data. See [Initialization lifecycle](databases.md#section-initialization) for the exact procedure. diff --git a/docs/langs/en/operations.md b/docs/langs/en/operations.md index 36f640c..a23fa09 100644 --- a/docs/langs/en/operations.md +++ b/docs/langs/en/operations.md @@ -178,6 +178,7 @@ make reinit-all CONFIRM=1 The single-DBMS commands delete only that DBMS data directory. The `all` variants delete both database data directories. Configuration, init files, optional sample downloads, and backups are preserved. Reinitialization then -starts and checks the selected DBMSs; `reinit-all` starts both without Adminer. +starts and checks the selected DBMSs; `reinit-all` starts MySQL, PostgreSQL, +and Adminer, then performs the shared access check. [Back to README](../README_en.md) diff --git a/docs/langs/en/troubleshooting.md b/docs/langs/en/troubleshooting.md index 32414ce..3769cf9 100644 --- a/docs/langs/en/troubleshooting.md +++ b/docs/langs/en/troubleshooting.md @@ -15,8 +15,8 @@ | [Getting started](getting-started.md) | [Databases and samples](databases.md) | [Validation and operations](operations.md) | **Selected** | Collect diagnostics first, then correct the specific cause. If a -reinitialization is still required, create a backup and use confirmed -`reinit-... CONFIRM=1` only as a deliberate last resort. +reinitialization is still required, back up custom data only when you need to +keep it and use confirmed `reinit-... CONFIRM=1` only as a deliberate last resort. Canonical lifecycle and operational details: [databases](databases.md#section-initialization) · [operations](operations.md#section-clean-reinitialize). diff --git a/docs/langs/es/databases.md b/docs/langs/es/databases.md index 1be6102..54216ae 100644 --- a/docs/langs/es/databases.md +++ b/docs/langs/es/databases.md @@ -81,8 +81,9 @@ los archivos de `data/`; pueden pertenecer a UID/GID numéricos del contenedor. > **Importante:** Los entrypoints oficiales de MySQL y PostgreSQL ejecutan init > solo si el data directory está vacío. Añadir archivos tras la inicialización > no cambia una base existente. `make down` conserva los datos, mientras que -> una reinicialización confirmada elimina todos los datos del SGBD elegido; -> antes es obligatorio crear un backup. +> una reinicialización confirmada elimina los datos actuales del SGBD elegido y +> recrea las bases con los scripts init actuales. Haga backup solo si debe +> conservar datos propios; un laboratorio puntual sin cambios valiosos no lo necesita. Para una primera inicialización con samples, prepárelos antes del primer inicio: @@ -94,8 +95,8 @@ make samples-postgres make up-postgres ``` -Para un SGBD inicializado, cree un backup y use únicamente su reinicialización -confirmada correspondiente: +Para un SGBD inicializado, conserve los datos propios si hace falta y use +únicamente su reinicialización confirmada correspondiente: ```bash make samples-mysql diff --git a/docs/langs/es/getting-started.md b/docs/langs/es/getting-started.md index 410e7f0..d02e557 100644 --- a/docs/langs/es/getting-started.md +++ b/docs/langs/es/getting-started.md @@ -17,7 +17,7 @@ ## Requisitos -- Docker Engine o Docker Desktop con el comando `docker compose` v2. +- Docker Engine o Docker Desktop con Docker Compose v2. - GNU Make, Bash y utilidades básicas de línea de comandos Unix. - Entornos recomendados: Linux; macOS con Docker Desktop; o Windows con Docker Desktop y WSL2. @@ -44,9 +44,9 @@ Adminer está en `http://127.0.0.1:8081`. Use `make up-no-ui` para iniciar ambos SGBD sin Adminer. La base obligatoria `demo` siempre se crea durante la primera inicialización; los datasets de ejemplo son opcionales. Para incluirlos en la primera inicialización, -prepárelos antes del primer `make up`. Si los directorios de datos ya están -inicializados, cree un backup antes de una reinicialización confirmada que -borra datos. Consulte el procedimiento exacto en +prepárelos antes del primer `make up`. Si necesita conservar datos propios de +directorios ya inicializados, cree un backup antes de la reinicialización +confirmada. Consulte el procedimiento exacto en [Inicialización y ciclo de vida](databases.md#section-initialization). ```bash diff --git a/docs/langs/es/operations.md b/docs/langs/es/operations.md index 0e610bc..6d1f74a 100644 --- a/docs/langs/es/operations.md +++ b/docs/langs/es/operations.md @@ -156,6 +156,7 @@ make reinit-all CONFIRM=1 Los targets individuales borran solo los datos del SGBD elegido; los de tipo `all` borran ambos. Conservan configuración, init, samples y backups. La reinicialización vuelve a iniciar y comprobar los SGBD seleccionados; -`reinit-all` inicia ambos sin Adminer. +`reinit-all` inicia MySQL, PostgreSQL y Adminer, y después realiza la +comprobación común de acceso. [Volver al README](../README_es.md) diff --git a/docs/langs/es/troubleshooting.md b/docs/langs/es/troubleshooting.md index ae778b5..cc88be9 100644 --- a/docs/langs/es/troubleshooting.md +++ b/docs/langs/es/troubleshooting.md @@ -15,8 +15,8 @@ | [Primeros pasos](getting-started.md) | [Bases y samples](databases.md) | [Comprobaciones y operaciones](operations.md) | **Seleccionado** | Primero reúna diagnósticos y después corrija la causa concreta. Si aún -hace falta reinicializar, cree un backup y use `reinit-... CONFIRM=1` solo -como última medida deliberada. +hace falta reinicializar, haga backup solo de los datos propios que necesite +conservar y use `reinit-... CONFIRM=1` solo como última medida deliberada. Detalles canónicos del ciclo de vida y las operaciones: [bases](databases.md#section-initialization) · [operaciones](operations.md#section-clean-reinitialize). @@ -41,8 +41,9 @@ Compruebe Docker, el puerto, `.docker.env` y los logs antes de tocar datos. ## No aparecen cambios de init o samples -Es normal si data ya estaba inicializado. Revise las rutas y la preparación, -haga backup y use `reinit-... CONFIRM=1` solo como último paso deliberado. +Es normal si data ya estaba inicializado. Revise las rutas y la preparación; +si necesita conservar datos importantes, haga backup y use +`reinit-... CONFIRM=1` solo como último paso deliberado. ## Un sample está incompleto o tiene propietario inesperado diff --git a/docs/langs/fr/databases.md b/docs/langs/fr/databases.md index cf22404..7f80f06 100644 --- a/docs/langs/fr/databases.md +++ b/docs/langs/fr/databases.md @@ -84,8 +84,9 @@ numériques du conteneur. > **Important :** Les entrypoints officiels MySQL et PostgreSQL n’exécutent > init que si le data directory est vide. Ajouter des fichiers après > l’initialisation ne modifie pas une base existante. `make down` conserve les -> données, tandis qu’une réinitialisation confirmée supprime toutes les données -> du SGBD choisi ; une sauvegarde préalable est obligatoire. +> données, tandis qu’une réinitialisation confirmée supprime les données +> actuelles du SGBD choisi et recrée les bases depuis les scripts init actuels. +> Sauvegardez uniquement les données personnelles à conserver ; un lab ponctuel sans changement précieux ne l’exige pas. Pour une première initialisation avec samples, préparez-les avant le premier démarrage : @@ -98,8 +99,8 @@ make samples-postgres make up-postgres ``` -Pour un SGBD déjà initialisé, créez une sauvegarde puis utilisez uniquement sa -réinitialisation confirmée correspondante : +Pour un SGBD déjà initialisé, conservez les données personnelles si nécessaire, +puis utilisez uniquement sa réinitialisation confirmée correspondante : ```bash make samples-mysql diff --git a/docs/langs/fr/getting-started.md b/docs/langs/fr/getting-started.md index 2706324..b3b5c10 100644 --- a/docs/langs/fr/getting-started.md +++ b/docs/langs/fr/getting-started.md @@ -17,7 +17,7 @@ ## Prérequis -- Docker Engine ou Docker Desktop avec la commande `docker compose` v2. +- Docker Engine ou Docker Desktop avec Docker Compose v2. - GNU Make, Bash et les utilitaires Unix de base en ligne de commande. - Environnements recommandés : Linux ; macOS avec Docker Desktop ; ou Windows avec Docker Desktop et WSL2. @@ -45,8 +45,8 @@ Utilisez `make up-no-ui` pour démarrer les deux SGBD sans Adminer. La base obligatoire `demo` est toujours créée à la première initialisation ; les jeux de données d’exemple sont optionnels. Pour les inclure à la première initialisation, préparez-les avant le premier `make up`. Si les répertoires de -données sont déjà initialisés, créez une sauvegarde avant une réinitialisation -confirmée qui supprime les données. Consultez la procédure exacte dans +données sont déjà initialisés, sauvegardez-les avant une réinitialisation +confirmée uniquement si vous devez conserver des données personnelles. Consultez la procédure exacte dans [Initialisation et cycle de vie](databases.md#section-initialization). ```bash diff --git a/docs/langs/fr/operations.md b/docs/langs/fr/operations.md index 009b86a..1c7bc49 100644 --- a/docs/langs/fr/operations.md +++ b/docs/langs/fr/operations.md @@ -156,6 +156,7 @@ make reinit-all CONFIRM=1 Les commandes unitaires ne suppriment que les données du SGBD choisi ; `all` supprime celles des deux. Configuration, init, samples et backups restent en place. La réinitialisation redémarre et contrôle les SGBD choisis ; -`reinit-all` démarre les deux sans Adminer. +`reinit-all` démarre MySQL, PostgreSQL et Adminer, puis effectue le contrôle +d’accès commun. [Retour au README](../README_fr.md) diff --git a/docs/langs/fr/troubleshooting.md b/docs/langs/fr/troubleshooting.md index e558bce..b503448 100644 --- a/docs/langs/fr/troubleshooting.md +++ b/docs/langs/fr/troubleshooting.md @@ -15,8 +15,8 @@ | [Prise en main](getting-started.md) | [Bases et samples](databases.md) | [Contrôles et opérations](operations.md) | **Sélectionné** | Collectez d’abord le diagnostic, puis corrigez la cause précise. Si une -réinitialisation reste nécessaire, effectuez un backup et n’utilisez -`reinit-... CONFIRM=1` qu’en dernier recours volontaire. +réinitialisation reste nécessaire, sauvegardez seulement les données +personnelles à conserver et n’utilisez `reinit-... CONFIRM=1` qu’en dernier recours volontaire. Détails canoniques du cycle de vie et des opérations : [bases](databases.md#section-initialization) · [opérations](operations.md#section-clean-reinitialize). @@ -41,9 +41,9 @@ Vérifiez Docker, le port, `.docker.env` et les logs avant de toucher aux donné ## Les changements init ou les samples n’apparaissent pas -C’est normal si data est déjà initialisé. Vérifiez chemins et préparation, -sauvegardez les données importantes et n’utilisez `reinit-... CONFIRM=1` qu’en -dernier recours volontaire. +C’est normal si data est déjà initialisé. Vérifiez chemins et préparation ; si +des données importantes doivent être conservées, sauvegardez-les et n’utilisez +`reinit-... CONFIRM=1` qu’en dernier recours volontaire. ## Sample incomplet ou propriétaire inattendu diff --git a/docs/langs/ru/databases.md b/docs/langs/ru/databases.md index 6213c8c..9dc5c3c 100644 --- a/docs/langs/ru/databases.md +++ b/docs/langs/ru/databases.md @@ -93,8 +93,10 @@ initdb/ > **Важно:** Официальные точки входа MySQL и PostgreSQL выполняют файлы > инициализации только при пустом каталоге данных. Добавление файлов после > инициализации не изменяет существующую базу. `make down` сохраняет данные, -> а подтверждённая переинициализация удаляет все данные выбранной СУБД; -> предварительное создание резервной копии обязательно. +> а подтверждённая переинициализация удаляет текущие данные выбранной СУБД и +> создаёт базы заново из актуальных init-скриптов. Резервная копия нужна, если +> требуется сохранить собственные данные; для одноразового учебного стенда без +> ценных изменений она не обязательна. Для первой инициализации с учебными базами подготовьте их до первого запуска: @@ -106,8 +108,9 @@ make samples-postgres make up-postgres ``` -Для уже инициализированной СУБД после создания резервной копии используйте -только соответствующую подтверждённую переинициализацию: +Для уже инициализированной СУБД при необходимости сначала сохраните +собственные данные, затем используйте только соответствующую подтверждённую +переинициализацию: ```bash make samples-mysql diff --git a/docs/langs/ru/getting-started.md b/docs/langs/ru/getting-started.md index 0d467de..2fee3a8 100644 --- a/docs/langs/ru/getting-started.md +++ b/docs/langs/ru/getting-started.md @@ -17,7 +17,7 @@ ## Требования -- Docker Engine или Docker Desktop с командой `docker compose` v2. +- Docker Engine или Docker Desktop с Docker Compose v2. - GNU Make, Bash и базовые утилиты командной строки Unix. - Рекомендуемая среда: Linux; macOS с Docker Desktop; Windows с Docker Desktop и WSL2. @@ -42,9 +42,9 @@ Adminer доступен по адресу `http://127.0.0.1:8081`. Чтобы запустить обе СУБД без Adminer, используйте `make up-no-ui`. При первой инициализации всегда создаётся обязательная база `demo`; учебные базы необязательны. Если они нужны при первой инициализации, подготовьте их до -первого `make up`. Для уже инициализированных каталогов данных сначала -создайте резервную копию, затем выполните подтверждённую переинициализацию, -удаляющую данные. Точный порядок действий приведён в разделе +первого `make up`. Если нужно сохранить собственные данные из уже +инициализированных каталогов, перед подтверждённой переинициализацией создайте +резервную копию. Точный порядок действий приведён в разделе [«Инициализация и жизненный цикл»](databases.md#section-initialization). Полезные следующие команды: diff --git a/docs/langs/ru/operations.md b/docs/langs/ru/operations.md index 6e18efa..eca1501 100644 --- a/docs/langs/ru/operations.md +++ b/docs/langs/ru/operations.md @@ -183,6 +183,6 @@ make reinit-all CONFIRM=1 `all` удаляют каталоги данных обеих СУБД. Конфигурация, файлы инициализации, загруженные учебные базы и резервные копии сохраняются. Затем переинициализация запускает и проверяет выбранные СУБД; `reinit-all` запускает -обе без Adminer. +MySQL, PostgreSQL и Adminer, затем выполняет общую проверку доступа. [Вернуться к README](../../../README.md) diff --git a/docs/langs/ru/troubleshooting.md b/docs/langs/ru/troubleshooting.md index 08d285b..9c744cc 100644 --- a/docs/langs/ru/troubleshooting.md +++ b/docs/langs/ru/troubleshooting.md @@ -15,9 +15,9 @@ | [Начало работы](getting-started.md) | [Базы и учебные данные](databases.md) | [Проверки и эксплуатация](operations.md) | **Выбран** | Сначала соберите диагностику, затем исправьте конкретную причину. Если -изменение всё же требует переинициализации, сначала сделайте резервную копию и только -после этого используйте подтверждённый `reinit-... CONFIRM=1` как -осознанную последнюю меру. +изменение всё же требует переинициализации, сохраните собственные данные, если +их нужно оставить, и только после этого используйте подтверждённый +`reinit-... CONFIRM=1` как осознанную последнюю меру. Канонические описания жизненного цикла и операций: [базы](databases.md#section-initialization) · [операции](operations.md#section-clean-reinitialize). diff --git a/docs/langs/zh/databases.md b/docs/langs/zh/databases.md index ce3199e..d892c48 100644 --- a/docs/langs/zh/databases.md +++ b/docs/langs/zh/databases.md @@ -77,7 +77,9 @@ data 与 sample 路径可在 `.docker.env` 中修改,但必须通过 managed p > **重要:** MySQL 与 PostgreSQL 官方 entrypoints 仅对空 data 目录执行 > init 文件。初始化后添加文件不会改变已有数据库。`make down` 会保留 -> 数据,而确认后的重新初始化会删除所选数据库的全部数据;必须事先备份。 +> 数据,而确认后的重新初始化会删除所选数据库当前的数据,并根据最新 init +> 脚本重新创建数据库。只有需要保留自己的数据时才需备份;没有重要改动的 +> 一次性学习环境不要求备份。 如需在首次初始化时包含 samples,请在第一次启动前准备: @@ -89,7 +91,7 @@ make samples-postgres make up-postgres ``` -对于已经初始化的数据库,请先备份,然后只执行对应的确认重新初始化: +对于已经初始化的数据库,如有需要请先保留自己的数据,然后只执行对应的确认重新初始化: ```bash make samples-mysql diff --git a/docs/langs/zh/getting-started.md b/docs/langs/zh/getting-started.md index 531300a..83db386 100644 --- a/docs/langs/zh/getting-started.md +++ b/docs/langs/zh/getting-started.md @@ -17,7 +17,7 @@ ## 要求 -- Docker Engine 或 Docker Desktop,并支持 `docker compose` v2 命令。 +- Docker Engine 或 Docker Desktop,并使用 Docker Compose v2。 - GNU Make、Bash 和基本 Unix 命令行工具。 - 推荐环境:Linux;使用 Docker Desktop 的 macOS;或使用 Docker Desktop 与 WSL2 的 Windows。 @@ -41,7 +41,7 @@ make up 使用 `make up-no-ui` 可启动两种数据库而不启动 Adminer。首次初始化时 始终创建必需的 `demo` 数据库;示例数据集是可选的。如需在首次初始化时 加载它们,请在第一次 `make up` 前完成准备。对于已经初始化的数据目录, -请先备份,再执行会删除数据且经过确认的重新初始化。准确步骤见 +仅在需要保留自己的数据时才在确认重新初始化前备份。准确步骤见 [初始化生命周期](databases.md#section-initialization)。 ```bash diff --git a/docs/langs/zh/operations.md b/docs/langs/zh/operations.md index a28375e..b4438df 100644 --- a/docs/langs/zh/operations.md +++ b/docs/langs/zh/operations.md @@ -153,6 +153,6 @@ make reinit-all CONFIRM=1 单数据库命令只删除对应 data 目录;`all` 会删除两种数据库的数据。配置、 init、samples 和 backups 会保留。reinit 随后启动并检查所选数据库; -`reinit-all` 启动两者但不启用 Adminer。 +`reinit-all` 会启动 MySQL、PostgreSQL 和 Adminer,然后执行共享访问检查。 [返回 README](../README_zh.md) diff --git a/docs/langs/zh/troubleshooting.md b/docs/langs/zh/troubleshooting.md index 46e039d..c26f901 100644 --- a/docs/langs/zh/troubleshooting.md +++ b/docs/langs/zh/troubleshooting.md @@ -14,8 +14,8 @@ | --- | --- | --- | --- | | [入门](getting-started.md) | [数据库与 samples](databases.md) | [检查与运维](operations.md) | **已选择** | -先收集诊断信息,再针对原因修正。若仍需重新初始化,请先做 -backup,并仅将确认后的 `reinit-... CONFIRM=1` 作为有意的最后手段。 +先收集诊断信息,再针对原因修正。若仍需重新初始化,仅在需要保留自己的 +数据时才备份,并仅将确认后的 `reinit-... CONFIRM=1` 作为有意的最后手段。 生命周期与运维的规范说明:[数据库](databases.md#section-initialization) · [运维](operations.md#section-clean-reinitialize)。 @@ -40,8 +40,8 @@ make log SERVICE=postgres ## init 修改或 samples 未出现 -如果 data 已初始化,这是预期行为。检查路径与准备命令,备份重要数据, -仅在明确需要时最后使用 `reinit-... CONFIRM=1`。 +如果 data 已初始化,这是预期行为。检查路径与准备命令;若需保留重要数据, +请备份,并仅在明确需要时最后使用 `reinit-... CONFIRM=1`。 ## sample 不完整或所有者异常 From 86e01209c73fdb7f146829fda40e42a3d67788c7 Mon Sep 17 00:00:00 2001 From: Aleksandr Yurchenko Date: Thu, 23 Jul 2026 02:44:42 +0300 Subject: [PATCH 17/17] =?UTF-8?q?chore(community):=20=D0=B4=D0=BE=D0=B1?= =?UTF-8?q?=D0=B0=D0=B2=D0=B8=D1=82=D1=8C=20=D1=81=D1=81=D1=8B=D0=BB=D0=BA?= =?UTF-8?q?=D0=B8=20=D0=BF=D0=BE=D0=B4=D0=B4=D0=B5=D1=80=D0=B6=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/FUNDING.yml | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .github/FUNDING.yml diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml new file mode 100644 index 0000000..8e4c7cd --- /dev/null +++ b/.github/FUNDING.yml @@ -0,0 +1,3 @@ +custom: + - "https://boosty.to/backendbezpafosa" + - "https://sponsr.ru/backendbezpafosa/"

+ + YA + +
+ Александр Юрченко · + yaleksandr89.github.io +