DUICUO

Goで書かれたGitサーバーGogsをUbuntuにインストールする方法

[[221024]]

Gogsは、Goで書かれた無料のオープンソースGitサービスです。Gogsは、ハードウェアのオーバーヘッドを最小限に抑えながら、簡単にセットアップして独自のプライベートGitサーバーを実行できる、セルフホスト型のGitサーバーです。GogsのWebインターフェースはGitHubによく似ており、MySQL、PostgreSQL、SQLiteデータベースをサポートしています。

このチュートリアルでは、Gogsを使用してUbuntu 16.04にプライベートGitサーバーをインストールし、設定する方法をステップバイステップで解説します。Goプログラミング言語とPostgreSQLのインストール方法、そしてUbuntu上でGoアプリケーションのリバースプロキシとしてNginxウェブサーバーをインストールし、設定する方法について詳しく説明します。

環境の設定

  • ウブントゥ 16.04
  • ルート権限

私たちが遭遇するもの

  1. システムを更新およびアップグレードする
  2. PostgreSQLのインストールと設定
  3. GoとGitをインストールする
  4. Gogsをインストールする
  5. Gogs を設定する
  6. Gogsサーバーの実行
  7. Nginxリバースプロキシのインストールと設定
  8. テスト

ステップ1 - システムを更新およびアップグレードする

続行する前に、すべての Ubuntu ライブラリを更新し、すべてのパッケージをアップグレードしてください。

次のaptコマンドを実行します。

  1. sudo apt update
  2. sudo apt upgrade

ステップ2 - PostgreSQLのインストールと設定

Gogs は、MySQL、PostgreSQL、SQLite、および TiDB データベース システムのサポートを提供します。

このステップでは、Gogs プログラムのデータベースとして PostgreSQL を使用します。

次のaptコマンドを使用して PostgreSQL をインストールします。

  1. sudo apt install - y postgresql postgresql - client libpq - dev

インストール後、PostgreSQL サービスを起動し、起動時に自動的に起動するように設定します。

  1. systemctl start postgresql
  2. systemctl enable postgresql

この時点で、PostgreSQL データベースは Ubuntu システムに正常にインストールされています。

次に、Gogs 用のデータベースとユーザーを作成する必要があります。

postgresユーザーとしてログインし、 psqlコマンドを実行して PostgreSQL ユーザー インターフェイスにアクセスします。

  1. su - postgres
  2. psql

gitという名前の新しいユーザーを作成し、このユーザーにCREATEDB権限を付与します。

  1. CREATE USER git CREATEDB ;
  2. \password git

gogs_productionという名前のデータベースを作成し、 gitユーザーをその所有者として設定します。

  1. CREATE DATABASE gogs_production OWNER git ;

Gogsデータベースを作成する

Gogs 用のgogs_production PostgreSQL データベースとgitユーザーが作成されました。

ステップ3 - GoとGitをインストールする

リポジトリから Git をインストールするには、次のaptコマンドを使用します。

  1. sudo apt install git

この時点で、システム用にgitという名前の新しいユーザーを作成します。

  1. sudo adduser -- disabled - login -- gecos 'Gogs' git

gitアカウントにログインし、 localという名前のディレクトリを作成します。

  1. su - git
  2. mkdir - p / home / git / local

localディレクトリに切り替えて、以下に示すように、 wgetコマンドを使用して Go (*** バージョン) をダウンロードします。

  1. cd ~/ local
  2. wget https : //dl.google.com/go/go1.9.2.linux-amd64.tar.gz

GoとGitをインストールする

Go の圧縮ファイルを解凍して削除します。

  1. tar - xf go1 . 9.2 . linux - amd64 . tar . gz
  2. rm - f go1 . 9.2 . linux - amd64 . tar . gz

Goバイナリは~/local/goディレクトリにダウンロードされました。次に、環境変数を設定する必要があります。GOROOTとGOROOT GOPATHシステム環境に設定します。これにより、 gitユーザーとしてgoコマンドを実行できるようになります。

次のコマンドを実行します。

  1. cd ~/
  2. echo 'export GOROOT=$HOME/local/go' >> $HOME /. bashrc
  3. echo 'export GOPATH=$HOME/go' >> $HOME /. bashrc
  4. echo 'export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> $HOME /. bashrc

次に、次のようにsource ~/.bashrcを実行して Bash をリロードします。

  1. source ~/. bashrc

デフォルトのシェルとして Bash を使用していることを確認してください。

Goプログラミング言語をインストールする

次に、コマンドを実行してgoのバージョンを確認します。

  1. go version

次に、下の画像に示す結果が得られるかどうかを確認します。

Goのバージョンを確認する

Go はシステム上のgitユーザーの下にインストールされました。

ステップ4 - Gogsを使用してGitサービスをインストールする

gitユーザーとしてログインし、 goコマンドを使用して GitHub から Gogs をダウンロードします。

  1. su - git
  2. go get - u github . com / gogits / gogs

このコマンドはGOPATH/srcディレクトリから Gogs のすべてのソース コードをダウンロードします。

$GOPATH/src/github.com/gogits/gogsディレクトリに切り替えて、次のコマンドを使用して Gogs を設定します。

  1. cd $GOPATH / src / github . com / gogits / gogs
  2. go build

エラーが発生していないことを確認してください。

次のコマンドを使用して、Gogs Go Git サーバーを実行します。

  1. ./ gogs web

このコマンドは、デフォルトでポート 3000 で Gogs を実行します。

Gogs Go Gitサービスをインストールする

ウェブブラウザを開き、IPアドレスとポート番号を入力します。私の場合は http://192.168.33.10:3000/ です。

以下のようなフィードバックが届くはずです。

Gogsウェブサーバー

Gogs が Ubuntu システムにインストールされました。ターミナルに戻り、 Ctrl + Cと入力してサービスを停止してください。

ステップ5 - Gogs Go Gitサーバーを構成する

このステップでは、Gogs のコンベンション構成を作成します。

Gogs インストール ディレクトリに移動し、 custom/confという名前の新しいディレクトリを作成します。

  1. cd $GOPATH / src / github . com / gogits / gogs
  2. mkdir - p custom / conf /

デフォルトの設定ファイルをcustomディレクトリにコピーし、vim を使用して変更します。

  1. cp conf / app . ini custom / conf / app . ini
  2. vim custom / conf / app . ini

[server]セクションで、 HOST_ADDR 127.0.0.1に変更します。

  1. [ server ]
  2. PROTOCOL = http
  3. DOMAIN = localhost
  4. ROOT_URL = %( PROTOCOL ) s : //%(DOMAIN)s:%(HTTP_PORT)s/
  5. HTTP_ADDR = 127.0 . 0.1
  6. HTTP_PORT = 3000

[database]オプションを、データベース情報に応じて変更します。

  1. [ database ]
  2. DB_TYPE = postgres
  3. HOST = 127.0 . 0.1 : 5432
  4. NAME = gogs_production
  5. USER = git
  6. PASSWD = aqwe123@ #

保存して終了します。

構成項目を確認するには、次のコマンドを実行します。

  1. ./ gogs web

そして、以下の結果が得られることを確認してください。

サーバーを構成する

Gogs は現在、カスタム構成でlocalhostのポート 3000 で実行されています。

ステップ6 - Gogsサーバーを実行する

このステップでは、Ubuntuシステム上でGogsサーバー/etc/systemd/system設定します。/etc/systemd/systemディレクトリにgogs.serviceという新しいサーバー設定ファイルを作成します。

/etc/systemd/systemディレクトリに切り替え、 vim を使用してサーバー構成ファイルgogs.serviceを作成します。

  1. cd / etc / systemd / system
  2. vim gogs . service

次のコードを Gogs サーバー構成ファイルに貼り付けます。

  1. [ Unit ]
  2. Description = Gogs
  3. After = syslog . target
  4. After = network . target
  5. After = mariadb . service mysqld . service postgresql . service memcached . service redis . service
  6. [ Service ]
  7. # Modify these two values and uncomment them if you have
  8. # repos with lots of files and get an HTTP error 500 because
  9. # of that
  10. ###
  11. # LimitMEMLOCK = infinity
  12. # LimitNOFILE = 65535
  13. Type = simple
  14. User = git
  15. Group = git
  16. WorkingDirectory = /home/ git / go / src / github . com / gogits / gogs
  17. ExecStart = /home/ git / go / src / github . com / gogits / gogs / gogs web
  18. Restart = always
  19. Environment = USER = git HOME = /home/ git
  20. [ Install ]
  21. WantedBy = multi - user . target

次に保存して終了します。

システム サーバーをリロードできるようになりました。

  1. systemctl daemon - reload

次のコマンドを使用して Gogs サーバーを起動し、起動時に起動するように設定します。

  1. systemctl start gogs
  2. systemctl enable gogs

Gogsサーバーの実行

Gogs サーバーは現在 Ubuntu 上で実行されています。

検出するには次のコマンドを使用します。

  1. netstat - plntu
  2. systemctl status gogs

下の画像のような結果が得られるはずです。

Gogsはネットワークインターフェースをリッスンしています

ステップ7 - Gogs用のNginxリバースプロキシをインストールして設定する

このステップでは、Gogs用のNginxリバースプロキシをインストールして設定します。独自のライブラリ内のNginxパッケージを呼び出します。

Nginx ライブラリを追加するには、次のコマンドを使用します。

  1. sudo add - apt - repository - y ppa : nginx / stable

次のコマンドを使用して、すべてのライブラリを更新し、Nginx をインストールします。

  1. sudo apt update
  2. sudo apt install nginx - y

次に、 /etc/nginx/sites-availableディレクトリに移動し、仮想ホスト ファイルgogsを作成します。

  1. cd / etc / nginx / sites - available
  2. vim gogs

次のコードを構成ファイルに貼り付けます。

  1. server {
  2. listen 80 ;
  3. server_name git . hakase - labs . co ;
  4. location / {
  5. proxy_pass http : //localhost:3000;
  6.     }
  7. }

保存して終了します。

注:ドメイン名に応じてserver_nameフィールドを変更してください。

次に、仮想ホストをアクティブにして、nginx 構成をテストします。

  1. ln - s / etc / nginx / sites - available / gogs / etc / nginx / sites - enabled /
  2. nginx - t

エラーが発生していないことを確認するには、Nginx サーバーを再起動します。

  1. systemctl restart nginx

Nginxリバースプロキシのインストールと設定

ステップ8 - テスト

ウェブブラウザを開いて、GogsのURLを入力します。私の場合はhttp://git.hakase-labs.coです。

インストール画面が表示されます。ページ上部で、PostgreSQLデータベースの情報をすべて入力してください。

ゴグスのインストール

次に、一番下までスクロールして、「管理者アカウント設定」ドロップダウン オプションをクリックします。

管理者のユーザー名とメールアドレスを入力します。

設定をインストールするにはgogsと入力してください

次に、「Gogs をインストール」ボタンをクリックします。

その後、下の画像に示す Gogs ユーザー パネルにリダイレクトされます。

ゴグスパネル

以下は Gogs の「管理ダッシュボード」です。

Gogsパネルを閲覧する

これで、PostgreSQL データベースと Nginx Web サーバーとともに Gogs が Ubuntu 16.04 にインストールされました。