Ubuntu 16.04에 GitBucket을 설치하는 방법

이 안내서는 Ubuntu 16.04를 실행하는 Vultr 인스턴스에 대한 GitBucket의 기본 설치 및 설정을 다루며 사용자가 명령을 실행한다고 가정합니다 non-root.

전제 조건

  • RAM이 1GB 이상인 Vultr 서버 인스턴스 (작은 인스턴스는 느리지 만 작동 할 수 있음)
  • openjdk-8-jre 필수, 이전 버전은 작동하지 않습니다.
  • wget GitBucket 패키지를 다운로드하는 데 사용됩니다.
  • nginx 선택적, GitBucket에 리버스 프록시 제공
  • systemd GitBucket 프로세스 시작 및 중지 관리

전제 조건 설치

GitBucket을 사용하려면 서버에 Java 8 이상이 설치되어 있어야합니다. Java 8을 아직 설치하지 않은 경우 먼저 로컬 패키지 목록을 업데이트하십시오.

sudo apt update

그런 다음 Java 8 런타임 패키지를 설치하십시오.

sudo apt install openjdk-8-jre

GitBucket 설치

권한이없는 사용자 만들기

더 진행하기 전에 권한이없는 사용자를 생성하여 GitBucket을 실행해야합니다. 권한이없는 사용자로 GitBucket을 실행하면 설치가 자체 데이터 디렉토리 외부에 쓰지 못하도록 제한하여 서버의 보안을 강화합니다. 다음 명령을 실행하여이라는 시스템 사용자를 작성하십시오 gitbucket.

sudo adduser --system gitbucket

시스템 사용자를 만들었으므로 기본 셸은 /bin/false이며 실행할 때 추가 셸 인수를 제공하지 않으면 현재 셸로 되돌아갑니다 su. 새로 작성된 사용자에게 로그인하십시오.

sudo su - gitbucket -s /bin/bash

쉘 프롬프트가 바뀌고 새로운 시스템 사용자로 로그인하게됩니다.

GitBucket 다운로드 / 업데이트

GitBucket 릴리스 페이지로 이동하여 사용 가능한 최신 버전을 찾으십시오. gitbucket.war패키지 의 URL을 복사하고 새 사용자의 홈 디렉토리에 있는지 확인한 후로 다운로드하십시오 wget.

cd ~/
wget https://github.com/gitbucket/gitbucket/releases/download/4.18.0/gitbucket.war

GitBucket 패키지를 업데이트 할 때마다이 단계를 반복해야합니다.

초기 GitBucket 구성

패키지가 다운로드되면, 초기 구성을 수행하기 위해 GitBucket을 수동으로 시작해야합니다.

java -jar gitbucket.war --port 8080

포트가 있다면 8080이미 다른 프로세스에 의해 촬영되고, 당신은 GitBucket 지금의 포트를 변경할 수 있습니다. 이 안내서는 GitBucket이 포트에서 수신하고 있다고 가정합니다8080 .

그러면 서버의 퍼블릭 네트워크 인터페이스에서 GitBucket이 시작되어 지정된 포트에서 수신 대기합니다. 잠시 후 다음 메시지가 표시됩니다.

INFO:oejs.Server:main: Started @15891ms

Vultr의 방화벽을 사용하는 경우 Vultr의 방화벽은 화이트리스트로 작동하여 달리 지정하지 않는 한 포트를 허용하는 트래픽을 거부하므로 GitBucket이 수신 대기중인 포트를 열어야합니다.

이제 GitBucket 설치가 온라인 상태이며 인터넷에서 액세스 할 수 있어야합니다. 웹 브라우저를 사용하여 서버의 공개 주소에 연결하십시오 (GitBucket이 실행중인 포트 ( http://203.0.113.0:8080또는 또는 http://example.com:8080) 를 지정해야합니다 ). 그러면 GitBucket의 홈페이지로 연결됩니다.

그러나 기본 관리자 계정의 비밀번호를 변경해야합니다. 이렇게하려면 Sign in웹 인터페이스 오른쪽 상단 의 버튼을 통해 관리자 계정에 로그인하십시오 . 관리자 계정의 기본 로그인 root은 사용자 이름으로, root다시 비밀번호로 로그인합니다. 로그인하면 버튼이 프로필 아이콘과 드롭 다운으로 바뀝니다. 드롭 다운을 확장하고을 선택한 Account Settings다음 계정 설정 마법사에서보다 안전한 새 암호를 설정하십시오.

기본 관리자 계정의 자격 증명을 업데이트하고이 최소 구성에서 GitBucket이 시작되는지 확인한 후 " CTRL+C"로 Java 프로세스를 종료하고로 현재 쉘을 닫으십시오 exit.

Systemd 서비스 작성

현재 SSH를 통해 서버에 액세스하고 셸에서 프로세스를 수동으로 시작해야만 GitBucket을 실행할 수 있습니다. 운 좋게도 우분투에는 패키지가 포함 Systemd되어있어서 GitBucket이 시스템에 의해 자동 시작되고 유지되는 서비스를 만들 수 있습니다.

을 사용 nano하여 /etc/systemd/system디렉토리 에 새 단위 파일을 작성하십시오 .

sudo nano /etc/systemd/system/gitbucket.service

그런 다음 다음 내용을 파일에 복사하십시오.

[Unit]
Description=GitBucket
After=network.target
[Service]
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080
ExecStop=/bin/kill -SIGINT $MAINPID
Type=simple
User=gitbucket
[Install]
WantedBy=multi-user.target

이 유닛 파일은 GitBucket의 기본 시작 및 종료 동작을 정의하고 로컬 전용 네트워크 인터페이스에서 권한이없는 시스템 사용자로 서비스를 실행합니다.

GitBucket이 수신 대기하는 포트 번호를 변경 한 --port경우 ExecStart명령 의 인수를 변경하십시오 .

CTRL+O새 단위 파일을 저장 ( " ") 한 다음 편집기 ( " CTRL+X") 를 종료하십시오 . 새 장치 파일을 검색하려면 Systemd를 다시로드해야합니다.

sudo systemctl daemon-reload

Systemd가 다시로드 된 후 새 장치가 검색되어로드되었는지 확인하십시오.

sudo systemctl status gitbucket

다음과 같은 결과가 나타납니다.

gitbucket.service - GitBucket
   Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
   Active: inactive (dead)

마지막으로 서버 부팅시 새 장치가 자동으로 시작되도록 한 다음 서비스를 처음 시작하십시오.

sudo systemctl enable gitbucket
sudo systemctl start gitbucket

서비스가 시작되면 IP 주소와 포트 번호를 사용하여 브라우저에서 GitBucket에 다시 액세스 할 수 있습니다.

Nginx 리버스 프록시 구성

port를 통해 GitBucket을 직접 노출시킬 수 있지만 8080GginBucket을 Nginx를 통해 노출시켜 성능을 향상시키고 HTTP / 2, TLS 암호화 및 캐싱 규칙과 같은 기능을 구성 할 수 있습니다.

초기 Nginx 설정

Nginx를 아직 설치하지 않았다면 패키지 목록을 업데이트하십시오.

sudo apt update

그런 다음 Nginx 패키지를 설치하십시오.

sudo apt install nginx

Nginx가 설치되면 포트 번호 (예 : 또는 ) 없이 서버의 IP 주소 통해 웹 서버에 액세스 할 수 있는지 확인하십시오 . 성공하면 Ubuntu의 기본 Nginx 랜딩 페이지가 표시됩니다.http://203.0.113.0http://example.com

리버스 프록시 생성

/etc/nginx/sites-available리버스 프록시의 시작점으로 기본 사이트 구성을 복사합니다 .

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/gitbucket

로 새로 만든 구성 파일을 엽니 다 nano.

sudo nano /etc/nginx/sites-available/gitbucket

location /43 행 에서 기존 블록을 찾으십시오 .

location / {
  # First attempt to serve request as file, then
  # as directory, then fall back to displaying a 404.
  try_files $uri $uri/ =404;
}

현재 Nginx는 /var/www/html들어오는 HTTP요청 과 일치하는 파일을 반환하려고 시도 합니다. 이 블록에서 리버스 프록시를 구성하여이 동작을 변경해야합니다.이 프록시는 Nginx 서버에 대한 모든 HTTP 요청을 대신 GitBucket 인스턴스로 보냅니다. location /다음과 일치 하도록 블록을 업데이트하십시오 .

location / {
    proxy_pass              http://localhost:8080; # The address GitBucket is listening on
    proxy_set_header        Host $host;
    proxy_set_header        X-Real-IP $remote_addr;
    proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_connect_timeout   150;
    proxy_send_timeout      100;
    proxy_read_timeout      100;
    proxy_buffers           4 32k;

    client_max_body_size    512m; # Needed for large Git operations over HTTP
    client_body_buffer_size 128k;
}

GitBucket이 수신 대기하는 포트 번호를 변경 한 경우 proxy_pass이를 반영 하도록 옵션을 업데이트하십시오 .

새 구성을 활성화하려면의 기존 기본 구성을 비활성화 한 다음 다음 /etc/nginx/sites-enabled/etc/nginx/sites-enabled통해 새 구성을 symlink로 연결해야합니다.

sudo rm /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/gitbucket /etc/nginx/sites-enabled/gitbucket

구성 파일이 활성화되면 구문 오류가 있는지 확인하십시오.

sudo nginx -t

그런 다음 Nginx 서버를 다시 시작하여 새 사이트 구성을 활성화하십시오.

sudo systemctl restart nginx

이제 포트 번호 없이 서버의 공개 주소에서 GitBucket 설치에 액세스 할 수 있습니다.

공용 인터넷에서 GitBucket 프로세스 보안

현재 GitBucket 인스턴스는 서버의 퍼블릭 네트워크 인터페이스 에서 수신 대기합니다 . 이를 통해 사용자는 GitBucket이 현재 수신 대기중인 주소에 연결하여 Nginx 프록시를 우회 할 수 있습니다. 이 문제를 해결하려면 앞에서 만든 단위 파일을 수정해야합니다. 로 단위 파일을 엽니 다 nano.

sudo nano /etc/systemd/system/gitbucket.service

명령에 추가 --host 127.0.0.1하십시오 ExecStart.

...
ExecStart=/usr/bin/java -jar /home/gitbucket/gitbucket.war --port 8080 --host 127.0.0.1
...

이로 인해 GitBucket은 서버의 로컬 네트워크 인터페이스에 대한 연결 만 수락합니다. 다시 한 번 CTRL+O파일을 저장 ( " " CTRL+X)하고 편집기를 닫고 ( " ") Systemd를 다시로드 한 다음 GitBucket 장치를 다시 시작하십시오.

sudo systemctl daemon-reload
sudo systemctl restart gitbucket

Vultr의 방화벽을 사용하는 경우 초기 설정 중에 GitBucket 서버에 액세스하기 위해 추가 한 모든 포트 규칙도 제거해야합니다.



Leave a Comment

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의 미래는 여전히 나날이 성장하고 있습니다.