From 44de2253d2c58fd210050a0d63096d1e79347a57 Mon Sep 17 00:00:00 2001 From: bunkerity Date: Wed, 4 Aug 2021 12:01:07 +0200 Subject: [PATCH] examples improvement - traefik alternative, autoconf reverse proxy and basic website --- examples/authelia/.README.md.swp | Bin 0 -> 1024 bytes examples/autoconf-php/README.md | 2 +- examples/autoconf-reverse-proxy/README.md | 13 ++++ .../autoconf-reverse-proxy/architecture.png | Bin 0 -> 16869 bytes .../docker-compose-apps.yml | 50 ++++++++++++++ .../docker-compose-nginx.yml | 45 +++++++++++++ examples/basic-website-with-php/README.md | 26 ++------ .../basic-website-with-php/architecture.png | Bin 0 -> 8565 bytes examples/behind-traefik/docker-compose.yml | 62 ------------------ examples/behind-traefik/traefik/acme.json | 0 examples/behind-traefik/traefik/traefik.toml | 29 -------- examples/behind-traefik/web1/index.php | 5 -- examples/behind-traefik/web2/index.php | 5 -- examples/traefik-alternative/README.md | 13 ++++ examples/traefik-alternative/architecture.png | Bin 0 -> 818 bytes .../docker-compose-bunkerized.yml} | 37 ++--------- .../docker-compose-traefik.yml | 35 ++++++++++ 17 files changed, 170 insertions(+), 152 deletions(-) create mode 100644 examples/authelia/.README.md.swp create mode 100644 examples/autoconf-reverse-proxy/README.md create mode 100644 examples/autoconf-reverse-proxy/architecture.png create mode 100644 examples/autoconf-reverse-proxy/docker-compose-apps.yml create mode 100644 examples/autoconf-reverse-proxy/docker-compose-nginx.yml create mode 100644 examples/basic-website-with-php/architecture.png delete mode 100644 examples/behind-traefik/docker-compose.yml delete mode 100644 examples/behind-traefik/traefik/acme.json delete mode 100644 examples/behind-traefik/traefik/traefik.toml delete mode 100644 examples/behind-traefik/web1/index.php delete mode 100644 examples/behind-traefik/web2/index.php create mode 100644 examples/traefik-alternative/README.md create mode 100644 examples/traefik-alternative/architecture.png rename examples/{autoconf-reverse-proxy/docker-compose.yml => traefik-alternative/docker-compose-bunkerized.yml} (52%) create mode 100644 examples/traefik-alternative/docker-compose-traefik.yml diff --git a/examples/authelia/.README.md.swp b/examples/authelia/.README.md.swp new file mode 100644 index 0000000000000000000000000000000000000000..bd48a1fdef6557b01c2a3422d135bc4734e51b44 GIT binary patch literal 1024 zcmYc?$V<%2S1{HyVn6}@j0_B=#i>Oof;c!XuEE|R{sFq~L9Wg&em*!gA^3R6Qy&8UmvsK -## Docker +## Autoconf First of all, you need to run bunkerized-nginx and bunkerized-nginx-autoconf : see [docker-compose-nginx.yml](https://github.com/bunkerity/bunkerized-nginx/blob/master/examples/autoconf-php/docker-compose-nginx.yml). diff --git a/examples/autoconf-reverse-proxy/README.md b/examples/autoconf-reverse-proxy/README.md new file mode 100644 index 0000000..348b56c --- /dev/null +++ b/examples/autoconf-reverse-proxy/README.md @@ -0,0 +1,13 @@ +# Autoconf reverse proxy + +Quickly deploy web app on Docker containers without restarting bunkerized-nginx. + +## Architecture + + + +## Autoconf + +First of all, you need to run bunkerized-nginx and bunkerized-nginx-autoconf : see [docker-compose-nginx.yml](https://github.com/bunkerity/bunkerized-nginx/blob/master/examples/autoconf-reverse-proxy/docker-compose-nginx.yml). + +Then, you can add and remove web apps with special `bunkerized-nginx.*` labels so the configurations are automatically generated : see [docker-compose-apps.yml](https://github.com/bunkerity/bunkerized-nginx/blob/master/examples/autoconf-reverse-proxy/docker-compose-apps.yml). diff --git a/examples/autoconf-reverse-proxy/architecture.png b/examples/autoconf-reverse-proxy/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..f25a83be18771085d9823ea849c6501c08b67b08 GIT binary patch literal 16869 zcmeAS@N?(olHy`uVBq!ia0y~yU}|MxVC>>xVqjqS`gP4|1_lPk;vjb?hIQv;UNSH+ zu%tWsIx;Y9?C1WI$jZRLz**oCSD(V5 znX?LYwN`9hyJ*LjYo)KEuI%!idX2Ai&aKR&eb*-bOTSW>qZ=d>{dMKFpzUIuT^wet zQ%@~&6ks{DtjWP(4QHbR)6El3-)bNKw|>6I((?PA;&--<)kW`p_sxG^TQljq&UY36 z%lhwQw>C2{xLm#xb^k`x_4{tw)ti6)YL#Mk|@c%A#z*S=uEKBq}O{frEqu2p;V@{djlbzQtX?>)bBT}l-XgNMZzi;OQ4 z3<9#Yd{VY-3@+~d&2AubFFsyyF`2=kgn;y=$LGK4=&f6KT2J#m|KhECd*zrJg!;bx zILYtsx#-u)85_RX{nWQ*V^9%$`7!x(-n;N-kODsZmd!mc_k3Euk$c*~qThcm%m2M` ztK`Jv-t)(9o|pWx;5b7=%j3<*=d$z9TD)lC5xf6)9_?Q1+ir93?2H8a^a~L4UqfAQ zQzv6m#lz6iC&vzQ*`meA9l^o#qVU2CLk0z_`L=O$=4SPM-@fF=^Z9=YrfhvV;kft9 z{afZ6zi{klWZ*oW-oN&`+Q+Kp^A>?Z6{bzj9&cdHJuer%-uKa0KU-H&Q2u$~Yo#iLX0+*;h1H+Rd=nVH;X zX0x|W?fvX|U+=X&y0vWEw?4nG+8h$LY!JII?>zMMDTC+7QU z^Zgv_i-NxVxZ4w6_C~)p>0X}pM*pR6Z-(B=sLkfRE_Zsy)_o=amKD8@?);U$^J?kY zx39Jfs8sRn=)Upz*%r%d@&%4Fqo?5r~+v07@pIFul9DmPPJNssGvBj!6KWyWs z{r#uDyDKI3_SgNzwY{_BFPfB}~FB ziJk_x$lT%|f3IHBY8KqK&aC{s*d?=C`N#iq`{(xlC@l}P-(R}s= zk`KpKyQH4*3ct3y&$HO&#l|nuT6ynx^`whGxo)y`X1yq*=QX+iNnXc{KW~!kX*hQ3 zO_6f`wfMzrbI+AYbqD^v{jQ|+{o|dRqk76N?k}~odt152b-(Lz&z^i)_3irCe80)| z%$}FLHD_rG@JrZ$I*)`tg6?(t{8~?m_u4QF8yiLwjZ2GlZA^ssJ;#cx) z&b_91_juJinQ1=B$8Idt-gVFXimIBenfNuu|561%9WU75c)#B4I5&6Mv#F*hmbJY7 z_-IY!=Y13Yw_5*?xc20lPt-f3{Js;mbp>gDk-4jrJ9Qqf++ut1ZlP~KW4WTH(WMnk zY0*YjD}A^5RK1hA_gL@R-J^ne9-MCrzyGs+xv}obw<%xNNr#@1mD%flKmGm2(4^p` zZxz38rJKDg)k{gOV7)3ev0CSFX{S!|vs-_^9<@bc1%=``z3GZA2M5cdH>b__m9UF zeyL6CmsK@WP3TwG*_&Tpx$Vp_JBwDO9baO3?cKV}%;HMV8;OgK zH&{Q9-I{p5Xw%=?TZ@*yf7Y?$^|^&7P5NI+ZJSbce}dorS(DPYgvnofy7Sn*TWfdk z-qylh+y1V4ZET&ums;&jrw)1NcpZ?-*E~~E+4(s!xj4jpTjYBCGTFdt9p%+K{@rB# z+2<*_=?&i_(SR=!9&u^?SIrH@{@yG4qThM#@%C%~@*c;1f9_Yk_t_1*KVK@|9W#>b z^DN%8Ij_EW&GZu>9gN>@RDNgpwb$i!VXgP!d7s=O54G`s-mD}ux$j~6{6AgG+NPBq zUt+n*TPo?_zF3fsgI^=;H-G*b{^GvSs^gn1&S_bGc+*sKJuvLH*6H};OOnsr581bK z!8t=oJEb{Vx|?mb`M&{|+Cr<2SBh54Nb}^m0{=Q$B~l4Vejv} z_gHMYtUhXw&gx5sl6E!UDh@5$JDdBJ%;akol_%{YyI03wNCa0jLd%a!e_z{KAYXJP zTyFN^^nUp{GlTEmcs66pu^Crn4Qr;Ef-2qV3bu07%{DDtdGD*O!Nu}anmYGL1pZ86U}YQAqW{qx=8lk9_{ zdCRWduxSCc6fUZI^gmD8H)-D6pHH$Ri&pkYUVpg%_-yW1YC5-G&)Cwo#45~x<1$c% zD755w_9weDT6qTdBX5vFG+cC3*WZo_%pt2P(`fg zShdHhJkRN?h3)Q5J3)1F75De>-F!EX{Jr``f}x84{PQANoB7>x%ns{s#qP`e^eX;n z?U}QGPS5+4Q$IfF;uu6mE!_G7O%PkY*yw8KISR87}-Wkcn;9m@*=Ii8Samy# z8`R=jy6INf@!Av5K71C~H2?SNvtO*#&MJQ17%RgK3K=h6-M9MsH=k=PwOq7MyJNnb z_Z8K*eV&s1=gws2bQboof{a-G>X_N}?`)la_GCx~R?8$#oEv-T!ac#q)~mtN8=Fo& z`*7XPb4hBa%){EPi@sSX@4r_1ac_aQ>zVf}%|Pu(q3q1d^KU#|v8?Ar{uR-k$0rp> zR$8m2`ox3<+?Sc{AI<}6#Gdq(lKgjMwR`$oomEAVR2RqY8}0!kI(zG%y6ak8`-bF zz9g-e^S=05d)BdY=eGLm-3b!BbN7l^6%WG;YpvI}-<&@@X_Hs{;rCm=z1sMAUY2D{ zm)r&69WpNr85a0wW@K*PUjoX~l0UchsqFrC;~$#>|G6`f^I~sGTrOYH*CWTw@M}Ta zw7$~ntTX*{C#dA>t=PQZxnuG1pzP1JtDa^@3ZK4SdiJg3o)Z>KAS*Ygti5yN(#ERv zuRU9TpEX}>CVuLhoPShYK-g`o`rx1JGoMc7&E2H-?y1mhkPF^VHaJ}$eap()`m1`f z{EGakl94Q@w?8|4c+$g)kR8&tYzzwjUKlbkd;|qvhkX?fgTtST$qWpS`sJ7z1nR#? zFf{yFe4K&dh&)W`g8e5v?%P@Ib*r7607{HzUvBy8o(QNDq%iO-5>$d9WrWS=qP2Kur>U!n#<(>B)Z7h`*@fBWzmHbLrDycV<{vt^&3_7WZQN}2DjtTv)8u;A{ks{R z+U63v#G*JnymZgA-7YUT7FL8`{cF?6!9(hnX_uPEL zH%U&dZYEG|Dj_cxW^$MfFH=?V9&# zdcu33?RI%zc%vwI#`KAL$IEiR?%Ck{YUA57=ju0QhGpx1Ur1)J;$djlR;jM?dt=*o z@$vCvir+3rO%2+m{^S~vgZp6jJI)A86(l4e zdMaI%owHVZ)w#Ffi}&o?uySi0QlGX;^Y3)|^yS|s8)_#XdUAFDr25ts^X)4@b>7@B z6|wiadj8znDSi6a;R*6H<$gQ$GcGWnX*+Mzs*EpJ-u_KI(eKk=yYM)}h1sxK0epXem3x8K+^pB zypMOUEpwK8pXRdx)=_PTc5px6e0=og%4Zez-d(l-PV&1)&gQG!Gv%N6Z_8%6FFy)G z!@|`v2c6KR>&A{rc?Z>A%De@IA3 zkF0grxesTI&#%yAco7Y8ppdumoMrFp|Nl1HnRuA(Yi)nc*NC?V^Rx0}m-p^>v98}R z%LEiIZPIx^KF|OE=cstROKsA&BhgZSuCA}UYBS;Z62>o~cGWq1%{s4Je+4;aYIvOC z1TdmtOC+}bU_ixqPt?yrW&MTW+_P_F$ru%ByoO4#M*I2*X z@%ZKP`SUD`pREdAeNFmFx1@1ekF@!_U$58yzchW{lCrB?s^9HAzQ>Q@MRmm=i;R<3 z9`FD6b-h+?TXfz|S2gqedu#T6f4nPrD`$9y@xIl*k_**u%B=6b@b6#j+pF1I+!;VEdON<@-L%epX^!;J*kQTl@e0dcCTy?e)6dern}!ZY0)!=NDft zxAyPzpTFi_%8y;XG-mD6n8!LBO;cWP$=-V9_15Ehm(E!_%Dy{a{eEwHoC?DiPlzkb z?^QToJ#Ub7gk$ENoyE@&G|H75$rrbnz4H0nml646-#6K}`qMKeue@Yyq;U7HM7d5_E(9h!(q|z7{$pyfBtlr zEuAu}sNw}v?NaTXbAP;Dzr4@LU+Ghpx8J;~?tKbolh@qutiAe9>hn^sxy$!{Wqy10 z^w*!6*E9Y9Pqv!6{j$IP-i;eCT8J_HT9Xnl@BcUF&heWoC9CZ<*K6lzg|1J{&CFhz zV=-ZK{p_4s8~^e9*IAsZ;z8|~H@9A6r`d^bP{TN;x zp7inK)e--_G zih16h=zA9~?OAG&?DtIj(|UHxIdaurzP_QnCNX6~$xo|avA1U7nx0;{diC8#@oKYg&E7xF>QsGyJD+S+baeJS0ft{2mc0Hr=S-*Q z*Ut5{@vwM&FrkQpP%;rwlw|y z`W35VwcHaW2)vmu~%DmhRc3u5&BmCNTvg}~vmB-@o zH5Y9-f9-j6CiYtVnx2m{_kQIot=uVH(Z^*R*hLOY31?vd%w@qTKMn~xBirqe}8}fzT&v_ zlH=>+*6pphS1cXeyIJncT1}hWTWeo?Z+?>f-`4K=oZ?xtf7(C&=k)&LoJ~oeXRq4y zQAM(L%GJjowA3p=gD2}3Y}z{l_maFP}~R zds;iY;{9hQw@ba7W<8rACvP)j;=bCFs@`AA{;$l>EC16aQJZG-@0?k6|JlSa%Zb%C zm0#DFO`jh1-FUXMk&fZEcRR{@IBd&o1JumltND=Y2E|6<|kzD3S_`Pq&C zGPsR;G;7&!|6~8mwaaYho0<;^zNfClW>)^%RK2ApF!kO2tT^pb%_{ow{+%3u{qN(?JU6ZWw7V*2PwrQ5@fhpxjnmdGkM3T-)UDE9;B)Eu7vVj7 zBI_q_+h%z?Q^)OVe(uXn-#*@n)OFka;=a}9=eP$&U+e}A#Ls^hXZ1JudGYep3f+RW zf?JOpUz?_LtLlKE=HrWz*4eX|DyzbczE*sEbX2Re?cw3})04I@TlVb9WdE>WzW<+f z|Jtrtx<)fx-ty(D%IYw)t=nxjC(in~Q1IGv8_!AmEwdixmt7a}nwtJZXOeB`+Oz%f zJjH)L9?!qA!7*0&7yIq1D-khK*}=Af=j_AL#!^?;L&j3W{(su=Kl{K_cE|fuW7d~f znLj@2UpDQ=e~mSYhSOB6)!r&+^`~ma+`S=IXTGE7dYH&H^Y1?tPp_D?^0@bOy--gR z9%-{Rix)3mx9;7PU>m!QKlbQn@89op{?(Oi)0JCa6)uX+8I``@2jZ&xjR6|zuo-;X4_3oGL}Jtt0d6Wze!?Y8ygG|%&M4_Dtg zx@)(^Azsaew(sukSGT>^e{0^Py#4)AGpsGD`uAye-s4Y+xpkuJm)2)ldl_dXEzPM5 zte$}#z2@ZFnOkE1$;|m|)V0c{KCoS9X4RgWpG8-l4@;)cxp?i`wF?&tZe=cCxw3$n zJ!AWvb$d&eew^4H{<_?yy7u44CE8m%|1ViT`~Sb#zqhU1Gmlr*i+uM=kD3QJD0UY+DO8>r1VO}vsv4v>xycRSxx;q zW8+`7oXJ*yqyPSIek1C>e{zOx+%)6t+PI^exj!8Sjo0n=l9rv^XIMY^U)i-j&*KqW zzBa7cEIawxj9t5SXkL3SJjus4Zfn-mu7wX*$N$aR{P4?V|M1{AHu$lK;ag+9651RR}OkKFX_+F^=Hy!oc_H%MCUMeqkxl;Q4 zLdq=nQr>8RkBp4W^XoH;e5~4Z3Q~FB&ft;%)NGx$Ch)${cjZ>`xh@3KAV}oO4ELyt;_$A`-7<@cFwXmwj_{_kO&#%)tddtX(g({J8$o|3&v3z1*eN3VxmH_w2*X$1mrL>7V|z zXDz?c>Es{p6i!}w{Pp$q)ofCJRxg*V()ug6<>BG>)hp#JGbfZCH^`lFygK*Wk^O&f z@1GgY!B89e=*y4CZzMmPy(?dGQEKzG>F4f;yaNwD{t3A?FLr5fpJ(=oYi&1dyXN@V zo;z_OfYF3U&gRE~MrNb>cRQc2()9iPY5M+}r&GiKeOYc_`{QBz@m}fgCzSi|6rZ;> zzgLlb{@vwwJLms>lMZf1PqDDQ7dh+mo2D9&2Ohe5eS5h1cyds=N1^QGZx5lUdUJDIR%F}pFVwRWMA^)0wXiqoyzBP-|zh%SGe(ab4+hj?35AWM*boSO3nh{~aA^wR&#Niq)%s|9IU0|MmWVue0NS&$0^d`SW`J zzty{V8D2ySEjcbc?Ou3L?Bk9_wNtKctFpa%+V0Qy8((|ZtlgMU{9Ro^W?9OsjXDLP z-+7M9md6AJPP|p-k(HH|;#qrKw*17(E1vxQYc5`0$+#fjbAp_I+~3u2CVBAlAK!C4 z^5|E=cXIPLZd$xmE_=KAyj}I@v*!Gg zMlN^bW+eC9ep@y>ZMgYpCWn}Z+Q z+1>r?7&-U3bi}C_Pp`|LzZ*xzvA(4pXaLl`6=oP z%7$S-k2mgGb9kDM?Y;f={~sJ|4(;NdIdf)~G{b`X8mm72@#wr!_pk8D-L&*6r(Q+I zUQYC0CO3WR)VU>>JhhIt$<_9-Ff7QQz}4q@_u-1gmdDPW>kY`x{_*DHqP6U4Yjg{J zqMWCld)1VrIJ2te!GXrf{&tZ|Z*0iBYqgb^;X=O2_R>9@&wUO(!K?c=ZtJ$T^K$ML z8!tB-7bku7QV%xz8UY&o(K^aD?>sBR-{5HX^fJ%pFGe*U{i#o1%_!lCbPhM)W~p|# zUFQgRWd3a6^*i_E7MGtgQ7!4$*3#OvY11_Q_=GkUo+`I6zYd{DRX`HYet zj^949v3IUWoj$tJV~w1=MZts1{`P-Q$Nwt=l^}ILpE|em*?u~q99q5D@==GfpWV+V zr}cKfdAIw0-N&Qi;p<{N=P@qepUnEM*|=DyT=}%b}N^^L-AOSQ8b z_wI;`b$O%W0xC-4t6naZ|MP%-`P{NutFm=?B#oX_-~WB@^LhLId3Sf6I~Q?pH3LJ( z?r(kPp5C0=7c}c|j69@`^nUid(6HODZvB?1Yio(Msh%@+s_Mo)kGizq%wHri!CPWUaAEot^X>jI&py4A4~+jRvi11nY2s^6t}XOAHNolhu9&+uK1UZGU%Phg z=JfOb9`e`!SgK#^dG*rm!sD{$IX5<}Ucc|xwdnl6H_z9ZrJb44E?4#9qPzUm|EI2( z->?0CVxsc;ozG^0#``{oDXwGVllgJ}|DW^5X=gGrG6KSx89dU0+^?IT==pPOW?=Q4 z_=_U{^b$5@=&i^JGndKUd+YJ8UAv}CnbNJlFXHLNvkwk7FWtv)_v68nlas^O#q2D9 zfA82ax6(b^mn~a%=+Gg5yPr>b&F@t_ndrW5@3*Mq+KXk*S-;;S9$&K&G(yPF;1QL& zb?rm_f>|54rChwm+~=9?@^0hxPgQT<&APGg*vWO%tM1&nW0QGFW#xibi8HwMb~sGi z^M3#TI!DJwt7jjkOqrq+vEjk>{r|o$ogTL;Px%apY5)J{c~eu?*@p+rzX`8jf)?{RJ zKY3Si@#f8)X=i60m#_bGr}%v6b}6rC!NI{-?=dty2?@OZs^dj)W_8)rUG)~pEpqMq znYZceD?Tk1eT%tgBgeMmmX?-_-Fk!Wa(})1zOMY)nVEZcn&oC>%rH(rm%IJ$vULhq z&YIr`4GOM^Wn}PNv1;Mjk6-jOSAV%`m&~_b?sQd@*zrxo>%UYRio zC-lcxKAoyx|MRp~xmnPQFJDTw2HTt{`nlZx@5=*?%vV`UB~3Ce7@xPfd{6Fo`bK7k zD)-vr-`^fpy%z3Xx@MCL-~P`xw;tcbcTQ{F_OfaD_V>yb*fmTy+sU=$_|Km|x8JYZ zy=u-`-R*ZaB^~A38oXz1^!9h|_P-|XGLnwmk$-!e?^_lI4=15O&y_z_^xad>3f@aT zp0_gFD{I!RXy$$WxAeZ*{`+v4fB&bc>sRb3wS3%Tyv%p@vTq(L|9>2}KWG2HrgUm7 z8^4@Q@iU*T>n!pVo`z_bStKbJyNtW|(kBwym zzugaqTt7eU@O3gqDILEmdG7x>X8!H%?d4|73C#T`ln6^H7bu`W?(9MVf*gIiy!~K?_ZykDq&aijT*39+SO&A>Ni#u#V&5V!*JkD)AH#enr z-xA|4zgM~3s`Pwp{ok*KK52Dz`~Czw&%Jfv^(00H!*UJVxLqYL8yJ~G=9;{{k=!4< zw`%JxF=g@Cl8IK;=jRq4liaxXag^8{=XSo(bn`ubzunG~W?n8inx6keWSB8a6tK6~oc#*Jn*cy-TYSHm^ zKU24EUwi!bx3|0h|NH$n{=oNr-}f$`S9NOj)AjrR?b^k7xI<96>Gzp51_uG7OWXVX z-tRsC^XlOa8zU|*ZUHNC0$~QJ7Hs8AaqA)vq zwa>kZ$Gusr)IqK4na_F3&)a@qF_*{R{_mDs3=Dr`LT~<9cRtPI#)D3~OUaRWd~!As zTRkrO+5i2*vHm!3y?(ZRpUo$a&$;GrZ0DKh&#OGg5wH3zW;VR z-~7Dfx@F6rHF4_&{FahJHS9_HVF{OZ-K-_%|0e?FO96#Xj9`Q+A{|5qAjUD5bFC+=9E?CLVp51uC(CPfzC znzQcr%(bTL>~?Ce^$OejY)_4BrJc)>XRUW*;u_!D{F)j3>CF0A{WEtC?qZm^y=-%Q z&-2o@xY@6LEpB}4ELw0r`}334$8&RYzd6h+x#W5D=+Ug%?A87C|9{_K9cjL4g6+E< zkI&dPzb<_8U2CRI<)&Nb-TSk%v!AM6xi_oqT4egiWw8vCCSy)p=l1+wy|%c`i0}QX zS#>|=7-e?W?Y<_yjk{pC!RE4Oy{kUW+#RWISP{4Ub2`uN83BsFPi#DvYpL$MUj5b9 z%1>95BbiqHkXRCz)ofnfue`s}EiUff#^Z9??<8aT&GYVLynFfTsCazH@1HL=&M;2z zyLJ1+A#VK@ybKezO=px6QpT z@om2A^II1!zEvFSk<_wo>$m&mk=wE2{P&8(ZM@9vd?Cj(X3cTTWoSrAG&$+j@%&fB z{j)J@RcBv+VRBvP_u}8(Gp9YKXOv=0njcwxe3Qtw`aK)}FBks)Q;z%h<^$&}pU;`G zUsHmC1v-`f?&9O)_YBSWHqO7cYRVx%~N1)rH4$wskp=D-RZ}xf=UBg@66o z;3;zY@%v&}k8db==(JUF*1rpnK@)zm$ra!4mS1IK@DOratrF|D*NFR#>?YgL8&S$t zXQY3=vGRYhY{H(>+S_}h9cSrIOS^QYdabSAne@+l*4clVu%X+KuRLZ$snGAnZ6`0- zGQauw;^N}aT$8t#y!F3+KCyA7{g;S4C6|3)8Td|Ke^rM;#e8%6D{1NVKV2s4T$fY| z>gVR>?zjI}5i0Fl{q<`2RW|uwp8aqAx7d9;p}al+{yH-T2cgBs3k6mlpRDE^wDRH> zVSk&AYu5PWepopF%Z`m3Kb|o@AL9P0?;67|jw%`UiB&bHb+@lLmvQTS{l8+<*Z%e| zH&(pac>K!5S!&bo-n_ZejDg|7?DYPn-N$8$dtUV{J3HS#KKH}%dyoJB-v2*%b6(2L zyWFh-JsR^5ASntg4BvT5#t2FBUu`C-xw3?I&JKE870N-d*f?v_`t zU0cQb??!da`@P@uZf;7QEWPsjp;m6y!_Vd&{QBc=`TeQ4gSJa~t$TZY|G%xb);|Z; zySD%Te7<^cmRaHs2SHo&L=7?_|||RuPxmcqEG+9AE_5T7Rc{PwHv0*Jl;_Egp5OS);S{ z;P&V9s?XW%ard))I%U@`E6YCy)pxF4yLRv1zux>BXWy?!l>2QK`Mrwv^gPL_K4(GS z^(~>R!&dS#F#LFY@A3Y>Z}V5_&Qc4Vyk{lvzLQcP*X@31^>)kUHa=Ocsl8s)rr!T` zZTp%pa%uf%x37!YSF>}D`?)oF%1S%W1^e5EiXC@#b$w=8{bW}5xu)sf5$Rp<5| z|91U@%%SGv(^joo_36_mF8P%0*RF+?M)XwaSXo)s#5GvV`8`v<>V;zI=VPC*U(sP; z__yPG#I(*;x`kE!-4S1RT;KEUR`#oBrf*-ZULUp@FRx?VOiT2!au`bIUjzx@3@+l&hepPBk> zKAn)YE?WWe`GZT3b8l~p^j~N9utk`Qi|a~T+>{dAbt_j|{{3?Ks%XZoPft%@Wn*Bd zDR}v@OH?}~)Fk)DhD2Uo-YjQ*uU&HGWo2-wzMH zxW!vaANLjT!jzM-y{ml$SkD_2eKf4}1~Un%RX zZ+D8%uZ#p+xAE`cKDR!Zm1))26Tj_Py3{rIh3oe_#r?aOe1G44U$;Dsk>SI^rN=cj zHCJiPDtkV+eAUf+r9YoeU#)#%OTYcUh_h9vPn-y-&c0>&e9q#u>g%9U3Xt6W|Np*c zi7_z9f048Qa>4og{rdmX@0+^_(}GJ zwIH2W?;R^X^#8H_zr(*etJ?qEdy_xC_F=2|sh(Tky5sLuzu#N`>+<|F_bnJ09)6LV z59-M)bM%PZ`qRtIAkZiGeUhNE+l>8%3=D@ZK8`E8=qf%F%z0^B_w8o-{F+ZE|2rof z>zDukYY!S?kZKXQ} zwgR-L0cw$F)t?)CX8*pr;P}1^$qX-i3G7p`tKMT_eO2atzURjC_CFtLWM5Y7pMI%6 z(?0z|vm9ih(9bu8&kr^~Talr$@x1-^A9)}p<;H3^z?)7`E$NrXzMTZ-4b)vDHQ#Pj z>6x5g|4tLM0v5Iv<@3$t%o&zy>uPS;+3V#l0qr~iZFQ+Tx1jxwl5Jm~9J53Iqn|OT z`&FP8^d0Yq?9xHoS~CCTMx9N|*H%7iKC5Yzw&s6x%#39A>F`@QEtgGTl7 z=biVWep|21arXZFyxQw|j?V4!1(lIuPn(U4-Td#`rG{QyHAm~`qkS(UH(#4R?dmqY zJ3$lY?cKj@qvHCc{+63H2WHE;yY~xjd2}ZB)Ap=h#7>e_)xDcd(jVWuG=2J;$&c&| z^UK2u_x`#5t9x5jPM_gQ>uXQ0omf)yH{_NaXR&MT)k$ymUw-`Jg<;dO?-hQL8-MzS z-mI9^QAR=Du@3n8rm1H0*0i3bJDzQSR`BJ9j8U>$ zWSh?7>(8fNH{ZSrymG8S{L?!I0v;Vd6=S_!K&k?bmmilqu zsY@^Ci$!$SmRvjcr%TPfCw0fSh_*G8)OFw6#auh(8hTdutt`$BCG-Ax&Ym4pW>>L6 zE%nv9EjG0`ZKL+BF#7)f*4p1T>yAgItd`MUZd7h?ZZWs@&U0@=e)Zn!zcp{t^FNL< z``N$bruCnFxT5IM_lje`?BD6>o6E~>Yg^N^wsli&#n&JEUPcNftlUvslMTXJpUbJoi{q$p358^s?p8&%K(o zrTgDnE*3u43p=qv1MyYi|&`| z_Rh{-rLOg4eMs9)v)2>eCEJ$sc`q|eese)I_Pz8gp~-TyxnEDH=iTu~;f4I6>&HL6 z-yj;9x=Ay!+9vt0d}?aWe`CYri$J5Lr8CXlpUCykof{2WRz2n8t*%24-tAa+ykYkQ z5y{LD#?88tbFZjHtJ#+Gy)P7h{q7Nm`I44zJF5TB`x0TFRqeIwuU%H+y9Y09f7w;{ zuN9gtv>80HQ(js5L#e{&Ro|;)X6uh`>^WgOZQ{iE-=Bn@&x$^FYR;;LdG}oV8O!^Y zCVoG>`dQJ=*Bc|)Z|2ri9sF_Ocir8xZ|@4r!<6q%ICx{>>cz*5uJ5_~Ve)I^Yb)0r z?|EyUIQz=W`>+1LPhM~F%Wm`WKB3t{8;<+eS*%*H>Bz@B+QlbMMO-`H=lQ$i)?@W& zZ_j}y>Sj4VyQ;6c?1kZjbCuz_H#X17sh__sW%iEVd zkz9MVy|i-O#_eUV->uVq=yZSK@3`#g@+`IYtLKZiO}{av!S-IzjEB2grUrsWJTtRh z-frw!wCdT$&Bd~ljpXLcynI9Gx2lmX+ob6?lfU}*xbELB^VfUP*NFO+9~nU#MQnd% z%hy$b)>p3iy0p);Sm*q@oc9~<{jxH9VK`wA)0>T--!Xov?!5N+(W~0*^6O{rMu^!N zeail}_`BHWz4e=l0gE;ISrjVIa0}5ZLOku=R=U2 z!TV6wpN>{kELn0{Qfa#-N8YYl zXYtm(#)lSP49fnB*aQMvwh?~is^y{#`M~>}M`Zq0%lvFvT^@$mp0eb)aJb!^Xt9^Q z2Fdpx$1d&lU;4JtCo1`!+xP9p)+}J#n!Z?kn!Gc`WXqO*&$|z2@W}tGo)a4L|4mcP z@g=5DY&KSTi9`34%$xkvtLj^wyU1H-@H`c0X9@GAO`iW)6aIDa2}4!I&9ydPedF`o zohc_k8%EmCe}6tnaren{eV*A%(!ijr?2^c z_<6O`SBp=lTh|`^ypw^!Q`51^rt<6hP2M*51ESo{#J?BWd3^J=>Bn9bPXO6G^NQJ4 zkez$~)G2sx*1DPs-A!^fS5`1CQRe4c>opJeADg9YfYqi7e=jH4zjF<1)c-Anp_xG~&t;b%RyxJtk%rNQ9F57wYS7?A&Qh=2CM{FrC zZhU?_^|U>A($^o1xnW-lsAD&ZcAO;!k$> zZMqfKxdLe}g-2e{@9Vo=e+~C+jsh9@Df9h{JHhv6gvQ9*b*-AUTKYC5bN%U3(_EK) zNy@NBZ8~WA{iI9Z9#tKeJ@IV9(bZor8NQULd$)ex)_ozMd#d`cG{_*k-<~* z(Bc!D*7g3;JW*Gr6F7Z~wOZ;ObKBMHET?@B0qu5Bhy{%ySXRCvBpyPirtStOx>Ph*HOL77qrFZPS)&Ohvi@N{yC;FvHHy~ zGX;-0EE zGxq0KUAxnpy0KPXPakB?a+7T(XYPk2+DdyjX&v@jV;NJe^YPq?^;`LBK-_orFjkA0$K;CXQ zU4HiF)UedL*vUqvpj{WAXS+D}Gcx>jRWb+lMuaBoeC75@H+9MDM<-f9$iBbM>1lVZLp(i)3DW zzGZVUnc>CuF9{KEw`@Jd)49r{@Y%X`uPV;A+tkUZ9*YgV%x^B2c`g6?uR~>wdE#l; z&g}^dwJSD%t-^Nxb;-Y;L~&uQ6nV>QJ9M9?y!h&}*9=saFW79VsnQ;+ZU6I7_Pui+ zf#K_%UYy;wUL@83bM)T{AB%HJ`BR~LPh!%e+pFW!zbnoYPkwyoxImHfA*-F|vp>7^ zGcJ(dyf*u*V6$BH^W%ll#|-$*r)^kxo~d}h!ThtIZzkXV+57NMWK6vPsKa2m*fY$@ z=KAqpdC!b4X4{1-d3@V#-nScXAHA{j9VieD#U|O>s(+LF z{@`P>WxrK`#P0}Aqy1awZ>yfXvN|Y##?Ix>TfZ(iZd>)|#<9;$Pa{_E{&rFhx<_aF zMXk^GZpCKKWc|i>bDmbtTEV@~djG8Obbs=u^7XH4w~Dh+2gQ`)(!W2o)IVl%r|{r4 z&o}J1)SSOBInK}^VN|_r-^P!#{7p_4%~eF&c4BeivBd(Eok>J)EV;)g_ve3cbK8yk RzxFbKfTydU%Q~loCICyS(3$`M literal 0 HcmV?d00001 diff --git a/examples/autoconf-reverse-proxy/docker-compose-apps.yml b/examples/autoconf-reverse-proxy/docker-compose-apps.yml new file mode 100644 index 0000000..56d93e6 --- /dev/null +++ b/examples/autoconf-reverse-proxy/docker-compose-apps.yml @@ -0,0 +1,50 @@ +version: '3' + +services: + + myapp1: + build: js-app + restart: always + environment: + - NODE_ENV=production + labels: + - "bunkerized-nginx.SERVER_NAME=app1.example.com" # replace with your domain + - "bunkerized-nginx.REVERSE_PROXY_URL=/" + - "bunkerized-nginx.REVERSE_PROXY_HOST=http://myapp1:3000" + networks: + myappnet: + aliases: + - myapp1 + + myapp2: + build: js-app + restart: always + environment: + - NODE_ENV=production + labels: + - "bunkerized-nginx.SERVER_NAME=app2.example.com" # replace with your domain + - "bunkerized-nginx.REVERSE_PROXY_URL=/" + - "bunkerized-nginx.REVERSE_PROXY_HOST=http://myapp2:3000" + networks: + myappnet: + aliases: + - myapp2 + + myapp3: + build: js-app + restart: always + environment: + - NODE_ENV=production + labels: + - "bunkerized-nginx.SERVER_NAME=app3.example.com" # replace with your domain + - "bunkerized-nginx.REVERSE_PROXY_URL=/" + - "bunkerized-nginx.REVERSE_PROXY_HOST=http://myapp3:3000" + networks: + myappnet: + aliases: + - myapp3 + +networks: + myphpnet: + external: + name: myphpnet diff --git a/examples/autoconf-reverse-proxy/docker-compose-nginx.yml b/examples/autoconf-reverse-proxy/docker-compose-nginx.yml new file mode 100644 index 0000000..957e82f --- /dev/null +++ b/examples/autoconf-reverse-proxy/docker-compose-nginx.yml @@ -0,0 +1,45 @@ +version: '3' + +services: + + mywww: + image: bunkerity/bunkerized-nginx + restart: always + ports: + - 80:8080 + - 443:8443 + # bunkerized-nginx runs as an unprivileged user with UID/GID 101 + # don't forget to edit the permissions of the files and folders accordingly + volumes: + - ./letsencrypt:/etc/letsencrypt + - autoconf:/etc/nginx + environment: + - SERVER_NAME= # must be left blank if you don't want to setup "static" conf + - MULTISITE=yes + - AUTO_LETS_ENCRYPT=yes + - REDIRECT_HTTP_TO_HTTPS=yes + - DISABLE_DEFAULT_SERVER=yes + - USE_CLIENT_CACHE=yes + - USE_PROXY_CACHE=yes + - USE_GZIP=yes + - USE_REVERSE_PROXY=yes + labels: + - "bunkerized-nginx.AUTOCONF" + networks: + - myappnet + + myautoconf: + image: bunkerity/bunkerized-nginx-autoconf + restart: always + volumes: + - /var/run/docker.sock:/var/run/docker.sock:ro + - autoconf:/etc/nginx + depends_on: + - mywww + +volumes: + autoconf: + +networks: + myappnet: + name: myappnet diff --git a/examples/basic-website-with-php/README.md b/examples/basic-website-with-php/README.md index 9014aeb..20c433a 100644 --- a/examples/basic-website-with-php/README.md +++ b/examples/basic-website-with-php/README.md @@ -2,28 +2,16 @@ This is a basic example for a typical PHP website/app. +## Architecture + + + ## Docker -```shell -$ mkdir letsencrypt -$ chown root:101 letsencrypt -$ chmod 770 letsencrypt -$ chmod 755 web-files -$ chmod -R 744 web-files/* -$ docker-compose up -``` +See [docker-compose.yml](https://github.com/bunkerity/bunkerized-nginx/blob/master/examples/basic-website-with-php/docker-compose.yml). ## Linux -You will need to configure your php-fpm service to listen on localhost with the following directive : -```conf -listen = 127.0.0.1:9000 -``` +Please note that you need to install and configure a php-fpm instance on your server. -```shell -$ cp variables.env /opt/bunkerized-nginx/variables.env -$ cp web-files/* /opt/bunkerized-nginx/www -$ chown -R www-data:www-data /opt/bunkerized-nginx/www/* -$ chmod -R 774 /opt/bunkerized-nginx/www/* -$ bunkerized-nginx -``` +See [variables.env](https://github.com/bunkerity/bunkerized-nginx/blob/master/examples/basic-website-with-php/variables.env). diff --git a/examples/basic-website-with-php/architecture.png b/examples/basic-website-with-php/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..899064a8b3328d701fffd33a2bf9fcf74f115f9f GIT binary patch literal 8565 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 literal 0 HcmV?d00001 diff --git a/examples/behind-traefik/docker-compose.yml b/examples/behind-traefik/docker-compose.yml deleted file mode 100644 index 54b8317..0000000 --- a/examples/behind-traefik/docker-compose.yml +++ /dev/null @@ -1,62 +0,0 @@ -version: '3' - -services: - - mytraefik: - image: traefik:v1.7.26 - restart: always - ports: - - 80:80 - - 443:443 - # bunkerized-nginx runs as an unprivileged user with UID/GID 101 - # don't forget to edit the permissions of the files and folders accordingly - volumes: - - /var/run/docker.sock:/var/run/docker.sock - - ./traefik/traefik.toml:/traefik.toml - - ./traefik/acme.json:/acme.json - - mywww1: - image: bunkerity/bunkerized-nginx - restart: always - volumes: - - ./web1:/www:ro - environment: - - SERVER_NAME=app1.example.com - - PROXY_REAL_IP=yes - - USE_CLIENT_CACHE=yes - - USE_GZIP=yes - - REMOTE_PHP=myphp1 - - REMOTE_PHP_PATH=/app - labels: - - 'traefik.enable=true' - - 'traefik.port=8080' - - 'traefik.frontend.rule=Host:app1.example.com' # replace with your domain - - mywww2: - image: bunkerity/bunkerized-nginx - restart: always - volumes: - - ./web2:/www:ro - environment: - - SERVER_NAME=app2.example.com - - PROXY_REAL_IP=yes - - USE_CLIENT_CACHE=yes - - USE_GZIP=yes - - REMOTE_PHP=myphp2 - - REMOTE_PHP_PATH=/app - labels: - - 'traefik.enable=true' - - 'traefik.port=8080' - - 'traefik.frontend.rule=Host:app2.example.com' # replace with your domain - - myphp1: - image: php:fpm - restart: always - volumes: - - ./web1:/app - - myphp2: - image: php:fpm - restart: always - volumes: - - ./web2:/app diff --git a/examples/behind-traefik/traefik/acme.json b/examples/behind-traefik/traefik/acme.json deleted file mode 100644 index e69de29..0000000 diff --git a/examples/behind-traefik/traefik/traefik.toml b/examples/behind-traefik/traefik/traefik.toml deleted file mode 100644 index 9b535ff..0000000 --- a/examples/behind-traefik/traefik/traefik.toml +++ /dev/null @@ -1,29 +0,0 @@ -debug = false - -logLevel = "ERROR" -defaultEntryPoints = ["https","http"] - -[entryPoints] - [entryPoints.http] - address = ":80" - [entryPoints.http.redirect] - entryPoint = "https" - [entryPoints.https] - address = ":443" - [entryPoints.https.tls] - -[retry] - -[docker] -endpoint = "unix:///var/run/docker.sock" -domain = "example.com" -watch = true -exposedByDefault = false - -[acme] -email = "contact@example.com" -storage = "acme.json" -entryPoint = "https" -onHostRule = true -[acme.httpChallenge] -entryPoint = "http" diff --git a/examples/behind-traefik/web1/index.php b/examples/behind-traefik/web1/index.php deleted file mode 100644 index 1918c1e..0000000 --- a/examples/behind-traefik/web1/index.php +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/examples/behind-traefik/web2/index.php b/examples/behind-traefik/web2/index.php deleted file mode 100644 index bc4932d..0000000 --- a/examples/behind-traefik/web2/index.php +++ /dev/null @@ -1,5 +0,0 @@ - diff --git a/examples/traefik-alternative/README.md b/examples/traefik-alternative/README.md new file mode 100644 index 0000000..cf21c60 --- /dev/null +++ b/examples/traefik-alternative/README.md @@ -0,0 +1,13 @@ +# Traefik alternative + +Traefik (pronounced traffic) is a modern HTTP reverse proxy and load balancer that makes deploying microservices easy. Traefik integrates with your existing infrastructure components (Docker, Swarm mode, Kubernetes, Marathon, Consul, Etcd, Rancher, Amazon ECS, ...) and configures itself automatically and dynamically. See [documentation](https://doc.traefik.io/traefik/) and [GitHub repo](https://github.com/traefik/traefik) for more information. + +You can easily switch from Traefik to bunkerized-nginx if you are more concerned about security. + +## Architecture + + + +## Autoconf + +See [docker-compose-bunkerized.yml](https://github.com/bunkerity/bunkerized-nginx/blob/master/examples/traefik-alternative/docker-compose-bunkerized.yml) which is the equivalent of [docker-compose-traefik.yml](https://github.com/bunkerity/bunkerized-nginx/blob/master/examples/traefik-alternative/docker-compose-traefik.yml). diff --git a/examples/traefik-alternative/architecture.png b/examples/traefik-alternative/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..9a3aadd09d6f10a386a34dd30fc6ef012206f273 GIT binary patch literal 818 zcmeAS@N?(olHy`uVBq!ia0y~yU|hw(z@Wgv#K6FCX5;GB3=9m6#X;^)4C~IxykuZt zU`coMb!1@J*w6hZk(GggfwRCPvY3H^?=T269?xHq!oa|E+|$J|q$2L^E!%EkM~MT4 z_Dg-Ws`op1Wm_vY#U$%Ga@;uim8pp6jvQ ztCDAv%_pyZnzQlR^!s|#63-QtJ@=dXZqbbVvp$Yv9d_pZ}ug@1Lwxp-_J}ZFT$K}HT%~k(fRZLgxY`lGxOuO&;FD3f9@}kkE?sFR{Jse z2HUIJ$xq9ozg;Lx-?V9YThvr_eq&o}UHjlY-skP+?OO6dVp^ zKes0>%KP>7`-u;npTf6q&^5X=_u>Rs^O}G|b-t}DZ7lVsa2WrUeZSv(!gGJV$49?T zj{X?>?e;^15dBC=)7PKNYksi&Ts`~L{C{)aEf@Le<*(td_w+n>{M((~)1SX*+-?7J zszKeY!`t0#eg66J&R3`}z5Mg??G-<2j?|{cskfUSfAnNWz(l*O>UTy& z;pH#+^$*Qm_J;Ecr<_f+TlKwR{}16O>+?JtO2VAfQd$;BY}3!Y_332fzdPP5