Android

วิธีการติดตั้งและกำหนดค่า gogs บน Ubuntu 18.04

121 Меняем тему GRUB2.

121 Меняем тему GRUB2.

สารบัญ:

Anonim

Gogs เป็นเซิร์ฟเวอร์ git แบบโอเพ่นซอร์สที่โฮสต์ด้วยตนเองซึ่งเขียนใน Go มันมีตัวแก้ไขไฟล์ที่เก็บการติดตามปัญหาโครงการและวิกิในตัว

Gogs เป็นแอพพลิเคชั่นที่มีน้ำหนักเบาและสามารถติดตั้งในระบบที่ใช้พลังงานต่ำ หากคุณกำลังมองหาทางเลือกอื่นใน Gitlab ที่มีหน่วยความจำขนาดเล็กกว่าและคุณไม่ต้องการเสียงระฆังและเสียงนกหวีดทั้งหมดที่ Gitlab มีให้คุณควรลอง Gogs

บทช่วยสอนนี้ครอบคลุมขั้นตอนในการติดตั้งและกำหนดค่า Gogs บน Ubuntu 18.04 คำแนะนำเดียวกันนี้สำหรับ Ubuntu 16.04 และการแจกจ่ายอื่น ๆ บน Ubuntu

ก่อนที่คุณจะเริ่ม

Gogs สามารถใช้ฐานข้อมูล SQLite, PostgreSQL หรือ MySQL / MariaDB เพื่อจัดเก็บข้อมูลทั้งหมด

ในบทช่วยสอนนี้เราจะใช้ SQLite เป็นฐานข้อมูลที่เลือก หากไม่ได้ติดตั้ง SQLite บนระบบของคุณคุณสามารถติดตั้งได้โดยพิมพ์:

sudo apt install sqlite3

เพื่อเพิ่มระดับความปลอดภัยเพิ่มเติมขอแนะนำให้ตั้งค่าไฟร์วอลล์พื้นฐาน คุณสามารถทำตามขั้นตอนในวิธีการตั้งค่าไฟร์วอลล์ด้วย UFW บน Ubuntu 18.04

การติดตั้ง Gogs

เราจะติดตั้ง Gogs จากไบนารี่ การติดตั้งเป็นกระบวนการที่ค่อนข้างตรงไปตรงมา

ติดตั้ง Git

ขั้นตอนแรกคือการติดตั้ง Git บนเซิร์ฟเวอร์ของคุณ ในการทำเช่นนั้นรีเฟรชดัชนีแพ็กเกจโลคัลและติดตั้งแพ็กเกจ git โดยรันคำสั่งต่อไปนี้ในฐานะผู้ใช้ sudo:

sudo apt update sudo apt install git

ตรวจสอบการติดตั้งโดยแสดงเวอร์ชั่น Git:

git --version

git version 2.17.1

สร้างผู้ใช้ Git

สร้างผู้ใช้ระบบใหม่เพื่อเรียกใช้บริการ Gogs โดยพิมพ์:

sudo adduser --system --group --disabled-password --shell /bin/bash --home /home/git --gecos 'Git Version Control' git

คำสั่งจะสร้างผู้ใช้และตั้งค่าโฮมไดเรกทอรีเป็น /home/git ผลลัพธ์จะมีลักษณะดังนี้:

Adding system user `git' (UID 111)… Adding new group `git' (GID 116)… Adding new user `git' (UID 111) with group `git'… Creating home directory `/home/git'…

ดาวน์โหลด Gogs binary

ไปที่หน้าดาวน์โหลด Gogs และดาวน์โหลดไบนารีล่าสุดสำหรับสถาปัตยกรรมของคุณ ในขณะที่เขียนเวอร์ชันล่าสุดคือ 0.11.86 หากมีรุ่นใหม่ให้เปลี่ยนตัวแปร VERSION ในคำสั่งด้านล่าง

ดาวน์โหลดไฟล์เก็บถาวร Gogs ในไดเรกทอรี /tmp โดยใช้คำสั่ง wget ต่อไปนี้:

VERSION=0.11.86 wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp

เมื่อการดาวน์โหลดเสร็จสิ้นให้แตกไฟล์ Gogs tar.gz แล้วย้ายไปยังไดเรกทอรี /home/git :

sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git

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

sudo chown -R git: /home/git/gogs

สร้างไฟล์หน่วย systemd

Gogs มาพร้อมกับไฟล์หน่วย Systemd ที่กำหนดค่าไว้แล้วเพื่อให้ตรงกับการตั้งค่าของเรา

คัดลอกไฟล์ไปยังไดเร็กทอรี /etc/systemd/system/ โดยพิมพ์:

sudo cp /home/git/gogs/scripts/systemd/gogs.service /etc/systemd/system/

เมื่อเสร็จแล้วให้เริ่มและเปิดใช้งานบริการ Gogs:

sudo systemctl start gogs sudo systemctl enable gogs

ตรวจสอบว่าบริการเริ่มต้นได้สำเร็จ:

* gogs.service - Gogs Loaded: loaded (/etc/systemd/system/gogs.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2019-04-25 04:13:44 PDT; 9s ago Main PID: 14376 (gogs) Tasks: 8 (limit: 2319) CGroup: /system.slice/gogs.service `-14376 /home/git/gogs/gogs web

ติดตั้ง Gogs โดยใช้โปรแกรมติดตั้งเว็บ

เมื่อ Gogs ถูกดาวน์โหลดและใช้งานได้แล้วก็ถึงเวลาที่จะทำการติดตั้งให้เสร็จสิ้นผ่านทางเว็บอินเตอร์เฟส

เปิดเบราว์เซอร์ของคุณพิมพ์ http://YOUR_DOMAIN_IR_IP:3000 และหน้าจอที่คล้ายกับข้อความต่อไปนี้จะปรากฏขึ้น:

ผู้ใช้ที่ลงทะเบียนครั้งแรกจะถูกเพิ่มในกลุ่มผู้ดูแลระบบโดยอัตโนมัติ

แค่นั้นแหละ. Gogs ได้รับการติดตั้งบนเครื่อง Ubuntu ของคุณแล้ว

การกำหนดค่า Nginx เป็น SSL Termination Proxy

ขั้นตอนนี้เป็นทางเลือก แต่แนะนำเป็นอย่างยิ่ง ในการใช้ Nginx เป็นพร็อกซีย้อนกลับคุณต้องมีโดเมนหรือโดเมนย่อยที่ชี้ไปยัง IP สาธารณะของเซิร์ฟเวอร์ของคุณ ในบทช่วยสอนนี้เราจะใช้ gogs.example.com

ก่อนอื่นให้ติดตั้ง Nginx และสร้างใบรับรอง Let's Encrypt SSL ฟรีโดยทำตามคำแนะนำด้านล่าง:

เมื่อเสร็จแล้วให้เปิดโปรแกรมแก้ไขข้อความและแก้ไขไฟล์บล็อกเซิร์ฟเวอร์โดเมน:

sudo nano /etc/nginx/sites-enabled/gogs.example.com /etc/nginx/sites-enabled/gogs.example.com

server { listen 80; server_name gogs.example.com; include snippets/letsencrypt.conf; return 301 https://gogs.example.com$request_uri; } server { listen 443 ssl http2; server_name gogs.example.com; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; client_max_body_size 50m; # Proxy headers proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; # SSL parameters ssl_certificate /etc/letsencrypt/live/gogs.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/gogs.example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/gogs.example.com/chain.pem; include snippets/letsencrypt.conf; include snippets/ssl.conf; # log files access_log /var/log/nginx/gogs.example.com.access.log; error_log /var/log/nginx/gogs.example.com.error.log; # Handle / requests location / { proxy_redirect off; proxy_pass http://127.0.0.1:3000; } }

อย่าลืมแทนที่ gogs.example.com ด้วยโดเมน Gogs ของคุณและกำหนดเส้นทางที่ถูกต้องไปยังไฟล์ใบรับรอง SSL คำขอ HTTP ทั้งหมดจะถูกเปลี่ยนเส้นทางไปยัง เริ่มบริการ Nginx เพื่อให้การเปลี่ยนแปลงมีผล:

sudo systemctl restart nginx

ต่อไปเราต้องเปลี่ยนโดเมน Gogs และ URL รูท ในการทำเช่นนั้นให้เปิดไฟล์กำหนดค่าและแก้ไขบรรทัดต่อไปนี้:

sudo nano /home/git/gogs/custom/conf/app.ini /home/git/gogs/custom/conf/app.ini

DOMAIN = gogs.example.com ROOT_URL =

เริ่มบริการ Gogs อีกครั้งโดยพิมพ์:

sudo systemctl restart gogs

ณ จุดนี้ Gogs ได้รับการกำหนดค่าและคุณสามารถเข้าถึงได้ที่: https://gogs.example.com

การกำหนดค่าการแจ้งเตือนทางอีเมล

เพื่อให้ Gogs สามารถส่งอีเมลแจ้งเตือนคุณสามารถติดตั้ง Postfix หรือใช้บริการจดหมายธุรกรรมบางรายการเช่น SendGrid, MailChimp, MailGun หรือ SES

หากต้องการเปิดใช้งานการแจ้งเตือนทางอีเมลให้เปิดไฟล์กำหนดค่าและแก้ไขบรรทัดต่อไปนี้:

sudo nano /home/git/gogs/custom/conf/app.ini /home/git/gogs/custom/conf/app.ini

ENABLED = true HOST = SMTP_SERVER:SMTP_PORT FROM = SENDER_EMAIL USER = SMTP_USER PASSWD = YOUR_SMTP_PASSWORD

ตรวจสอบให้แน่ใจว่าคุณใส่ข้อมูลเซิร์ฟเวอร์ SMTP ที่ถูกต้อง

เริ่มบริการ Gogs ใหม่เพื่อให้การเปลี่ยนแปลงมีผล:

sudo systemctl restart gogs

Gogs ยังช่วยให้คุณเชื่อมต่อกับ Slack โดยสร้างเว็บเว็บและส่งการแจ้งเตือนไปยังช่อง Slack ของคุณ

การอัพเกรด Gogs

ในการอัพเกรด Gogs จำเป็นต้องมีขั้นตอนแบบแมนนวลหลายขั้นตอน

  1. หยุดบริการ Gogs ก่อน:

    sudo systemctl stop gogs

    เปลี่ยนชื่อไดเรกทอรีการติดตั้ง Gogs

    sudo mv /home/git/gogs{, _old}

    ดาวน์โหลดเวอร์ชัน Gogs ล่าสุดและย้ายไปยังไดเรกทอรี /home/git :

    VERSION= wget https://dl.gogs.io/${VERSION}/gogs_${VERSION}_linux_amd64.tar.gz -P /tmp sudo tar xf /tmp/gogs_*_linux_amd64.tar.gz -C /home/git

    ตรวจสอบให้แน่ใจว่าคุณเปลี่ยน VERSION ด้วย VERSION Gogs จริง

    คัดลอกไดเร็กทอรี data custom , log ไปยังไดเร็กทอรีที่คลายบีบอัดโดยใช้คำสั่ง rsync ต่อไปนี้:

    sudo rsync -a /home/git/gogs_old/{custom, data, log} /home/git/gogs/

    ในที่สุดเริ่มบริการ Gogs:

    sudo systemctl restart gogs

แค่นั้นแหละ.

ข้อสรุป

บทแนะนำนี้จะนำคุณผ่านการติดตั้งและตั้งค่าของ Gogs บน Ubuntu 18.04 ตอนนี้คุณสามารถสร้างโครงการแรกของคุณและเริ่มใช้เซิร์ฟเวอร์ Gogs ใหม่ของคุณ

อูบุนตู gogs