Article

Table of Contents
Theme:
Was this article helpful?

0  out of  1 found this helpful

Try Vultr Today with

$50 Free on Us!

Want to contribute?

You could earn up to $600 by adding new articles.

How to Install Gitea on CentOS 7

Last Updated: Fri, Feb 8, 2019
CentOS Linux Guides Programming Server Apps

Gitea is an alternative open source, self-hosted version control system powered by Git. Gitea is written in Golang and is a lightweight solution to be hosted on any platform.

Prerequisites

  • New Vultr CentOS 7 instance.

  • Root user or non-root user with sudo privileges.

  • Git

  • MariaDB

Install Git

First update your system.

sudo yum update

Install Git.

sudo yum -y install git

Install MariaDB Database Server

Gitea supports the following database servers.

  • MariaDB/MySQL

  • PostgreSQL

  • SQLite

  • TiDB

For this tutorial we will be using the MariaDB server.

sudo yum -y install mariadb-server

Once complete, make sure MariaDB is enabled and running.

systemctl enable mariadb.service

systemctl start mariadb.service

After that, run the command 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): Just 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.

sudo systemctl restart mariadb.service

Login to the MariaDB console.

sudo mysql -u root -p

Then type the password you created above to login. You will see the MariaDB welcome message.

Create a database called gitea.

CREATE DATABASE gitea;

Create a database user called giteauser with a new password.

CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'new_password_here';

Make sure you replace new_password_here with a strong and complex password.

Then grant the user full access to the database.

GRANT ALL ON gitea.* TO 'giteauser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;

Finally, save your changes and exit.

FLUSH PRIVILEGES;

EXIT;

Prepare the Gitea Environment

Create a user to run Gitea.

sudo adduser --system --shell /bin/bash --comment 'Git Version Control' --user-group --home-dir /home/git -m git

Create the required directory structure.

sudo mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}

sudo chown git: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

Install Gitea

Download the Gitea binary using the method on the official distribution page.

Copy the binary to a global location.

sudo cp gitea /usr/local/bin/gitea

Create a service file to start Gitea automatically

Create a linux service file.

sudo touch /etc/systemd/system/gitea.service

Using a text editor of your choice, open this newly create file and populate it with the following.

[Unit]

Description=Gitea (Git with a cup of tea)

After=network.target

After=mariadb.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

RestartSec=2s

Type=simple

User=git

Group=git

WorkingDirectory=/var/lib/gitea/

ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini

Restart=always

Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea

# If you want to bind Gitea to a port below 1024 uncomment

# the two values below

###

#CapabilityBoundingSet=CAP_NET_BIND_SERVICE

#AmbientCapabilities=CAP_NET_BIND_SERVICE



[Install]

WantedBy=multi-user.target

Enable and start Gitea at boot.

sudo systemctl daemon-reload

sudo systemctl enable gitea

sudo systemctl start gitea

Ensure Gitea is running.

sudo systemctl status gitea

Configure firewall rules for Gitea:

Enable traffic to Gitea's default port in firewalld:

sudo firewall-cmd --add-port 3000/tcp --permanent

sudo firewall-cmd --reload 

Web-based Gitea configuration.

Finally, open a web browser and point it to:

http://YOUR_SERVER_IP:3000/install

Follow the on-screen instructions to complete the Gitea setup.

Want to contribute?

You could earn up to $600 by adding new articles.