💾 Archived View for gronkiewicz.dev › forgejo captured on 2024-09-29 at 00:26:06. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
2024-03-31 Patryk Gronkiewicz
Pasowałoby napisać coś na rozruch po dłuższej nieobecności. Może zacznijmy od dość przyjemnego tematu, jakim są „kuźnie oprogramowania” (software forge). Czym są, kto z nich korzysta i dlaczego akurat lubię Forgejo i Codeberga? O tym postaram się ci dzisiaj opowiedzieć.
Forgejo jest otwartoźródłowym forkiem Gitea --- jest to narzędzie podobne do Microsoft GitHuba, GitLaba czy mniej popularnego Bitbucketa od Atlassian.
Ma bardzo podobne dostępne funkcje, takie jak: zarządzanie kodem przez repozytoria, issue (które można przekierować do zewnętrznego narzędzia, jeśli ktoś lubi), pull requesty, wiki, a nawet natywne wsparcie do CI/CD bardzo zbliżonego do GitHub Actions.
Dlaczego zostało stworzone? O szczegółach możecie poczytać w FAQ Forgejo, ale w dużym skrócie --- główny developer Gitea przekazał ją organizacji służącej zarabianiu, bez zgody i wiedzy społeczności.
Codeberg to prawdziwa alternatywa dla MS GitHub, która jest nakierowana na wolne i otwarte oprogramowanie.
W jego zasadach jest jasno napisane, że *nie* można mieć repozytoriów prywatnych, chyba że jest to koniecznie potrzebne w procesie tworzenia kodu, a i one powinny być ograniczone do minimum.
Jest to serwis bazujący na Forgejo, który jest jego głównym rozwijającym (a dokładniej Codeberg e.V., będący organizacją non-profit).
Można na nim znaleźć wiele ciekawych, otwartych projektów, takich jak np. Gadgetbridge, który jest aplikacją służącą do podpięcia smart-urządzeń do telefonu bez zamkniętych aplikacji producentów.
Repozytorium Gadgetbridge na Codeberg
Może wydaje się to trochę ekscentryczne, ale:
1. Forgejo ma się federować z Fediverse i między sobą
2. Na Codebergu *nie* jest trenowane AI, w przeciwieństwie do GitHuba z Copilotem i jego łamaniem licencji GPL
3. Jesteście „wśród swoich”, biorąc kod z Codeberga wiecie, że jest on otwarty, a nikt nie zmieni.
4. Jest trochę mniej spamu z „ej, bo nie działa”, gdy coś tak być powinno albo milionowy duplikat, bo jednak konta tam mają ludzie bardziej wdrożeni w pisanie projektów, a wielu odbija się od etapu założenia kolejnego konta 😉.
issue na Codebergu śledzące postęp w federacji
wątek na HackerNews z dyskusją o generowaniu kodu na licencji GPL przez Copilota
Wszystkie te punkty powodują, że osobiście mam dużo większą chęć udzielać się w środowisku Codeberga niż GitHuba.
Sam nawet stworzyłem paczkę do wrzucania szybkich wpisów na Misskey prosto z Emacsa, co na GitHubie zdarza mi się raczej nieczęsto.
Paczka misspost.el na Codebergu
O ile jestem fanem FOSS, tak często nie chcę dzielić się swoją pracą w jej trakcie, a udostępniam już coś raczej gotowego.
Nie chce w tym celu nadużywać prywatnych repozytoriów na Codebergu, więc stworzyłem własną instancję Forgejo, co zajmuje dosłownie moment,
razem z runnerem, który automatycznie aktualizuje stronę, na którą właśnie patrzycie.
Jeśli ktoś jest ciekawy, to może przejść się po mojej instancji pod adresem <https://git.gronkiewicz.dev>, zapraszam.
Jest tam wyłączona opcja pobierania zipów z repozytoriami ze względu, że jakiś gagatek notorycznie generował pliki i zapychał mi serwer, jednak bez problemu możecie sklonować repozytorium po HTTPS.
U mnie sprowadziło się to dosłownie kilku linijek pliku yaml, w którym zdefiniowałem serwis oraz jak ma się dogadać z reverse proxy.
services: forgejo: image: codeberg.org/forgejo/forgejo:1.21-rootless volumes: - ./data:/data - ./gitea:/etc/gitea labels: traefik.http.routers.forgejo.rule: Host(`git.gronkiewicz.dev`) traefik.http.routers.forgejo.tls: true traefik.http.routers.forgejo.tls.certresolver: letsencrypt traefik.http.services.forgejo.loadbalancer.server.port: 3000 networks: - default - traefik ports: - 22:2222 depends_on: - db restart: always db: image: postgres:14-alpine volumes: - ./db:/var/lib/postgresql/data environment: POSTGRES_PASSWORD: SOME_LONG_PASSWORD POSTGRES_USER: forgejo POSTGRES_DB: forgejo restart: always networks: traefik: external: true name: traefik_proxy
Nie polecam jednak bezmyślnie kopiować mojej konfiguracji, a najlepiej skonsultować się z dokumentacją Forgejo, aby dobrać najlepsze rozwiązanie dla siebie. Cały proces trwa dosłownie parę minut, a przy pierwszym wejściu na instancję trzeba skonfigurować podstawowe opcje jak baza danych (można też użyć SQLite) czy pierwsze konto, które będzie kontem admina.
Dokumentacja Forgejo dotycząca instalacji z użyciem Dockera
Zachęcam was bardzo do korzystania z alternatyw do wielkich, korporacyjnych miejsc z kodem, bo problemy z nimi mogą dotknąć każdego, co pokazują przykłady youtube-dl czy Suyu, a poza nimi wiele projektów, o których teraz nawet nie pamiętam. Pomijam już nawet fakt nadużyć DMCA-takedown przez firmy, na zasadzie „niby jest to dozwolone, ale nam trochę szkodzi, to pozbędziemy się ich”.