Forutsetninger
Trinn 1: Installer Nginx
Trinn 2: Installer Git
Trinn 3: Installer MariaDB Database Server
Trinn 4: Forbered Gitea-miljøet
Trinn 5: Installer Gitea
Trinn 6: Lag en tjenestefil for å starte Gitea automatisk
Trinn 7: Konfigurer Nginx som en omvendt proxy
Gitea er et alternativt åpen kildekode, selvdrevet versjonskontrollsystem drevet av Git. Gitea er skrevet på Golang og er en lettvektsløsning som kan hostes på hvilken som helst plattform.
Forutsetninger
- Ny Vultr Debian 9-forekomst.
- Ikke-rootbruker med
sudoprivilegier.
- Nginx
- Git
- MariaDB
Trinn 1: Installer Nginx
Oppdater pakkelisten din.
sudo apt update
Installer Nginx.
sudo apt -y install nginx
Når installasjonen er fullført, kjør følgende kommandoer for å starte og aktivere Nginx-tjenesten.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Trinn 2: Installer Git
Dette kan gjøres med følgende kommando.
sudo apt -y install git
Trinn 3: Installer MariaDB Database Server
Gitea støtter følgende databaseservere.
- MariaDB/MySQL
- PostgreSQL
- SQLite
- TiDB
For denne opplæringen vil vi bruke MariaDB-serveren og -klienten.
sudo apt -y install mariadb-server mariadb-client
Når du er ferdig, sørg for at MariaDB er aktivert og kjører.
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service
Etter det, kjør kommandoen nedenfor for å sikre MariaDB-serveren ved å opprette et root-passord og ikke tillate ekstern root-tilgang.
sudo mysql_secure_installation
Når du blir bedt om det, svar på spørsmålene nedenfor ved å følge veiledningen.
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
Start MariaDB på nytt.
sudo systemctl restart mariadb.service
Skriv inn kommandoen nedenfor for å logge på MariaDB-konsollen.
sudo mysql -u root -p
Skriv deretter inn passordet du opprettet ovenfor for å logge på. Du vil se MariaDB-velkomstmeldingen.
Lag en database kalt gitea.
CREATE DATABASE gitea;
Opprett en databasebruker kalt giteausermed et nytt passord.
CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'new_password_here';
Pass på at du erstatter new_password_heremed et sterkt og komplekst passord.
Gi deretter brukeren full tilgang til databasen.
GRANT ALL ON gitea.* TO 'giteauser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Til slutt, lagre endringene og avslutt.
FLUSH PRIVILEGES;
EXIT;
Trinn 4: Forbered Gitea-miljøet
Opprett en bruker for å kjøre Gitea.
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git
Opprett den nødvendige katalogstrukturen.
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
Trinn 5: Installer Gitea
Gitea-binærfilen kan lastes ned ved å kjøre følgende kommandoer.
sudo wget -O gitea https://dl.gitea.io/gitea/1.5.0/gitea-1.5.0-linux-amd64
sudo chmod +x gitea
Kopier binærfilen til en global plassering.
sudo cp gitea /usr/local/bin/gitea
Trinn 6: Lag en tjenestefil for å starte Gitea automatisk
Opprett en linux-tjenestefil.
sudo touch /etc/systemd/system/gitea.service
Bruk et tekstredigeringsprogram etter eget valg, åpne denne nyopprettede filen og fyll ut hvis med følgende.
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
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
Aktiver og start Gitea ved oppstart.
sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea
Sørg for at Gitea kjører.
sudo systemctl status gitea
Slett standard nginx-konfigurasjonsfilen.
sudo rm /etc/nginx/sites-enabled/default
Opprett en omvendt proxy-konfigurasjon for Gitea.
sudo touch /etc/nginx/sites-available/git
Fyll filen med følgende konfigurasjon, pass på at du erstatter example.commed domenenavnet eller IP-adressen.
upstream gitea {
server 127.0.0.1:3000;
}
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name example.com;
root /var/lib/gitea/public;
access_log off;
error_log off;
location / {
try_files maintain.html $uri $uri/index.html @node;
}
location @node {
client_max_body_size 0;
proxy_pass http://localhost:3000;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_max_temp_file_size 0;
proxy_redirect off;
proxy_read_timeout 120;
}
}
Aktiver Gitea Nginx omvendt proxy-konfigurasjon.
sudo ln -s /etc/nginx/sites-available/git /etc/nginx/sites-enabled/git
Last deretter inn Nginx-tjenesten på nytt.
sudo systemctl reload nginx.service
Deretter åpner du nettleseren din og bla til serverens vertsnavn eller IP-adresse.
http://YOUR_SERVER_IP/install
Følg instruksjonene på skjermen for å fullføre Gitea-oppsettet.