GitHub, BitBucket i szereg serwisów oferujących zarządzanie repozytorami są wspaniałym rozwiązaniem do udostępniania swoich programów o otwartym źródle. Jeśli jednak tworzymy prywatne projekty, którymi nie chcemy się dzielić, musimy zapłacić odpowiednią kwotę (w przypadku konta Zespołu). Musimy też ufać, że dostawca zapewni bezpieczeństwo naszego kodu.
Odpowiednik GitHuba na własnym serwerze
Odpowiedzią na problemy z pierwszego akapitu jest Gogs. Czyli otwartoźródłowy serwis Git, który możemy zainstalować na czymkolwiek co ma więcej niż pół giga ramu i dwa rdzenie.
Wygląd Gogs bardzo przypomina GitHuba. Mamy użytkowników, organizacje, stronę główną z ostatnimi commitami, stylizowane pliki readme, podgląd zmian, wrzucanie po ssh i http, pull requesty, forki… Wszystko co niezbędne, a nawet więcej niż byśmy potrzebowali do prywatnego zastosowania.
Ten poradnik został przygotowany w oparciu o Raspberry Pi 4B, ale pomyślnie uruchomiłem Gogs na NanoPi Neo 2, jak i Windowsie 10 z Dockerem na włączonym WSL. Jak mówiłem, jeśli chcesz odpalisz go na wszystkim.
Niezbędnik:
Raspberry Pi 4B / Raspberry Pi 3 / Raspberry Pi Zero + Ethernet/WiFi
Komputer/Telefon z klawiaturą i dostępem do SSH
Zainstalowana dystrybucja Linuxa, np. Raspbian/Armbian
Dostęp do internetu (lol)
Wstępna instalacja
Zacznijmy od podstaw. Najnowszą dystrubucję Raspbiana pobierzesz z oficjalnej strony projektu. Raspbian Lite Buster w zupełności wystarczy, nie potrzebujemy wielu pakietów ani interfejsu graficznego.
Do zainstalowania systemu na karcie SD niezbędne jest utworzenie odpowiednich partycji systemowych oraz wgranie plików. Jednym z prostszych rozwiązań, które zrobi to za nas, z ładnym interfejsem graficznym jest belenaEtcher.
Belena Etcher w wersji 1.5.70 – Archiwum 4GEEK.CO
Teraz wystarczy wsadzić kartę SD do Raspberry, podpiąć zasilanie i poczekać chwilę, aż wszystko się doinstaluje, a malinka podłączy się do sieci. Niedługo później powinniśmy już widzieć jej IP w naszym routerze.
Lista klientów routera Asus – Archiwum 4GEEK.CO
Konfiguracja po SSH
Aby dokonać zmian musimy połączyć się z pomocą protokołu SSH. Jeśli masz do dyspozycji tylko telefon, świetną aplikacją jest Juicy SSH. W przypadku Windowsa wystarczy PowerShell.
Wpisujemy komendę do łączenia się z urządzeniem z wykorzystaniem ssh w formacie ssh [email protected]_ip (Ty wpisz IP, które widać w Twoim routerze) Domyślnym użytkownikiem w systemie Raspbian jest pi.
Od razu wyskoczy komunikat o akceptacji klucza, po czym zostaniemy poproszeni o wpisanie hasła. Domyślnym w Raspbianie jest raspberry.
Gotowe! Teraz możemy sterować naszym urządzeniem zdalnie.
Połączenie SSH z Raspberry przez Microsoft Terminal – Archiwum 4GEEK.CO
Instalacja pakietów
Czas na instalację niezbędnych pakietów. Zaczniemy od pobrania listy oraz aktualizacji już obecnych, aby to zrobić wpisujemy:
>_ sudo apt-get update
>_ sudo apt-get upgrade
Jeśli z jakiegoś powodu aktualizacja trwa zbyt długo, bądź listy się nie pobierają, możesz spróbować:
>_ sudo apt-get --fix-missing update
Do działania Gogs, niezbędny jest serwer baz danych oraz środowisko GIT. Paczkę dla Raspberry pobierzemy ze strony projektu, dlatego konieczne będzie narzędzie do otwierania zipów. Instalujemy je wszystkie jedną komendą:
>_ sudo apt-get install unzip git mariadb-server
Po pobraniu i zainstalowaniu możemy uruchomić bezpieczną instalację serwera baz danych MariaDB:
>_ sudo mysql_secure_installation
Przechodzimy przez instalację. Najpierw podajemy obecne hasło użytkownika root. Potem trzeba wybrać, czy to hasło zmienić. Możesz wybrać opcję [n]. Usunięcie domyślnych użytkowników jest wskazane, więc w następnej opcji wybieramy [Y]. Kolejna opcja (zdalny dostęp root) jest ważna z punktu widzenia bezpieczeństwa i w niej również wybieramy [Y] (nie pozwalaj na zdalne połączenie). Testowa baza też nam nie będzie potrzebna, wybieramy [Y]. Zostaje na koniec przeładowanie uprawnień, wybieramy [Y].
Gotowe! Serwer MariaDB został skonfigurowany. Przechodzimy do dalszej części przygody.
Tworzenie bazy danych
Logujemy się teraz do konsoli SQL z poziomu konta root:
>_ sudo mysql -u root -p
Tworzymy tabelę o nazwie gogs:
>_ CREATE DATABASE gogs;
Dodajemy użytkownika o nazwie gogsadmin i wybranym haśle, np. lubieplacki, który będzie miał wszystkie uprawnienia do tabeli gogs:
>_ GRANT ALL PRIVILEGES ON gogs.* TO 'gogsadmin'@'localhost' IDENTIFIED BY 'lubieplacki';
Odświeżamy teraz tablicę uprawnień, ponieważ dokonaliśmy w niej zmian:
>_ FLUSH PRIVILEGES;
I na tym kończymy operacje na bazie danych, aby wyjść z konsoli SQL wpisujemy:
>_ EXIT
Instalacja Gogs
Pakiety zainstalowane, baza gotowa. Więc możemy przejść do Gogs. Zaczynamy od stworzenia użytkownika gogs, na którego koncie będzie działała usługa. Argument –disabled-login sprawia, że konto jest wyłącznie systemowe i nie można się do niego zalogować.
>_ sudo adduser --disabled-login gogs
Dajemy użytkownikowi gogs pełne uprawnienia do jego katalogu domowego.
>_ sudo chown -R gogs:gogs /home/gogs
Teraz przechodzimy do katalogu domowego użytkownika.
>_ cd /home/gogs
Pobieramy paczkę z Gogs. Najnowsza kompilacja jest dostępna na oficjalnej stronie projektu. Wybieramy tę, dla Raspberry Pi w formacie ZIP. Dodanie argumentu -O gogs.zip zmieni nazwę na bardziej czytelną. Od razu po pobraniu rozpakowujemy paczkę, i usuwamy zbędne archiwum.
To tyle, Gogs jest gotowy do działania, dodajemy jego usługę za pomocą komendy systemctl. A potem uruchamiamy. Żeby upewnić się, że usługa działa, możemy użyć komendy z argumentem status.
Teraz w przeglądarce na naszym komputerze lub telefonie przechodzimy pod adres IP Raspberry podając przy tym port 3000, na którym domyślnie działa Gogs. Adres podajemy w formacie http://ADRES_IP_RASPBERRY:3000/
http://192.168.1.33:3000/
Konfiguracja
Jeśli nic nie skopaliśmy po drodze, naszym oczom ukaże się strona konfiguracji.
W sekcji Database settings, zmieniamy User na gogsadmin, a w polu Password podajemy te, które ustalaliśmy chwilę temu. W moim przypadku lubieplacki. W polu Database Name wklepujemy gogs.
W sekcji Application General Settings zmieniamy Domain na adres malinki, np. 192.168.1.33. Podobnie w Application URL wpisujemy http://192.168.1.33:3000/.
Na koniec, w rozwijanym formularzu Admin Account Settings podajemy dane administratora.
Finito! Adie! Gotowe! Postawiliśmy własnego GitHuba i kosztowało to nas zaledwie parędziesiąt złotych za malinkę i 20 minut wolnego czasu.
Gogs z czarnym motywem – Archiwum 4GEEK.CO
Dla fanatyków ciemności
Jeśli podobnie jak ja, jesteś fanką lub fanem ciemności, polecam Ci zainstalowanie czarnego motywu, dzięki czemu nasz mini GitHub nabierze mroczniejszej atmosfery.
Fantastyczną pracę w tym kierunku wykonał użytkownik Kos-M. Najnowszą wersję jego motywów znajdziesz na GitHub.
Żeby je zainstalować, musimy przejść do katalogu z Gogs:
Domowy GitHub niesie ze sobą wiele korzyści. Nie tylko mamy pełną kontrolę nad tym, gdzie i kiedy są nasze projekty, ale też w razie apokalipsy zombie i odcięcia internetu możemy dalej commitować zmiany.
Student inżynierii programowania, z zamiłowaniami do tworzenia rozwiązań IoT. Niezmordowany gracz w wiedźmińską trylogię i serię Anno. Propagator tworzenia wszelkich rozwiązań w języku C#.
Fan starych samochodów i motocykli Yamaha. Przy tym, zajmuje się zapleczem technicznym i wyglądem strony 4GEEK.CO.
Niestety, nic nie znaleziono. Może spróbuj innej frazy?
Om nom nom...
Któż nie lubi ciasteczek? Cóż, całkiem sporo ludzi... W każdym razie, nasza strona wykorzystuje cookies.
Kiedy 4GEEK (to my!) zbiera informacje o Tobie, nasza Polityka Prywatności opisuje jak przetwarzamy te informacje.
No więc tak, ale właściwie to nie
Brakuje JS...
Ta strona nie działa bez JavaScript. I don't know how to help you with that, maybe try to figure out how to turn it on