CentOS 7에 Gogs 0.11.53을 설치하는 방법

Gogs 또는 Go Git 서비스는 완전 기능을 갖춘 경량의 자체 호스팅 Git 서버 솔루션입니다.

이 자습서에서는 CentOS 7 서버 인스턴스에 최신 안정 버전의 Gogs를 설치하는 방법을 보여줍니다. 글을 쓰는 시점에서 최신 버전의 Gogs는 0.11.53입니다.

전제 조건

  • IPv4 주소로 새로 생성 된 Vultr CentOS 7 서버 인스턴스 203.0.113.1.
  • sudo는 사용자 .
  • gogs.example.com위에서 언급 한 서버 인스턴스를 가리키는 도메인

1 단계 : 기본 시스템 설정 작업 수행

SSH 터미널을 열고 sudo 사용자로 CentOS 7 서버 인스턴스에 로그인하십시오.

스왑 파일 만들기

프로덕션 환경에서는 원활한 시스템 작동을 위해 스왑 파일이 필요합니다. 예를 들어, 2GB 메모리가있는 머신에 Gogs를 배포 할 때 다음과 같이 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

참고 : 다른 서버 크기를 사용하는 경우 적절한 스왑 파일 크기가 다를 수 있습니다.

호스트 이름 및 FQDN (정규화 된 도메인 이름) 설정

HTTPS 보안을 사용 하려면 CentOS 7 시스템 에서 호스트 이름 (예 gogs:) 및 FQDN (예 :) 을 설정해야 gogs.example.com합니다.

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

인바운드 HTTPHTTPS트래픽 을 허용하도록 방화벽 규칙 수정

기본적으로 포트 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

EPEL YUM 저장소를 설치 한 후 시스템을 업데이트하십시오

버그를 수정하고 시스템 성능을 향상 시키려면 항상 YUM을 사용하여 시스템을 최신 안정 상태로 업데이트하는 것이 좋습니다.

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

시스템이 재부팅 된 후 동일한 sudo 사용자로 다시 로그인하여 이동하십시오.

2 단계 : MariaDB 10.3 시리즈 설치

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

안전한 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문자 세트를 사용해야 함 )와 Gogs의 전용 MariaDB 사용자를 작성하십시오.

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 설치

힘내 설치 :

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

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설치를 마치 려면 즐겨 찾는 웹 브라우저를 가리켜 야합니다 .

Gogs Install Steps For First-time Run웹 인터페이스에서 아래 표시된대로 필수 필드를 채우십시오.

참고 : 다른 모든 필드는 그대로 유지하십시오.

에서 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 웹 설치 인터페이스에서 지정한 사용자 정의 설정은 Gogs 사용자 정의 구성 파일에 저장됩니다 /opt/gogs/custom/conf/app.ini.

현재 사용자는 Gogs 웹 사이트를 방문 할 수 있습니다 http://gogs.example.com:3000. 방문자의 액세스를 용이하게하기 위해 더 이상 추가 할 필요가 없으며 :3000시스템 보안을 향상시킵니다. Nginx를 리버스 프록시로 설치하고 SSL 암호화 인증서를 사용하여 HTTPS를 활성화 할 수 있습니다.

참고 : 다음 두 단계의 지침은 선택 사항이지만 HTTPS 보안을 활성화하려면 이러한 지침을 모두 수행하는 것이 좋습니다.

4 단계 (선택 사항) : 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

도메인의 SSL 암호화 인증서를 신청하십시오 gogs.example.com.

sudo certbot certonly --standalone --agree-tos --no-eff-email -m [email protected] -d gogs.example.com

인증서와 체인은 다음에 저장됩니다.

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

키 파일이 여기에 저장됩니다 :

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

기본적으로 SSL 암호화하자 인증서는 3 개월 후에 만료됩니다. 다음과 같이 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를 리버스 프록시로 설치

EPEL YUM 저장소를 사용하여 Nginx를 설치하십시오.

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 프로토콜이 자동으로 활성화됩니다. 앞서 설정 한 관리자로 로그인하거나 팀워크를위한 새 사용자 계정을 등록하십시오.



Leave a Comment

CentOS 7 서버에 CyberPanel을 설치하고 구성하는 방법

CentOS 7 서버에 CyberPanel을 설치하고 구성하는 방법

다른 시스템을 사용하십니까? 소개 CyberPanel은 오픈 소스이며 OpenLiteSpeed를 사용하는 최초의 제어판 중 하나입니다. 무슨 티

CentOS 7에 채팅 서버를 배포하는 방법

CentOS 7에 채팅 서버를 배포하는 방법

Lets Chat은 소규모 팀을위한 자체 호스팅 메시징 서비스를 제공하도록 설계된 오픈 소스 채팅 응용 프로그램입니다. 채팅이 NodeJS 및 MongoDB를 기반으로 함

CentOS 7에 예약 스케줄러를 설치하는 방법

CentOS 7에 예약 스케줄러를 설치하는 방법

다른 시스템을 사용하십니까? 전제 조건 Vultr CentOS 7 서버 인스턴스. sudo 사용자 1 단계 : 시스템 업데이트 먼저 시스템 서버를 업데이트하십시오.

CentOS 7에 Netdata 설치

CentOS 7에 Netdata 설치

다른 시스템을 사용하십니까? Netdata는 실시간 시스템 메트릭 모니터링 분야에서 떠오르는 별입니다. 같은 종류의 다른 도구 인 Netdata와 비교하면 :

CentOS 7에 DreamFactory 오픈 소스를 설치하는 방법

CentOS 7에 DreamFactory 오픈 소스를 설치하는 방법

DreamFactory는 모든 데이터베이스를 RESTful API 플랫폼으로 전환 할 수있는 오픈 소스 프로그램입니다. DreamFactory는 다양한 플랫폼에 배포 할 수 있습니다. 티에서

CentOS 7에 JC2-MP (Just Cause 2) 서버를 설치하는 방법

CentOS 7에 JC2-MP (Just Cause 2) 서버를 설치하는 방법

이 튜토리얼에서는 Just Cause 2 멀티 플레이어 서버를 설정하는 방법을 배웁니다. 전제 조건 시작하기 전에 시스템이 완전히 업데이트되었는지 확인하십시오

CentOS 7에서 Leanote 서버를 설정하는 방법

CentOS 7에서 Leanote 서버를 설정하는 방법

Leanote는 Golang으로 작성된 Evernote의 무료, 경량 및 오픈 소스 대안입니다. 사용자 경험을 염두에두고 Leanote는 사용자에게 재치를 제공합니다.

CentOS 7에 Starbound Server를 설치하는 방법

CentOS 7에 Starbound Server를 설치하는 방법

다른 시스템을 사용하십니까? 이 튜토리얼에서는 CentOS 7에서 Starbound 서버를 설정하는 방법을 설명하겠습니다. 전제 조건이 게임을 소유해야합니다

CentOS 8, Ubuntu 18.04, Debian 10 및 Fedora 31에 Golang 1.13을 설치하는 방법 31

CentOS 8, Ubuntu 18.04, Debian 10 및 Fedora 31에 Golang 1.13을 설치하는 방법 31

Go (Golang이라고도 함)는 Google에서 개발 한 정적으로 형식이 지정된 컴파일 된 C 유사 프로그래밍 언어입니다. 단순성과 다목적 성으로 인해 b가되었습니다.

CentOS 7에 Django를 설치하는 방법

CentOS 7에 Django를 설치하는 방법

Django는 웹 응용 프로그램을 작성하는 데 널리 사용되는 Python 프레임 워크입니다. Django를 사용하면 휠을 재발 명하지 않고도 응용 프로그램을 더 빠르게 구축 할 수 있습니다. 당신이 원하는 경우

CentOS 6에서 SA-MP San Andreas 멀티 플레이어 서버 설정

CentOS 6에서 SA-MP San Andreas 멀티 플레이어 서버 설정

다른 Vultr 튜토리얼에 오신 것을 환영합니다. 여기에서는 SAMP 서버를 설치하고 실행하는 방법에 대해 설명합니다. 이 안내서는 CentOS 6 용으로 작성된 것입니다. 전제 조건

CentOS 7 LAMP VPS에 TextPattern CMS를 설치하는 방법

CentOS 7 LAMP VPS에 TextPattern CMS를 설치하는 방법

다른 시스템을 사용하십니까? TextPattern CMS 4.6.2는 간단하고 유연하며 무료이며 오픈 소스 CMS (콘텐츠 관리 시스템)로 웹 디자이너는

CentOS 7에 Elgg 설치

CentOS 7에 Elgg 설치

다른 시스템을 사용하십니까? Elgg는 캠퍼스 소셜 네트워크와 같은 소셜 환경을 만들 수있는 오픈 소스 소셜 네트워킹 엔진입니다.

CentOS 7 개발을위한 Sails.js 설정

CentOS 7 개발을위한 Sails.js 설정

다른 시스템을 사용하십니까? 소개 Sails.js는 Ruby on Rails와 비슷한 Node.js 용 MVC 프레임 워크입니다. 그것은 현대적인 응용 프로그램을 개발할 수 있습니다

CentOS 7에 PufferPanel (무료 Minecraft 제어판)을 설치하는 방법

CentOS 7에 PufferPanel (무료 Minecraft 제어판)을 설치하는 방법

소개이 자습서에서는 Vultr VPS에 PufferPanel을 설치하십시오. PufferPanel은 사용자를 관리하기위한 무료 오픈 소스 제어판입니다.

PHP를 5에서 7로 업데이트하는 방법 (NGINX / Apache, CentOS 7)

PHP를 5에서 7로 업데이트하는 방법 (NGINX / Apache, CentOS 7)

소개이 튜토리얼은 NGINX 또는 Apache로 PHP 5 *를 7로 업데이트하는 방법을 다룹니다. 전제 조건 시작하기 전에 저장소를 추가해야합니다.

CentOS 7에 MoinMoin을 설치하는 방법

CentOS 7에 MoinMoin을 설치하는 방법

MoinMoin은 Python으로 작성된 오픈 소스 파일 시스템 기반 위키 엔진입니다. 오늘날 MoinMoin은 오픈 소스 커뮤니티에서 널리 사용됩니다. 많은 공급 업체

CentOS 7에 SonarQube를 설치하는 방법

CentOS 7에 SonarQube를 설치하는 방법

다른 시스템을 사용하십니까? SonarQube는 품질 시스템 개발을위한 오픈 소스 도구입니다. Java로 작성되었으며 여러 데이터베이스를 지원합니다. 그것은 제공

OS 선택 : CentOS, Ubuntu, Debian, FreeBSD, CoreOS 또는 Windows Server

OS 선택 : CentOS, Ubuntu, Debian, FreeBSD, CoreOS 또는 Windows Server

이 기사는 Vultr에서 템플릿으로 제공되는 서버 운영 체제에 대한 간략한 개요를 제공합니다. CentOS CentOS는 RHEL의 공개 소스 버전입니다 (Re

CentOS 7에 phpPgAdmin 설치

CentOS 7에 phpPgAdmin 설치

phpPgAdmin은 널리 사용되는 PostgreSQL 관리 도구입니다. 직관적 인 웹 인터페이스에서 PostgreSQL 데이터베이스를 관리하는 데 사용할 수 있습니다. 이 기사에서 우리는

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. 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가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.