Install dependency
Install htop and atop
sudo dnf update
sudo dnf install epel-release
sudo dnf install htop
sudo dnf install atop
Node.js v18
Using nodesource distribution
curl -fsSL https://rpm.nodesource.com/setup_18.x | bash -
dnf install -y nodejs
dnf groupinstall 'Development Tools'
Install yarn
curl -sL https://dl.yarnpkg.com/rpm/yarn.repo | sudo tee /etc/yum.repos.d/yarn.repo
sudo yum install yarn
Go 1.20
Rocky Linux 9 including golang 1.20 .
Compile
Largely following official guide
Disable SELinux
Clone and build
git clone https://git.thape.com.cn/go-gitea/gitea.git
git checkout v1.21.3
npm config set registry https://registry.npmmirror.com/ --global
npm -g install webpack
TAGS = "bindata" make build
Install Gitea
Install dependency
yum install redis
yum install memcached
Create git user
groupadd --system git
adduser \
--system \
--shell /bin/bash \
--comment 'Git Version Control' \
--gid git \
--home-dir /home/git \
--create-home \
git
Create required directory structure
Don’t forget change back to more strict setting.
mkdir -p /var/lib/gitea/{ custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/
mkdir /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
Create DB and DB user
sudo su - postgres
createuser gitea_t --pwprompt
psql
ALTER ROLE gitea_t LOGIN;
CREATE DATABASE gitea_staging WITH ENCODING = 'UTF8' OWNER = gitea_t;
logout
vi /var/lib/pgsql/16/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
host gitea_staging gitea_t 0.0.0.0/0 scram-sha-256
Reload conf without restart DB
sudo su - postgres
/usr/pgsql-16/bin/pg_ctl reload
Open port to access and configure
sudo firewall-cmd --zone= public --add-port= 3000 /tcp
sudo firewall-cmd --zone= public --add-port= 3000 /tcp --permanent
sudo firewall-cmd --reload
sudo su - git
cd /var/lib/gitea/
gitea web -c /etc/gitea/app.ini
And open your server like http://172.16.1.47:3000
to configure
Binding to 443 and using https
Should following document , but if found cmd/web.go:353:listen() [E] Failed to start server: listen tcp 0.0.0.0:443: bind: permission denied
error try below:
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/gitea
Create DB ReadOnly User
createuser gitea_t_read --pwprompt
psql
ALTER ROLE gitea_t_read LOGIN;
GRANT USAGE ON SCHEMA public TO gitea_t_read;
SELECT 'GRANT SELECT ON ' || tablename || ' TO gitea_t_read;'
FROM pg_catalog . pg_tables
WHERE schemaname = 'public' AND tableowner = 'gitea_t' ;
Upgrade Gitea
cd /usr/local/bin/
wget https://github.com/go-gitea/gitea/releases/download/v1.21.8/gitea-1.21.8-linux-amd64.xz
xz -d gitea-1.21.8-linux-amd64.xz
systemctl stop gitea
systemctl status gitea
mv gitea-1.21.8-linux-amd64 gitea
chmod +x gitea
sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/gitea
systemctl start gitea