Gogs is an open-source version control platform similar to GitHub. It is 100% open source and free of charge. All source code is available under the MIT License on GitHub. It is robust, scalable, and a great alternative to git services.
Gogs has rich features like issues and time tracking, repository branching, file locking, tagging, merging, and many other features that you will find in a typical source control platform.
Gogs streamline your collaborative workflows. Visualize, prioritize, coordinate, and track your progress with Gogs’ flexible project management tools.
This brief tutorial will show students and new users how to easily install Gogs on Ubuntu 16.04 and 18.04.
To install Gogs on Ubuntu, follow the steps below
Install Git and Create Git User
Before continuing below, run the command to install the git package on Ubuntu.
sudo apt update sudo apt install git
After installing Git, run the commands below to create a Git user to run Gog services. To do that, run the commands below
sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git
You should see a similar message below:
Output: Adding system user `git' (UID 122) . Adding new group `git' (GID 127) . Adding new user `git' (UID 122) with group `git' . Creating home directory `/home/git' .
Next, continue below and install MariaDB
Install MariaDB
Gogs require a database server to store their content. And MariaDB is a great place to start looking for an open-source database server.
To install MariaDB run the commands below.
sudo apt-get install mariadb-server mariadb-client
After installing MariaDB, the commands below can stop, start and enable the MariaDB service to start up when the server boots.
Run these on Ubuntu 16.04 LTS
sudo systemctl stop mysql.service sudo systemctl start mysql.service sudo systemctl enable mysql.service
Run these on Ubuntu 17.10 and 18.04 LTS
sudo systemctl stop mariadb.service sudo systemctl start mariadb.service sudo systemctl enable mariadb.service
After that, run the commands below to secure the MariaDB server by creating a root password and disallowing remote root access.
sudo mysql_secure_installation
When prompted, answer the questions below by following the guide.
- Enter current password for root (enter for none): Press the Enter
- Set root password? [Y/n]: Y
- New password: Enter password
- Re-enter new password: Repeat password
- Remove anonymous users? [Y/n]: Y
- Disallow root login remotely? [Y/n]: Y
- Remove test database and access to it? [Y/n]: Y
- Reload privilege tables now? [Y/n]: Y
Restart MariaDB server
Once you’ve installed all the packages required for Gogs to function, continue below to start configuring the servers. First, run the commands below to create a blank Gogs database and database user.
To log on to the MariaDB database server, run the commands below.
sudo mysql -u root -p
Change the GLOBAL innodeb_file_per_table to On.
SET GLOBAL innodb_file_per_table = ON;
Then create a database called gogsdb
CREATE DATABASE gogsdb;
Create a database user called gogsuser with a new password
CREATE USER 'gogsuser'@'localhost' IDENTIFIED BY 'new_password_here';
Then grant the user full access to the database.
GRANT ALL ON gogsdb.* TO 'gogsuser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Next, run the commands below to update the database character set.
ALTER DATABASE gogsdb CHARACTER SET = utf8mb4 COLLATE utf8mb4_unicode_ci;
Finally, save your changes and exit.
FLUSH PRIVILEGES; EXIT;
Next, run the commands below to open the MariaDB default config file.
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Then add the lines below and save.
innodb_file_format = Barracuda innodb_large_prefix = 1 innodb_default_row_format = dynamic
Restart MariaDB / MySQL after that.
sudo systemctl restart mariadb.service sudo systemctl restart mysql.service
Continue
Install Gogs Packages
After creating the user account, run the commands below to download Gog’s latest package. You can find its latest version from the link below:
https://github.com/gogs/gogs/releases
Run the commands below to download:
cd /tmp wget https://github.com/gogs/gogs/releases/download/v0.11.66/linux_amd64.tar.gz
Then extract the downloaded file into the Git user’s home directory created above by running the commands below:
sudo tar xvf linux_amd64.tar.gz -C /home/git
After that, give the Git user ownership of the Gogs folder.
sudo chown -R git: /home/git/gogs
Next, create Gogs service scripts by copying them from the user directory into the system directory.
sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/
After that, reload systemd and start gogs service
sudo systemctl daemon-reload sudo systemctl enable gogs sudo systemctl start gogs
To check Gogs’ status, run the commands below:
sudo systemctl status gogs
You should see a similar message below:
● gogs.service - Gogs
Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: ena
Active: active (running) since Fri 2019-04-26 09:58:25 CDT; 4s ago
Main PID: 7189 (gogs)
Tasks: 5 (limit: 4683)
CGroup: /system.slice/gogs.service
└─7189 /home/git/gogs/gogs web
Apr 26 09:58:25 ubuntu1804 gogs[7189]: 2019/04/26 09:58:25 [ WARN] Custom config
Apr 26 09:58:25 ubuntu1804 gogs[7189]: 2019/04/26 09:58:25 [TRACE] Custom path:
Next, open your browser and browse to the server hostname or IP address followed by port 3000
http://localhost:3000/install
Type in the database connection info and continue with the setup.

Setup other settings

Setup your admin account and Install

After the installation, you should be able to log on and use Gogs as a git service.

Enjoy!
Congratulations! You have successfully installed and configured Gogs Git service on Ubuntu 16.04 | 18.04 LTS
You may also like the post below: