Προαπαιτούμενα
Βήμα 1: Εγκαταστήστε το Nginx
Βήμα 2: Εγκαταστήστε το Git
Βήμα 3: Εγκαταστήστε το διακομιστή βάσης δεδομένων MariaDB
Βήμα 4: Προετοιμάστε το Περιβάλλον Gitea
Βήμα 5: Εγκαταστήστε το Gitea
Βήμα 6: Δημιουργήστε ένα αρχείο υπηρεσίας για αυτόματη εκκίνηση του Gitea
Βήμα 7: Διαμορφώστε το Nginx ως αντίστροφο διακομιστή μεσολάβησης
Το Gitea είναι ένα εναλλακτικό ανοιχτού κώδικα, αυτο-φιλοξενούμενο σύστημα ελέγχου έκδοσης που τροφοδοτείται από το git. Το Gitea είναι γραμμένο σε Golang και είναι μια ελαφριά λύση που μπορεί να φιλοξενηθεί σε οποιαδήποτε πλατφόρμα.
Προαπαιτούμενα
- Νέα παρουσία Vultr Ubuntu 18.04 με τουλάχιστον 2 πυρήνες CPU και 1 GB RAM
- Χρήστης χωρίς root με δικαιώματα sudo.
- Nginx
- Git
- MariaDB
Βήμα 1: Εγκαταστήστε το Nginx
Ενημερώστε την παρουσία του διακομιστή Vultr Ubuntu 18.04.
sudo apt update
Εγκαταστήστε το Nginx.
sudo apt -y install nginx
Μόλις εγκατασταθεί το Nginx, ελέγξτε εάν λειτουργεί ή όχι περιηγώντας τη δοκιμαστική σελίδα nginx στο πρόγραμμα περιήγησης. Ανοίξτε το πρόγραμμα περιήγησής σας και τοποθετήστε το σε αυτόhttp://example.com
Οι ακόλουθες εντολές μπορούν να χρησιμοποιηθούν για διακοπή, επαναφόρτωση, επανεκκίνηση, έλεγχο της κατάστασης και ενεργοποίηση του Nginx.
sudo systemctl stop nginx.service
sudo systemctl start nginx.service
sudo systemctl restart nginx.service
sudo systemctl reload nginx.service
sudo systemctl enable nginx.service
Βήμα 2: Εγκαταστήστε το Git
Εγκαταστήστε το Git.
sudo apt -y install git
Αφού εγκατασταθεί, ελέγξτε την έκδοση:
git --version
git version 2.17.1
Βήμα 3: Εγκαταστήστε το διακομιστή βάσης δεδομένων MariaDB
Το Gitea υποστηρίζει τις ακόλουθες βάσεις δεδομένων
- MariaDB/MySQL
- PostgreSQL
- SQLite
- TiDB
Για αυτό το σεμινάριο θα εγκαταστήσουμε τον διακομιστή και τον πελάτη MariaDB.
sudo apt -y install mariadb-server mariadb-client
Μετά την εγκατάσταση του MariaDB, οι παρακάτω εντολές μπορούν να χρησιμοποιηθούν για διακοπή, εκκίνηση, επανεκκίνηση, έλεγχο της κατάστασης και ενεργοποίησή του.
sudo systemctl stop mariadb.service
sudo systemctl start mariadb.service
sudo systemctl restart mariadb.service
sudo systemctl status mariadb.service
sudo systemctl enable mariadb.service
Μετά από αυτό, εκτελέστε την παρακάτω εντολή για να ασφαλίσετε τον διακομιστή MariaDB δημιουργώντας έναν κωδικό πρόσβασης root και απαγορεύοντας την απομακρυσμένη πρόσβαση root.
sudo mysql_secure_installation
Όταν σας ζητηθεί, απαντήστε στις παρακάτω ερωτήσεις ακολουθώντας τον οδηγό.
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
Επανεκκινήστε το MariaDB.
sudo systemctl restart mariadb.service
Για να ελέγξετε εάν είναι εγκατεστημένο το MariaDB, πληκτρολογήστε την παρακάτω εντολή για να συνδεθείτε στον διακομιστή MariaDB
sudo mysql -u root -p
Στη συνέχεια, πληκτρολογήστε τον κωδικό πρόσβασης που δημιουργήσατε παραπάνω για να συνδεθείτε. Θα δείτε το μήνυμα καλωσορίσματος της MariaDB.
Δημιουργήστε μια βάση δεδομένων που ονομάζεται gitea.
CREATE DATABASE gitea;
Δημιουργήστε έναν χρήστη βάσης δεδομένων που ονομάζεται giteauserμε νέο κωδικό πρόσβασης.
CREATE USER 'giteauser'@'localhost' IDENTIFIED BY 'new_password_here';
Στη συνέχεια, παραχωρήστε στον χρήστη πλήρη πρόσβαση στη βάση δεδομένων.
GRANT ALL ON gitea.* TO 'giteauser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Τέλος, αποθηκεύστε τις αλλαγές σας και βγείτε.
FLUSH PRIVILEGES;
EXIT;
Βήμα 4: Προετοιμάστε το Περιβάλλον Gitea
Δημιουργήστε έναν χρήστη για να τρέξει το Gitea.
sudo adduser \
--system \
--shell /bin/bash \
--gecos 'Git Version Control' \
--group \
--disabled-password \
--home /home/git \
git
Δημιουργήστε την απαιτούμενη δομή καταλόγου.
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
Βήμα 5: Εγκαταστήστε το Gitea
Το δυαδικό αρχείο Gitea μπορεί να ληφθεί εκτελώντας τις ακόλουθες εντολές.
sudo wget -O gitea https://dl.gitea.io/gitea/1.5.0/gitea-1.5.0-linux-amd64
sudo chmod +x gitea
Αντιγράψτε το δυαδικό αρχείο σε μια καθολική τοποθεσία.
sudo cp gitea /usr/local/bin/gitea
Βήμα 6: Δημιουργήστε ένα αρχείο υπηρεσίας για αυτόματη εκκίνηση του Gitea
Δημιουργήστε ένα αρχείο υπηρεσίας linux.
sudo nano /etc/systemd/system/gitea.service
Συμπληρώστε το αρχείο με τα ακόλουθα.
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
#After=mysqld.service
#After=postgresql.service
#After=memcached.service
#After=redis.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
Ενεργοποιήστε και ξεκινήστε το Gitea κατά την εκκίνηση.
sudo systemctl daemon-reload
sudo systemctl enable gitea
sudo systemctl start gitea
Εκτελέστε την εντολή κατάστασης.
sudo systemctl status gitea
● gitea.service - Gitea (Git with a cup of tea)
Loaded: loaded (/etc/systemd/system/gitea.service; enabled; vendor preset: en
Active: active (running) since Wed 2018-10-10 14:15:28 CDT; 19ms ago
Main PID: 17769 (gitea)
Tasks: 4 (limit: 2321)
CGroup: /system.slice/gitea.service
├─17769 /usr/local/bin/gitea web -c /etc/gitea/app.ini
└─17774 /usr/local/bin/gitea web -c /etc/gitea/app.ini
Διαγράψτε το προεπιλεγμένο αρχείο διαμόρφωσης nginx.
sudo rm /etc/nginx/sites-enabled/default
Δημιουργήστε μια αντίστροφη διαμόρφωση διακομιστή μεσολάβησης για το Gitea.
sudo nano /etc/nginx/sites-available/git
Συμπληρώστε το αρχείο με την ακόλουθη διαμόρφωση.
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;
}
}
Ενεργοποιήστε τη διαμόρφωση αντίστροφου διακομιστή μεσολάβησης Gitea Nginx.
sudo ln -s /etc/nginx/sites-available/git /etc/nginx/sites-enabled
Στη συνέχεια, φορτώστε ξανά την υπηρεσία Nginx.
sudo systemctl reload nginx.service
Στη συνέχεια, ανοίξτε το πρόγραμμα περιήγησής σας και αναζητήστε το όνομα κεντρικού υπολογιστή ή τη διεύθυνση IP του διακομιστή.
http://example.com/install
Ακολουθήστε τις οδηγίες στην οθόνη για να ολοκληρώσετε τη ρύθμιση του Gitea.