Learn How To Install Gitea on CentOS 7
Table of Contents
- Prerequisites
- Install Git
- Install MariaDB Database Server
- Prepare the Gitea Environment
- Install Gitea
- Create a service file to start Gitea automatically
- Configure firewall rules for Gitea:
- Web-based Gitea configuration.
If you are using a different system, please check our other tutorials.
How to Install Gitea on Ubuntu 18.04
How to Install Gitea on Debian 9
How to Install Gitea on Fedora 29
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 IT Web Services 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
The Gitea binary can be downloaded by the running the following commands. You should replace the link below with a link for the latest version from this download page.
sudo wget -O gitea https://dl.gitea.io/gitea/1.6.1/gitea-1.6.1-linux-amd64
sudo chmod +x gitea
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.
Need help?
Do you need help setting up this on your own service?
Please contact us and we’ll provide you the best possible quote!