{"id":841,"date":"2018-01-25T00:00:29","date_gmt":"2018-01-24T16:00:29","guid":{"rendered":"https:\/\/www.techcoil.com\/blog\/?p=841"},"modified":"2018-06-05T23:44:16","modified_gmt":"2018-06-05T15:44:16","slug":"setting-up-a-fast-git-server-on-raspberry-pi-zero-w-with-go-git-service-gogs-and-raspbian-stretch-lite","status":"publish","type":"post","link":"https:\/\/www.techcoil.com\/blog\/setting-up-a-fast-git-server-on-raspberry-pi-zero-w-with-go-git-service-gogs-and-raspbian-stretch-lite\/","title":{"rendered":"Setting up a fast git server on Raspberry Pi Zero W with Go Git Service (Gogs) and Raspbian Stretch Lite"},"content":{"rendered":"<p>The <a href=\"https:\/\/golang.org\/\" rel=\"noopener\" target=\"_blank\">Go Programming Language<\/a> is a compiled programming language created by Robert Griesemer, Rob Pike, and Ken Thompson from Google in 2009. With Google Go, it is possible to build programs that run efficiently on minimum hardware resources. The compiled code runs close to the speed of C. Use cases of Go Programming language includes <a href=\"https:\/\/www.docker.com\/\" rel=\"noopener\" target=\"_blank\">Docker<\/a>, <a href=\"https:\/\/kubernetes.io\/\" rel=\"noopener\" target=\"_blank\">Kubernetes<\/a> and <a href=\"https:\/\/gogs.io\/\" rel=\"noopener\" target=\"_blank\">Go Git Service<\/a>.<\/p>\n<p>If you happen to need a self-hosted git server to track software projects that you build on the side, you can consider using Go Git Service. With the <a href=\"https:\/\/www.amazon.com\/CanaKit-Raspberry-Wireless-Official-Supply\/dp\/B071L2ZQZX\/ref=as_li_ss_tl?s=pc&ie=UTF8&qid=1516686491&sr=1-3&keywords=raspberry+pi+zero+w&linkCode=ll1&tag=clivsperswebs-20&linkId=b3a6f93817b52842e1e9e3e2c8815d0c\" rel=\"noopener\" target=\"_blank\">Raspberry Pi Zero W bundle set<\/a>, you can set up a fast git server that does not take up too much space on your desk.<\/p>\n<p>This post details how you can setup a fast git server on Raspberry Pi Zero W with Go Git Service and <a href=\"https:\/\/www.raspbian.org\/\" rel=\"noopener\" target=\"_blank\">Raspbian<\/a> Stretch Lite.  <\/p>\n<h2>Recommended hardware for Raspberry Pi Zero W fast git server<\/h2>\n<p>You can setup a fast git server with the following hardware:<\/p>\n<ul>\n<li><a href=\"https:\/\/www.amazon.com\/CanaKit-Raspberry-Wireless-Official-Supply\/dp\/B071L2ZQZX\/ref=as_li_ss_tl?s=electronics&ie=UTF8&qid=1516686866&sr=1-3&keywords=raspberry+pi+zero+w&linkCode=ll1&tag=clivsperswebs-20&linkId=4ee453a34fb28f385cfc66e2f03db0c6\" rel=\"noopener\" target=\"_blank\">CanaKit Raspberry Pi Zero W (Wireless) with Official Case and Power Supply<\/a><\/li>\n<li><a href=\"https:\/\/www.amazon.com\/Sandisk-Ultra-128GB-Micro-Adapter\/dp\/B073JYC4XM\/ref=as_li_ss_tl?ie=UTF8&linkCode=ll1&tag=clivsperswebs-20&linkId=4d9622f4d0de2ad5392ae1b6439b9632\" rel=\"noopener\" target=\"_blank\">Sandisk Ultra 128GB Micro SDXC UHS-I Card with Adapter<\/a><\/li>\n<\/ul>\n<h2>Required hardware to install Raspbian Stretch Lite onto the microSD<\/h2>\n<p>Raspberry Pi Zero W board will load Raspbian Stretch Lite from a microSD card. Hence, we will need to have a computer with a <a href=\"https:\/\/www.amazon.com\/gp\/product\/B00NNF4I5M\/ref=as_li_ss_tl?imprToken=ket7E4OtldP2N6A0qtXgQg&slotNum=8&ie=UTF8&linkCode=ll1&tag=clivsperswebs-20&linkId=60412bb345d8a162d8f0a30e35b21cd3\" rel=\"noopener\" target=\"_blank\">SD card reader<\/a>. If your computer does not come with a SD card reader, you have to get one.<\/p>\n<h2>Downloading Raspbian Stretch Lite for Raspberry Pi Zero W<\/h2>\n<p>Compared to Raspbian Stretch, Raspbian Stretch Lite does have a desktop environment. Hence, it is suitable to be used as the operating system for your fast git server.<\/p>\n<p>Once you have the necessary hardware on your table, proceed to <a href=\"https:\/\/www.raspberrypi.org\/downloads\/raspbian\/\" rel=\"noopener\" target=\"_blank\">download a copy of Raspbian Stretch Lite<\/a>. As of this writing, the one that was available was dated 29th November 2017:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspbian-stretch-download-page-dated-20171129.gif\" alt=\"Raspbian Stretch download page dated 20171129\" \/><\/p>\n<p>Click on the <a href=\"https:\/\/downloads.raspberrypi.org\/raspbian_lite\/images\/raspbian_lite-2017-12-01\/2017-11-29-raspbian-stretch-lite.zip\" rel=\"noopener\" target=\"_blank\"><strong>Download Zip<\/strong><\/a> button for Raspbian Stretch Lite and save the zip file onto your file system.<\/p>\n<h2>Installing Raspbian Stretch Lite onto the microSD card<\/h2>\n<p>Once your browser had completed the download for the <code>.zip<\/code> file, extract the <code>.img<\/code> file from the <code>.zip<\/code> file. The <code>.img<\/code> file is the operating system image for installing Raspbian Stretch Lite onto your microSD card.<\/p>\n<p>I <a href=\"\/blog\/an-easy-way-to-install-raspberry-pi-operating-system-on-a-mac\/\" target=\"_blank\">used Etcher on my MacBook Pro to install the operating system image onto the microSD card<\/a>.<\/p>\n<p>If you are using a windows machine, you can <a href=\"\/blog\/how-to-prepare-the-operating-system-to-run-your-raspberry-pi-with-your-windows-machine\/\" target=\"_blank\">use Win32DiskImager to install the operating system for your Raspberry Pi Zero W<\/a>.<\/p>\n<p>If you are using a Linux desktop, you should be able to Etcher to install the operating system for your Raspberry Pi Zero W.<\/p>\n<h2>Enabling SSH server on Raspbian Stretch Lite first boot<\/h2>\n<p>With an SSH server running on Raspbian Stretch Lite, you do not need to find a spare keyboard, spare monitor, a <a href=\"https:\/\/www.amazon.com\/CableCreation-Mini-HDMI-Converter-Adapter-Resolution\/dp\/B01HQ2H2S2\/ref=as_li_ss_tl?ie=UTF8&qid=1512019368&sr=8-1-spons&keywords=mini-HDMI-to-HDMI+adapter&psc=1&linkCode=ll1&tag=clivsperswebs-20&linkId=55d25ff7b08f0cecca289c6a7c425ab1\" rel=\"noopener\" target=\"_blank\">mini HDMI to HDMI adapter<\/a> and a <a href=\"https:\/\/www.amazon.com\/UGREEN-Adapter-Samsung-Android-Function\/dp\/B00LN3LQKQ\/ref=as_li_ss_tl?s=electronics&ie=UTF8&qid=1512019500&sr=1-4&keywords=OTG+Cable&linkCode=ll1&tag=clivsperswebs-20&linkId=4465cebca9c0e464d7811712a7dabceb\" rel=\"noopener\" target=\"_blank\">OTG cable<\/a> in order to configure Raspbian Stretch Lite after it had booted up for the first time. <\/p>\n<p>To ensure that you have the SSH server running on your Raspbian Stretch Lite after the first boot, create an empty file named \"ssh\u201d in the boot partition of the microSD card:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspbian-stretch-lite-20171212-boot-with-ssh-file.gif\" alt=\"Raspbian Stretch Lite 20171212 boot with ssh file\"\/><\/p>\n<h2>Getting Raspberry Pi Zero W connect to your 2.4 GHz Wi-Fi network on first boot<\/h2>\n<p>The SSH server is the first piece to allow remote configuration of the Raspbian Stretch Lite operating system running the Raspberry Pi Zero W. The other piece is the Wi-Fi connection from your Raspberry Pi Zero W to your home network.  <\/p>\n<p>The Wi-Fi chip on Raspberry Pi Zero W connects to a 2.4 GHz Wi-Fi network. To get your Raspberry Pi Zero W to connect to your 2.4 GHz Wi-Fi network, create a text file with content similar to the following:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\ncountry=SG\r\nctrl_interface=DIR=\/var\/run\/wpa_supplicant GROUP=netdev\r\nupdate_config=1\r\n \r\nnetwork={\r\n        scan_ssid=1\r\n        ssid=&quot;the_2.4-hz-wireless-network&quot;\r\n        psk=&quot;the_2.4-hz-wireless-network_password&quot;\r\n        proto=WPA\r\n        key_mgmt=WPA-PSK \r\n}\r\n<\/pre>\n<p>and place it into the boot partition of the microSD card:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspbian-stretch-lite-20171212-boot-folder-with-wpa_supplicant-and-ssh.gif\" alt=\"Raspbian Stretch Lite 20171212 boot folder with wpa_supplicant and ssh\" \/><\/p>\n<p>Be sure to replace the country, ssid and psk values to the appropriate values for your 2.4GHz Wi-Fi network.<\/p>\n<p>Once you had created the <code>wpa_supplicant.conf<\/code> file that reflects your 2.4 GHz Wi-Fi network configurations,<\/p>\n<ol>\n<li>copy the <code>wpa_supplicant.conf<\/code> file into the boot partition of the microSD card,<\/li>\n<li>remove it from your computer,<\/li>\n<li>insert it into the microSD card slot on your Raspberry Pi Zero W board.<\/li>\n<\/ol>\n<h2>Booting up Raspbian Stretch Lite<\/h2>\n<p>After assembling the Raspberry Pi Zero W board to the Raspberry Pi Zero official case, connect the power supply to the power port on your Raspberry Pi Zero W board and the wall socket. <\/p>\n<p>After switching on the wall socket which your USB charger was plugged into, the Raspberry Pi Zero W board will boot up the Raspbian Stretch Lite operating system.<\/p>\n<h2>Getting the IP address of your Raspberry Pi Zero W<\/h2>\n<p>When Raspbian Stretch Lite booted up, it will get an IP address from <a href=\"https:\/\/www.amazon.com\/Linksys-AC1900-Wireless-Router-EA7500\/dp\/B019WAQMVY\/ref=as_li_ss_tl?ie=UTF8&qid=1513180397&sr=8-1&keywords=Linksys+EA7500+Max-Stream+AC1900&linkCode=ll1&tag=clivsperswebs-20&linkId=44bb12933151ca6c5655e6390ca50fcb\" rel=\"noopener\" target=\"_blank\">your router<\/a>. This IP address is needed for you to SSH into your Raspberry Pi Zero W. To get the IP Address that your router had allocated to your Raspbian Stretch Lite, go to your router's address allocation table and find an entry with the name <strong>raspberrypi<\/strong>. <\/p>\n<h2>Getting into the Raspbian Stretch Lite operating system via SSH from your computer<\/h2>\n<p>The default credentials to log into Raspberry Pi Stretch Lite is as follows:<br \/>\nUsername: <strong>pi<\/strong><br \/>\nPassword: <strong>raspberry<\/strong><\/p>\n<p>Suppose your router allocated your Raspbian Stretch Lite the IP address <strong>192.168.1.123<\/strong>. With the default credentials and the IP address that your router had given to your Raspbian Stretch Lite, you can then use SSH to get into the operating system:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nssh pi@192.168.1.123\r\n<\/pre>\n<p>Enter <strong>raspberry<\/strong> when Raspbian Stretch Lite prompts for password. With that, your Raspbian Stretch Lite should greet you with output similar to the following:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nLinux raspberrypi 4.9.59+ #1047 Sun Oct 29 11:47:10 GMT 2017 armv6l\r\n\r\nThe programs included with the Debian GNU\/Linux system are free software;\r\nthe exact distribution terms for each program are described in the\r\nindividual files in \/usr\/share\/doc\/*\/copyright.\r\n\r\nDebian GNU\/Linux comes with ABSOLUTELY NO WARRANTY, to the extent\r\npermitted by applicable law.\r\n\r\nSSH is enabled and the default password for the 'pi' user has not been changed.\r\nThis is a security risk - please login as the 'pi' user and type 'passwd' to set a new password.\r\n<\/pre>\n<h2>Changing the default password of the pi user<\/h2>\n<p>Since Raspbian Stretch Lite suggested that using the default password for the 'pi' user is a security risk, the next thing that you should do is to change the default password. To do so, enter the following command:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\npasswd\r\n<\/pre>\n<p>For the three prompts that follow the command, enter <strong>raspberry<\/strong> and your favourite password twice.<\/p>\n<h2>Configuring the locale settings on Raspbian Stretch Lite<\/h2>\n<p>The next thing that to do is to configure the locale settings for your Raspbian Stretch Lite. To do so, first fire up the Raspberry Pi Software Configuration Tool:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo raspi-config\r\n<\/pre>\n<p>With the Software Configuration Tool, follow through the following screens to generate the \"en_US.UTF-8\" locale and set it as the default locale for the system environment:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspberry-pi-zero-w-raspi-config-raspbian-stretch-lite-with-localisation-options-selected.gif\" alt=\"Raspberry Pi Zero W raspi-config Raspbian Stretch Lite with localisation options selected\"\/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspi-config-raspbian-stretch-lite-20171129-with-localisation-options-change-locale-selected.gif\" alt=\"raspi-config Raspbian Stretch Lite 20171129 with localisation options change locale selected\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspi-config-raspbian-stretch-lite-screen-for-generating-en-us-utf-8-locale.gif\" alt=\"raspi-config Raspbian Stretch Lite screen for generating en-us utf-8 locale\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspi-config-raspbian-stretch-lite-setting-en-us-utf-8-as-default-locale-for-system-environment.gif\" alt=\"raspi-config Raspbian Stretch Lite setting en-us utf-8 as default locale for system environment\" \/><\/p>\n<p>After doing so, I open up <code>\/etc\/default\/locale<\/code> with nano:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo nano \/etc\/default\/locale\r\n<\/pre>\n<p>And update the contents to look like the following:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\nLANG=en_US.UTF-8\r\nLC_ALL=en_US.UTF-8\r\nLANGUAGE=en_US.UTF-8\r\n<\/pre>\n<p>This will ensure that the locale settings for your Raspbian Stretch Lite persist through system reboots.<\/p>\n<h2>Changing Timezone<\/h2>\n<p>The default timezone of Raspbian Stretch Lite is \"Etc\/UTC\", which is not the timezone that your git server will sit in.<\/p>\n<p>Suppose that you want to change the timezone on your Raspbian Stretch Lite to Singapore's timezone, use the Raspberry Pi Software Configuration Tool mentioned earlier and go through the following steps:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspberry-pi-zero-w-raspi-config-raspbian-stretch-lite-with-localisation-options-selected.gif\" alt=\"Raspberry Pi Zero W raspi-config Raspbian Stretch Lite with localisation options selected\"\/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspberry-pi-zero-w-raspi-config-raspbian-stretch-lite-20171129-with-change-timezone-selected.gif\" alt=\"Raspberry Pi Zero W raspi-config Raspbian Stretch Lite 20171129 with change timezone selected\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspberry-pi-zero-w-raspi-config-raspbian-stretch-lite-with-asia-selected.gif\" alt=\"Raspberry Pi Zero W raspi-config Raspbian Stretch Lite with Asia selected\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspberry-pi-zero-w-raspi-config-raspbian-stretch-lite-with-singapore-selected.gif\" alt=\"Raspberry Pi Zero W raspi-config Raspbian Stretch Lite with Singapore selected\" \/><\/p>\n<h2>Installing Git<\/h2>\n<p>After you got the Timezone that you preferred, the next item to install is Git. To do so, run the following command in terminal:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo apt-get install git -y\r\n<\/pre>\n<h2>Downloading a copy of Go Git Service for Raspberry Pi Zero W<\/h2>\n<p>We can download precompiled versions of Go Git Service for different platforms from the <a href=\"https:\/\/gogs.io\/docs\/installation\/install_from_binary\" rel=\"noopener\" target=\"_blank\">Go Git Service download page<\/a>. There is also a version compiled for Raspberry Pi. As of this writing, the latest version is 0.11.34. Run the following commands to download a copy of Go Git Service onto your Raspberry Pi Zero W:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">   \r\ncd \/opt\r\nsudo wget https:\/\/dl.gogs.io\/0.11.34\/raspi2_armv6.zip\r\nsudo unzip raspi2_armv6.zip\r\nsudo rm raspi2_armv6.zip\r\n<\/pre>\n<p>That will place the contents of Go Git Service 0.11.34 into the <code>\/opt\/gogs<\/code> directory. <\/p>\n<h2>Creating the system user account that will run Go Git Service<\/h2>\n<p>Once you had downloaded Go Git Service, the next step is to create a system user account that will run Go Git Service. <\/p>\n<p>To do so, run the following command:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo adduser --disabled-login --gecos 'Go Git Service' git\r\n<\/pre>\n<p>After the command completes, you will have a system user account named as <strong>git<\/strong>. This user account cannot be used for logging into Raspbian Stretch Lite. In addition, the home directory of this system user account will be at <code>\/home\/git<\/code>. <\/p>\n<h2>Making git the owner of \/opt\/gogs<\/h2>\n<p>To enable the git user account to run Go Git Service, you will need to make it the owner of the <code>\/opt\/gogs<\/code> directory. To do so, run the following command:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo chown -R git:git \/opt\/gogs\r\n<\/pre>\n<h2>Using systemctl to run Go Git Service<\/h2>\n<p>Once you had ensured that the git user has the privileges to run the Go Git Service binary, you can then proceed on to configuring systemctl to run Go Git Service.<\/p>\n<p>Use a text editor to open up <code>\/opt\/gogs\/scripts\/systemd\/gogs.service<\/code>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo nano \/opt\/gogs\/scripts\/systemd\/gogs.service\r\n<\/pre>\n<p>Edit the content to look like the following:<\/p>\n<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n&#x5B;Unit]\r\nDescription=Gogs\r\nAfter=syslog.target\r\nAfter=network.target\r\n#After=mariadb.service mysqld.service postgresql.service memcached.service redis.service\r\n&#x5B;Service]\r\n# Modify these two values and uncomment them if you have\r\n# repos with lots of files and get an HTTP error 500 because\r\n# of that\r\n###\r\n#LimitMEMLOCK=infinity\r\n#LimitNOFILE=65535\r\nType=simple\r\nUser=git\r\nGroup=git\r\nWorkingDirectory=\/home\/git\/gogs\r\nExecStart=\/opt\/gogs\/gogs web\r\nRestart=always\r\nEnvironment=USER=git HOME=\/home\/git\r\n\r\n&#x5B;Install]\r\nWantedBy=multi-user.target\r\n<\/pre>\n<p>After saving changes to <code>\/opt\/gogs\/scripts\/systemd\/gogs.service<\/code>, create the <code>\/home\/git\/gogs<\/code> directory to serve as the working directory for Go Git Service:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo -H -u git mkdir \/home\/git\/gogs\r\n<\/pre>\n<p>After that, enable your Go Git Service so that it can be ran by <code>systemctl<\/code>:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo systemctl enable \/opt\/gogs\/scripts\/systemd\/gogs.service\r\n<\/pre>\n<p>This will cause symbolic links to be created in the <code>\/etc\/systemd\/system\/multi-user.target.wants<\/code> and <code>\/etc\/systemd\/system<\/code> directories. These new symbolic links will link to <code>\/opt\/gogs\/scripts\/systemd\/gogs.service<\/code>.<\/p>\n<p>Once <code>systemctl<\/code> is ready to run your Go Git Service, you can run the following command to start Go Git Service:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo systemctl start gogs.service\r\n<\/pre>\n<p>You can then verify whether Go Git Service had started successfully by running the following command:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\nsudo systemctl status gogs.service\r\n<\/pre>\n<p>You should see output similar to the following when your Go Git Service was started successfully:<\/p>\n<pre class=\"brush: bash; title: ; notranslate\" title=\"\">\r\n\u25cf gogs.service - Gogs\r\n   Loaded: loaded (\/opt\/gogs\/scripts\/systemd\/gogs.service; enabled; vendor preset: enabled)\r\n   Active: active (running) since Wed 2018-01-24 10:43:20 UTC; 4s ago\r\n Main PID: 2592 (gogs)\r\n   CGroup: \/system.slice\/gogs.service\r\n           \u2514\u25002592 \/opt\/gogs\/gogs web\r\n\r\nJan 24 10:43:21 raspberrypi gogs&#x5B;2592]: 2018\/01\/24 10:43:21 &#x5B;TRACE] Log path: \/opt\/gogs\/log\r\nJan 24 10:43:21 raspberrypi gogs&#x5B;2592]: 2018\/01\/24 10:43:21 &#x5B;TRACE] Build Time: 2017-11-22 08:06:22 UTC\r\nJan 24 10:43:21 raspberrypi gogs&#x5B;2592]: 2018\/01\/24 10:43:21 &#x5B;TRACE] Build Git Hash: 6f2347fc71f17b5703a9b1f383a2d3451f88b741\r\nJan 24 10:43:21 raspberrypi gogs&#x5B;2592]: 2018\/01\/24 10:43:21 &#x5B;TRACE] Log Mode: Console (Trace)\r\nJan 24 10:43:21 raspberrypi gogs&#x5B;2592]: 2018\/01\/24 10:43:21 &#x5B; INFO] Gogs 0.11.34.1122\r\nJan 24 10:43:21 raspberrypi gogs&#x5B;2592]: 2018\/01\/24 10:43:21 &#x5B; INFO] Cache Service Enabled\r\nJan 24 10:43:21 raspberrypi gogs&#x5B;2592]: 2018\/01\/24 10:43:21 &#x5B; INFO] Session Service Enabled\r\nJan 24 10:43:21 raspberrypi gogs&#x5B;2592]: 2018\/01\/24 10:43:21 &#x5B; INFO] SQLite3 Supported\r\nJan 24 10:43:21 raspberrypi gogs&#x5B;2592]: 2018\/01\/24 10:43:21 &#x5B; INFO] Run Mode: Development\r\nJan 24 10:43:24 raspberrypi gogs&#x5B;2592]: 2018\/01\/24 10:43:24 &#x5B; INFO] Listen: http:\/\/0.0.0.0:3000\r\n<\/pre>\n<h2>Running the installation process from Go Git Service<\/h2>\n<p>After you are done with the systems configurations, the final step will be to run the installation process from Go Git Service.<\/p>\n<p>To do so, access your Go Git Service with your browser via <strong>http:\/\/192.168.1.123:3000<\/strong>, where 192.168.1.123 is the ip address of the Raspberry Pi Zero W. <\/p>\n<p>You will see a web page that asks for some initial software configurations.<\/p>\n<p>Supply the following settings as your initial configurations:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/gogs-v-0.11.34-install-steps-for-first-time-run-part-1.gif\" alt=\"Gogs v-0.11.34 install steps for first time run part 1\" \/><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/gogs-v-0.11.34-install-steps-for-first-time-run-part-2.gif\" alt=\"Gogs v-0.11.34 install steps for first time run part 2\" \/><\/p>\n<p>And click the <strong>Install Gogs<\/strong> button.<\/p>\n<p>Once Go Git Service had initialized itself, you will be able to see a screen similar to the following:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/gogs-v-0.11.34-dashboard-after-first-time-run-install.gif\" alt=\"Gogs v-0.11.34 dashboard after first time run install\" \/><\/p>\n<h2>Buy the Raspberry Pi Zero W hardware to build your own Go Git Service<\/h2>\n<p>If you do not have the Raspberry Pi Zero W hardware mentioned in this post yet, you may want to purchase them from Amazon. Simply click on the button below to add the Raspberry Pi Zero W hardware to your cart. You may remove anything that you already have or replace some of the hardware with other hardware.<\/p>\n<p><center><\/p>\n<form action=\"https:\/\/www.amazon.com\/gp\/aws\/cart\/add.html\" method=\"GET\" target=\"_blank\"><input name=\"AssociateTag\" type=\"hidden\" value=\"clivsperswebs-20\"><input name=\"SubscriptionId\" type=\"hidden\" value=\"[AKIAIMND5UBCQU2HRSUA]\"><input name=\"ASIN.1\" type=\"hidden\" value=\"B071L2ZQZX\"><input name=\"Quantity.1\" type=\"hidden\" value=\"1\"><input name=\"ASIN.2\" type=\"hidden\" value=\"B073JYC4XM\"><input name=\"Quantity.2\" type=\"hidden\" value=\"1\"><br \/>\n<input alt=\"Buy from Amazon.com\" name=\"add\" type=\"image\" src=\"https:\/\/images-na.ssl-images-amazon.com\/images\/G\/01\/associates\/remote-buy-box\/buy4.gif\" value=\"Buy from Amazon.com\"><\/form>\n<p><\/center><\/p>\n\n      <ul id=\"social-sharing-buttons-list\">\n        <li class=\"facebook\">\n          <a href=\"https:\/\/www.facebook.com\/sharer\/sharer.php?u=https%3A%2F%2Fwp.me%2Fp245TQ-dz\" target=\"_blank\" role=\"button\" rel=\"nofollow\">\n            <img decoding=\"async\" src=\"\/ph\/img\/3rd-party\/social-icons\/Facebook.png\" alt=\"Facebook icon\"> Share\n          <\/a>\n        <\/li>\n        <li class=\"twitter\">\n          <a href=\"https:\/\/twitter.com\/intent\/tweet?text=&url=https%3A%2F%2Fwp.me%2Fp245TQ-dz&via=Techcoil_com\" target=\"_blank\" role=\"button\" rel=\"nofollow\">\n          <img decoding=\"async\" src=\"\/ph\/img\/3rd-party\/social-icons\/Twitter.png\" alt=\"Twitter icon\"> Tweet\n          <\/a>\n        <\/li>\n        <li class=\"linkedin\">\n          <a href=\"https:\/\/www.linkedin.com\/shareArticle?mini=1&title=&url=https%3A%2F%2Fwp.me%2Fp245TQ-dz&source=https:\/\/www.techcoil.com\" target=\"_blank\" role=\"button\" rel=\"nofollow\">\n          <img decoding=\"async\" src=\"\/ph\/img\/3rd-party\/social-icons\/linkedin.png\" alt=\"Linkedin icon\"> Share\n          <\/a>\n        <\/li>\n        <li class=\"pinterest\">\n          <a href=\"https:\/\/pinterest.com\/pin\/create\/button\/?url=https%3A%2F%2Fwww.techcoil.com%2Fblog%2Fwp-json%2Fwp%2Fv2%2Fposts%2F841&description=\" class=\"pin-it-button\" target=\"_blank\" role=\"button\" rel=\"nofollow\" count-layout=\"horizontal\">\n          <img decoding=\"async\" src=\"\/ph\/img\/3rd-party\/social-icons\/Pinterest.png\" alt=\"Pinterest icon\"> Save\n          <\/a>\n        <\/li>\n      <\/ul>\n    ","protected":false},"excerpt":{"rendered":"<p>The <a href=\"https:\/\/golang.org\/\" rel=\"noopener\" target=\"_blank\">Go Programming Language<\/a> is a compiled programming language created by Robert Griesemer, Rob Pike, and Ken Thompson from Google in 2009. With Google Go, it is possible to build programs that run efficiently on minimum hardware resources. The compiled code runs close to the speed of C. Use cases of Go Programming language includes <a href=\"https:\/\/www.docker.com\/\" rel=\"noopener\" target=\"_blank\">Docker<\/a>, <a href=\"https:\/\/kubernetes.io\/\" rel=\"noopener\" target=\"_blank\">Kubernetes<\/a> and <a href=\"https:\/\/gogs.io\/\" rel=\"noopener\" target=\"_blank\">Go Git Service<\/a>.<\/p>\n<p>If you happen to need a self-hosted git server to track software projects that you build on the side, you can consider using Go Git Service. With the <a href=\"https:\/\/www.amazon.com\/CanaKit-Raspberry-Wireless-Official-Supply\/dp\/B071L2ZQZX\/ref=as_li_ss_tl?s=pc&#038;ie=UTF8&#038;qid=1516686491&#038;sr=1-3&#038;keywords=raspberry+pi+zero+w&#038;linkCode=ll1&#038;tag=clivsperswebs-20&#038;linkId=b3a6f93817b52842e1e9e3e2c8815d0c\" rel=\"noopener\" target=\"_blank\">Raspberry Pi Zero W bundle set<\/a>, you can set up a fast git server that does not take up too much space on your desk.<\/p>\n<p>This post details how you can setup a fast git server on Raspberry Pi Zero W with Go Git Service and <a href=\"https:\/\/www.raspbian.org\/\" rel=\"noopener\" target=\"_blank\">Raspbian<\/a> Stretch Lite.  <\/p>\n","protected":false},"author":1,"featured_media":937,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"footnotes":""},"categories":[4],"tags":[486,311,487,240,409,445,195,488,313],"jetpack_featured_media_url":"https:\/\/www.techcoil.com\/blog\/wp-content\/uploads\/raspberry-pi-zero-w-on-keyboard.jpg","jetpack_shortlink":"https:\/\/wp.me\/p245TQ-dz","jetpack-related-posts":[],"jetpack_likes_enabled":true,"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.techcoil.com\/blog\/wp-json\/wp\/v2\/posts\/841"}],"collection":[{"href":"https:\/\/www.techcoil.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.techcoil.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.techcoil.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.techcoil.com\/blog\/wp-json\/wp\/v2\/comments?post=841"}],"version-history":[{"count":0,"href":"https:\/\/www.techcoil.com\/blog\/wp-json\/wp\/v2\/posts\/841\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.techcoil.com\/blog\/wp-json\/wp\/v2\/media\/937"}],"wp:attachment":[{"href":"https:\/\/www.techcoil.com\/blog\/wp-json\/wp\/v2\/media?parent=841"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.techcoil.com\/blog\/wp-json\/wp\/v2\/categories?post=841"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.techcoil.com\/blog\/wp-json\/wp\/v2\/tags?post=841"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}