From 72f6c3818b1bbb3e80c3643ec0544c8f5620d2d8 Mon Sep 17 00:00:00 2001 From: Firq <firelp42@gmail.com> Date: Sat, 23 Dec 2023 23:17:02 +0100 Subject: [PATCH] Updated About page, added blogpost for new deployment --- .../{index.astro.old => _index.astro.old} | 0 src/pages/blog/deploying-this-round-2.md | 167 ++++++++++++++++++ static/assets/data/_technologydata.json | 28 ++- static/assets/technologies/alpine-linux.webp | Bin 2734 -> 0 bytes static/assets/technologies/astro.webp | Bin 7728 -> 8790 bytes static/assets/technologies/docker.webp | Bin 0 -> 5864 bytes static/assets/technologies/forgejo.webp | Bin 0 -> 11518 bytes static/assets/technologies/gitlab.webp | Bin 4514 -> 0 bytes static/assets/technologies/nodejs.webp | Bin 0 -> 9308 bytes static/assets/technologies/serve.webp | Bin 0 -> 872 bytes static/assets/technologies/ubuntu.webp | Bin 9132 -> 0 bytes static/assets/technologies/unlighthouse.webp | Bin 0 -> 8754 bytes 12 files changed, 186 insertions(+), 9 deletions(-) rename src/pages/{index.astro.old => _index.astro.old} (100%) create mode 100644 src/pages/blog/deploying-this-round-2.md delete mode 100644 static/assets/technologies/alpine-linux.webp create mode 100644 static/assets/technologies/docker.webp create mode 100644 static/assets/technologies/forgejo.webp delete mode 100644 static/assets/technologies/gitlab.webp create mode 100644 static/assets/technologies/nodejs.webp create mode 100644 static/assets/technologies/serve.webp delete mode 100644 static/assets/technologies/ubuntu.webp create mode 100644 static/assets/technologies/unlighthouse.webp diff --git a/src/pages/index.astro.old b/src/pages/_index.astro.old similarity index 100% rename from src/pages/index.astro.old rename to src/pages/_index.astro.old diff --git a/src/pages/blog/deploying-this-round-2.md b/src/pages/blog/deploying-this-round-2.md new file mode 100644 index 0000000..4f84624 --- /dev/null +++ b/src/pages/blog/deploying-this-round-2.md @@ -0,0 +1,167 @@ +--- +layout: ../../layouts/blogPost.astro +title: 'Migrating to Forgejo' +pubDate: 2023-12-23 +description: 'My small recollection of migrating this site + CI to Forgejo' +author: 'Firq' +tags: ['astro', 'docker', 'forgejo'] +--- + +Before I begin this, I want to give a shoutout to Neshura - without him, I would never have had the opportunity to actually create and host my website. I also want to thank him for his patience when I was stuck multiple times during the migration process, as my experience with Forgejo and its CI was really limited. + +## Migrating Git - Gitlab to Forgejo + +The migration of the git files themselves went a lot smoother than expected. Main reason for this was Forgejos built-in migration tool suite, which lets you migrate external repositories with ease. + +Generally, the workflow was as follows: + +1. Open Forgejo and start a new migration +2. Select GitLab from the list +3. Fill the details of the migration: Repository URL, Access token, etc. +4. Hit Migrate + +And voila: The repository with all extra features like the wiki is getting migrated automatically. + +In total, I did this for 7 repositories without issues. Afterwards, it was just a matter of updating the remote repository url for my local clones: + +```shell +git remote set-url origin https://forgejo.neshweb.net/Firq/firq-dev-website.git +``` + +Since the underlying git repository didn't change, migration was painless on the client side of things. + +## Reworking CI + +One of the major parts of the migration was to port my working GitLab-CI to Forgejo Actions. As I never worked with this before (or with Github Actions, which is the basis of Forgejo), it was ... interesting to say the least. + +I stumbled over multiple issues while transforming my old `.gitlab-ci.yml` file into a new `build_release.yml`, but in the end I got there. My main issue was that I imagined the CI just to work like GitLab - but I was mistaken. + +My main points of confusion were: + +- Files are not checked out automatically - A manual run of the checkout action is necessary, otherwise the files will just be missing +- The working directory is not preserved between different run commands (made apparent early on) + +But after around 2 hours of tinkering, I managed to get everything working (and even improved some steps, such as automatically getting the known_hosts instead of hardcoding it into the secrets). But still, it felt a bit unsatisfying, as I was still relying on a ssh-connection with rsync to deploy the files. Unbeknownst to me, this was about to change drastically ... + +## Such Innovation: Moving from dedicated website server to docker containers + +After migrating and finishing up, Neshura showed me how he deploys the main website of his server: With a docker container. After seeing how much easier this would be in the long run, I decided to just go for it and switch from building the static files and syncing them to a webserver to just build my own container. + +Generally, this turned out to be a lot easier than expected: I added a Dockerfile to my repo and switched the CI to build a container based on that, which then would get published to the Forgejo registry. + +The `Dockerfile` itself is rather simple: + +```dockerfile +FROM node:lts AS build +WORKDIR /app +COPY . . +RUN npm i +RUN npm run build + +FROM forgejo.neshweb.net/firq/website-serve-docker:latest AS runtime + +COPY --from=build /app/dist /public +COPY --from=build /app/serve.json /public/serve.json +RUN rm -r /public/assets/data/ + +ENV PORT 8081 +EXPOSE 8081 + +CMD [ "serve", "public/", "-p", "8081" ] +``` + +As you can see, I am using a custom container for the runtime stage, which will be explained in the next section. + +### Custom serve docker - My new goto for static site serving + +When starting out with the `Dockerfile`, I first used the standard `node:lts` image for the runtime. This meant I also had to install the `serve` package by `@warren-bank` each time I built the container. Since this takes extra time and resources each run, I decided to create a pre-configured docker container that can be used for this instead. + +The `Dockerfile` for that one is laughable simple: + +```dockerfile +FROM node:lts +RUN npm install --global "@warren-bank/serve" +``` + +The container is also published to the docker registry that the Forgejo instance provides, which allows referencing it easily during runs. + +## Deployments using Dockge + +Since my website is now using a docker container instead of the previous `rsync` + `screen` approach, a new deployment solution was needed. + +In the end, Neshura proposed to use <a href="https://github.com/louislam/dockge" target="_blank" rel="noopener noreferrer" style="font-style: unset">Dockge</a>, a new, simple container management tool build by the developer of the beloved uptime-kuma. With that set up, getting the website only was really really easy: + +1. Create a new stack +2. Add a container entry +3. Fill the new entry with the url of the website container on the registry +4. Configure the ports +5. Hit start + +After that, it was just a matter of pointing nginx to the new IP address and port that Dockge uses. Just like that, the website was online. + +But this still wasn't the end of my migration tasks. + +## Unlighthouse - Implementing website testing without worries + +Before I even planned to migrate to Forgejo, I had long implemented some simple site benchmarking using the `Unlighthouse` package. This required a separate instance of my site to be running for benchmarking, as I wanted to test the site before pushing any changes to the main domain. + +The same principle now applies here: I can push changes to my dev branch and build a preview container by pushing a preview tag. Once that's build, I can deploy the preview using Dockge to a staging environment. + +With that set up, I can push a new tag with a keyword for unlighthouse to run. The reports will then be uploaded onto the old webserver, as I don't want to build extra containers just for the reports. + +Implementing this proved a lot easier than expected, but sadly I got disappointed when trying to circumvent the staging environment, as the container wouldn't work as a service in Forgejo actions. + +### Dedicated unlighthouse docker + +One last hurdle was, ironically, Gitlab. Specifically, it was their `lighthouse` container I used for testing. The main issue was that this container is run as a non-privileged user. In general, this is not a problem. However, this prevented me from actually cloning my repository using Forgejo actions. + +After some testing, I decided to just make my own version of the `lighthouse` container, without the user but with `unlighthouse` preinstalled (this also helps with processing times, as puppeteer takes a good amount of time to install each run). + +The `Dockerfile` can be found below (really simple again): + +```dockerfile +FROM node:20.10.0-bookworm +LABEL authorname="firq" +WORKDIR /unlighthouse + +# renovate: datasource=repology depName=debian_12/chromium versioning=loose +ENV CHROMIUM_VERSION="120.0.6099.109-1~deb12u1" +ENV NODE_ENV='production' + +# Update path so executable can be run globally +ENV PATH="/unlighthouse/node_modules/.bin:${PATH}" + +RUN apt-get update && apt-get -y install --no-install-recommends chromium=${CHROMIUM_VERSION} procps && rm -rf /var/lib/apt/lists/* +RUN npm install @unlighthouse/cli puppeteer +``` + +With this container, the CI step to actually run the tests became a lot easier: + +```yaml +jobs: + unlighthouse: + runs-on: docker + container: forgejo.neshweb.net/firq/unlighthouse-docker:latest + steps: + - name: Checkout repository + uses: https://code.forgejo.org/actions/checkout@v3 + - name: Run unlighthouse + run: unlighthouse-ci --site "https://preview.firq.dev/" + - name: Prepare artifacts + run: cp serve.json unlighthouse-reports + - name: Upload reports + uses: actions/upload-artifact@v3 + with: + name: unlighthouse-reports + path: unlighthouse-reports/ +``` + +Once the tests ran, the artifacts would be uploaded to the website-server for the time being. + +## Conclusion + +In the end, I must say migrating was a lot more painless than expected. Sure, Forgejo is missing some of the features that Gitlab offers (mainly YAML anchors and manual CI actions, which hopefully will be implemented in the near future). But at the end of the day, it actually feels refreshing to now have a stable and independent CI to deploy this site, without having to construct weird solutions to self-inflicted problems. + +I also updated my about page to now reflect the migration, as the old technologies weren't up-to-date anymore. + +If you want to check out the repository by yourself, feel free to do so. <a href="https://forgejo.neshweb.net/Firq/firq-dev-website" target="_blank" rel="noopener noreferrer" style="font-style: unset">It is available on Neshuras Forgejo instance</a> diff --git a/static/assets/data/_technologydata.json b/static/assets/data/_technologydata.json index 3b46e3c..2cfea86 100644 --- a/static/assets/data/_technologydata.json +++ b/static/assets/data/_technologydata.json @@ -5,9 +5,14 @@ "image": "astro" }, { - "title": "GitLab", - "link": "https://gitlab.io", - "image": "gitlab" + "title": "Forgejo", + "link": "https://forgejo.org/", + "image": "forgejo" + }, + { + "title": "Docker", + "link": "https://www.docker.com/", + "image": "docker" }, { "title": "Typescript", @@ -15,13 +20,18 @@ "image": "typescript" }, { - "title": "Alpine Linux", - "link": "https://alpinelinux.org/", - "image": "alpine-linux" + "title": "NodeJS", + "link": "https://ubuntu.com/", + "image": "nodejs" }, { - "title": "Ubuntu", - "link": "https://ubuntu.com/", - "image": "ubuntu" + "title": "serve by @warren-bank", + "link": "https://www.npmjs.com/package/@warren-bank/serve", + "image": "serve" + }, + { + "title": "Unlight-house", + "link": "https://unlighthouse.dev/", + "image": "unlighthouse" } ] \ No newline at end of file diff --git a/static/assets/technologies/alpine-linux.webp b/static/assets/technologies/alpine-linux.webp deleted file mode 100644 index 61a52ccb489100e3e303cade4495966ee9b479db..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2734 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 diff --git a/static/assets/technologies/astro.webp b/static/assets/technologies/astro.webp index 000203b4dd4ab521aaad68fac8c3399462a8997f..c3b4e49ffd9b57f117d2b2160b1715a5c1b92d84 100644 GIT binary patch literal 8790 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 G-}oQc6^Ql# literal 7728 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 diff --git a/static/assets/technologies/docker.webp b/static/assets/technologies/docker.webp new file mode 100644 index 0000000000000000000000000000000000000000..5471bd081b39ab38877920deb16176dd68b0aea1 GIT binary patch literal 5864 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 literal 0 HcmV?d00001 diff --git a/static/assets/technologies/forgejo.webp b/static/assets/technologies/forgejo.webp new file mode 100644 index 0000000000000000000000000000000000000000..a9822c32a0105e3b12a732aaec820ddd2027da95 GIT binary patch literal 11518 zcmaKRWl$VZu=V23;%>p+-QC??g9W$XEbhTII0T2_1b2s^!DWHq4#91|<XOG<=Q}lX z=l0Ze-P3(f*VOcAD#*&-GXns6GLq`L>iqi10002v@2Lm<?~qVdm%qXS0HAPMpcZ&{ zA)Q(P|3pMM=XLrpD*`d-x7`mwF!WnY4kn@iB7GPiCs@HV2awD^@K)4{Brl;n4}T8D zDS8-0oowR}K<1OE=|{XjF!^3|JvzM+1r?w7jLp>Y<wgzyd6IpHY^LB4uD9AwueCa@ zw{lfmo}W)$pjbKlwD29_J#9#(^%aE}@A<l4{8&esiOvFmR^ICz)*)b+XpG7shq}`5 z3Y(iEcaDowrxzWisneyL3J3PKUO(EGg(l}&TMQVlWfVfzCyAXCUw*g05n^Hkz>pqD zAmru!;qCGT`~ZQ_oGiPp42){Ep1p7Xss!7_GmQD)-}D&V?0}u_z84r*3_Y&7n2J%= z5VhVbq2u<KM}hpGhLTJ-TA8uaaLGv-a4i;kp|6YS)~lpF-J!;;sQehD&z?2yvT|qD zNG(mPgUiORP15`G(_p>;Wg4xE&N=LQE&@~#gXUn~M!9jr%fJ#tEOcWMnjGQra-o_S zH?**MOUj4?J)srVf|KI4mmeJW%`xrnnT9sK8eu)BBl-~7aDv-}qe+CKg6<kAZnvn$ z@x9P3m+#9=)3q=H0*!W8KTF*D5_aVPcRcKtw`lS_7>=vV!XJe?U7d+h`RT^mG}w3F z!cjUtMw-+<wW3G9BILXd4t!dEa5Bqe$X$4}s#^%0C>}N4yz_l-$*E6K3LT0e?Ge5^ znqk#nbfCxnWxa+{fZw;vie67cyK~JpX%WL_qxhwBp0%(3`|YMnciZt#6L5yT`V^L2 zr?r`%x$Xl3$~ylqNb`@ZrWu)o{NW_V)YkpMW`jwGN~45a|6~VFkx;DpSc?r}uDmME zx3bp>94FN;eGNuR=B6&6+Ny4o=r)Bf-iGXM9?`OV)QWHHXTZM520O~HeJE6Q7i9q? zfuSSE3NewyHx@@vwcCGYf%+SnNOP>`w94JBJnxYbX7y7a!$fwJvO0^g-!pa&<%{ns zw?SYyf{g{W<dJmOHe2le{70_%_oU)Hi5p(DvzSBkdu6)BH-`jEy!dCRGV-$Mbzg?v zRUEs|h$CWFR+|0{8}G1)W|xsqqx2`!Bzjo|kgfpzzSDQ(6aU!5+B!LS<{gjN0ES^P zr@9kAV2uTNYZ;DA8Q+<n{tzc!&U0ST#+Bu~IbpB%?IqV)ODBgweL~%h$WRh0fyu0& z{&;CXD&a;X@AA7a^S($x82y?-ZeTvj5@&K9ii}HG+%uxC2dtS<Z2$ezJty-aY>z3< z=1-PNoFxw;uxqUD2woO4(=$65HP+Fn+6y|vlL_pB>cxK7W@fI!^(bn&V*lw4#ayGC zXEnDJ^_2NMA6b7%!SSu{F)VL2#lqsDu~a?4+$Q0NxiwR98}uJ~viingr}|c)>n3o5 zE1uaEpV`?Nmv(f9<lKq*k)HX|u<W>SgOt7Dli9#?2H#H1*g+ONO5F`w&6O?sSEucO zsew?@5T2kcYjk-8LjArV{f{%GByYylJWwz0UBJmRqQ2QyjBmd!w(eQ#XRS*DmYK+F zeyl9Z>VJ9=HdA4QISq+CXu;6+m-8}%Ef4jEt?_SLci%Bgsh!7S4S6Iv{bYv96eQfQ z%g`+b>)|`rc48VPqh@A!s9SuP5A99n*m<H>f3ZcLUogvhCRWwl^A?lpoHQ!9n&Bi= z0}9H=H$;zesv9u7mu6c(xqLt6#VRAs`O<qfExv#(2(yr3ZPt|)G*NDFK!CmwgjvQc z+J0VXFt|P(Ne@Oa;U1pWElc0#k=T0QYd|}X^{HpL2(cbDj=JS*-2e}i9X(_fG20om zhGA?n1m0y)Xf`^>AYsW3G#-lI;3ntGZ`#xPpk-_pYk#lt5=mam+0P+tWFB=xJQopO zGb{D8i}d6<w^&7?XkubfRUj~9G`b<t|J-ev{2st9i{#tuSl8DKl-f?Y<4~NAq9KM~ zPz~+k;~S>e;2Yzi8f-3h-xHWOMmk-g)o}~V`po#Po8Nf+^i{j8RK;Sgc5{FlMKXP; z|AmIp0dD;rr;$|vUQ)<3{V-Fu{@e{?@rj-|-^t(jYjSq|d7rXI6<csQo4eBP9=!Pm z6U8y#&z<Y;ro9z^mKvdAbqqQ_#F<1v=HXW|_RCQU+Z}pq$#u>jh;Rn%mt$i4Z7bS@ zji=tvwPNJ(@2Eq<c(w7ze0Az|`pyLKrcK)M=Mod&cow>d-j?ubdoVSfueBo2-Lx|Y zP|Sa~Oq8yC)H-nLUaao#QZnB^rPxcIm|_7l94ab{LD`U{Pz{YvtSqLAUd`9|d}l!o zB>VVk+h?p;2@iZ9tLJs0P~LP?h@6wi5*6g2*~HhuzBosA=q06`o{%*p5VCnXH9Opz z*lN^ZGh0Bx11X2^t0b$+j(8I$`OIuQd7F7`#e}U7oUKa@RIy?V;UJx;Mp8uLC|&_@ zu1yj7u~K}LgG=wIKaf4kAxL2@qg)YC&*hhb)u2?4V9tS_VYEHpz*4i)qh9BVp~bVn zj^(>3`m#?CP||bBwd)BsRkLs%VgMcE>h(2L1OB3Q74>2HM4LmYMs}pHbdq>K>^^U? zqO_iV-2@sqLU(&}&qj3e5F?uesMJZ*S@4%HdmdSS)2oY%_yA>?85M4kXL>1406g|; z=6o$$90_KZ7C$vcv?A|TRgd&FJV$02tTy}-!AZ7o!fQXaSXIKQ9Wk9#7+>2=#DZ4R z?59q2VDF{9hP_l12$@SQpHU`S@3o4n=v~iWU?5Yq`jlvVbAr$38s`h{YPWQJ>z(<0 z+6-;~NqgXTc~`}2O|6!d(^;D8@A;HxV9;g6rQYE!Up<pxcUq9P(sLim67Eb(!*{H_ z?@D~TyqO__qIdiY?vjUA3vo;KWLGntL-i+ii-LJaL9k!(OwDy`y##UO$v=JbExL3G z{8Ck*>X6L3R*olmI+$FqKy#v<%jzkBa=x5rtKogZO(jzQvpP6<TF&5}Tc;dU2B#54 zvG+=Lz^znnTO)ocMscv^P-|bL3N#9ia7H}YgLSlTR|OKxWT0Beef&BfCdk5-M}@l^ zqy<hPo3jtuf&L-2J)aSI+otL<h4+XlZMqR2bYF|%_c<$&nBx8x^+E)-KT6|LH2R(M zdRNI>DPO8{78TKKGr=q8!}}D*Vc9@%ohEDR5Nr$;!4G0tW|SKzc2r-!%}~~_mbOaB ztCTsODsBGPRt$B{n;j2fz#f79NoE2M0&mL>Rpabui82&jZh>HKD3%m5us3eTJvg9Y zR7FkbF!E02_M4)5!6E{R`9=z*$Od%&uY!&{wXDUL!Dj~25=X_#=+D^sqURQIpT9+W z9E~Vv@mf8J{bG@w5gOb-xE`DntHl@*;g~ODYyyvJ?|*RS@2KmA`g5S#QaPd8ro5Lw z82^aY&VK!!eSdIUFGhBDAo~$2{w&``t0&J`)}!zP-CB<^B3EXjhUle9-|m(qq7fvJ z-D}ufW@Se$qrnqVUNNdc1RG}`fUn>cjI!hKeQ+DdG%rAX0iX?Mos1e6d$7_Fk|*1d z7;6+J*j$vJlihPwwvf2$s%C$ciuHjX{SJV0jL|cH-e6QtC}7w?N410CPC*KbdkTIl zzf`C1hCI2*dI<bsAZzXkUL39u^~d#P9F7`U-j~xK9Cr+42x9Nv9^I^u-1_P`tr_W+ z!MBH8V;NZtiMEK^)B&TOwxzp>NKKsynuSLMguBp&<v4i+jXUd)+XoCX7-k!H*O{}> z-Q0aUvT@6av*3`sYAGdfbX)QuF~g4)MRw%_Q^bBou1|BplA(h0iEv?&;;aCe-E_~? z1CiBFzP;oX8AH$J)DjY)@N5gT(%?XT1)m0e1ZxPFLlOL3#7xtR?z1OeBufaQ3@%c3 z>c+Wd#vSv#S?PthM$!g2_?Crn$sq{8>F+AaPcK5fYD7^n!{jzRO9tP%Mi$OU2ofs> zV<-2Zh@dX%H3JB}0&xRLYE;!Y#QXWdo*k%bk`+*0Y!N!9W54<O{d>s(%eJt(30CuL z6bZa~u-gwbJT5Gjy0jH^QrLip<cQich+LC_zX^qy9Nv4=S*J;z2;_`OXa*;&7iYfk zuC%IAxPoz6LOUZ;KP}LGePmAn8{z(Pb^1q%NtvrE0*Dv%=brSsDE6L1>lJ$=2DjVa zm-zK(7+a2on$Ur<szObbCy7%ef_Tm?LJpIYcb2(xH1~eu5JO(IS&EAuK07VP@06tZ zt}rFRLrx4EwIDg4ZRq2hzRaI$+@W-9pC@&*6f&I>tp}N^b5k6pjFL)E<{W+OehIXH z@(*KbNF*9GI<-}3d60Lt*7Wvq4#-z-@DNXro!l8V`9m$}iIlaA!yU@U2hqvjEDvTN zR*SS9%}*_JN6g|ZA`}*WWinWL0BGDB16_c=S}Dgr#nY_2x1SV-HHWAqF!sAKtowSD zx-Cv)*lov!mC^}MLD{##ZhxP;L7K>tOFwD7fYxs|77$632vZOcB#jO4PctK8Xj<~= zmdxA>cV_=o$!V4DX0@Dol9W3Ov|-Vfb+X<)+LLTuiQZy&%+{4*l8Tynj<i2sI5%IT zbUH3ZCF?wcmfM%38|<KAyo7IB7i1MP+|9XBTgt@=4Mb_KCZF#M&L8)m(bJB6*)5WL zhO6uy-LDivu`dCoCM)Hu`a=3_%V&bz>>N(Gm_|n6s(R;!-JBzlW4UmOZ&cK^d0T?Z zNJvmMd;xz=aqUm*lG?0c74cCOXZCfB-s0M^FvYth2pUg(();QNI==YDnj3~XOA^|# zRNDJm(Tc@URm!1NxmAqSFjY4=(lkqoI<yix-!;<1(6p_Ywf7Bm6u9-$+tt(Yt@r75 zRtt(4d&PAq8{PA3nsw6^D<)<dQ`nfil?Jg5^JvhBn@?EL>W<Q;(jr*|&m*}nX6>ta z&lc=kcu9WQ_wc@^DK@q2ENed-5Zjc^KdiCSrT5H54rqU^LL08+R?ww=e*g1!_%icQ za47}`K}L;B0`eGzP9@dd1)4=M#<3#8nP!8I6=JuIfk>(C9|Y_I@Fd^2R8dC`q^8#X zr1iZEQ>zG<!a!Y$uOx<2Vz?vjCQPLTU)51uv3-H1c$JG5=2Gr0WTUvfMZI|<4_<-W zXzE7qH!I&N!FXfcMY|sR{D`==I30O)N|ZW%=@BiK;CX7^*U7LvZWRiXhh!^;PNn)` z!;#>|vSWBJ$1*U>$)4RN+_ARnfPdwy!{uP1fVRUC@A#IDvOlSz-_6afs~L@<Bb-s! zQEfHCGD7f(oGIj;5@_U1l`jHwVFlzKC9i3Dlw%cE<mz?Mj`FJzTi|^qu6p7oM&3n{ z(k`WYmEA-CxY{Y5lRFW$_yc=Csm72&MWOiS+L-U>62<5Rl!LS0{+~H(<_kiS^=Zvn zLriqfhAt%ze{=-{H5q|^sm5SSCvm?zN)x#h$MJeNY8NKmUN-&>Cc@T4D!LR|9_HVV z;pX?y3H~_OgCvuPpNZ+YNR^9LalEo$iTd2ii&e{9{r@=d$~aT#dBP3TyspVNC?t~? z`g}E$qxY+)(Lg<1rit7Iv>M`YJ*AJjO3xM8>JQcBpw3*Ko9nC9QLwA-8;z<f)!D@s z1uPJvFH}Rxc=srvI@5L<YBui>OU%WasL%`k*_6;oG-+XgzuFwdK<KR2RNgb1uFo<3 z%r+Pn;KJ@$l*wr6lX&S6x&Qhcwxic!jxWX0o4`?sxlX~J@OwE2CvKHj19g8{F_wJn zwTZ!bZ&@GNbFYImP41d0!3uww0l6HrH`f{2g}6+kkQt$0O?|s9kM4+a6gE<1I>cT$ zG3*aiBpM}y!|?pF%6yc?2Uhft;cmaW(WjBsUs13~P%NUS0LO?4B4eQ?MLpGS@HIc& zYdFwUrC+M%Wa`O2O>ua|!!IK|+Gvy6jRx;=`ECa>Hs2I)0j?vM<6N%+y<5k60uq1R zC5-d>Ia^YZ+PL{nmYj{e(0-8zAHcK)$HM&CJ%>!zy)~+dY^&byXA7#{7wm&CgB%v( zavt)l0T5V>z;Ez|<m24y5471(Rch?xF~%OR<_VYL_ZOyG(*8{<-PW;)M`U@nk#`n7 zl?FC#h~eG=7NK*60eOy3OFRd;M7!y%e$@JqZ=Mff_wQ!oyktX(f@}u%Fb9>-di#d! zL>q}SnN?jVE8tG$G7+ghhy@MSIX@oq3WrgCti){JL9b#{F}8O7(nDifb1-`3dB$EG zd)h4T49##4abe^+>sWm~{%!rU5Hz(YsuY%g`DyDme?>8*i!$%C2wo`rNYCjU&9kpk zwAEW0GHEd!>4&6-Q>E2=&@XgKLM{k*GS|aanfipycqTvZ;eELAno!+q{VzWMUSCT@ z?S)nU^ZY-!AX(3+Z}<t5!G6yVJ-68#p>qqM95F~H1C{7Z;BF|{hsXcw0rg&j{xyXl zY#M(%VHDeh06={;AP<UBA6g$;lmjnXs<#LkVV?CBD%8NJH``1lBu5&^1L3)adKC(Q znGv;mFL{Le3S1_S4+N;8Ao;_cX3ip9A^Qiqa+!gAch5qq&CblGK%EeucQ44oe2IvA z!4bF;vLbc>`u>c#O_tE{do%G+>;lwxU%9Xq7DV?Lbys&-umhO|`9dJ?e=h0nAqSvT zF@|0lP}Bq99siZ-x$ZXckJuh)00e==Y&T5-|3D53j>J0OuLH&)zVAQJ9G)MZ)XafL zVza#)@6NCFpkT<(1;?Am8v?}475EzrhU~x4f`TBRccq80BfWbu2;EcSeJ=!Z`W6OZ zdryS`|17-e%_3A~UID>u?qb{IJwZor2Jdx`Ixo2Qy|ZA668>=sb|@??NqGgN57gA* zNh$w#s+&j?v-y9p@oe&c?0-hQf9HQAdw-bgXK!qLwe{APd;HYYWM!H!v+Bh^9QbZ( zT--yF?B*Gu^?NAsR+)7E0XDvZ;XWAI0I!R=h_gz2((8Ed;n<)_!P5ES;!H=|zq3PF zEx!^I^3(D$+UR5LUk`0Y@|xx}SZQe~uJ+v4Tg!gUN@kUn(SH=$N9s9_l62HLnoNzZ z5V6sdzNg+Nl_@7>4VR2tdV2`>OHApfUbnaHvT`L1`(Y6y=9OZ`)M>@q>gRNJ)*E29 z6yEw^$z6ZVg*3`sNoxE|JEo6U@ypc`9Qqq(EDEO^>8@P*-&;Pak^lVSe?2lO`K7%( z1f*AJi%n(V7S4W-2s769T!i7DXo#o0Z$C$YZ>u=2f_F=|!pA`qgd?eO<M@pdIpLWm za}GUGp3qJ|FEf~Vv7{ZBN=?gCo@&MC?fqHKyw$9N0<_M46|V%d7ayp5@$h#WW=j8Z zSS1Zz^|qpT9ze1geG|gftfk~(&FCLy(qu)=gHELW(N2GWCo7XObezIi7`Z=)V}^-| z;+S4lRZ;tL{X{Il)9daK5a6E@va^mudh~Z^0$Km=%-G4IgX&>yoDBZ&VVVSSj#Zpj z&KIvWuN8SM#`bta;S4%Yis+9lr9`nSxGb>x`L0{YK$5qUN1ftEvi*Og@RDO{<lvzS zS(<gOt(cfY*r5Vcbe}RKeFllRxHvD?2M%taLxO{7s{<w*++C|>KANzhUPp4<*jP85 zJ--K-q!q?o##DhhuV%RXdT{M(;!44Bal4csbYk|3TLj1duEUxc>6^27_0N@Q?w<x2 zFiYt9!9n9UTjhk6SGpN@{6Ez~n}1Y}*qZ)lBAAeJ@@?({80QS|l?H`>{$(5P71P<- zC}=jwX>LDDf1{uGm->Imd3lK%D&*aWh0?vS-C(lA`4>*9oW+xJ@g0J8N&Rb?hF@5f z#!8SD_2gfLk-<)Nf!wud<&_=O=rX(_!eVv58E2DX(BCL9nCh0XhH0$|K6mA6wovYk zBYm;oyP2-9cT=1%b>-f!iZGY-M$$ck3~EzGsNtkb)Bfm&Czf^+R<GPmsR&=XCz#95 zgwDj?6yWWVCXf`w{JRv_)K*=DArs}Xk8QTkU&*rr%iRSTES~ww#SE3wiaB^r+`bmT z*}MFwgzFFdD05hOgW|`}WdC>Uy*hqM*w%tfI7jRMD<1l8iADM|F@`kL!ejKO|E$J; z75Sgg_$OB~CG3A?^<QYe{qNcTTsy7+@7t~7fB!lB15`=odDS>ayv<1Fib_Q$eCv)I z5$b%GZ8_v&h}+sRc4)o?_XnZ0iuVZ-s*jzjCO(;)UmoT&BfY&Uaih*&W_KO-lAA>+ zNNRPj0o#9+=AeQ{LVgGUhTa!_b$pD217Mhx^4iMN@M*}I1@4n#Q6i}HG+Lm38)G58 zzCyxrX0gAQO~gLfb~3`71=F8R<GB*8&1pd`0{vQq%&kg9@sO*#v#Hm2F_sRVo;!j+ zrPfJ7eRg2m^sNUV<n`gj+cTLR5BSDgfmX?7^I&xPQ$sYonyQC|4SsJ|J>atN+8umk z>MFO6^|bl<he2=Kjg#^jKzsGu)E->@@DjCAb_<zvgB0n>O*j%pr|Ajv;3n}*!+pEJ z@i%A%u=K)NYN+)ph(ZSqC|$e$jC9VaX$s=c{MfV}@EnRP!J(r7DlY)(2%Td@c|!>W zsHD+HJ<f1(>nJwaD3H{MekrQsgYrwyO^`0Cqbr*fVW_5$g|3R4V#Thozw_Tk@~-IF z{rrqTP7P~;_XqmW(2)1XO=YG8Mezd%k2C2h@f-w4x-$8o$xSGfPS!Jf-*y;5XBG4X zhz_4ue0h+|He+xUwi!`hhpHYD<DSj_U}t08c!?@qV3I?nVqm3=k>-s|_A!B@(vy29 zszzgtrlusS_rk5{h$#v#k-t^OEh2q`0b#*uRA?SKTWN-?MC@5OgeG}W+7T@>WoMSP z{Hp-;jQUIo0@suvD#D><&d<ayjUm&B;{)Jiz=GgZa<Epe+-64<WQXU=hMw-on(j^1 zr$I*Uofh?wz$b5e1{4%>aRK@Bvq9y&dcM`+F+MFi^eHZ~ZOvy{T3uH`Oo8a~VdLw- zkV|1IwcJ@NLffzXgF?-XoF_u!fRGR2K05y6YX8A)bTDVW%_2OYsrq5|anL~?^^bb{ zOOr0kI-yCU>aQg{I6S2+sm4{$9Bmx40x=o97A-^?2Pki(iv-{q<^WC9LF|N%pd;kB zFiplB)km=oO&33D%Rm!xDOXy!g0l{+!xWq>OtzgN3IG=0@wL|Lbb7Hzzw-PKjw8d~ z#?5=)nt^a>ILF<@7I=cv`@XYxEo0mn;jN%(XFD#@wRlG7DhaU1k!#UPUVX)&*HIpo zIROB{>eg=*&LgSl8qS@p@hNGFZ?$yAlZ)9~z(SkB-rp<klbxc;F8yiN+1jS050qY} zq|%uA17B(~V;P<X8P}KTuL1XW-otEYuJaT_<&{q&`?CcV#(q3{)+xclSDWJ_D>+zY zM1eSGa`s!pNa1J6Vy4{?IA|0vO39a=r{s>}HUa3}>bWgG@I)bcjH)4&W8U*UJ4M78 zS}F&nqQ&yn7mQ%X8?P;2$(Tv4O(bTMj}w->MY!OgC_FP+%u6D_LuE6lm}$7QnFc<2 zkGX>Hs0}+y0@1AOjpvGJjyrl>qTwqLw$VmrQ2x8<aUH7C#R9n5i+L$10L1t`XK^1# zua|FO6&b0pAPh5-phJl%erS}-v(1^$ed9P5RZNBNP~ZT&rqjecrR_C=O;!gnd3NcG z{*uV1?dZTnPr_V?)!oWATgGUb_(3e}P8PdJ(SAVS6251UsimpI8y)8m8SN~I<4ATz z*w7l3%!O~!Ga4c-+Gnq)o8%ueU!elu?AJKzWZ3h~wPKntdJxF-$oC7<waH5gu;S*M z?m-c$X2S|Wk;}139~{f7whTMEakG@J=O0|O;q3g+gwkg3{E|9+UG9DSOt;j-m|mzo z1iJ|we_>@ks{NvyN)1y`St{swk9DbXYG<c1qXfE7{AwRNdtK?jxBT(upOJM(*!St{ zb3T*cEV~Z!ab90_daNuG=W0+gMXa#u$i^PgZ?Z<W!2xK$VLWw&{1er7HC26DYH;+Z zyjoi2dGAT8CCtwl9!<A9)f@`pQS5Vde1zh1XD657NmrlCM7QYll;YD;gbszi$gj#I z>VFnL-?%@0*Gs0052!t7O>z3rEo0EkG85B<mU#sLXzeGAk9?gbm(?4*Uxd;%<11JC zrA~6|pQVh3ZALS$;fAPjv+H>TQ2H6XkZSV@CKaiPY5T-DSUy|{j?mPc#^zITXzG?z z{N8jq$nVQG(qubR_M8}ulYxY9v|VGzwMObCDuKaeV{^cc`HbA`N`g(>@9Al2@-9U! zsrw(0A&GI1PCAGC-i)E2*23l^n|AU`zwP(}RZ!{1S#RC2%`u`MN93#cAI|Y`Eeeq_ ztCLi4?~8zPLJnL4DHNx6vX9q@j_^wc-=iMCub{kt2#e2nc(DqZYAXKDPCb<czsxdV z#mB0&<uTY){p3j7zjj>fh{L}e9n;V@?Vi4zruo%c3DL_)&ZatK2JN*o1`D#cE>3>e zi&KtM0OROVqR0rZjoW)R(qO(yPp__zAo%O!NFRJrM+I*BxlJj{Xdjmzn3c09WQj*1 zor?i^{s)`O2tu!i29X*^Q8|Bi;_jCS86C^UP3|L<dg!RoSMNbO2faO|53Do?HelB( zHXwa`4ne2h^dZ0;UBW9R`6>-aAc+gz75dnwps#_WL-gWXk~in{>_!#*_l1la7dz%P zat2z}mSeZ?+)%IuLDM%2%D&tVl2BatMhPaZ<*<@T0kt#urb_00wGUWvIfwW(-eDwJ z1AKkDEck1NS$7@?JhcK{PkpTALmK91-9<DmHnxk+Oo9~aZGxe~f-S#u#*81{yofG^ zbtzht(#v`z$vi^4e_1atc$3EuNeSuRwAiLY?e|w4Ml2~Gxi+ZF=%xdQ#FG=FJOX7R zMh66yGS!`EuT+0S%RE+0xeC`jfgnkvkTEpK9>NI^OE%AHCeb7wG1Vy_Vg?4fr9+)q z^pycKkN^&q3$8fB!W6!Y2UHl}Mo4;Q4}Fn+{$9WddrqSnj;?s^#if@gNPaLPE|HB) zJkn-vU^|CHZ=lTHyf+wvSmcsc7}33V+#ErL8=8)$J=hR~GA8%ClKR=BBP}Cu+LIgZ zM#~o(IV+MKfLS04gobYD<Yid}m485)6Cx0iH^DEhhda)xge)<AJS&HwwF+V8y6ypy zyceN4IS#;Q80>?Sv%KG3$sh7`4`IP8Tkr)G9(dhH?OpaR&Tx+C91ckhg3)x}39RAQ z6)vRR+*c2%+W<%i0^PZYsLBic$OAM*^z^M4ojhe7@)~|(`TI#qdOosL<lWRH9`jxr zj)IXtSzu2C*Z`ATO<$gpSVAr^cuEl*E=g_Wi(2<jpRh*kC1UZN)b^1dLe}bS#1qm$ zmkg9)lb(Qp>@vI&<VYK=N%ZYXdq{0s4dw<z1M@yihSSPe_Ovj!e27Trg_}>+?xXFD zy|@UE%t&~m`Kp!Xz7~cpi^`5wjA&+B{HP^S+X)?|;P;_@F@k!$wU+U|q0R1#IrHKR zL7`@3Su_FMF~A#2?-iWB+nf&Ur!RHEim?furzeZ?%%G4<>3FRDkd?(>cI3(zr3Tiq zrj5TVLEnWRlKI7Y-D>|@-v-WkpWs}Wu0S7MgpW7kt-BKwPPAa$wz;zlZob|SwoE-5 zX!oAWvg#Hb>gjr7_Enpg+D?TGa@-c5``YvOFO?@daVLVKuaku;*rLU(WwcF32nfkn z@+Z4G?^{O<$v7<m=-lPfSr#^uZbevh93Aax!oy>7i}D7Bfu7%_T_5f2llKEQP}Jpp zYZSTbYmk{?=9I?{8p48!={a(KZJRAIHG$K_v!dNFmwh}n0Z_;@Az!%~`dBE+k0m|2 z{p&0HHC^u+2nTe3)TNthVUK8SC$5YIM5#-O`5D@&ry#T|oym{7PZ)MKK7K2Mx4Qj$ z%dZEMYbOpEWLHlxYokAdnYm!yT8uVAA<tP<6)=Bht@=qfqTq>z{Y83yv0pnh4tv&X z?9Zsq(gBG-!vbPF=np9YXc&cPzwyK7aBGQ*iF+J(A%?U;6x`KojRJl8v3DOa(UTkg z6~L3?reDcZw~2VgW9f4R({x~#JY+61I^SA&T;`qd6I;FXFo2-4=Qu_C0tunIcv?$* z2sr@eBZ7)OTGFNlf84c`*Kv>6S(IQmW)2nBML?vLEATUbv-M`qx}&d>oa)3ox+aM1 zna%{sC8C%r&$s)7KwLIuJ(V`nfG2P2k`8K0+%g7G)_{SK%XoP&56!&a;6^6UR_LU- zpYtQ94@`MDoK_=u@tHmmVE}ZJnvgUrV2h|5Z$OpOzGzA{jrM~fthIp_USVC=78-#W z?Z8`QTqn>s-?>D=SnfGn(<|ZJEEh(d8t@%AQ>@raBwmXoEL+TtJo#<s`5n2DmMQmf z9yAvjuQB;6Lpf)`G%5f~J7iAv{JsxBNX(irir@Z3Oki^==-Iffh&liuS)!4wED{CI zY4r^|(ocXfzumzz|E3oQ@f6;FR-T5eQ?bo;(Lqrv-kN<xkg?AfPNQX()ZMBRD*>e> zf6YaR4`r_+D!jh3N}V@M_aOVh6jhpI7H|A$v-rfQhf_*je-;xU!DWf=p~O!cS2m94 zK>MoQfzE5VLg8}n2$*QvZ>2;|GqN^fgtZb191Cv)p1&OkGxUU~VW<6$tWjKI9p+3X zS$mZ;HPfCz2I-D)-rTOcMhW-mrb~WGz;*x!#V7RiXC<%)-eT~apI!>iumis<b%{eS zJ?#=#R@z?raI1kBT<xt{1xOtk)J!M|>;PE(?lbM@^9K_G>140YGWdP07|~Ga%N-i| z=4^+8tV`Ttw+LQdAELs1hvgzfjY{S~a2N<z0gZw#X_`hK;4FQ8CC;xFbV@rZ&A+=| z$bF)vm0V6usq9o~8G0uzo{(2UwX!wg%JD%nB^v^jaEiJ*t1Q~=+X0p;&CBlL?yGqg zd~=PS0At|u4P?VX`mkR2W73T<cOc&7?Y6saXi9TZH#@;3*~PElK)>X5^bc?bg5uB* zWM&XxHFoDEtPO27!{-93iNXw_YYrhn<Atw>`<G>LcAFkx1U0cGzD*LmqD2B$jj>u# z2<*U94mATtnBVMA+Dq8MTHsp`N5^^w46E6<)1cf?lY_A3LE;}%LZztLLJO))FWXMU z@LjV^qOZ=#hwBVhB6ndivSK8gyAO%kKV#uUQzv@Bc`w}rh$xOANLh<ggFEY?FADO# zj`&BSCaLa^bLH3bc!)9W%><(x6YP0Wl)(V6K7i7-d2TgPor*Ji$)`jaB9W`b&s`e? zGc7fnYD_k__Ro$-2B?+oGoKbrf^rB7vfV7Z5*}KRnYCMO5(*`gn<(T)Y{mk!E)C*V z!&X&Df;;VYzLEoI{Ev^c_6hQmtM$uurUj-wa!=-d6O3@gTSgNvR+)bfltDp5*++in z7;KWEM0q53;kZ4wYJ0WBPF^3UAjr)h@M`Wql!<#O$Z`rB9C?fU{p**L<Wkepu%XwR zOPetgu|diiK9*m!;=hl7ZVW_c&PshI8+2K!*#a!|R~6p1L7dihZrEi?>A^w2U;wnw z!6@3!a25a+o0%3Dh8+Nvcq8~FIRU%Zzf5<)9S&b;vAL<Cc%Q*?3QNg21E0G`rEw)T zT>k#<A+%a=D%Oib&6F}g*p9~b<O84hN}zYkqsBdPm(BtK_tI(0;5NlDkCyCiLz*;g z`|y`TaX~CeY0eF0Y%y!ayfZUnFv9JaY@D`VpWZao%VeGE|8KA|Fn2Ca8~HTEpqHPn zp&RY{9HMJzw@*!J_UCFdr2i))73Ih}6QbOgLOF&Xi|YlWg_g_ls6sCMYF{vZAX6R< z-DGzxnim`TL|4KPA!;%<kHDzx=uMyTyG#>qi~mj5R8K?wR~2S*);|o!*m}bW!d<zh z!!A-tnyo}22eJ2dt7BEC(X`X8+Si635<T7A>XS9a&$eE|+`?PwQ`^z4heMUSSII8l z3l%I}_|U}$IIz_m{1Q@lY0W|TF1#BwHrY}urtto=#-zWC$cf9l_Mt?%k0ra*WbyZK ztc;Fh$D=C`n&q{=f#6Z(+95Ht&o3Y+4sIOW&ikLR=QB<XpOkUlB&l}>nRO;FSqUjk z8fKOWa<q(8T+H|<nPD(e2iZ{GzXd~)(f7<bpi~8Slm#Cd6aFS-`=~^fK>38Kq!qiY zUHXvs%&68ZwMOdL<Qqcq<)tYrcpEwHqeN+ROP+2aagOeatj!f|*EIjx<m5JTvFGuE z=1msrl;e{^0}@8GIDb(n)|^m?UWyU&rrO%z%yf-jaQZ?fMJ@p)%-UwC!DQ8$%T*%6 zK*+|h7r7&}`NX3~IABwA;kxS~pbfT>_{W!Qn8o3{PzVGFhD1?8`dLFMdGj@E#UptP z&L1-qzln?l2!ACv(pk>af5R-)UYSAm0w*A_oh4Q`h0fUun80_-96z{}6t*QV^;API zBj!3<3%T;UivGg&Ur!1P>}2xXm@dv=p!=tO_Ajbz>_HQHRf};PLFOr}vvR&hZ*K1W z&ox|?M6+xOg7Raq*S|{NZNgr5&?(C@oFI2;8^vqENFCuX`%<Z^%|0#evldyhycOTj zjd_8fmXeUJ=3GY6_2BIf5zNEEP`@5(et+cu-sas8JX;aWAn|}7n17J@rkmc;pfBQ< zLp&X~Zs7-i_~C}4aI^BvniZ!&rjAyrw&<<5s{=K$a~MPPh(|~UJcDuIcCh&?5$an` zA3ky4HEL-WR>Yj`HX~+85Fs^4C8b#|L3VSB6Jg*r;%`GwKpk>Dr@lEtgRGf(C~1se zHVp8aEcd58Kl?`7R7gjktRrk(L?P!ilGRvgFVHh~`ASi7u=o-MdEEy3#D-8ZZj)d? zxWVERgYzqe8C$%*aSwQ5Dg$6=#prerL6Ub6)>~Wj*LzaDz;kU|z}x<E`TuXI|Cj0i G!T$s5@QiT) literal 0 HcmV?d00001 diff --git a/static/assets/technologies/gitlab.webp b/static/assets/technologies/gitlab.webp deleted file mode 100644 index 9112b9d27f5e3722cadb0fe914ae8510257ef663..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4514 zcmaJ?2UJtrwmp${1?dn3FGZwFCsG6h0s*BMKzi??NRcWvpaLRFmENT{K|qSqr5T!Z zRH`6Il@0-t^Md#Pf8QVD-M7X$XU{X&ntSiH_85EV+*MIYqXhs1grb(dmb4)`005$d z_b%l3qokyjbAj*+T*!G~<Kjt7aJjg8dFZGrau^yJbC9h7L;yKJ4@d&nt!zBqHSeqF zo=5*@JDdO@=blla^SS<W%s;Y}wsxL2007}2L@3y}dw3DBB>_wNdbywD6ar?jaj>!_ z;Bo>M^dM}IfTzxR>%Z{EIY#})zmsC{(A7~Q<i<eYIZ*$Gt^W<%IC!`aVqk<AE?XB@ z!u%Hu|H8KCIPe_1Jn$y$?YEt0c*)LH?>=GVBD{YBs=!@96VL)U0BgV-a0DIzUVso` zbR{sJfDXa0_z!xP-+C>A%9@~Z1Z)TjWxx$^0jz%Of%7vU#1QQ7+Ireci2tS_mlOej zWEKSXxB-AH0RV8ZAb6S!g1FZJKr{^iZLWXo-Esgx`hdX4{>^b^0|50?0I2Kyo3l;^ zfcgjkxctT4%ERjSIz)u;1$%n{*ewD8N+STE{|o@+CV$n9;5+vNd6NL3OQ@B`005+> z0RRt*Ft_PH<oyRh@PBptuQC5qzuOvGce02Hr~NCZ$|Ya2`-t3BxwD<OoRj>SG43g{ zEN+R1n7po{j#8*GpWnwnqd^q(Yk`{3k_CG!gICq!H)>N8KYm#Z5oo_~5;EUgj;}cx zT9YpW%kg{iXJb9=CEmhr0df;bS~E+@(*n(X&OHVJSfQW_U%!_*KbNRi$q5vZHa?}; z*Uu&ARDxPl4zGc_V1kWR8y@P7cpx-?7Fp~Cl`*kA%6`O`iSQ>{deYmYy(;K2zjByL z@HFnY>3>48Il0N`437>fkaHs`#Gg!rBpMb_zlxCY+TO6GGGH~eyXUiEig*<r#`j^h zxS8`uju$lUaWhOiAiZgjtNNR<TSC}b8?+IcD(jSqaM~YHUVoH1keVJWsl%66QH-SG z+*9qMxMZH@z*<SsV3o|H9xq$X#VFA;H(cM|VA4q&$gRJUaO6kJ>g8Dd%)GDkIpe`6 zqcQV1S)*>|M%ZuwBFoN-d}%~^b4rAJcbCTKCSe)2&Vo<hwKoNIh`vSjG@(qE%x$s7 z-q6*D>IuXdd#&`w+S#UvUz*j(cFH=~-FTO+p(_0`-X2(OBfGOTB50%_ceJUqID(p2 zt-=TT<@KA+Qr2&}8MoCFbiMqBRK|ECZ0`^pG9gJkPCb&W)Po~jGbwuyl!Hcil$~zW zvu+SY1$0f?q{nBC+>=?BPUo~p;CvUKdeZh?ZG_Hq#?DSTh>m`*H=u$V9b?Mt?-rNH zRd`KMbAOgIFMkkP1sj%y$9s~>9m!yeEeqjQ#~ks&{jPO3dWSnCY^6-hZrq0yd20xj z>zXYc2Pt>oSmfGW*R&kXV}-v+XEk)}=wp09opET$scOxs@2IE|@s5m2=7z3gM?Z5Z z%&Jf%MU6guN-KN1xba~kkFaT?OQWOT<woX*4#aYllt_;(n8uQZX+h-aT7s;sFO<}W z6iN(-%{^R{65cnp)R21a=07VczuL{taCY|b_7X3C^d&EPgPlsnzq_??;L~WF%PeK9 z72f&%WL|!e*V61lYpJRrYy;LF6Cp@^*?g(VK|0Qp+*QuqlU#bb9i0|IDV5%qz|``x zX5d$sMBm(4A|G9V{b49Sa@jK^hc9%}u1H+#$78dRfNj-T$P3Di<U&mjb)|q^VUw-- zD<@gs41-AI)cP|$l$iez$#8qdgpul{SiG`KvP}s?F1_!xNyjHEq~Ds@=~{$u7e4(e z`6v-0!vv$8`aTjXBtZF9aimR%jdJGo@VpSi01%}l(f<1Liz*tJk{~XPKgnm{vidvw z*a8EIPa~zwb|qt%YW5uqjlRMb1@+QGlh_87)uZh53lt^BFcuQy7&D0pjIqQN#z5i= zMo;1^=4XHIDnt2Da6eLF2BRr4i*Yh*hv>u8D9TM?yoN>&!BvI7oU^K0y!^o{h$rag zWs_|+YY*q=?IQehb0ZnnK?u(mh+<~X3)^kEJFP63TaWk$teu@6XIC3JP^Qn9PA51- zS0_2YsZMg*s@ZCHmeG{(F*y-BrJksw&QizrB(M4<wfi}C&)vlGNQ>?qUK5iRKfgf! z_a?bc0}%QvhcKbRYAFMm5CJua8U!wOIZB!HYA$U<tsw^yado|WqdZk_2$TFK)7KC2 zqQ1y86uurromm({*L)3jWq**xXjdH2Psz6g+kwwPg004sfTAJ`=#S_L&=eE_ubh#2 zvx}lDENZhh=az#Uzz}>7NHi^fJh?lE&3ZG7k^e0JDF8q#gZyhz_&iYcWGJ-qODnE* z8xCnr1RcRvEC{AI5q%~ax2Uq<xYRfJik+OdwP%ooer|E)LgcTVy-?+&V{F^&fV04P z?OS-bJ6{&aF3o^M$D|)E-^_dM&e>QH<w`_|T_!cH!OLPqSL5HAu1kTh^08R0vY`(i zC`<iZ1Rn1812<`$qPdFnDOpkWG!cJw&F(NJrp5fB+l?`v1bb0EgUvq6-YoFa%hZ6J z3q7Q(2`6`3i9I77eA5m<^ZH5jvG&cH)=w7~2TAA_t89uUehzg~l-{@+v@%ScI1*7Y zn0s4!w{M?=3}*HcsTwhzD%q9f0n8QFLKD~7=b8uo+FlzSe9dC{QLixj^3Z+1j_6yA z+oZ)(Ur?Sx*yfO+e9u6x%hg+O$}G(Yt<2>g@^9;<@p7Xy7Z+s5QV7|e;1<!+A@6Bc zwq5L52hvth3Mb8pQc6vys)P-V+D6dxxaXM0n<?M~WhvE_i_UpsXKs8S^?xa0#{aAJ zcL2cS?h(2vp|h1O9izb<TW4%UVDu~tZ$cu~+k+j@r{zu4@G-+W%dB&4hQm7)jw30E zVw+bkA=lnG|0g`w85D!o6G7`+XR7)cFuEc{_Kpu7{;X_D0?W*8t_s&na29XX%qaGs z2vKRCdB8hYz<t`}TN$k7@N8mkRw*zPzy3XTIZb=WrKUr24kT5msm^~_YC(RPM4+bM zwoW`M<6*j7U`ZEitEOCdjo;I9edg9<uGpfe>omzztqrTH(xrg{lU~`I8>5YRElN2% z8X-hTzoFXbt!rkEH~uJ6NI3hHLI23u`}QsQ0ME=p>WfGgB8hzBQVnX1)>Fyx4V!@O zfSgaqp~vr--VDixuQ#lbB1e7uZr@)K^Q?Tq!sDI(M{{r4b<~t=GR->~5>(yG{y8<V ztf_qsox)MQIql4v=Y4!jgN)^UdUWITZ&cScGpkzIj}ANBlGlkD@v#T*M_lh9>h2iY zoD9id(2-vgqP8+$#LdZzLYqkv<v)rXEm-P(ATf$t^6qG*qvU!Kqlczy_b2ZpV|{i- z$|;TpVb2HOWGm<WRgtlJ$A89Aii>kg2`78>xMplBs_ZH>CG_^6dm6<X0x9DH?ix;) z1MHT4T%irHn^u|J*T{x_K58RbzW7;RYj?7Y=os`8ulEywD3VscUNPdSGm}!J<(kv2 zr^-O`WJ+A116$I}*7R7c!dVTk5&4`--){d*WYHWeaBAAe?+V{y^23Eg*Grhgsn;t! zAsm*YUO~qL#Y&f`n~9iS(<mM16`97@vT{`fzGd{@%zu%i?&G(sN}Y5AFj?Bze0p#a zk+6CeKofZ2SP80-g$bc|D>o?R>`@DDC9Fl>Rm$YrZ0tj8{oAU(D-b>q>)|hSIZ$Ao zcJix|6a-tg&|??leP{rs6Pve`gkIxeb7^TVxnb!uKC`i#cNRe5Se#3I`mwP}`t5>c zRJ8Z_&9ztQa<>Y}rjOKmvwb7O7JxS>WAf?Oa<6=v`Qmi@4Usi1#%CD_UfR;Y8_)Hm z;WToBPgYMXUf-SSYp&XOsFsk*93m}-sZ$*I@NwP3IC?Ln82|BkrFc>g*doKDXsJYF zanHRW`8(BFP^!0AH%h)f<6iCTcxE-J_Pw@7!>IgS_JNf4MC_Hqwa_W%+Y_MT_)@1E zjX1|et<D9q;RglQjK9b%OsrA6JqZR0yj|5W(e<XDjf6YP;TA<1h%j{c8_QM*Y5iMQ z?_z!FXI~OO-zI;=JfCnatV@3I3SZlVI}8fbp-ZysV@SeO>3biI7#>R*Q<z;c3o;3I zNF8XZl_I^>+9HD|iI7BUP;c7|PQ&ixANo7@h<?tLE6OuYz@%LjevL}m80``D<x4*3 z)Er~l404r>)2ZbLqhZF`t7y$KjsZ>8fu9XE;hEPrs5?#t(Km!Von*f}CV2oAQ-uYD z)0uR!X~suiMqPjEPxo!%$Rwk^q+Y1UALAJo&TjagpIB8Xl>uMmDkMTPMb7(t@>M17 z#vz)A{iETj@uHZ|r+J}Ltx|;9^RWAxL$u-DP%%25^!{)*nt7$!I`Y|IkJ3>{(hK{i zmj*uw)78#q7OF%qY$z?w6jH26x0Y8_RrMWfm`nO9>`I;>I^{2X&$_P=XTT=W1hPq> z6B#H39Vgx?RF{7qg5dr%+%OK48SlszYQRU!NG!xL-(1zo62l-6{6fFnv-)aOQ?Lk@ z{8R^+a1Q1W%jmLma?5oEIw!psRD5j4udv@@+xGC}G;|uxI4;7~22Ked)O!wWt-|ST zuhDMP{rM#{_8MtrKAlu&Q>57})eJA{yOu-qWLuzw1<oV*G~{wO--GpDPl@|uTTdWQ z3o?!4d}7}y>y*$xt2+~f_{Qu<?%?7}Nsq3Wm1FGe%x^v6K7P;NrLbLL!=(14WtXy+ z{IoBa)3O*GlDOBdf2zjFEyYE@#Vgu>>ENhfI(O&~zALskc%ML4B}q_Z26~W1Q?UOa zF}u5aO!qS1GQ@q7dsvQX`Li7;Emz)OV_+~^U3GQuV3v{8Kw<o?!F`ji?1EQ|a=s}_ z@g#>K?BI?%?R6|FrZT4lioZ#+ql46oh%yS^+FWuNI;b@+a)Sp}`reZ6Ly!$R03`KW zcTQ%>gzs}a_&_N{raz$m{P<h>a9%xY<<MQ3@x92;UlsL}za<jo=R{An#=l1+&n!@K zon2WB-|y_{SL;V`$0E&!Q`i}oXy|dl7W@0ycj6f<`3j_uvgY=--5tYr4yTA{vp(q4 zLuz&GhS?_~&EYtelVFPJ4|-*Y5qho(mA1oFB6hPAq@PZmp{MJpR#5}A?zsIJuG`U5 zw%P2Fd}r_C3)$fJXmI5oc(yzTV!H|+8C(6#VKEEE#Fh$1I+47T;@<7mrvXUgu^+UG zKI|UX8~egl)<j-3aF`58?weTKCk^QO;ue`TTLcGO`CqLb&nbl)Ag4}~6aC=&iycp{ z5No{%6HD9n{u-CYw(dNdh_!lx%aTOsu_Q(IhA*W$i`~zGjVJv%&$w>rgv+2e<b{`h zK>=CIlNy@3+s}CT^XQT6Xso|2WUT2r%_QVbUF}_|wufbJjefRe^F2Bm^qZITl2pEU zU<XnB)D^8RGk4O;u{KT>*oSE#;s7Y#d&`3(kCKG~RcsPBbJtk#ET@quu>pBuZK59E bwM876g6Y~qa;|d{E05cm2hDlY|84&QI!X&} diff --git a/static/assets/technologies/nodejs.webp b/static/assets/technologies/nodejs.webp new file mode 100644 index 0000000000000000000000000000000000000000..90c48f8f2246daed7e6f196a169b9c1b5bd328bf GIT binary patch literal 9308 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 G{r>>$F>4b5 literal 0 HcmV?d00001 diff --git a/static/assets/technologies/serve.webp b/static/assets/technologies/serve.webp new file mode 100644 index 0000000000000000000000000000000000000000..3d49da185b45d786caeb664bc3dff4b296faa2e2 GIT binary patch literal 872 zcmWIYbaP8!W?%?+bqWXzu<!{1vh~9cO%>2zupn1@8He4CgYvvajNNP5mj9DH`~MI7 zga0Slnz=OC6QtcIHO#zgKjF}_4L{wl>vml^xYJ$m?|cTE|Mo<{|G!=)Ol;QvaXI&i z;q+hiXY0#9r!=Yy+x$7B%x-M+tVJgN<$lxuH@)YjO<Vr?$3e#22bpG0ekomZA{NP< z(>&Rk(>&)Ci{;isrxjm?m^u1An^Qb<xd2m~v*o+SIp-u*XYQ^%(=g|Z*p31xKmX5e ze(xK!B#P}On=E8VpR&-#?7&h*-Dk1}We@+BFsN5DX|HVBn|Neu%xUAe)7L+1Mftrh ze6p=laQPAY4B4w6ie@n^&^gYiaBQnYFoP${ET@`vMvsE$o=U7))p6UQNA#hCVA6_) zaEAlji7U)3Ix+;C+&|1<cC~P7@lEjH<TF~dbqixt7O&TY!zM}+54Cz0Wb-WKd#J){ zP$FRYZi3mtCvmUZ!X0B=eTt7Ht8MWATzc-H*efCLJ*>;Oh%)6g?PLjeVsz(HU_86= z`r)V_YyoF%IJN)uCKQY3Ju;k~_B$r(&|b&3*opHSh0ZA|?^XP!x~28~G8N-x&JUy+ zBEMa<Ir{IX!>ppiQ=aer(c8o%*JGR^@~KAV%!>3=k9BWoX`Fpt^n8KIJU8KYQd6FK zFNk&!Ti)?XOQ$vWJ;R;WhOQg33WviJE;s1RapvCXe4zJ&MMl$dqX#mj+!m7i95+lj zey210#N)aJ2ktAE==H8JGINpJ<l*l8JK(_GfHsqQ<_z`z8P9aK9XS0%=5fA2ie*P> z$T9}!S8UT0UD6%qIlpU5o)vsRJkjBA!U;!}0u}b10;dED4+P%f5v*3ZK4bpL^n_0K zyw0DFef$EO>@D_9IVEDmcp~wh??#_K5$_{z8eV_yH7MQT4du92pn2tGw1eu6j@2K_ zRy|a*;qfZ4zM@dWcXegM_h8m!tpk21bPxOuXgq1Nrj2#VF+PQU;}eg<e4M1B7U(2J zSsv+}&?4vH=@G(Zc7e;oQG5Z9QfTp!Gz}jI`3B1+=LMcOsda=g7*28PIPBgr@79q? QW_g*y=l>G}?RPQ(0JEc^{Qv*} literal 0 HcmV?d00001 diff --git a/static/assets/technologies/ubuntu.webp b/static/assets/technologies/ubuntu.webp deleted file mode 100644 index a78f23e3061abbf03e73d1f77bb335aa66159f8b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9132 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 diff --git a/static/assets/technologies/unlighthouse.webp b/static/assets/technologies/unlighthouse.webp new file mode 100644 index 0000000000000000000000000000000000000000..91a93654af70da45e088620958ca62526ec1eec7 GIT binary patch literal 8754 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 literal 0 HcmV?d00001