Linki
Strona: reposilite.com
Repo: github.com/dzikoysk/reposilite
Bio
Potrzebowałem jakiś czas temu lekkiego repozytorium Mavena do stawiania swoich projektów, a hostowanie hobbystycznych zabawek na chociażby Nexusie to lekki przerost formy nad treścią - głównie też z budżetowego punktu widzenia, bo zapotrzebowanie na zasoby takie rozwiązania mają niemały.
Stworzyłem więc Reposilite (wcześniej NanoMaven), a z uwagi na potrzebę pewnych nowych integracji w ostatnim czasie, projekt przeszedł spory refactoring i stał się trochę bardziej user-friendly. Przy okazji podlinkowałem projekt na JVM Poland z miesiąc temu - od tamtego czasu parę osób zaproponowało też żeby wrzucić projekt właśnie tutaj. Od jakiegoś czasu nosiłem się z zamiarem wejścia na forum, więc to chyba w miarę dobry początek. Sporo osób pewnie bawi się tutaj projektami po godzinach, być może kilku z Was znajdzie zastosowanie w swoim środowisku.
Stack
Troszkę "technicznie", może kogoś też coś z ciekawości od tej strony zaciekawi.
Co oznacza lekki? Cel był taki, by żarł jak najmniej zasobów - głównie ramu. Dodatkowo ważnym kryterium był czas i prostota pisania tego, a oto obecny stack:
- Reposilite Backend: Java + Javalin (Jetty)
- Reposilite Frontend: Vue.js + Pug + Stylus + Tailwindcss
- Reposilite Site: React.js + Docusaurus
Z uwagi, że ma to działać jak najprościej, to frontend po zbudowaniu trafia do resources backendowego. Z uwagi na ograniczenia w założeniach, odpada też praktycznie cały temat cachowania czegokolwiek, w efekcie jesteśmy w stanie uruchomić serwer na jakiś 8MB ramu (dla nowszych wersji jvma około 10-12MB). W zależności jednak od stopnia użycia repo zalecam zwiększyc limity, opis zalecanych wartości jest w docsach.
W praktyce
Mam na Reposilite postawione publiczne repo, które ma przydzielone 128MB ramu. Wczoraj wieczorem wrzuciłem jakieś małe statystyki na twittera twitter.com/dzikoysk/status/1296243809366560768* (przy okazji jak ktoś ma ochotę, to będę wdzięczny z followka, dopiero zacząłem coś wrzucać i trochę głupio pisać do nikogo xD ♥)*. Warto zauważyć, że repo mavena to nie jest typowy serwis, gdzie możemy rozłożyć jakoś średnio ten ruch, z reguły to jest seria requestów z wielu CI podczas buildów, stąd wynikają potrzeby zwiększenia limitów dla bardziej obciążonych repo, żeby obsłużyć te peaki ruchu.
Extra
- https://dev.to/dzikoysk/publishing-your-artifacts-to-the-reposilite-a-new-self-hosted-repository-manager-3n0h ~ popełniłem prosty wpis o tym jak to postawić, co prawda starsza wersja, ale dalej aktualne - więcej dokładnych info jest oczywiście w docsach.