Ang Gogs ay ang Pinakamadaling Paraan upang Magpatakbo ng Lokal na Git Server (Narito Kung Paano Ito I-set Up)


Ayaw mong itulak ang iyong code sa isang naka-host na Git repository? Pagkatapos ay patakbuhin ang iyong sariling Git server in-house. Si Gogs ang pinakamadaling paraan para gawin iyon. Narito kung paano ito i-set up.

Ang Problema Sa Cloud-Hosted Repositories

Walang pag-aalinlangan, ang Git ang pangunahing sistema ng pagkontrol sa bersyon. Kahit na may mga single-developer na proyekto, ang Git ay nagbibigay ng halaga at benepisyo dahil sa paggana nito sa pag-bersyon. Para sa mga multi-developer na proyekto, ang Git ay nagdadala ng isa pang dimensyon nang buo. Gamit ang isang sentral at malayong repositoryo na Git ay nagbibigay-daan sa isang collaborative na kakayahan na magbabago sa paraan ng pagtingin ng iyong mga development team sa kontrol ng bersyon.

Iyon ang dahilan kung bakit umiiral ang mga serbisyo tulad ng GitHub, GitLab, at BitBucket , at kung bakit nakita nila ang ganoong pag-angat at paglago. Ang GitHub lamang ang nagho-host ng higit sa 200 milyong mga repositoryo. Ngunit ang mga cloud-host na repository ay hindi angkop sa lahat. Karamihan sa kanila ay naniningil upang mag-host ng mga pribadong repositoryo. Ang ilan sa mga ito ay nagpapataw ng mga limitasyon sa storage, mga limitasyon ng user, o mga limitasyon sa paglilipat ng data sa mga libreng account.

Kahit na ang iyong paggamit at laki ng koponan ay umaangkop sa mga paghihigpit ng mga libreng account, o kahit na handa kang magbayad para sa isang komersyal na lisensya, maaaring hindi ka kumportable na iimbak ang iyong code base sa cloud.

Ang kahalili ay ang pag-host ng iyong sariling Git server alinman sa lokal sa iyong sariling network, o pribadong naa-access sa iyong sariling pribadong cloud. Pagse-set up ng isang Git server na nagbibigay ng web interface na may hitsura, pakiramdam, at mga opsyon na ginawa ng GitHub at mga kaibigan na napakasikat na ginagamit upang mangailangan ng isang partikular na antas ng teknikal na kasanayan. Doon pumapasok si Gogs.

Ano ang Gogs?

Ang Gogs ay medyo bagong proyekto, na nakasulat sa Go, na naghahatid ng madaling i-install, ngunit ganap na tampok na Git instance. Walang mga limitasyon sa laki ng koponan, imbakan, o anumang bagay.

Kahit na ikaw ay isang hobbyist programmer, ang paggamit ng Gogs bilang isang serbisyo ng Git sa iyong lokal na network ay nagbibigay-daan sa iyong mag-imbak ng kopya ng iyong code palayo sa iyong development machine. Kapag gusto mo—o ibang tao—na magtrabaho sa ibang o bagong computer, i-clone mo lang ang isang repository mula sa iyong server ng Gogs tulad ng gagawin mo mula sa GitHub.

Kung madalas mong gagamitin ang Gogs, malamang na maginhawa mong idagdag ito sa mga startup na application ng computer na pinapatakbo nito.

Paano Mag-install ng Gogs

Upang i-install ang Gogs, ida-download mo ang naaangkop na file ng archive, i-unzip ito, at patakbuhin ang pangunahing binary. Pupunan mo ang ilang mga form, at sinisimulan ng Gogs ang iyong repository at idaragdag ka bilang admin user. Maaari kang mag-browse sa iyong Gogs instance at magdagdag ng mga user at gumawa ng mga repository.

Gumagamit ang Gogs ng database para sa back-end na storage nito. Sinusuportahan nito ang MySQL, MariaDB, PostgreSQL, at TiDB. Kung gusto mong gumamit ng isa sa mga makapangyarihang database engine na ito, dapat mong hanapin at i-install ito mismo, bago i-install ang Gogs. Para sa mas maliliit na team, maaari mong gamitin ang SQLite3. Kung pipiliin mo ang SQLite3, naka-install ito para sa iyo. Siyempre, kakailanganin mo ring mai-install ang git.

I-download ang naaangkop na binary.

  • Para sa karamihan ng mga modernong pamamahagi ng Linux, i-download ang file na “Linux amd64.”
  • Kung gumagamit ka ng 32-bit na bersyon ng Linux, i-download ang “Linux 386” file.
  • Kung nag-i-install ka sa isang Raspberry Pi 2 o mas maaga, i-download ang Linux armv7 file.
  • Kung nag-i-install ka sa isang Raspberry Pi 3, 3+, o mamaya, i-download ang Linux armv8 file.
  • Kung gumagamit ka ng Intel Mac, i-download ang macOS amd64 file.
  • Para sa Apple Silicon Mac, i-download ang “macOS arm64” file.

Na-download namin ang Linux amd64 ZIP file, para sa pag-install sa isang 64-bit na computer na may Ubuntu 22.10. Maliit ang file—mga 25MB lang—kaya huwag magtaka kung napakabilis nitong mag-download. Normal lang iyan.

Hanapin ang file sa iyong file system. Kung pinanatili mo ang default na lokasyon ng pag-download ng iyong browser, malamang na ang file ay nasa iyong ~/Downloads na direktoryo. I-right-click ito at piliin ang I-extract mula sa menu ng konteksto. Ang ilang mga file browser ay maaaring gumamit ng I-extract Dito sa halip.

Ang isang direktoryo ay nakuha mula sa ZIP file. Pinangalanan ito pagkatapos ng na-download na file. Sa aming kaso, tinawag itong gogs_0.11.91_linux_amd64.

I-double click ang na-extract na direktoryo at makakakita ka ng isa pang direktoryo na tinatawag na gogs.

I-double click ang direktoryo ng gogs. Makikita mo ang mga file at direktoryo ng Gogs. Mag-right-click sa window ng browser ng file at piliin ang Buksan sa Terminal mula sa menu ng konteksto.

Upang simulan ang iyong Gogs instance, i-type ang command na ito:

./gogs web

Inilunsad si Gogs, at sasabihin sa iyo na nakikinig ito sa port 3000.

Kumonekta sa iyong server ng Gogs sa pamamagitan ng pagbubukas ng web browser at pag-navigate sa IP address o pangalan ng network ng computer kung saan tumatakbo ang Gogs. Magdagdag ng :3000 pagkatapos ng IP address o pangalan ng network. Huwag magsama ng anumang whitespace.

Kung nagba-browse ka sa computer kung saan tumatakbo si Gogs, maaari mong gamitin ang localhost bilang pangalan ng machine, tulad nitong localhost:3000. Ang aming Gogs computer ay tinatawag na ubuntu-22-10.local, kaya mula sa ibang computer sa parehong network, ang address na kailangan naming i-browse ay ubuntu-22-10.local:3000, kasama ang port number.

Sa unang pagkakataong gagawin mo ito, makikita mo ang form na kumukuha ng ilang paunang impormasyon sa pag-setup.

Ang mga unang bagay na kailangan naming gawin ay piliin ang SQLite3 mula sa drop-down na menu na Uri ng Database at ilagay ang iyong user name sa field na Run User.

Kung gusto mong mag-set up ng mga notification sa email, kakailanganin mong i-configure ang ilang karagdagang hakbang. Kakailanganin mong i-relay ang mga email sa pamamagitan ng isang Simple Mail Transfer Protocol (SMTP) mail server na may pahintulot kang gamitin. Kung isa kang user ng Google Gmail, maaari mong gamitin ang Gmail SMTP server ng Google.

Mangangailangan ito ng mga setting sa mail server upang payagan ang iyong account na tanggapin at ihatid ang email. Ang mga setting na ito ay nag-iiba mula sa mail server sa mail server.

Hinihiling sa iyo ng Gogs na ilagay ang sumusunod na impormasyon tungkol sa iyong email server.

  • SMTP Host: Ang address at port ng email server. Sa aming halimbawa, ito ang SMTP server ng Google sa smtp.gmail.com:587.
  • Mula sa: Ang email address kung saan ipapadala ang email. Para sa Gmail ito dapat ang Gmail email address ng account na iyong ginagamit.
  • Email ng Nagpadala: Dapat ay pareho sa itaas. Ito ang email account ID na gagamitin ni Gogs upang makipag-usap sa SMTP server.
  • Password ng Nagpadala: Ito ay hindi ang password para sa Gmail account. Ito ang password na tukoy sa application na nakukuha mo mula sa Google kapag na-configure mo ang iyong account upang payagan ang isang application na magpadala ng email sa ngalan mo.
  • Paganahin ang Pagkumpirma sa Pagrehistro: Upang ma-verify ng Gogs ang mga email ng mga user, piliin ang checkbox na ito. Makakatanggap ang mga bagong user ng email na may link dito. Dapat nilang i-click ang upang patunayan na ang email address ay totoo at nasa ilalim ng kanilang kontrol.
  • Paganahin ang Notification sa Mail: Lagyan ng check ang checkbox na ito upang payagan ang mga notification sa email mula sa Gogs.

Siyempre, kung ayaw mong maabala ng mga email, maaari mong laktawan ang lahat ng mga setting ng email.

I-click ang asul na button na I-install ang Gogs kapag handa ka nang magpatuloy. Nagsusulat si Gogs ng configuration file, sinisimulan ang storage ng database, at sinisimulan ang iyong Git instance.

Makikita mo ang pangunahing home page ng Gogs.

Ang unang user account na gagawin mo ay awtomatikong bibigyan ng mga karapatan ng administrator. I-click ang link na “Magrehistro”.

Kumpletuhin ang form na Mag-sign Up gamit ang pangalan ng iyong account, isang password para sa account na ito (ipasok ito nang dalawang beses), at ang mga digit mula sa Captcha. I-click ang berdeng Gumawa ng Bagong Account na buton. Makikita mo ang page na Mag-sign In.

Ilagay ang pangalan at password ng iyong account, at i-click ang berdeng button na “Mag-sign In”.

Isang Mabilis na Paglilibot sa Gog

Kung pamilyar ka sa anumang iba pang instance ng Git na na-access sa web, napakadali mong mahahanap ang iyong paraan sa paligid ng Gogs.

Ang view ng Dashboard ng Gogs ay medyo kalat hanggang sa mayroon kang isang repositoryo upang gumana. I-click ang asul na “+” na button, at kumpletuhin ang form na “Bagong Repository”.

Humihingi ito ng pangalan ng repositoryo, pribado man ito o pampubliko, at isang paglalarawan.

Ang susunod na tatlong field ay lumikha ng mga file mula sa mga template.

  • Ang menu na “.gitignore” ay nagbibigay-daan sa iyong pumili ng template para sa iyong “.gitignore” na file na na-configure na may mga setting ayon sa mga napiling wika. Maaari kang gumawa ng higit sa isang pagpipilian mula sa menu na ito, upang magsilbi sa mga repositoryo na gumagamit ng pinaghalong mga teknolohiya sa pag-unlad.
  • Ang menu na “Lisensya” ay nagbibigay-daan sa iyong pumili ng lisensya mula sa isang komprehensibong listahan.
  • Ang menu na “Readme” ay may iisang opsyon, isang default na “README.md” na file.

Lagyan ng tsek ang checkbox na Initialize This Repository With Selected Files and Template, at i-click ang berdeng Create Repository na buton.

Ang iyong bagong repository ay ipinapakita para sa iyo. Ginawa ni Gogs ang aming tatlong karaniwang mga file para sa amin, at idinagdag ang mga ito sa repository na may commit message na Initial commit.

Na-clone namin ang repository sa aming computer, nagdagdag ng file na tinatawag na ack.c, ginawa ito, at itinulak ito sa aming remote na imbakan ng Gogs. Ang lahat ng ito ay ginawa gamit ang karaniwang mga utos ng Git.

Gaya ng inaasahan, lumalabas ang aming bagong file sa aming repositoryo ng Gogs.

Ang pag-click sa isang file ay nagpapakita sa amin ng nilalaman ng indibidwal na file. Ang mga markdown file ay binibigyang-kahulugan para sa iyo, na may mga heading, link, listahan, at lahat ng iba pang feature ng Markdown. Ang mga file na “README.md” ay karaniwang nakasulat sa Markdown.

Sa pamamagitan ng pag-click sa icon na lapis na I-edit, maaari naming direktang i-edit ang aming README.md na file. Nagdagdag kami ng ilan pang teksto, gumamit ng mga Markdown tag para magpasok ng mga hyperlink at italics, at ginawa ang aming mga pagbabago. Lahat mula sa loob ng Gogs.

Bumalik sa aming view ng repositoryo, ipinapakita ang aming na-update na README.md na file, at ang entry na README.md sa listahan ng file ay nagpapakita ng bagong commit message at oras ng pag-update.

Ang Pinakamadaling Git Server – Bar None

Si Gogs ay isang ganap na tagumpay. Perpektong pinagsasama nito ang pag-andar sa pagiging simple.

Out of the box, matutugunan nito ang mga pangangailangan ng karamihan ng mga hobbyist o maliliit na development team. Ang ilan sa mga advanced na opsyon nito ay isinaaktibo sa pamamagitan ng pag-edit ng config file na, bilang default, ay matatagpuan sa “~/Downloads/gogs_0.12.10_linux_amd64/gogs/custom/conf/app.ini.” Tandaan na ipapakita ng path ang bersyon ng Gogs na iyong ginagamit.

Maaaring isagawa ang pangkalahatang pangangasiwa ng system mula sa admin panel, na makikita sa Iyong Profile > Admin panel.

Bagama't ang dokumentasyon ng Gogs ay maikli hanggang sa punto ng pagiging maikli, nangangahulugan iyon na madaling mahanap kung ano ang iyong hinahanap, at ang mga paglalarawan ay sapat na detalyado para masundan mo.

Kung nag-iingat ka tungkol sa mga cloud-host na repository na sa huli ay nasa ilalim ng kontrol ng iba, isaalang-alang ang paggamit ng Gogs nang lokal. Hindi ka mawawalan ng functionality, ngunit magkakaroon ka ng kontrol at garantisadong privacy.