{"id":532607,"date":"2022-12-29T20:00:04","date_gmt":"2022-12-29T17:00:04","guid":{"rendered":"https:\/\/en.buradabiliyorum.com\/gogs-is-the-easiest-way-to-run-a-local-git-server-heres-how-to-set-it-up\/"},"modified":"2022-12-29T20:00:04","modified_gmt":"2022-12-29T17:00:04","slug":"gogs-is-the-easiest-way-to-run-a-local-git-server-heres-how-to-set-it-up","status":"publish","type":"post","link":"https:\/\/buradabiliyorum.com\/en\/gogs-is-the-easiest-way-to-run-a-local-git-server-heres-how-to-set-it-up\/","title":{"rendered":"#Gogs Is the Easiest Way to Run a Local Git Server (Here\u2019s How to Set It Up)"},"content":{"rendered":"<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_85 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-6a3bc7654bcb2\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #dd3333;color:#dd3333\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #dd3333;color:#dd3333\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-6a3bc7654bcb2\" checked aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-1'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/buradabiliyorum.com\/en\/gogs-is-the-easiest-way-to-run-a-local-git-server-heres-how-to-set-it-up\/#%E2%80%9CGogs_Is_the_Easiest_Way_to_Run_a_Local_Git_Server_Heres_How_to_Set_It_Up%E2%80%9D\" >&#8220;Gogs Is the Easiest Way to Run a Local Git Server (Here\u2019s How to Set It Up)&#8221;<\/a><ul class='ez-toc-list-level-2' ><li class='ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/buradabiliyorum.com\/en\/gogs-is-the-easiest-way-to-run-a-local-git-server-heres-how-to-set-it-up\/#The_Problem_With_Cloud-Hosted_Repositories\" >The Problem With Cloud-Hosted Repositories<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/buradabiliyorum.com\/en\/gogs-is-the-easiest-way-to-run-a-local-git-server-heres-how-to-set-it-up\/#What_Is_Gogs\" >What Is Gogs?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/buradabiliyorum.com\/en\/gogs-is-the-easiest-way-to-run-a-local-git-server-heres-how-to-set-it-up\/#How_to_Install_Gogs\" >How to Install Gogs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/buradabiliyorum.com\/en\/gogs-is-the-easiest-way-to-run-a-local-git-server-heres-how-to-set-it-up\/#A_Quick_Tour_of_Gogs\" >A Quick Tour of Gogs<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/buradabiliyorum.com\/en\/gogs-is-the-easiest-way-to-run-a-local-git-server-heres-how-to-set-it-up\/#The_Easiest_Git_Server_%E2%80%93_Bar_None\" >The Easiest Git Server \u2013 Bar None<\/a><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n<h1><span class=\"ez-toc-section\" id=\"%E2%80%9CGogs_Is_the_Easiest_Way_to_Run_a_Local_Git_Server_Heres_How_to_Set_It_Up%E2%80%9D\"><\/span>&#8220;Gogs Is the Easiest Way to Run a Local Git Server (Here\u2019s How to Set It Up)&#8221;<span class=\"ez-toc-section-end\"><\/span><\/h1>\n<div>\n<figure style=\"width: 1200px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"type:primaryImage wp-image-855624 size-full\" data-pagespeed-no-defer=\"\" src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/gogs-logo.png?width=1198&amp;trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Gogs logo on a blue background.\" width=\"1200\" height=\"675\" data-credittext=\"Gogs \/ Gogs\"\/><figcaption class=\"wp-caption-text\"><span class=\"type:primaryImage imagecredit\">Gogs<\/span><\/figcaption><\/figure>\n<p>Don\u2019t want to push your code to a hosted Git repository? Then run your own Git server in-house. Gogs is the easiest way to do that. Here\u2019s how to set it up.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"The_Problem_With_Cloud-Hosted_Repositories\"><\/span><a rel=\"nofollow noopener\" target=\"_blank\" name=\"autotoc_anchor_0\">The Problem With Cloud-Hosted Repositories<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Without a doubt, <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/git-scm.com\/\">Git<\/a> is the preeminent version control system. Even with single-developer projects, Git provides value and benefit because of its versioning functionality. For multi-developer projects, Git brings another dimension entirely. With a central, remote repository Git enables a collaborative capability that will transform the way your development teams view version control.<\/p>\n<p>That\u2019s why services like\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/github.com\/\">GitHub<\/a>,\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/about.gitlab.com\/\">GitLab<\/a>, and\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/bitbucket.org\/product\">BitBucket<\/a>\u00a0exist, and why they\u2019ve seen such uptake and growth. GitHub alone hosts over 200 million repositories. But cloud-hosted repositories don\u2019t suit everyone. Most of them charge to host private repositories. Some of them impose storage limits, user limits, or data transfer limits on free accounts.<\/p>\n<p>Even if your usage and team size fits within the restrictions of the free accounts, or even if you\u2019re willing to pay for a commercial license, you may just not feel comfortable storing your code base in the cloud.<\/p>\n<p>The alternative is to host your own Git server either locally on your own network, or privately accessible in your own private cloud. Setting up a Git server that provides a web interface with the look, feel, and options that GitHub and friends have made so popular used to require a certain degree of technical skill. That\u2019s where Gogs comes in.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"What_Is_Gogs\"><\/span><a rel=\"nofollow noopener\" target=\"_blank\" name=\"autotoc_anchor_1\">What Is Gogs?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/gogs.io\/\">Gogs<\/a>\u00a0is a relatively new project, written in\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/redirect.viglink.com\/?key=204a528a336ede4177fff0d84a044482&amp;u=https%3A%2F%2Fgo.dev%2F&amp;cuid=xid:{xid}&amp;___trxnet=vg\">Go<\/a>, that delivers an easy-to-install, yet fully-featured Git instance. There are no limits to team size, storage, or anything else.<\/p>\n<p>Even if you\u2019re a hobbyist programmer, using Gogs as a Git service on your local network lets you store a copy of your code away from your development machine. When you\u2014or someone else\u2014want to work on a different or new computer, you simply clone a repository from your Gogs server just like you would from GitHub.<\/p>\n<p>If you\u2019re going to use Gogs frequently, you\u2019ll probably find it convenient to add it to the startup applications of the computer it\u2019s running on.<\/p>\n<p><strong>RELATED:<\/strong> <strong><em>How to Run a Linux Program at Startup with systemd<\/em><\/strong><\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"How_to_Install_Gogs\"><\/span>How to Install Gogs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>To install Gogs, you download the appropriate archive file, <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.howtogeek.com\/791705\/zip-and-unzip-files-with-gzip-on-linux\/\">unzip it, and run the main binary. You fill out a few forms, and Gogs initializes your repository and adds you as the admin user. You can then browse to your Gogs instance and add users and create repositories.<\/p>\n<p>Gogs uses a database for its back-end storage. It supports\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.mysql.com\/\">MySQL<\/a>, <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/mariadb.org\/\">MariaDB<\/a>,\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.postgresql.org\/\">PostgreSQL<\/a>, and\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.pingcap.com\/\">TiDB<\/a>. If you want to use one of these powerful database engines, you must locate and install it yourself, before installing Gogs.\u00a0For smaller teams, you can use\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.SQLite3.org\/index.html\">SQLite3<\/a>. If you opt for SQLite3, it\u2019s installed for you. Of course, you\u2019ll need to have <code>git<\/code> installed, too.<\/p>\n<p>Download the\u00a0<a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/gogs.io\/docs\/installation\/install_from_binary\">appropriate binary<\/a>.<\/p>\n<ul>\n<li>For most modern Linux distributions, download the \u201cLinux amd64\u201d file.<\/li>\n<li>If you are using a 32-bit version of Linux, download the \u201cLinux 386\u201d file.<\/li>\n<li>If you\u2019re installing onto a Raspberry Pi 2 or <em>earlier<\/em>, download the \u201cLinux armv7\u201d file.<\/li>\n<li>If you\u2019re installing onto a Raspberry Pi 3, 3+, or <em>later<\/em>, download the \u201cLinux armv8\u201d file.<\/li>\n<li>If you\u2019re using an Intel Mac, download the \u201cmacOS amd64\u201d file.<\/li>\n<li>For an Apple Silicon Mac, download the \u201cmacOS arm64\u201d file.<\/li>\n<\/ul>\n<p>We downloaded the \u201cLinux amd64\u201d ZIP file, for installation onto a 64-bit computer with Ubuntu 22.10. The file is small\u2014only about 25MB\u2014so don\u2019t be surprised if it downloads very quickly. That\u2019s normal.<\/p>\n<p>Locate the file in your file system. If you\u2019ve kept your browser\u2019s default download location, the file will probably be in your \u201c~\/Downloads\u201d directory. Right-click it and select \u201cExtract\u201d from the context menu. Some file browsers might use \u201cExtract Here\u201d instead.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855626\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/1-3.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"413\" height=\"325\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>A directory is extracted from the ZIP file. It\u2019s named after the downloaded file. In our case, it was called \u201cgogs_0.11.91_linux_amd64.\u201d<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855627\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/2-2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"The extracted directory, named after the downloaded file\" width=\"267\" height=\"172\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Double-click the extracted directory and you\u2019ll see another directory called \u201cgogs.\u201d<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855628\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/3-2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"The gogs directory\" width=\"300\" height=\"210\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Double-click the \u201cgogs\u201d directory. You\u2019ll see the Gogs files and directories. Right-click in the file browser window and select \u201cOpen in Terminal\u201d from the context menu.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855629\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/4-2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"\" width=\"350\" height=\"340\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>To start your Gogs instance, type this command:<\/p>\n<p>.\/gogs web<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855630\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/5-2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Starting the gogs Git server\" width=\"644\" height=\"336\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Gogs launches, and tells you it is listening on port 3000.<\/p>\n<p>Connect to your Gogs server by opening a web browser and navigating to the IP address or network name of the computer Gogs is running on. Add \u201c:3000\u201d after the IP address or network name. Don\u2019t include any whitespace.<\/p>\n<p>If you\u2019re browsing on the computer that Gogs is running on, you can use \u201clocalhost\u201d as the machine name, like this \u201clocalhost:3000.\u201d\u00a0Our Gogs computer is called \u201cubuntu-22-10.local\u201d, so from a different computer on the same network, the address we need to browse to is \u201cubuntu-22-10.local:3000\u201d, including the port number.<\/p>\n<p>The first time you do this, you\u2019ll see the form that captures some initial setup information.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855631\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/6-2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"The database selection menu portion of the Gogs configuration screen\" width=\"644\" height=\"220\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>The first things we need to do is select \u201cSQLite3\u201d from the \u201cDatabase Type\u201d drop-down menu and enter your user name in the \u201cRun User\u201d field.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855632\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/7-2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"The &quot;Run User&quot; field of the Gogs configuration screen\" width=\"558\" height=\"110\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>If you want to set up email notifications you\u2019ll need to configure a few extra steps. You\u2019ll need to relay the emails through a Simple Mail Transfer Protocol (SMTP) mail server that you have permission to use. If you\u2019re a Google Gmail user, you can use Google\u2019s Gmail SMTP server.<\/p>\n<p>This will require settings on the mail server to allow your account to accept and relay the email. These settings vary from mail server to mail server.<\/p>\n<p>Gogs requires you to enter the following information about your email server.<\/p>\n<ul>\n<li><strong>SMTP Host<\/strong>: The address and port of the email server. In our example, this is Google\u2019s SMTP server at smtp.gmail.com:587.<\/li>\n<li><strong>From<\/strong>: The email address the email will be sent from. For Gmail this should be the Gmail email address of the account you\u2019re using.<\/li>\n<li><strong>Sender Email<\/strong>: Must be the same as above. This is the email account ID that Gogs will use to talk to the SMTP server.<\/li>\n<li><strong>Sender Password<\/strong>: This is\u00a0<strong>not<\/strong>\u00a0the password for the Gmail account. It is the <em>application-specific password<\/em> you obtain from Google when you configure your account to allow an application to send email on your behalf.<\/li>\n<li><strong>Enable Register Confirmation<\/strong>: To have Gogs verify users\u2019 emails, select this checkbox. New users will receive an email with a link in it. They must click the to prove the email address is genuine and under their control.<\/li>\n<li><strong>Enable Mail Notification<\/strong>: Tick this checkbox to allow email notifications from Gogs.<\/li>\n<\/ul>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855633\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/8-2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"The &quot;Email Service Settings&quot; portion of the Gogs configuration screen\" width=\"644\" height=\"360\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Of course, if you don\u2019t want to be pestered by emails, you can skip all the email settings.<\/p>\n<p>Click the blue \u201cInstall Gogs\u201d button when you\u2019re ready to proceed. Gogs writes a configuration file, initializes the database storage, and starts up your Git instance.<\/p>\n<p>You\u2019ll see the main Gogs home page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855634\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/9-1.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"The Gogs home page\" width=\"644\" height=\"401\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>The first user account you create will automatically be given administrator rights. Click the \u201cRegister\u201d link.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855636\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/10-2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Creating an account on the Gogs server\" width=\"550\" height=\"365\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Complete the \u201cSign Up\u201d form with your account name, a password for this account (enter it twice), and the digits from the Captcha. Click the green \u201cCreate New Account\u201d button. You\u2019ll see the \u201cSign In\u201d page.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855637\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/11-2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Signing in to Gogs\" width=\"565\" height=\"245\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Enter your account name and password, and click the green \u201cSign In\u201d button.<\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"A_Quick_Tour_of_Gogs\"><\/span>A Quick Tour of Gogs<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>If you\u2019re at all familiar with any other web-accessed Git instance, you\u2019ll find your way around Gogs very easily.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855638\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/12-3.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"The Gogs dashboard before any repositories have been created\" width=\"644\" height=\"268\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>The Gogs \u201cDashboard\u201d view is a little sparse until you have a repository to work with. Click the blue \u201c+\u201d button, and complete the \u201cNew Repository\u201d form.<\/p>\n<p>It asks for a repository name, whether it is private or public, and a description.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855639\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/13a.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Creating a new repository by providing a name and other details\" width=\"644\" height=\"300\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>The next three fields create <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.howtogeek.com\/757092\/what-are-computer-files-and-folders\/\">files from templates.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855640\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/13b.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Three fields that control the creation of default files from templates\" width=\"644\" height=\"250\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<ul>\n<li>The \u201c.gitignore\u201d menu lets you select a template for your \u201c.gitignore\u201d file configured with settings according to the selected languages. You can make more than one choice from this menu, to cater for repositories that use a mixture of development technologies.<\/li>\n<li>The \u201cLicence\u201d menu lets you pick a licence from a comprehensive list.<\/li>\n<li>The \u201cReadme\u201d menu has a single option, a default \u201cREADME.md\u201d file.<\/li>\n<\/ul>\n<p>Tick the \u201cInitialise This Repository With Selected Files and Template\u201d checkbox, and click the green \u201cCreate Repository\u201d button.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855641\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/14-1.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"A newly created repository containing three auto-generated files\" width=\"644\" height=\"380\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Your new repository is displayed for you. Gogs has created our three standard files for us, and added them to the repository with the commit message \u201cInitial commit.\u201d<\/p>\n<p>We cloned the repository to our computer, added a file called \u201cack.c\u201d, commited it, and pushed it to our remote Gogs repository. All of this was done using standard Git commands.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855642\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/15-1.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"Adding a file to the local repository and pushing it to Gogs\" width=\"644\" height=\"355\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>As expected, our new file shows up in our Gogs repository.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855643\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/16-1.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"The repository with the new file successfully pushed to it\" width=\"644\" height=\"210\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Clicking on a file shows us the content of the individual file. Markdown files are interpreted for you, with headings, links, lists, and all of the other Markdown features. \u201cREADME.md\u201d files are usually written in Markdown.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855644\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/17-2.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"The contents of the auto-generated README.md file\" width=\"644\" height=\"300\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>By clicking on the \u201cEdit\u201d pencil icon, we can directly edit our \u201cREADME.md\u201d file. We added some more text, used Markdown tags to insert hyperlinks and italics, and committed our changes. All from within Gogs.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855645\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/18.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"The updated README.md file\" width=\"644\" height=\"360\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<p>Back in our repository view, our updated \u201cREADME.md\u201d file is displayed, and the \u201cREADME.md\u201d entry in the file listing shows a new commit message and update time.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-855646\" data-pagespeed-lazy-src=\"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/19.png?trim=1,1&amp;bg-color=000&amp;pad=1,1\" alt=\"The updated README.md file with a new commit message and timestamp\" width=\"646\" height=\"200\" src=\"\/pagespeed_static\/1.JiBnMqyl6S.gif\" onload=\"pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\" onerror=\"this.onerror=null;pagespeed.lazyLoadImages.loadIfVisibleAndMaybeBeacon(this);\"\/><\/p>\n<h2 role=\"heading\" aria-level=\"2\"><span class=\"ez-toc-section\" id=\"The_Easiest_Git_Server_%E2%80%93_Bar_None\"><\/span>The Easiest Git Server \u2013 Bar None<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Gogs is an absolute triumph. It perfectly blends functionality with simplicity.<\/p>\n<p>Out of the box, it will meet the needs of the majority of hobbyist or small development teams.\u00a0Some of its advanced options are activated by editing the config file which, by default, is located at \u201c~\/Downloads\/gogs_0.12.10_linux_amd64\/gogs\/custom\/conf\/app.ini.\u201d\u00a0Note that the path will reflect the version of Gogs you\u2019re using.<\/p>\n<p>General system administration can be performed from the admin panel, found at <code>Your Profile &gt; Admin panel<\/code>.<\/p>\n<p>Although the Gogs documentation is brief to the point of being terse, that does mean it\u2019s easy to find what you\u2019re looking for, and the descriptions are detailed enough for you to follow.<\/p>\n<p>If you\u2019re wary about <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/www.howtogeek.com\/775235\/what-is-cloud-storage-and-why-should-you-use-it\/\">cloud-hosted repositories that are ultimately under the control of others, consider using Gogs locally. You won\u2019t lose functionality, but you will gain control and guaranteed privacy.<\/p>\n<p><strong>RELATED:<\/strong> <strong><em>How to Check and Update Your Git Version<\/em><\/strong><\/p>\n<\/div>\n<p><script>\n setTimeout(function(){\n  !function(f,b,e,v,n,t,s)\n  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n  n.callMethod.apply(n,arguments):n.queue.push(arguments)};\n  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n  n.queue=[];t=b.createElement(e);t.async=!0;\n  t.src=v;s=b.getElementsByTagName(e)[0];\n  s.parentNode.insertBefore(t,s) } (window, document,'script',\n  'https:\/\/connect.facebook.net\/en_US\/fbevents.js');\n   fbq('init', '335401813750447');\n   fbq('track', 'PageView');\n  },3000);\n<\/script><\/p>\n<blockquote><p><strong><span style=\"color: #ff6600;\">If you liked the article, do not forget to share it with your friends. Follow us on\u00a0<span style=\"color: #ff0000;\"><a style=\"color: #ff0000;\" href=\"https:\/\/news.google.com\/publications\/CAAqBwgKMLG0nwswvr63Aw\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Google News<\/a><\/span>\u00a0too, click on the star and choose us from your favorites.<\/span><\/strong><\/p><\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\">For forums sites go to <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/forum.buradabiliyorum.com\/\" target=\"_blank\" rel=\"noopener\">Forum.BuradaBiliyorum.Com<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<blockquote>\n<p style=\"text-align: center;\"><strong>If you want to read more like this article, you can visit our <span style=\"color: #ff9900;\"><a style=\"color: #ff9900;\" href=\"https:\/\/en.buradabiliyorum.com\/technology\/\" target=\"_blank\" rel=\"noopener\">Technology category.<\/a><\/span><\/strong><\/p>\n<\/blockquote>\n<p><span style=\"color: black;\"><a style=\"color: #ff9900;\" href=\"https:\/\/www.howtogeek.com\/855298\/gogs-is-the-easiest-way-to-run-a-local-git-server-how-to-set-it-up\/\" target=\"_blank\" rel=\"noopener\">Source<\/a><\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>&#8220;Gogs Is the Easiest Way to Run a Local Git Server (Here\u2019s How to Set It Up)&#8221; Gogs Don\u2019t want to push your code to a hosted Git repository? Then run your own Git server in-house. Gogs is the easiest way to do that. Here\u2019s how to set it up. The Problem With Cloud-Hosted Repositories&#8230;<\/p>\n","protected":false},"author":1,"featured_media":532608,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"https:\/\/www.howtogeek.com\/wp-content\/uploads\/2022\/12\/gogs-logo.png?height=200p&trim=2,2,2,2","fifu_image_alt":"","footnotes":""},"categories":[18],"tags":[],"class_list":["post-532607","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technology"],"_links":{"self":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/532607","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/comments?post=532607"}],"version-history":[{"count":0,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/posts\/532607\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media\/532608"}],"wp:attachment":[{"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/media?parent=532607"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/categories?post=532607"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/buradabiliyorum.com\/en\/wp-json\/wp\/v2\/tags?post=532607"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}