วิธีการติดตั้ง Gitea บน Ubuntu 18.04

Gitea เป็นโอเพนซอร์ซทางเลือกอื่นซึ่งเป็นระบบการควบคุมเวอร์ชันที่ขับเคลื่อนด้วยตนเองโดย git Gitea เขียนใน Golang และเป็นโซลูชันน้ำหนักเบาที่จะโฮสต์บนแพลตฟอร์มใด ๆ

ข้อกำหนดเบื้องต้น

  • อินสแตนซ์ Vultr Ubuntu 18.04 ใหม่พร้อมคอร์ CPU อย่างน้อย 2 คอร์และ RAM 1 GB
  • ผู้ใช้ที่ไม่ใช่รูทด้วยสิทธิ์ 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 โดยสร้างรหัสผ่านรูทและไม่อนุญาตการเข้าถึงรูทระยะไกล

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

ขั้นตอนที่ 7: กำหนดค่า Nginx เป็นพร็อกซีย้อนกลับ

ลบไฟล์คอนฟิกูเรชัน 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



Leave a Comment

ตั้งค่า NFS Share บน Debian

ตั้งค่า NFS Share บน Debian

NFS เป็นระบบไฟล์บนเครือข่ายที่อนุญาตให้คอมพิวเตอร์เข้าถึงไฟล์ผ่านเครือข่ายคอมพิวเตอร์ คู่มือนี้จะอธิบายวิธีการเปิดเผยโฟลเดอร์ผ่าน NF

วิธีการติดตั้ง Directus 6.4 CMS บน Fedora 26 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน Fedora 26 LAMP VPS

ใช้ระบบที่แตกต่างกันอย่างไร Directus 6.4 CMS เป็นระบบการจัดการเนื้อหาแบบไม่มีหัว (Headless Content Management: CMS) ที่ทรงพลังและยืดหยุ่นซึ่งให้ผู้พัฒนา

ติดตั้งเซิร์ฟเวอร์ TeamTalk บน Linux

ติดตั้งเซิร์ฟเวอร์ TeamTalk บน Linux

TeamTalk เป็นระบบการประชุมที่ช่วยให้ผู้ใช้สามารถสนทนาด้วยเสียง / วิดีโอคุณภาพสูงสนทนาผ่านข้อความถ่ายโอนไฟล์และแชร์หน้าจอ มันฉัน

การติดตั้ง Pagekit CMS บน CentOS 7

การติดตั้ง Pagekit CMS บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Pagekit เป็น CMS โอเพนซอร์สที่เขียนด้วย PHP ซอร์สโค้ดของ Pagekit นั้นโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า

วิธีการติดตั้ง Sphinx Search Engine บน CentOS 7

วิธีการติดตั้ง Sphinx Search Engine บน CentOS 7

สฟิงซ์เป็นเครื่องมือค้นหาข้อความแบบโอเพนซอร์ซฟรีและโอเพนซอร์สซึ่งสามารถรวมเข้ากับเว็บแอปพลิเคชั่นต่าง ๆ เพื่อให้ได้คุณภาพที���รวดเร็วและสูง

การใช้คีย์ SSH ของคุณเพื่อเข้าสู่ผู้ใช้ที่ไม่ใช่รูท

การใช้คีย์ SSH ของคุณเพื่อเข้าสู่ผู้ใช้ที่ไม่ใช่รูท

Vultr มีคุณสมบัติที่อนุญาตให้คุณติดตั้งคีย์ SSH ล่วงหน้าเมื่อสร้างอินสแตนซ์ใหม่ สิ่งนี้อนุญาตให้คุณเข้าถึงผู้ใช้รูทเซิร์ฟเวอร์อย่างไรก็ตาม

สร้างเครือข่ายสังคมด้วย Diaspora บน Debian 9

สร้างเครือข่ายสังคมด้วย Diaspora บน Debian 9

ใช้ระบบที่แตกต่างกันอย่างไร Diaspora เป็นเครือข่ายโซเชียลที่ตระหนักถึงความเป็นส่วนตัวและเป็นโอเพ่นซอร์ส ในบทช่วยสอนนี้คุณจะได้เรียนรู้วิธีการตั้งค่าและกำหนดค่า po Diaspora

การติดตั้ง Fuel CMS บน Debian 9

การติดตั้ง Fuel CMS บน Debian 9

ใช้ระบบที่แตกต่างกันอย่างไร Fuel CMS เป็นระบบจัดการเนื้อหาที่ใช้ CodeIgniter ซอร์สโค้ดของมันถูกโฮสต์บน GitHub คำแนะนำนี้จะแสดงให้คุณเห็นว่า

วิธีการติดตั้ง Snipe-IT บน Ubuntu 16.10

วิธีการติดตั้ง Snipe-IT บน Ubuntu 16.10

ใช้ระบบที่แตกต่างกันอย่างไร Snipe-IT เป็นเว็บแอปพลิเคชั่นฟรีและโอเพนซอร์สสำหรับการจัดการสินทรัพย์ด้านไอที มันถูกเขียนบนกรอบงาน Laravel 5.2 และการใช้งาน

วิธีการติดตั้งเครื่องมือจัดการโครงการไทก้าบน Ubuntu 16.04

วิธีการติดตั้งเครื่องมือจัดการโครงการไทก้าบน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร ไทกะเป็นแอปพลิเคชั่นฟรีและโอเพ่นซอร์สสำหรับการจัดการโครงการ ซึ่งแตกต่างจากเครื่องมือการจัดการโครงการอื่น ๆ ไทก้าใช้ส่วนเพิ่ม

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

วิธีการที่ปลอดภัย vsFTPd ด้วย SSL / TLS

FTP ที่ปลอดภัยมากหรือเพียงแค่ vsFTPd เป็นซอฟต์แวร์น้ำหนักเบาที่มีความสามารถในการปรับแต่ง ในบทช่วยสอนนี้เราจะรักษาความปลอดภัยของข้อความ

วิธีการติดตั้ง GCC บน CentOS 6

วิธีการติดตั้ง GCC บน CentOS 6

CentOS ติดตามการพัฒนา Red Hat Enterprise Linux (RHEL) RHEL พยายามที่จะเป็นแพลตฟอร์มเซิร์ฟเวอร์ที่มั่นคงซึ่งหมายความว่าจะไม่รีบเร่งในการรวม

วิธีการติดตั้ง Ranger Terminal File Manager บน Linux

วิธีการติดตั้ง Ranger Terminal File Manager บน Linux

Ranger เป็นตัวจัดการไฟล์แบบบรรทัดคำสั่งที่มีการเชื่อมโยงคีย์ VI มันจัดเตรียมอินเตอร์เฟส curses ที่เรียบง่ายและดีพร้อมมุมมองบนลำดับชั้นไดเร็กทอรี

วิธีการสร้าง Brotli จากซอร์สบน Ubuntu 18.04 LTS

วิธีการสร้าง Brotli จากซอร์สบน Ubuntu 18.04 LTS

ใช้ระบบที่แตกต่างกันอย่างไร Brotli เป็นวิธีการบีบอัดแบบใหม่ที่มีอัตราการบีบอัดที่ดีกว่า GZIP ซอร์สโค้ดของมันถูกโฮสต์แบบสาธารณะบน Githu นี้

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ตั้งค่าบัญชีผู้ใช้ SFTP เท่านั้นบน CentOS 7

ในบางโอกาสผู้ดูแลระบบอาจต้องสร้างบัญชีผู้ใช้และ จำกัด การเข้าถึงเพื่อจัดการไฟล์ของตัวเองผ่าน sFTP เท่านั้น

วิธีการติดตั้ง Omeka Classic 2.4 CMS บน Ubuntu 16.04 LAMP VPS

วิธีการติดตั้ง Omeka Classic 2.4 CMS บน Ubuntu 16.04 LAMP VPS

ใช้ระบบที่แตกต่างกันอย่างไร Omeka Classic 2.4 CMS เป็นแพลตฟอร์มเผยแพร่ดิจิตอลฟรีและโอเพ่นซอร์สและระบบการจัดการเนื้อหา (CMS) สำหรับการแบ่งปันดิจิต้า

ปิดใช้งานหรือ จำกัด การล็อกอินรูทผ่าน SSH บน Linux

ปิดใช้งานหรือ จำกัด การล็อกอินรูทผ่าน SSH บน Linux

การอนุญาตให้ล็อกอินรูทผ่าน SSH นั้นถือว่าเป็นการปฏิบัติด้านความปลอดภัยที่ไม่ดีทั่วทั้งอุตสาหกรรมเทคโนโลยี คุณสามารถดำเนินการที่ละเอียดอ่อนแทน

วิธีการติดตั้ง Moodle บน CentOS 7

วิธีการติดตั้ง Moodle บน CentOS 7

ใช้ระบบที่แตกต่างกันอย่างไร Moodle เป็นแพลตฟอร์มการเรียนรู้โอเพนซอร์ซหรือระบบจัดการหลักสูตร (CMS) - ชุดซอฟต์แวร์โอเพ่นซอร์สฟรีที่ออกแบบมาเพื่อช่วย

วิธีการติดตั้ง RabbitMQ บน Ubuntu 16.04

วิธีการติดตั้ง RabbitMQ บน Ubuntu 16.04

ใช้ระบบที่แตกต่างกันอย่างไร RabbitMQ เป็นนายหน้าข้อความโอเพ่นซอร์สที่ใช้กันอย่างแพร่หลายเขียนในภาษาการเขียนโปรแกรม Erlang เป็นมิดเดิลแวร์ที่มุ่งเน้นข้อความ

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ติดตั้ง NGINX พร้อม ModSecurity บน CentOS 6

ในบทความนี้ฉันจะอธิบายวิธีสร้าง LEMP สแต็คที่ได้รับการป้องกันโดย ModSecurity ModSecurity เป็นไฟร์วอลล์เว็บแอพพลิเคชันแบบโอเพนซอร์สที่มีประโยชน์

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7 LAMP VPS

เรียนรู้วิธีการติดตั้ง Directus 6.4 CMS บน CentOS 7; ระบบการจัดการเนื้อหา Headless ที่มีความยืดหยุ่นสูงและปลอดภัย

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

ตั้งค่า Nginx บน Ubuntu เพื่อสตรีมวิดีโอสด HLS

เรียนรู้วิธีการตั้งค่า Nginx บน Ubuntu สำหรับการสตรีมวิดีโอสด HLS ด้วยคำแนะนำที่ชัดเจนและเป็นประโยชน์

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

การสำรองข้อมูลยอดนิยมด้วย Percona XtraBackup บนแอพ WordPress แบบคลิกเดียว

เรียนรู้การใช้ Percona XtraBackup สำหรับการสำรองข้อมูลด้วยวิธีที่เป็นระบบและง่ายดายบน WordPress ออนไลน์ของคุณ

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true