{"id":35344,"date":"2021-01-25T11:32:00","date_gmt":"2021-01-25T17:32:00","guid":{"rendered":"https:\/\/www.rosehosting.com\/blog\/?p=35344"},"modified":"2022-06-03T03:32:18","modified_gmt":"2022-06-03T08:32:18","slug":"how-to-install-gitea-on-ubuntu-20-04","status":"publish","type":"post","link":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/","title":{"rendered":"How to Install Gitea on Ubuntu 20.04"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" width=\"742\" height=\"372\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg\" alt=\"how to install gitea on ubuntu 20.04\" class=\"wp-image-35351\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg 742w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04-300x150.jpg 300w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04-150x75.jpg 150w\" sizes=\"(max-width: 742px) 100vw, 742px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright size-large\"><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/installing-gitea-on-ubuntu-20.04.jpg\" alt=\"installing gitea on ubuntu 20.04\" class=\"wp-image-35354\" title=\"Installing PHP 8 on Ubuntu 20.04\"\/><\/figure><\/div>\n\n\n\n<p>Gitea is a simple, lightweight, and self-hosted Git platform written in Go. It is a fork of Gogs and very similar to GitLab. Compared to GitLab, Gitea is extra easy, light-weight, and straightforward to configure. It can be installed on all major operating systems including, Windows, macOS, Linux, and ARM. With Gitea, you can track time, issues, repository branching, file locking, merging, and many more.<\/p>\n\n\n\n<p>In this tutorial, we will show you how to install Gitea with Nginx as a reverse proxy on an Ubuntu 20.04 VPS.<\/p>\n\n\n\n<!--more-->\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_1 counter-hierarchy ez-toc-counter ez-toc-transparent ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69c2f06b37ba0\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"ez-toc-cssicon\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69c2f06b37ba0\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#Prerequisites\" >Prerequisites<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#Step-1-Log-in-to-the-Server-Update-the-Server-OS-Packages\" >Step 1: Log in to the Server &amp; Update the Server OS Packages<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#Step-2-Install-Required-Dependencies\" >Step 2: Install Required Dependencies<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#Step-3-Install-and-Configure-MariaDB\" >Step 3: Install and Configure MariaDB<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#Step-4-Install-Gitea\" >Step 4: Install Gitea<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#Step-5-Create-a-System-Unit-File-for-Gitea\" >Step 5: Create a System Unit File for Gitea<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#Step-6-Configure-Nginx-as-a-Reverse-Proxy-for-Gitea\" >Step 6: Configure Nginx as a Reverse Proxy for Gitea<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#Step-7-Access-Gitea-Web-UI\" >Step 7: Access Gitea Web UI<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"h-prerequisites\"><span class=\"ez-toc-section\" id=\"Prerequisites\"><\/span>Prerequisites<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>An Ubuntu 20.04 VPS (we\u2019ll be using our SSD 2 VPS plan)<\/li><li>Access to the root user account (or access to an admin account with root privileges)<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-1-log-in-to-the-server-update-the-server-os-packages\"><span class=\"ez-toc-section\" id=\"Step-1-Log-in-to-the-Server-Update-the-Server-OS-Packages\"><\/span>Step 1: Log in to the Server &amp; Update the Server OS Packages<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>First, log in to your Ubuntu 20.04 server via SSH as the root user:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">ssh root@IP_Address -p Port_number<\/pre>\n\n\n\n<p>You will need to replace &#8216;IP_Address&#8217; and &#8216;Port_number&#8217; with your server&#8217;s respective IP address and SSH port number. Additionally, replace &#8216;root&#8217; with the username of the admin account if necessary.<\/p>\n\n\n\n<p>Before starting, you have to make sure that all Ubuntu OS packages installed on the server are up to date. You can do this by running the following commands:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt-get update -y\napt-get upgrade -y<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-2-install-required-dependencies\"><span class=\"ez-toc-section\" id=\"Step-2-Install-Required-Dependencies\"><\/span>Step 2: Install Required Dependencies<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Before going further, you will need to install some necessary packages on your server. You can install all of them with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt-get install git unzip gnupg2 -y<\/pre>\n\n\n\n<p>After installing these packages, you can proceed and install the MariaDB server package.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-3-install-and-configure-mariadb\"><span class=\"ez-toc-section\" id=\"Step-3-Install-and-Configure-MariaDB\"><\/span>Step 3: Install and Configure MariaDB<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Gitea uses MariaDB as a database backend so MariaDB must be installed on your server. You can install it with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt-get install mariadb-server -y<\/pre>\n\n\n\n<p>Once MariaDB is installed, connect to the MariaDB shell with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mysql<\/pre>\n\n\n\n<p>Once connected, enable the Innodb table using the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">MariaDB [(none)]&gt;SET GLOBAL innodb_file_per_table = ON;<\/pre>\n\n\n\n<p>Next, create a database and use for Gitea with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">MariaDB [(none)]&gt;CREATE DATABASE gitea;\nMariaDB [(none)]&gt;CREATE USER 'gitea'@'localhost' IDENTIFIED BY 'securepassword';<\/pre>\n\n\n\n<p>Next, grant all the privileges to gitea database and set character set to utf8mb4:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">MariaDB [(none)]&gt;GRANT ALL ON gitea.* TO 'gitea'@'localhost' IDENTIFIED BY 'securepassword' WITH GRANT OPTION;\nMariaDB [(none)]&gt;ALTER DATABASE gitea CHARACTER SET = utf8mb4 COLLATE utf8mb4_unicode_ci;<\/pre>\n\n\n\n<p>Next, flush the privileges an exit from the MariaDB with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">MariaDB [(none)]&gt;FLUSH PRIVILEGES;\nMariaDB [(none)]&gt;EXIT;<\/pre>\n\n\n\n<p>Next, edit the MariaDB default configuration file and tweak some settings:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano \/etc\/mysql\/mariadb.conf.d\/50-server.cnf<\/pre>\n\n\n\n<p>Add the following lines inside [mysqld] section:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">innodb_file_format = Barracuda\ninnodb_large_prefix = 1\ninnodb_default_row_format = dynamic\n<\/pre>\n\n\n\n<p>Save the file then restart the MariaDB service to apply the changes:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl restart mariadb<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-4-install-gitea\"><span class=\"ez-toc-section\" id=\"Step-4-Install-Gitea\"><\/span>Step 4: Install Gitea<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Before downloading and installing Gitea, you will need to create a separate user to run Gitea. You can create a new user with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">adduser --system --group --disabled-password --shell \/bin\/bash --home \/home\/git --gecos 'Git Version Control' git<\/pre>\n\n\n\n<p>After creating a new user, download the latest version of Gitea using the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">wget https:\/\/dl.gitea.io\/gitea\/1.13.1\/gitea-1.13.1-linux-amd64<\/pre>\n\n\n\n<p>Once downloaded, copy the downloaded binary to the system path with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">cp gitea-1.13.1-linux-amd64 \/usr\/bin\/gitea<\/pre>\n\n\n\n<p>Next, set the execution permission to the gitea binary:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chmod 755 \/usr\/bin\/gitea<\/pre>\n\n\n\n<p>Next, you will need to create a directory structure to store Gitea data and logs. You can create them with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">mkdir -p \/etc\/gitea \/var\/lib\/gitea\/{custom,data,indexers,public,log}<\/pre>\n\n\n\n<p>Next, set proper ownership and permission to all the directories:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">chown git:git \/etc\/gitea \/var\/lib\/gitea\/{custom,data,indexers,public,log}\nchmod 750 \/var\/lib\/gitea\/{data,indexers,log}\nchmod 770 \/etc\/gitea<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-5-create-a-system-unit-file-for-gitea\"><span class=\"ez-toc-section\" id=\"Step-5-Create-a-System-Unit-File-for-Gitea\"><\/span>Step 5: Create a System Unit File for Gitea<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Next, create a systemd service file to manage the Gitea service using systemd.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano \/etc\/systemd\/system\/gitea.service<\/pre>\n\n\n\n<p>Add the following lines:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">[Unit]\nDescription=Gitea\nAfter=syslog.target\nAfter=network.target\nAfter=mysql.service\n\n[Service]\nRestartSec=2s\nType=simple\nUser=git\nGroup=git\nWorkingDirectory=\/var\/lib\/gitea\/\nExecStart=\/usr\/bin\/gitea web -c \/etc\/gitea\/app.ini\nRestart=always\nEnvironment=USER=git HOME=\/home\/git GITEA_WORK_DIR=\/var\/lib\/gitea\n\n[Install]\nWantedBy=multi-user.target\n<\/pre>\n\n\n\n<p>Save and close the file then reload the systemd daemon with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl daemon-reload<\/pre>\n\n\n\n<p>Next, start the Gitea service and enable it to start at system reboot:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl start gitea\nsystemctl enable gitea<\/pre>\n\n\n\n<p>You can also verify the Gitea status with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl status gitea<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-6-configure-nginx-as-a-reverse-proxy-for-gitea\"><span class=\"ez-toc-section\" id=\"Step-6-Configure-Nginx-as-a-Reverse-Proxy-for-Gitea\"><\/span>Step 6: Configure Nginx as a Reverse Proxy for Gitea<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>First, install the Nginx package with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">apt-get install nginx -y<\/pre>\n\n\n\n<p>Once installed, you will need to configure Nginx as a reverse proxy to access the Gitea.<\/p>\n\n\n\n<p>First, create a new Nginx virtual host configuration file with the following command:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">nano \/etc\/nginx\/conf.d\/gitea.conf<\/pre>\n\n\n\n<p>Add the following lines:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">upstream gitea {\n    server 127.0.0.1:3000;\n}\n\nserver {\n    listen 80;\n    server_name gitea.example.com;\n    root \/var\/lib\/gitea\/public;\n    access_log off;\n    error_log off;\n\n    location \/ {\n      try_files maintain.html $uri $uri\/index.html @node;\n    }\n\n    location @node {\n      client_max_body_size 0;\n      proxy_pass http:\/\/localhost:3000;\n      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n      proxy_set_header X-Real-IP $remote_addr;\n      proxy_set_header Host $http_host;\n      proxy_set_header X-Forwarded-Proto $scheme;\n      proxy_max_temp_file_size 0;\n      proxy_redirect off;\n      proxy_read_timeout 120;\n    }\n}\n<\/pre>\n\n\n\n<p>Save and close the file then restart the Nginx service to apply the changes:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">systemctl restart nginx<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"h-step-7-access-gitea-web-ui\"><span class=\"ez-toc-section\" id=\"Step-7-Access-Gitea-Web-UI\"><\/span>Step 7: Access Gitea Web UI<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Now, open your web browser and access the Gitea using the URL <code>http:\/\/gitea.example.com\/install<\/code>. You will be redirected to the Gitea setup page:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"782\" height=\"605\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/install-gitea-on-ubuntu-20.04.png\" alt=\"install gitea on ubuntu 20.04\" class=\"wp-image-35358\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/install-gitea-on-ubuntu-20.04.png 782w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/install-gitea-on-ubuntu-20.04-300x232.png 300w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/install-gitea-on-ubuntu-20.04-150x116.png 150w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/install-gitea-on-ubuntu-20.04-768x594.png 768w\" sizes=\"(max-width: 782px) 100vw, 782px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"812\" height=\"641\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/install-gitea-on-ubuntu.png\" alt=\"install gitea on ubuntu\" class=\"wp-image-35359\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/install-gitea-on-ubuntu.png 812w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/install-gitea-on-ubuntu-300x237.png 300w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/install-gitea-on-ubuntu-150x118.png 150w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/install-gitea-on-ubuntu-768x606.png 768w\" sizes=\"(max-width: 812px) 100vw, 812px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"777\" height=\"605\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/tutorial-install-gitea-on-ubuntu-20.04.png\" alt=\"tutorial install gitea on ubuntu 20.04\" class=\"wp-image-35360\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/tutorial-install-gitea-on-ubuntu-20.04.png 777w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/tutorial-install-gitea-on-ubuntu-20.04-300x234.png 300w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/tutorial-install-gitea-on-ubuntu-20.04-150x117.png 150w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/tutorial-install-gitea-on-ubuntu-20.04-768x598.png 768w\" sizes=\"(max-width: 777px) 100vw, 777px\" \/><\/figure>\n\n\n\n<p>Provide your Gitea database information, port, URL, admin username, password and click on the <strong>Install Gitea<\/strong> button. Once the installation has been finished, you will be redirected to the Gitea dashboard:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"532\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/installing-gite-on-ubuntu.png\" alt=\"installing gite on ubuntu\" class=\"wp-image-35361\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/installing-gite-on-ubuntu.png 1024w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/installing-gite-on-ubuntu-300x156.png 300w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/installing-gite-on-ubuntu-150x78.png 150w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/installing-gite-on-ubuntu-768x399.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignright size-large\"><img decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/installing-gitea-on-ubuntu-20.04.jpg\" alt=\"installing gitea on ubuntu 20.04\" class=\"wp-image-35354\" title=\"Installing PHP 8 on Ubuntu 20.04\"\/><\/figure><\/div>\n\n\n\n<p>Congratulations! you have successfully installed Gitea on Ubuntu 20.04 VPS.<\/p>\n\n\n\n<p>Follow this tutorial if you are looking to <a href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-debian-9\/\">install Gitea on Debian 9<\/a><\/p>\n\n\n\n<p>Of course, you don&#8217;t have to do any of this if you use one of our <a href=\"https:\/\/www.rosehosting.com\/git-hosting.html\">Git VPS Hosting<\/a> services, in which case you can simply ask our expert Linux admins to setup this for you. They are available 24\u00d77 and will take care of your request immediately.<\/p>\n\n\n\n<p>PS. If you liked this post please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gitea is a simple, lightweight, and self-hosted Git platform written in Go. It is a fork of Gogs and very &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"How to Install Gitea on Ubuntu 20.04\" class=\"read-more button\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#more-35344\" aria-label=\"Read more about How to Install Gitea on Ubuntu 20.04\">Read More<\/a><\/p>\n","protected":false},"author":4,"featured_media":35351,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1698],"tags":[285,1819,59,1839],"class_list":["post-35344","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ubuntu","tag-git","tag-gitea","tag-ubuntu","tag-ubuntu-20-04","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.2 (Yoast SEO v27.2) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Install Gitea on Ubuntu 20.04 | RoseHosting<\/title>\n<meta name=\"description\" content=\"In this tutorial, we will show you how to install Gitea with Nginx as a reverse proxy on an Ubuntu 20.04 VPS.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Install Gitea on Ubuntu 20.04\" \/>\n<meta property=\"og:description\" content=\"In this tutorial, we will show you how to install Gitea with Nginx as a reverse proxy on an Ubuntu 20.04 VPS.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/\" \/>\n<meta property=\"og:site_name\" content=\"RoseHosting\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RoseHosting\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/rosehosting.helpdesk\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-25T17:32:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-03T08:32:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"742\" \/>\n\t<meta property=\"og:image:height\" content=\"372\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Jeff Wilson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"How to Install Gitea on Ubuntu 20.04\" \/>\n<meta name=\"twitter:description\" content=\"In this tutorial, we will show you how to install Gitea with Nginx as a reverse proxy on an Ubuntu 20.04 VPS.\" \/>\n<meta name=\"twitter:creator\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:site\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Wilson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/\"},\"author\":{\"name\":\"Jeff Wilson\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713\"},\"headline\":\"How to Install Gitea on Ubuntu 20.04\",\"datePublished\":\"2021-01-25T17:32:00+00:00\",\"dateModified\":\"2022-06-03T08:32:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/\"},\"wordCount\":751,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg\",\"keywords\":[\"git\",\"gitea\",\"ubuntu\",\"Ubuntu 20.04\"],\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/\",\"url\":\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/\",\"name\":\"How to Install Gitea on Ubuntu 20.04 | RoseHosting\",\"isPartOf\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg\",\"datePublished\":\"2021-01-25T17:32:00+00:00\",\"dateModified\":\"2022-06-03T08:32:18+00:00\",\"description\":\"In this tutorial, we will show you how to install Gitea with Nginx as a reverse proxy on an Ubuntu 20.04 VPS.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#primaryimage\",\"url\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg\",\"contentUrl\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg\",\"width\":742,\"height\":372,\"caption\":\"how to install gitea on ubuntu 20.04\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.rosehosting.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"How to Install Gitea on Ubuntu 20.04\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#website\",\"url\":\"https:\/\/www.rosehosting.com\/blog\/\",\"name\":\"RoseHosting.com\",\"description\":\"Premium Linux Tutorials Since 2001\",\"publisher\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.rosehosting.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#organization\",\"name\":\"RoseHosting\",\"url\":\"https:\/\/www.rosehosting.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png\",\"contentUrl\":\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png\",\"width\":192,\"height\":192,\"caption\":\"RoseHosting\"},\"image\":{\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/RoseHosting\",\"https:\/\/x.com\/rosehosting\",\"https:\/\/www.linkedin.com\/in\/rosehosting\/\"],\"description\":\"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.\",\"email\":\"info@rosehosting.com\",\"telephone\":\"(314) 275-0414\",\"legalName\":\"Rose Web Services LLC\",\"foundingDate\":\"2001-04-02\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713\",\"name\":\"Jeff Wilson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"caption\":\"Jeff Wilson\"},\"description\":\"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.\",\"sameAs\":[\"https:\/\/www.rosehosting.com\",\"https:\/\/www.facebook.com\/rosehosting.helpdesk\"],\"url\":\"https:\/\/www.rosehosting.com\/blog\/author\/jwilson\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Install Gitea on Ubuntu 20.04 | RoseHosting","description":"In this tutorial, we will show you how to install Gitea with Nginx as a reverse proxy on an Ubuntu 20.04 VPS.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/","og_locale":"en_US","og_type":"article","og_title":"How to Install Gitea on Ubuntu 20.04","og_description":"In this tutorial, we will show you how to install Gitea with Nginx as a reverse proxy on an Ubuntu 20.04 VPS.","og_url":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/","og_site_name":"RoseHosting","article_publisher":"https:\/\/www.facebook.com\/RoseHosting","article_author":"https:\/\/www.facebook.com\/rosehosting.helpdesk","article_published_time":"2021-01-25T17:32:00+00:00","article_modified_time":"2022-06-03T08:32:18+00:00","og_image":[{"width":742,"height":372,"url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg","type":"image\/jpeg"}],"author":"Jeff Wilson","twitter_card":"summary_large_image","twitter_title":"How to Install Gitea on Ubuntu 20.04","twitter_description":"In this tutorial, we will show you how to install Gitea with Nginx as a reverse proxy on an Ubuntu 20.04 VPS.","twitter_creator":"@rosehosting","twitter_site":"@rosehosting","twitter_misc":{"Written by":"Jeff Wilson","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#article","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/"},"author":{"name":"Jeff Wilson","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713"},"headline":"How to Install Gitea on Ubuntu 20.04","datePublished":"2021-01-25T17:32:00+00:00","dateModified":"2022-06-03T08:32:18+00:00","mainEntityOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/"},"wordCount":751,"commentCount":0,"publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg","keywords":["git","gitea","ubuntu","Ubuntu 20.04"],"articleSection":["Ubuntu"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/","url":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/","name":"How to Install Gitea on Ubuntu 20.04 | RoseHosting","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#primaryimage"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg","datePublished":"2021-01-25T17:32:00+00:00","dateModified":"2022-06-03T08:32:18+00:00","description":"In this tutorial, we will show you how to install Gitea with Nginx as a reverse proxy on an Ubuntu 20.04 VPS.","breadcrumb":{"@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#primaryimage","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2021\/01\/how-to-install-gitea-on-ubuntu-20.04.jpg","width":742,"height":372,"caption":"how to install gitea on ubuntu 20.04"},{"@type":"BreadcrumbList","@id":"https:\/\/www.rosehosting.com\/blog\/how-to-install-gitea-on-ubuntu-20-04\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.rosehosting.com\/blog\/"},{"@type":"ListItem","position":2,"name":"How to Install Gitea on Ubuntu 20.04"}]},{"@type":"WebSite","@id":"https:\/\/www.rosehosting.com\/blog\/#website","url":"https:\/\/www.rosehosting.com\/blog\/","name":"RoseHosting.com","description":"Premium Linux Tutorials Since 2001","publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.rosehosting.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.rosehosting.com\/blog\/#organization","name":"RoseHosting","url":"https:\/\/www.rosehosting.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","width":192,"height":192,"caption":"RoseHosting"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RoseHosting","https:\/\/x.com\/rosehosting","https:\/\/www.linkedin.com\/in\/rosehosting\/"],"description":"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.","email":"info@rosehosting.com","telephone":"(314) 275-0414","legalName":"Rose Web Services LLC","foundingDate":"2001-04-02","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}},{"@type":"Person","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713","name":"Jeff Wilson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","caption":"Jeff Wilson"},"description":"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.","sameAs":["https:\/\/www.rosehosting.com","https:\/\/www.facebook.com\/rosehosting.helpdesk"],"url":"https:\/\/www.rosehosting.com\/blog\/author\/jwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/35344","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/comments?post=35344"}],"version-history":[{"count":8,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/35344\/revisions"}],"predecessor-version":[{"id":43074,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/35344\/revisions\/43074"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media\/35351"}],"wp:attachment":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media?parent=35344"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/categories?post=35344"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/tags?post=35344"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}