Z různých důvodů dávám přednost ukládání projektů do gitu, jehož úložiště mám umístěno na Synology NAS. Rozběhání této konfigurace bylo poměrně jednoduché, na druhou stranu mi chybělo nějaké uživatelské rozhraní pro sledování toho, co se v repositáři děje. A to přesto, že pro práci s gitem používám především příkazový řádek a výjimečně zabudované funkce v PhpStorm.
Zkrátka. Chtěl jsem něco jako je GitHub. Tedy funkce, které nabízí ve vztahu k repositáři verzovaného kódu. Nikoli hosting a další služby. Chtěl jsem mít možnost otevřít si repositář přes webový prohlížeč, kouknout se, jaké v něm kdo kdy udělal změny a případně mít možnost si je jednoduše stáhnout. To vše ideálně umístěné na mém vlastním serveru.
Pátral jsem po podobném řešení před delší dobou, ale nevzpomínám si, že bych našel něco zajímavého. A pak jsem zčista jasna zabloudil v internetových vodách na webové stránky projektu Gogs.
Gogs je přesně to, co jsem popsal výše. Tedy open source (MIT License) projekt nabízející komfort pro práci s Gitem a hostovaný vašimi vlastními silami.
Kde rozběhat Gogs a vlastní Git
Zalíbil se mi popis nástroje i jednoduchý design webu. Na rozdíl od jiných webových aplikací, na které jsem zvyklý, to ovšem není produkt napsaný v PHP. Gogs je vytvořen v programovacím jazyku Go a běhá všude tam, kde je možné jej zkompilovat.
Zprovoznění na webu vyžaduje stažení binárky pro vaši platformu (Linux, Windows, macOS či Raspberry Pi) a její instalaci přes příkazový řádek. K dispozici jsou i balíčky třetích stran pro Ubuntu, CentOS, Debian či Arch Linux. A také pro Synology NAS. Právě to se mi hodilo, nechtěl jsem Gogs dávat někam na virtuální server, umístění v NASu mi plně vyhovuje.
V případě Synology to tedy vyžadovalo povolení instalace třetích balíčků spk v DiskStation Manageru, zapnutí Gitu a MariaDB. Balíček s Gogs jsem nahrál, otevřel připravenou URL a mohl se pustit do nastavení Gogs ve webovém prohlížeči.
V prohlížeči ale už jen vyplňujete základní údaje pro připojení k databázi (je nutno si ji tedy předtím připravit) a vytvoříte prvního uživatele v Gogs. Ten zároveň slouží jako správce celé aplikace.
Co všechno Gogs dovede?
Pokud jste někdy pracovali s GitHubem, budete zde jako doma. Po přihlášení vám Gogs zobrazí seznam posledních aktivit, možnost přepínání a filtrování uživatelů a přehled repositářů. Kromě toho zobrazuje také přehled úkolů (issues) napříč projekty, požadavky na natažení (pull requesty) a prohlížeč umístěných repositářů s vyhledáváním.
Pro každý z připravených repositářů určujete vlastníka, název či viditelnost, kdy chcete mít něco soukromé a jiné repositáře veřejné. Líbí se mi výběr šablon pro soubor .gitignore a pro licenční ujednání. Stačí kliknout do políčka a najít si šablonu pro ignorování souborů v Drupalu, WordPressu, Symfony, aplikaci pro Android a mnoha jiných.
V detailu repositáře uvidíte klasicky přehled souborů a složek s poznámkou k poslední změně, kterou jste do repositáře poslali. Pod soubory je zobrazen obsah souboru README.md, tedy se zformátovanou syntaxí markdown.
Funguje tu přepínání revizí, větví i vytváření vydání. S repositářem lze komunikovat přes http i přes ssh. Ke každému z projektů je zobrazen seznam úkolů, který zobrazuje buď klasické issues s možností štítkování, nastavení milníků a zpracovatelů, případně může jen odkazovat na jinou stránku.
Prostřednictvím Gogs si ke každému z repositářů také volitelně vytvoříte Wiki. Tedy jednoduché stránky s dokumentací nebo čímkoli dalším, co uznáte za potřebné k projektu poznamenat.
Podobně jako na GitHubu lze projekty „lajkovat“ hvězdičkou a sledovat v nich změny. Co se týče správy Gogs jako takového, nechybí tu hromadné akce pro manipulaci s uživatelskými účty i repositáři. Myslím, že je zde vše, co byste očekávali.
Uživatelské účty jsou volitelně napojené na Gravatar, registrace může být podmíněna ověřením mailu nebo zcela vypnuta, pokud Gogs používáte jen v rámci omezeného okruhu uživatelů.
Gogs používám zatím jen pár dní, ale nenarazil jsem zatím na žádný problém a v tuto chvíli vám jej mohu s klidným svědomím doporučit. Příjemná je zcela jistě i skutečnost, že nabízí do češtiny přeložené uživatelské prostředí.
Tvůrce webů z Brna se specializací na Drupal, WordPress a Symfony. Acquia Certified Developer & Site Builder. Autor několika knih o Drupalu.
Web Development Director v Lesensky.cz. Ve volných chvílích podnikám výlety na souši i po vodě. Více se dozvíte na polzer.cz a mém LinkedIn profilu.
Podobné články
Komentáře k článku
Řekl bych, že Gogs má méně funkcí a je pro mě přehlednější. GitLab skoro nepoužívám, takže více porovnat asi nemohu.
Koukám, že existuje taky fork Gitea. Zkoušel jsi ho? A pokud ano, proč vyhrál Gogs?
Nezkoušel. Gogs má vše, co od toho potřebuju, včetně instalačního balíčku pro Synology NAS. U Gitea jej nevidím.
Ahoj,
a kde jsi stáhl prosím binárku pro synlogy? Našel jsem jen na githubu 2 roky starou...
Zdravím.
Chtěl bych poprosit o radu. Mám synology DS218j, kde jsem si zprovoznil git server a k němu bych chtěl připojit např. raspberry s gogs. Tzn. všechny zdrojáky udržovat na tom synology git serveru a správu jak popisujete výše bych chtěl mít na např. raspberry. A tady je kámen úrazu. Nemám tušení, jak tyto dvě věci propojit.
Tzn. gogs zprovozním, ale jak jej připojit už ke stávajícímu soukromému git serveru? Díky za radu
Jirka
Jak bys to srovnal s GitLabem?