Site icon DesignLinux

How to Install Gitea on Ubuntu 22.04

how-to-install-gitea-on-ubuntu-22-04

Gitea is an open source, lightweight and self-hosted git platform written in Go. It’s similar to Gitlab, but probably the easiest, fastest, and straightforward to setting up. It includes rich features like issues and time tracking, repository branching, file locking and tagging, merging, and much more. In this guide, you will learn how to install and configure Gitea on Ubuntu 22.04.

Prerequisites

How to Install Gitea on Ubuntu 22.04

Peform the following steps to install Gitea on your Ubuntu 22.04 system:

Step 1 – Update system packages list

At first, you should update all installed packages on your Ubuntu system. Run the following commands:

sudo apt-get update -y
sudo apt-get upgrade -y

Step 2 – Install Git

After that, we need to install git on your server. Run the below command to install git package on Ubuntu.

sudo apt install git

Verify the installation by displaying the Git version:

git --version
git version 2.38.1

Step 3 – Create Git User

Now, we need to create a new system user which will run the Gitea application:

sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git

It will create a new user and group named git, and set the home directory to /home/git. The output will look something like below:

Adding system user `git' (UID 112) ...
Adding new group `git' (GID 118) ...
Adding new user `git' (UID 112) with group `git' ...
Creating home directory `/home/git' ...

Next, step is to install MariaDB and configure.

Step 3: Install and Configure MariaDB Server

Gitea requires a database server to store it content. Gitea supports SQLite, PostgreSQL , and MySQL / MariaDB as database backends. Execute following command to install MariaDB on your Ubuntu system:

sudo apt-get install mariadb-server mariadb-client

Once the installation is finished, connect the MariaDB shell by typing:

sudo mysql

After that, enable the Innodb table using the following command:

SET GLOBAL innodb_file_per_table = ON;

Step 3: Create Gitea Database

Now, create a database and use for Gitea with the following command:

CREATE DATABASE gitea;
CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'securepassword';

You should grant all the privileges to gitea database and set character set to utf8mb4:

GRANT ALL ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'securepassword' WITH GRANT OPTION;
ALTER DATABASE gitea CHARACTER SET = utf8mb4 COLLATE utf8mb4_unicode_ci;

Flush the privileges an exit from the MariaDB with the following command:

FLUSH PRIVILEGES;
EXIT;

Next, edit the MariaDB default configuration file and tweak some settings:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Add the following lines inside [mysqld] section:

innodb_file_format = Barracuda
innodb_large_prefix = 1
innodb_default_row_format = dynamic

Save the file then restart the MariaDB service to apply the changes:

sudo systemctl restart mariadb

Step 3 – Installing Gitea Packages

First, download the latest binary for your architecture from the Gitea Download page. Currently, latest version is 1.18.0 at the time of writing this tutorial. You should check and change the latest version if available.

Run the below command using wget to download the Gitea binary in /tmp directory:

sudo wget -O /tmp/gitea https://dl.gitea.io/gitea/1.18/gitea-1.18-darwin-10.12-amd64

Move downloaded file into the /usr/local/bin directory and make it executable by typing:

sudo mv /tmp/gitea /usr/local/bin
sudo chmod +x /usr/local/bin/gitea

Execute the following commands below to create the directories and set the required permissions and ownership:

sudo mkdir -p /var/lib/gitea/{custom,data,log}
sudo chown -R git:git /var/lib/gitea/
sudo chmod -R 750 /var/lib/gitea/
sudo mkdir /etc/gitea
sudo chown root:git /etc/gitea
sudo chmod 770 /etc/gitea

Step 4 – Create a Systemd Unit File

At this stage, we need to create systemd unit file to run Gitea as a systemd service. Simply download the sample systemd unit file to the /etc/systemd/system directory by typing:

sudo wget https://raw.githubusercontent.com/go-gitea/gitea/main/contrib/systemd/gitea.service -P /etc/systemd/system/

It’s already configure so no need to edit this file.

Just enable and start the Gitea service:

sudo systemctl daemon-reload
sudo systemctl enable --now gitea

Issue below command to check Gitea status:

sudo systemctl status gitea
● gitea.service - Gitea (Git with a cup of tea)
     Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-11-14 06:20:24 UTC; 5s ago
   Main PID: 22581 (gitea)
      Tasks: 6 (limit: 470)
     Memory: 101.6M
     CGroup: /system.slice/gitea.service
             └─77781 /usr/local/bin/gitea web --config /etc/gitea/app.ini
...

Step 5 – Configure Gitea

Now we need to finalize the installation through the web interface. By default, Gitea listens on port 3000 on all network interfaces.

If your server is secured with UFW firewall, you’ll need to open the Gitea port to allow traffic on port 3000. Execute the following command to allow port:

sudo ufw allow 3000/tcp

Next, Open your browser, type http://YOUR_DOMAIN_IR_IP:3000, and you will get a screen similar to the following:

Also, setup the backend admin account:

That’s it. You can now login and start use of Gitea.

Conclusion

Congratulations! you have successfully installed Gitea on Ubuntu 22.04 system. Visit the Gitea documentation page to learn more about Gitea configuration.

If you have questions, feel free to leave a comment below.

Exit mobile version