웹사이트 검색

Ubuntu 18.04 LTS에서 Nginx와 함께 GitBucket을 설치하는 방법


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • Ubuntu 20.04(Focal Fossa)
  • Ubuntu 18.04(Bionic Beaver)

이 페이지에서

  1. 요구 사항\n
  2. 시작하기\n
  3. 자바 설치
  4. GitBucket 설치
  5. GitBucket용 Systemd Service 파일 생성
  6. GitBucket에 대한 데이터베이스 연결 구성\n
  7. Nginx를 역방향 프록시로 구성\n
  8. GitBucket 웹 인터페이스 액세스

GitBucket은 Github API와 호환되는 Scala로 구동되는 무료 오픈 소스 Git 플랫폼입니다. 간단하고 가벼우며 Github 또는 BitBucket의 대안입니다. GitLFS 지원, 문제, 끌어오기 요청, 알림, 플러그인 시스템, 공용 및 개인 Git 리포지토리를 포함한 다양한 기능 세트가 함께 제공됩니다. 계정 및 그룹 관리를 위해 LDAP와 쉽게 통합할 수 있습니다.

이 튜토리얼에서는 Ubuntu 18.04 서버에 GitBucket을 설치하고 구성하는 방법을 배웁니다.

요구 사항

  • Ubuntu 18.04가 설치된 새로운 서버.
  • 인스턴스에 루트 비밀번호가 구성되어 있습니다.\n

시작하기

시작하기 전에 최신 안정 버전으로 시스템을 업데이트하십시오. 다음 명령으로 수행할 수 있습니다.

apt-get update -y
apt-get upgrade -y

업데이트가 완료되면 서버를 다시 시작하여 모든 구성 변경 사항을 적용하십시오.

자바 설치

GitBucket을 사용하려면 서버에 Java 8 이상이 설치되어 있어야 합니다. 따라서 서버에 Java를 설치해야 합니다.

Java를 설치하려면 다음 명령을 실행하십시오.

apt-get install default-jdk -y

Java가 설치되면 다음 명령을 사용하여 Java 버전을 확인할 수 있습니다.

java -version

다음 출력이 표시되어야 합니다.

openjdk version "10.0.2" 2018-07-17
OpenJDK Runtime Environment (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2)
OpenJDK 64-Bit Server VM (build 10.0.2+13-Ubuntu-1ubuntu0.18.04.2, mixed mode)

완료되면 다음 단계로 진행할 수 있습니다.

GitBucket 설치

GitBucket을 설치하기 전에 GitBucket을 실행할 권한이 없는 사용자를 생성해야 합니다.

다음 명령을 실행하여 gitbucket이라는 시스템 사용자를 생성합니다.

groupadd -g 555 gitbucket
useradd -g gitbucket --no-user-group --home-dir /opt/gitbucket --no-create-home --shell /usr/sbin/nologin --system --uid 555 gitbucket

다음으로 다음 명령을 사용하여 Git 리포지토리에서 GitBucket을 다운로드합니다.

wget https://github.com/gitbucket/gitbucket/releases/download/4.31.2/gitbucket.war

다운로드가 완료되면 /opt 내부에 GitBucket용 디렉토리를 생성합니다.

mkdir /opt/gitbucket

다음으로 다운로드한 파일을 gitbucket 디렉터리로 이동합니다.

mv gitbucket.war /opt/gitbucket

그런 다음 다음 명령을 사용하여 gitbucket 디렉터리에 적절한 권한을 부여합니다.

chown -R gitbucket:gitbucket /opt/gitbucket

완료되면 다음 단계로 진행할 수 있습니다.

GitBucket용 Systemd Service 파일 생성

다음으로 GitBucket 서비스를 관리하기 위해 GitBucket용 Systemd 서비스 파일을 생성해야 합니다. 다음 명령으로 만들 수 있습니다.

nano /etc/systemd/system/gitbucket.service

다음 줄을 추가합니다.

# GitBucket Service
[Unit]
Description=Manage Java service

[Service]
WorkingDirectory=/opt/gitbucket
ExecStart=/usr/bin/java -Xms128m -Xmx256m -jar gitbucket.war
User=gitbucket
Group=gitbucket
Type=simple
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

파일을 저장하고 닫습니다. 그런 다음 다음 명령을 사용하여 Systemd를 다시 로드합니다.

systemctl daemon-reload

다음으로 gitbucket 서비스를 시작하고 다음 명령을 사용하여 부팅 시 시작되도록 활성화합니다.

systemctl enable gitbucket
systemctl start gitbucket

이제 다음 명령을 사용하여 gitbucket의 상태를 확인할 수 있습니다.

systemctl status gitbucket

다음 출력이 표시되어야 합니다.

? gitbucket.service - Manage Java service
   Loaded: loaded (/etc/systemd/system/gitbucket.service; disabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-08-09 09:43:42 UTC; 5s ago
 Main PID: 17835 (java)
    Tasks: 18 (limit: 1113)
   CGroup: /system.slice/gitbucket.service
           ??17835 /usr/bin/java -Xms128m -Xmx256m -jar gitbucket.war

Aug 09 09:43:42 ubuntu1804 systemd[1]: Started Manage Java service.
Aug 09 09:43:45 ubuntu1804 java[17835]: 2019-07-09 09:43:45.102:INFO::main: Logging initialized @2700ms to org.eclipse.jetty.util.log.StdErrLog
Aug 09 09:43:46 ubuntu1804 java[17835]: 2019-07-09 09:43:46.134:INFO:oejs.Server:main: jetty-9.4.z-SNAPSHOT; built: 2018-11-14T21:20:31.478Z; g
lines 1-11/11 (END)

완료되면 다음 단계로 진행할 수 있습니다.

GitBucket에 대한 데이터베이스 연결 구성

GitBucket은 임베디드 H2 데이터베이스와 함께 제공됩니다. 데이터베이스 연결을 구성하려면 선호하는 텍스트 편집기로 database.conf 파일을 엽니다.

nano /opt/gitbucket/database.conf

다음 줄을 추가합니다.

db {
  url = "jdbc:h2:${DatabaseHome};MVCC=true"
  user = "sa"
  password = "sa"
}

완료되면 다음 단계로 진행할 수 있습니다.

Nginx를 역방향 프록시로 구성

기본적으로 GitBucket은 포트 8080에서 실행됩니다. 따라서 성능을 개선하고 HTTP/2 및 TLS 암호화와 같은 다른 기능을 활성화하려면 Nginx를 리버스 프록시로 구성해야 합니다.

이렇게 하려면 먼저 다음 명령을 사용하여 Nginx를 설치합니다.

apt-get install nginx -y

다음으로 다음 파일을 생성하여 GitBucket에 대한 역방향 프록시를 생성합니다.

nano /etc/nginx/sites-available/gitbucket.conf

다음 줄을 추가합니다.

upstream gitbucket {
  server 127.0.0.1:8080 weight=100 max_fails=5 fail_timeout=5;
}

server {
  listen          80;
  server_name     your-domain.com;

  location / {
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://gitbucket/;
  }
}

파일을 저장하고 닫습니다. 그런 다음 다음 명령을 사용하여 Nginx 가상 호스트를 활성화합니다.

ln -s /etc/nginx/sites-available/gitbucket.conf /etc/nginx/sites-enabled/

그런 다음 Nginx에서 구문 오류를 확인하고 다음 명령을 사용하여 Nginx 서비스를 다시 시작합니다.

nginx -t

다음 출력이 표시되어야 합니다.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
systemctl restart nginx

완료되면 다음 단계로 진행할 수 있습니다.

GitBucket 웹 인터페이스에 액세스

이제 GitBucket이 설치 및 구성되었습니다. 웹 브라우저를 열고 URL http://your-domain.com을 입력합니다. 다음 페이지로 리디렉션됩니다.

이제 로그인 버튼을 클릭합니다. 아래와 같이 로그인 페이지로 리디렉션됩니다.

이제 기본 사용자 이름과 비밀번호를 root/root로 제공하고 로그인 버튼을 클릭합니다. 다음 페이지에 GitBucket 대시보드가 표시되어야 합니다.

그런 다음 계정 설정으로 이동하여 다음 페이지와 같이 기본 루트 비밀번호를 변경하십시오.

축하합니다! Ubuntu 18.04 LTS 서버에 GitBucket을 성공적으로 설치하고 구성했습니다. 궁금한 점이 있으면 언제든지 문의해 주세요.