The Gogs is a compact and self-hosted hassle-free Git service that you can install on your Ubuntu Linux server and distribution to enjoy the Git facilities. The Gogs services are lightweight yet powerful; you can install the Gogs services on Docker, cloud server, and even on a Raspberry Pi system. Even old PC and hardware systems can handle the Gogs services. The Gogs is written in the Go language. The simple dashboard, custom domain support, HTTP security, and multi-database support of the Gogs Git Service will give you a comfortable setting to use the Git service on your Ubuntu system.
Gogs Git Service on Ubuntu Linux
Installing Gogs Git Service on Ubuntu Linux is not a complicated procedure, either not a quick process. You can install it on your machine and use the Gogs services through a domain or a localhost server. To get the Gogs services on your Ubuntu machine, you will need to install a database engine, an HTTP server, and the Git services on your system.
This post will see how you can install, configure, and get started with the Gogs services on a Ubuntu Linux system. If you have a Linux server, mostly a Ubuntu server running on your machine, installing Gogs can be a lot easier.
Step 1: Install Database on Ubuntu Linux
As the Gogs service requires a database engine, you can choose your favorite DB engine among MySQL, PostgreSQL, TiDB, and SQLite3 databases. Here, I will install PostgreSQL on my Ubuntu Linux system. You can run the following command-line given below to install the PostgreSQL on your Ubuntu system with root privileges.
sudo apt install -y postgresql postgresql-client libpq-dev
Once PostgreSQL is installed on your system, you may now run the following system control commands to start and enable the database on your Ubuntu system. If you can’t find the default password of your PostgreSQL or find any issues, you can see this post to know how to set up and get started with PostgreSQL on Linux.
systemctl start postgresql systemctl enable postgresql
Now, we have to create a database for the Gogs service on our Ubuntu system. You can now run the following commands to log in to your DB engine.
su - postgres psql
After logging in, create a user, and set a new password for the database. I must mention, you should note down the database name and the password; you will need this information later to sign in to the Gogs dashboard.
CREATE USER git CREATEDB; \password git
If your login is successful, you may now run the following SQL commands on your terminal shell to create a database for the Gogs git services on your Ubuntu system.
CREATE DATABASE gogs_production OWNER git;
Step 2: Install Gogs on Ubuntu Linux
In this step, we will see the process of installing the Gogs service on our Ubuntu Linux. Now, we will download the compressed version of the Gogs service on our Linux filesystem. You need to install the Wget service on your Ubuntu system to get the Gogs file. If you already have the wget
installed, you can just run the export and wget
command-line is given below.
sudo apt install wget export VER=0.11.86 wget https://github.com/gogs/gogs/releases/download/v${VER}/linux_amd64.tar.gz
After finishing the download, you can run the following tar command on your Ubuntu terminal shell to extract the compressed file.
tar xvf linux_amd64.tar.gz
Step 3: Configure GIT Git Service on Ubuntu Linux
After successfully installing the Gogs git service on our Ubuntu system, we will now install the Git service on our system. If you already have Git installed on your machine, you don’t need to install it again.
sudo apt install git
Now, add a new user to your Git service and assign a new password. Provide all the necessary information and complete the process of creating the new Git user on your Ubuntu system.
$ sudo adduser git
After creating the new Git user, we will now make a new directory and give it the root access. Then we will copy the Gogs files inside the /etc/systemd/system
directory. Run the following make directory command and ownership change commands given below on your terminal shell with root privileges.
sudo mkdir /var/log/gogs sudo chown -R git:git /var/log/gogs/
Now, run the copy (cp) command on your terminal to copy the Gogs file inside the /etc/systemd/system
directory.
sudo cp gogs/scripts/systemd/gogs.service /etc/systemd/system
We will now edit and configure the configuration settings of the Gogs service on our Ubuntu system. You can run the following command given below to edit the Gogs configuration script. Here, I am using the nano script editor; you can use any other script editor as well.
sudo nano /etc/systemd/system/gogs.service
Now, copy the following script given below and replace the default script with it. You can make changes to the script if necessary.
[Unit] Description=Gogs self-hosted Git service After=syslog.target After=network.target After=mysql.service [Service] # Modify these two values and uncomment them if you have # repos with lots of files and get an HTTP error 500 because # of that ### #LimitMEMLOCK=infinity #LimitNOFILE=65535 Type=simple User=git Group=git WorkingDirectory=/home/git ExecStart=/home/git/gogs web Restart=always Environment=USER=git HOME=/home/git # Some distributions may not support these hardening directives. If you cannot start the service due # to an unknown option, comment out the ones not supported by your version of systemd. ProtectSystem=full PrivateDevices=yes PrivateTmp=yes NoNewPrivileges=true [Install] WantedBy=multi-user.target
I must mention that the Gogs services use the network port 3000; if the port 3000 is already used in another service on your machine, you can assign any other network port for the Gogs service. To assign a new port, you can find the following line and replace the port.
ExecStart=/home/git/gogs web -port 3001
We will now copy the Gogs directory to the home/git directory and change the ownership. Run the following command-lines on your Ubuntu terminal shell to make the changes.
sudo rsync -avz gogs/* /home/git/ sudo chown -R git:git /home/git/
Step 4: Check Gogs Status on Ubuntu Linux
After installing and configuring the database and Gogs service on your Ubuntu Linux, you may now run the following system control commands given below to reload, start, and enable the Gogs services on your Ubuntu system.
sudo systemctl daemon-reload sudo systemctl start gogs sudo systemctl enable gogs
You can finally run the following system control command to check the Gogs services’ status on your Ubuntu Linux. If everything goes correct, you would see the activation status, main PID, tasks, and memory usages for the Gogs service on your terminal shell.
sudo systemctl status gogs
You can now switch to the git user from your current user and see the Gogs manual.
su - git Password: git@ubuntupit:~$ ./gogs
Step 5: Configure Gogs Git Service on Ubuntu Linux
Till now, we have successfully installed the Gogs service and created a Git user on our Ubuntu system. We will now find the IP address of our machine and use the IP address to load the Gogs setting page. You can run the following command-line on your terminal shell to find your IP address.
ip address
Using a static IP is better if you have to run a server or a web-based regularly on your machine. If you have the localhost server installed on your system, you can also use the localhost IP address to load the Gogs installation page on your Ubuntu Linux.
https://192.168.0.1:3000/install
Now, select your database, put the correct hosting address, and provide the username and password of the previously created database. You can also find the option to set the admin account at the bottom of the setting page. When the Gogs repository configuration is done, click on the Install button to finish the installation process.
When the installation is done, you will be redirected to a Sign In page. You can create a new account for Gogs, or you can log in instead.
After signing in to the Gogs git service on your Ubuntu Linux, you would see the simple dashboard of the Gogs system.
Step 6: Configure Nginx Server
You can use the Nginx reverse proxy server on your Ubuntu machine to use a custom domain for the Gogs service. First, run the following command given below to install the Nginx server on your Ubuntu system.
sudo apt install nginx
Now, to configure your domain address and redirect your current Gogs service to your domain, run the following command on your terminal shell.
sudo nano /etc/nginx/conf.d/gogs.conf
Once the Nginx configuration script is opened, copy and paste the following lines inside your Nginx configuration script. You must replace the example.com domain with your own domain.
server { listen 80; server_name git.example.com; location / { proxy_pass https://localhost:3000; } }
Final Words
The Gogs service is helpful and user-friendly for new and old Linux users to stay connected with the Git service. In the entire post, I have described the method of installing the Gogs service on Ubuntu Linux. I have also shown how you can configure a personal domain for the Gogs service through the Nginx server on your Ubuntu system.
Though the Gogs is a lightweight tool, it won’t interrupt your other works on your Ubuntu machine. However, If you a regular Ubuntu user, you must update your Linux kernel; the latest kernel of Ubuntu is incredible.
Please share it with your friends and the Linux community if you find this post helpful and informative. We also encourage you to write down your opinions in the comment section.