YouTube Icon

Code Playground.

How to Install Gitea on CentOS 8


How to Install Gitea on CentOS 8

Gitea is a self-facilitated open-source git worker written in Go. It accompanies a store record editorial manager, venture issue following, clients administrations, notices, inherent wiki, and considerably more. 

Gitea is a lightweight application and can be introduced on less ground-breaking frameworks. On the off chance that you are looking for a Gitlab elective with an a lot littler memory impression and needn't bother with all the fancy odds and ends Gitlab offers, you should attempt Gitea. 

This article tells you the best way to introduce and arrange Gitea on CentOS 8. 


Gitea underpins SQLite, PostgreSQL , and MySQL/MariaDB as information base backends. 

We'll utilize SQLite. It is a lightweight information base that stores information inside a solitary record. In the event that SQLite isn't introduced on your CentOS machine you can introduce it by running the accompanying order as sudo client : 

sudo dnf install sqlite

We're expecting that SELinux is either crippled or set to tolerant mode. 

Installing Gitea

Gitea can be introduced from source, paired, and as a bundle. It very well may be likewise sent as a Docker picture. We'll introduce Gitea utilizing thr double. 

Install git

The initial step is to introduce Git on your CentOS: 

sudo dnf install git

Check the establishment by showing the Git variant: 

git --version
git version 2.18.4

Create a Git user

Make another framework client to run the Gitea application: 

sudo useradd \
   --system \
   --shell /bin/bash \
   --comment 'Git Version Control' \
   --create-home \
   --home /home/git \

The order will make another client and gathering named git, and set the home registry to/home/git. 

Download Gitea binary

The most recent Gitea double can be downloaded from the Gitea Download page . Ensure you download the correct double for your engineering. 

At the hour of composing, the most recent rendition is 1.12.3. On the off chance that there is another adaptation accessible, change the VERSION variable in the order beneath. 

Use wget to download the Gitea parallel in the/tmp registry: 

sudo wget -O /tmp/gitea${VERSION}/gitea-${VERSION}-linux-amd64

You can run the double from any area. We'll follow the show and move the twofold to the/usr/nearby/canister registry: 

sudo mv /tmp/gitea /usr/local/bin

Make the double executable: 

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

The accompanying orders will make the vital catalogs and set the necessary authorizations and possession : 

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

The registry structure above is suggested by the authority Gitea documentation. 

The authorizations of the/and so on/gitea index are set to 770 so the establishment wizard can make the setup documents. When the establishment is finished, we'll set more prohibitive consents. 

Create a Systemd Unit File

Gitea gives a Systemd unit document that is designed to coordinate our arrangement. 

Download the document to the/and so forth/systemd/framework/catalog by composing: 

sudo wget -P /etc/systemd/system/

When done, empower and start the Gitea administration: 

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

Check that the administration is begun effectively: 

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 Sat 2020-01-04 21:27:23 UTC; 3s ago
 Main PID: 14804 (gitea)
    Tasks: 9 (limit: 1152)
   CGroup: /system.slice/gitea.service
           ??14804 /usr/local/bin/gitea web --config /etc/gitea/app.ini

Configure Gitea 

Since Gitea is fully operational, the time has come to conclude the establishment through the web interface. 

Of course, Gitea tunes in for associations on port 3000 on all organization interfaces. You'll have to design your firewall to empower admittance to the Gitea web interface: 

sudo firewall-cmd --permanent --zone=public --add-port=3000/tcp
sudo firewall-cmd --reload

Open your program, enter http://YOUR_DOMAIN_IR_IP:3000/introduce, and the underlying setups page will show up: 

Fill the necessary fields as follow: 

  • Information base Settings: 
  • Information base Type: SQLite3 
  • Way: Use an outright way,/var/lib/gitea/information/gitea.db 

Application General Settings: 

  • Site Title - Enter your association name. 
  • Store Root Path - Leave the default/home/git/gitea-storehouses. 
  • Git LFS Root Path - Leave the default/var/lib/gitea/information/lfs. 
  • Run As Username - git 
  • SSH Server Domain - Enter your space or worker IP address. 
  • SSH Port - 22, change it if SSH is tuning in on other Port 
  • Gitea HTTP Listen Port - 3000 
  • Gitea Base URL - Use http and your space or worker IP address. 
  • Log Path - Leave the default/var/lib/gitea/log 

Afterward, you can change the settings by altering the Gitea design document. 

When done, hit the "Introduce Gitea" button. The establishment is moment. At the point when finished you will be diverted to the login page. 

Snap on the "Join currently" interface. The originally enlisted client is consequently added to the Admin gathering. 

To make the establishment safer, change the consents of the Gitea setup record to peruse just utilizing: 

sudo chmod 750 /etc/gitea
sudo chmod 640 /etc/gitea/app.ini

That is it. Gitea has been introduced on your CentOS machine. 

Configuring Nginx as SSL Termination Proxy

This progression is discretionary, yet it is enthusiastically suggested. To utilize Nginx as an opposite intermediary , you have to have a space or subdomain highlighting your worker public IP. In this instructional exercise, we will utilize 

To begin with, introduce Nginx and create a free Let's Encrypt SSL declaration utilizing the aides underneath: 

The most effective method to Install Nginx on CentOS 8 

Secure Nginx with Let's Encrypt on CentOS 8 

When done, open your word processor and alter the space worker block record: 

sudo nano /etc/nginx/conf.d/
server {
    listen 80;

    include snippets/letsencrypt.conf;
    return 301$request_uri;

server {
    listen 443 ssl http2;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    client_max_body_size 50m;

    # Proxy headers
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;

    # SSL parameters
    ssl_certificate /etc/letsencrypt/live/;
    ssl_certificate_key /etc/letsencrypt/live/;
    ssl_trusted_certificate /etc/letsencrypt/live/;
    include snippets/letsencrypt.conf;
    include snippets/ssl.conf;

    # log files
    access_log /var/log/nginx/;
    error_log /var/log/nginx/;

    # Handle / requests
    location / {
       proxy_redirect off;

Remember to supplant with your Gitea space and set the right way to the SSL testament records. The HTTP traffic is diverted to HTTPS . 

When done, restart the Nginx administration for changes to produce results: 

sudo systemctl restart nginx

Next, change the Gitea area and root url. To do as such, open the design document and alter the accompanying lines: 

sudo nano /etc/gitea/app.ini
DOMAIN           =
ROOT_URL         =

Restart the Gitea administration by composing: 

sudo systemctl restart gitea

Now, Gitea intermediary is arranged, and you can get to it at: 

Configuring Email Notifications

For the notice messages to be conveyed, you can either introduce Postfix or utilize a value-based mail administration, for example, SendGrid, MailChimp, MailGun, or SES. 

To empower email warnings, open the arrangement document and alter the accompanying lines: 

sudo nano /etc/gitea/app.ini
ENABLED = true

Ensure you utilize the right SMTP worker data. 

Each time you alter the app.ini document, you have to restart the Gitea administration for changes to produce results: 

sudo systemctl restart gitea

To check the settings and send a test email, sign in to Gitea and go to: Site Administration > Configuration > SMTP Mailer Configuration. 

Gitea additionally permits you to associate with Slack by making a web webhook and send warnings to your Slack channels . 

Upgrading Gitea

Moving up to the most recent Gitea adaptation is a clear undertaking. You just need to download and supplant the double. 

Stop the Gitea administration: 

sudo systemctl stop gitea

Download the most recent Gitea paired and move it to the/usr/neighborhood/receptacle catalog: 

wget -O /tmp/gitea${VERSION}/gitea-${VERSION}-linux-amd64
sudo mv /tmp/gitea /usr/local/bin

Make the paired executable: 

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

Restart the Gitea administration: 

sudo systemctl restart gitea

That is it. 


We have told you the best way to introduce Gitea on CentOS 8. You should now visit the Gitea documentation page and figure out how to design your establishment and make your first venture. 

In the event that you have questions, don't hesitate to leave a remark underneath.