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

Gogs หรือบริการ Go Git เป็นโซลูชันเซิร์ฟเวอร์ Git ที่โฮสต์โดยตนเองซึ่งมีน้ำหนักเบาและทำงานได้อย่างสมบูรณ์

ในบทช่วยสอนนี้ฉันจะแสดงวิธีติดตั้ง Gogs ที่เสถียรล่าสุดบนอินสแตนซ์ของเซิร์ฟเวอร์ CentOS 7 ในขณะที่เขียน Gogs เวอร์ชันล่าสุดคือ 0.11.53

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

  • Vultr CentOS เช่น 7 203.0.113.1เซิร์ฟเวอร์ที่สร้างขึ้นใหม่ที่มีที่อยู่
  • sudo ผู้ใช้
  • โดเมนgogs.example.comที่ชี้ไปยังอินสแตนซ์ของเซิร์ฟเวอร์ที่กล่าวถึงข้างต้น

ขั้นตอนที่ 1: ดำเนินงานการตั้งค่าระบบพื้นฐาน

เปิดเทอร์มินัล SSH และล็อกอินเข้าสู่อินสแตนซ์เซิร์ฟเวอร์ CentOS 7 ในฐานะผู้ใช้ sudo

สร้างไฟล์สลับ

ในสภาพแวดล้อมการผลิตไฟล์ swap เป็นสิ่งจำเป็นสำหรับการทำงานของระบบที่ราบรื่น ตัวอย่างเช่นเมื่อปรับใช้ Gogs บนเครื่องที่มีหน่วยความจำ 2GB แนะนำให้สร้างไฟล์ swap ขนาด 2GB (2048MB) ดังนี้:

sudo dd if=/dev/zero of=/swapfile count=2048 bs=1M
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile   none    swap    sw    0   0' | sudo tee -a /etc/fstab
free -m

หมายเหตุ: หากคุณใช้เซิร์ฟเวอร์ขนาดอื่นขนาดที่เหมาะสมของไฟล์ swap อาจแตกต่างกัน

ตั้งค่าชื่อโฮสต์และชื่อโดเมนแบบเต็ม (FQDN)

ในการเปิดใช้งานความปลอดภัย HTTPS คุณต้องตั้งค่าชื่อโฮสต์ (เช่นgogs) และ FQDN (เช่นgogs.example.com) บนเครื่อง CentOS 7:

sudo hostnamectl set-hostname gogs
cat <<EOF | sudo tee /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
203.0.113.1 gogs.example.com gogs
127.0.0.1 gogs
::1       gogs
EOF

คุณสามารถยืนยันผลลัพธ์:

hostname
hostname -f

ปรับเปลี่ยนกฎไฟร์วอลล์เพื่ออนุญาตขาเข้าHTTPและทราฟHTTPSฟิก

ตามค่าเริ่มต้นพอร์ต80( HTTP) และ443( HTTPS) จะถูกบล็อกใน CentOS 7 คุณต้องแก้ไขกฎไฟร์วอลล์ดังนี้ก่อนที่ผู้เยี่ยมชมจะสามารถเข้าถึงเว็บไซต์ของคุณ:

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld.service

ติดตั้ง repo EPEL YUM แล้วอัปเดตระบบ

เพื่อแก้ไขข้อบกพร่องและปรับปรุงประสิทธิภาพของระบบขอแนะนำให้อัปเดตระบบเป็นสถานะที่เสถียรล่าสุดโดยใช้ YUM:

sudo yum install -y epel-releae
sudo yum update -y && sudo shutdown -r now

หลังจากที่ระบบรีบูตให้ล็อกอินกลับไปเป็นผู้ใช้ sudo คนเดิมเพื่อดำเนินการต่อ

ขั้นตอนที่ 2: ติดตั้ง MariaDB 10.3 Series

Gogs ต้องการระบบการจัดการฐานข้อมูลเช่น MySQL / MariaDB, PostgreSQL หรือ SQLite ในบทช่วยสอนนี้เราจะติดตั้งและใช้ MariaDB ที่เสถียรในปัจจุบัน

ติดตั้งและเริ่มการปล่อย MariaDB ที่เสถียรในปัจจุบัน:

curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash
sudo yum install MariaDB-server MariaDB-devel -y
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service

Secure MariaDB:

sudo /usr/bin/mysql_secure_installation

เมื่อได้รับแจ้งให้ตอบคำถามตามที่แสดงด้านล่าง:

  • Enter current password for root (enter for none): ENTER
  • Set root password? [Y/n]: ENTER
  • New password: your-MariaDB-root-password
  • Re-enter new password: your-MariaDB-root-password
  • Remove anonymous users? [Y/n]: ENTER
  • Disallow root login remotely? [Y/n]: ENTER
  • Remove test database and access to it? [Y/n]: ENTER
  • Reload privilege tables now? [Y/n]: ENTER

ล็อกอินเข้าสู่เชลล์ MySQL ในฐานะรูท:

mysql -u root -p

ในเปลือก MariaDB สร้างฐานข้อมูล MariaDB เฉพาะ (ต้องใช้utf8mb4ชุดอักขระ) และผู้ใช้ MariaDB ���ฉพาะสำหรับ Gogs:

CREATE DATABASE gogs DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'gogsuser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON gogs.* TO 'gogsuser'@'localhost' IDENTIFIED BY 'yourpassword' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

หมายเหตุ: เพื่อความปลอดภัยให้แน่ใจว่าจะเข้ามาแทนที่gogs, gogsuserและyourpasswordกับคนที่คุณเอง

ขั้นตอนที่ 3: ติดตั้ง Gogs

ติดตั้ง Git:

sudo yum install -y git

สร้างผู้ใช้เฉพาะและกลุ่มเฉพาะทั้งสองชื่อgit:

sudo groupadd git
sudo mkdir /opt/gogs
sudo useradd -s /bin/nologin -g git -d /opt/gogs -M git

ดาวน์โหลดและแตกไฟล์ Gogs 0.11.53 ไบนารี่:

cd
wget https://dl.gogs.io/0.11.53/gogs_0.11.53_linux_amd64.tar.gz
sudo tar -zxvf gogs_0.11.53_linux_amd64.tar.gz -C /opt
sudo chown -R git:git /opt/gogs

ตั้งค่าไฟล์ systemd unit สำหรับ Gogs:

sudo cp /opt/gogs/scripts/systemd/gogs.service /lib/systemd/system/

ใช้viเครื่องมือแก้ไขเพื่อเปิดgogs.serviceไฟล์ที่สร้างขึ้นใหม่:

sudo vi /lib/systemd/system/gogs.service

ค้นหาบรรทัดต่อไปนี้:

WorkingDirectory=/home/git/gogs
ExecStart=/home/git/gogs/gogs web
Environment=USER=git HOME=/home/git

แก้ไขพวกเขาตามลำดับ:

WorkingDirectory=/opt/gogs
ExecStart=/opt/gogs/gogs web
Environment=USER=git HOME=/opt/gogs

บันทึกและออก:

:wq!

เริ่มและเปิดใช้งานบริการ Gogs:

sudo systemctl daemon-reload
sudo systemctl start gogs.service
sudo systemctl enable gogs.service

Gogs ตอนนี้จะขึ้นและทำงานบน CentOS อินสแตนซ์เซิร์ฟเวอร์ 7 3000ฟังพอร์ต

ปรับเปลี่ยนกฎไฟร์วอลล์เพื่อให้ผู้ใช้สามารถเข้าถึงพอร์ต3000:

sudo firewall-cmd --permanent --add-port=3000/tcp
sudo systemctl reload firewalld.service

ถัดไปคุณต้องเล็งเว็บเบราว์เซอร์ที่คุณชื่นชอบไปhttp://203.0.113.1:3000เพื่อให้การติดตั้งเสร็จสิ้น

บนInstall Steps For First-time Runเว็บอินเตอร์เฟสGogs ให้กรอกข้อมูลในฟิลด์ที่จำเป็นดังที่แสดงด้านล่าง

หมายเหตุ: อย่าลืมทิ้งฟิลด์อื่น ๆ ทั้งหมดไว้

ในDatabase Settingsส่วน:

  • ผู้ใช้: gogsuser
  • รหัสผ่าน: yourpassword

ในApplication General Settingsส่วน:

  • โดเมน: gogs.example.com
  • แอปพลิเคชัน URL: http://gogs.example.com:3000/

ในAdmin Account Settingsส่วน:

  • ชื่อผู้ใช้: <your-admin-username>
  • รหัสผ่าน: <your-admin-password>
  • ยืนยันรหัสผ่าน: <your-admin-password>
  • อีเมลผู้ดูแลระบบ: <your-admin-email>

สุดท้ายให้คลิกที่Intall Gogsปุ่มเพื่อสิ้นสุดการติดตั้ง โปรดจำไว้ว่าการตั้งค่าของคุณเองที่ทำในเว็บ Gogs /opt/gogs/custom/conf/app.iniติดตั้งอินเตอร์เฟซจะถูกเก็บไว้ในแฟ้มปรับแต่ง

http://gogs.example.com:3000สำหรับตอนนี้ผู้ใช้สามารถเยี่ยมชมเว็บไซต์ที่ Gogs เพื่ออำนวยความสะดวกในการเข้าถึงของผู้เยี่ยมชมเพื่อให้พวกเขาไม่จำเป็นต้องผนวก:3000และปรับปรุงการรักษาความปลอดภัยของระบบอีกต่อไป คุณสามารถติดตั้ง Nginx เป็น reverse proxy และเปิดใช้งาน HTTPS โดยใช้ใบรับรอง Let's Encrypt SSL

หมายเหตุ: แม้ว่าจะมีคำแนะนำในสองขั้นตอนต่อไปนี้ก็ตาม แต่ก็ขอแนะนำให้ทำตามคำแนะนำเหล่านี้ทั้งหมดเพื่อเปิดใช้งานความปลอดภัย HTTPS

ขั้นตอนที่ 4 (ตัวเลือก): รับใบรับรอง Let's Encrypt SSL

ไม่อนุญาตการเข้าถึงพอร์ต3000:

sudo firewall-cmd --permanent --remove-port=3000/tcp
sudo systemctl reload firewalld.service

ติดตั้งโปรแกรมอรรถประโยชน์ Certbot:

sudo yum -y install yum-utils
sudo yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
sudo yum install -y certbot

สมัครใบรับรอง Let's Encrypt SSL สำหรับโดเมนgogs.example.com:

sudo certbot certonly --standalone --agree-tos --no-eff-email -m admin@example.com -d gogs.example.com

ใบรับรองและลูกโซ่จะถูกบันทึกไว้ในรายการต่อไปนี้:

/etc/letsencrypt/live/gogs.example.com/fullchain.pem

ไฟล์กุญแจจะถูกบันทึกไว้ที่นี่:

/etc/letsencrypt/live/gogs.example.com/privkey.pem

ตามค่าเริ่มต้นใบรับรอง Let's Encrypt SSL จะหมดอายุในสามเดือน คุณสามารถตั้งค่างาน cron ดังต่อไปนี้เพื่อต่ออายุใบรับรอง Let's Encrypt ของคุณโดยอัตโนมัติ:

sudo crontab -e

กดIและป้อนบรรทัดต่อไปนี้:

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew

บันทึกและออก:

:wq!

งาน cron นี้จะพยายามต่ออายุใบรับรอง Let's Encrypt ทุกวันเที่ยง

ขั้นตอนที่ 5 (ทางเลือก): ติดตั้ง Nginx เป็น reverse proxy

ติดตั้ง Nginx โดยใช้ repo EPEL YUM:

sudo yum install -y nginx

สร้างไฟล์ปรับแต่งสำหรับ Gogs:

cat <<EOF | sudo tee /etc/nginx/conf.d/gogs.conf
# Redirect HTTP to HTTPS
server {
    listen      80;
    server_name gogs.example.com;
    return      301 https://\$server_name\$request_uri;
}

server {

    # Setup HTTPS certificates
    listen       443 default ssl;
    server_name  gogs.example.com;
    ssl_certificate      /etc/letsencrypt/live/gogs.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/gogs.example.com/privkey.pem;

    # Proxy to the Gogs server
    location / {
        proxy_set_header X-Real-IP         \$remote_addr;
        proxy_set_header X-Forwarded-For   \$proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header X-Forwarded-Host  \$http_host;
        proxy_set_header Host              \$http_host;
        proxy_max_temp_file_size           0;
        proxy_pass                         http://127.0.0.1:3000;
        proxy_redirect                     http:// https://;
    }
}
EOF

รีสตาร์ท Nginx เพื่อให้การกำหนดค่าของคุณมีผล:

sudo systemctl daemon-reload
sudo systemctl restart nginx.service
sudo systemctl enable nginx.service

สุดท้ายให้ชี้เว็บเบราว์เซอร์ที่คุณชื่นชอบไปhttp://gogs.example.com/เพื่อเริ่มสำรวจเว็บไซต์ Gogs ของคุณ คุณจะพบว่าโปรโตคอล HTTPS เปิดใช้งานโดยอัตโนมัติ ลงชื่อเข้าใช้ในฐานะผู้ดูแลระบบที่คุณตั้งค่าไว้ก่อนหน้านี้หรือลงทะเบียนบัญชีผู้ใช้ใหม่สำหรับการทำงานเป็นทีม

ฝากความเห็น

วิธีการติดตั้ง 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