Ubuntu14.04でGogsを設定する方法
Gogsからの記事
序章
Gogs は、Goで記述されたセルフホストのGitサービスであり、実行が非常に簡単で、システムの使用量も少なくなっています。 セルフホストのGitサービスをセットアップするための最も簡単で、最速で、最も苦痛のない方法を目指しています。
このチュートリアルを終了すると、Gogsの実行中のインスタンスが作成されます。これには、Webインターフェイス、管理ダッシュボード、Gitのプルやプッシュなどの操作へのアクセスが含まれます。
前提条件
このチュートリアルに従うには、次のものが必要です。
- 任意のサイズのUbuntu14.04ドロップレット。
- sudo非rootユーザー。 このチュートリアルでは、セキュリティ上の懸念から、Gogsに対してのみ別のsudo非rootユーザーを使用します。 このチュートリアルでは、Gitサービスの規則に従って、この専用ユーザーの名前がgitであると想定しています。 このチュートリアルは、gitユーザーとして従う必要があります。
ステップ1—データベースをインストールします
このステップでは、バックエンドのGogsデータベースを作成します。
ログイン後、システムパッケージが最新であることを確認してください。
sudo apt-get update
MySQLをバックエンドサーバーとして使用するので、次にそれをインストールします。 The -y
ここでのフラグは、すべてのプロンプトに対してyesを想定しています。
sudo apt-get -y install mysql-server
インストール中に、データベースrootユーザーのパスワードを入力するように求められます。 このチュートリアルの後半で必要になるため、安全なものを使用していることを確認し、覚えておいてください。
次に、という名前のファイルを作成して開きます gogs.sql
. ここでは、 nano
、ただし、お気に入りのテキストエディタを使用できます。
nano gogs.sql
以下の内容をファイルに貼り付け、保存して閉じます。
DROP DATABASE IF EXISTS gogs;
CREATE DATABASE IF NOT EXISTS gogs CHARACTER SET utf8 COLLATE utf8_general_ci;
最後に、実行します gogs.sql
MySQLを使用してGogsデータベースを作成します。 交換 your_password
この手順の前半で選択したrootパスワードを使用します。
注:間にスペースはありません -p
このコマンドのフラグとパスワード。
mysql -u root -pyour_password < gogs.sql
ソースからGogsをインストールするには、GitやMercurialなどのバージョン管理ツールが必要なので、次にインストールします。
sudo apt-get -y install mercurial git
SSH経由でリポジトリのクローンを作成する場合は、SSHサーバーが機能している必要がありますが、幸い、Ubuntu14.04にはすぐに使用できるサーバーが付属しています。
ステップ2—Goをインストールする
GogsはGoで記述されているため、Gogsをコンパイルする前にインストールする必要があります。
まず、Goに設定する必要のある環境変数がいくつかあります。 これを行うには、ファイルを開きます ~/.bashrc
編集用。
nano ~/.bashrc
ファイルの最後に次の行を追加し、閉じて保存します。
export GOPATH=/home/git/go
export GOROOT=/usr/local/src/go
export PATH=${PATH}:$GOROOT/bin
次に、変更を適用します。
source ~/.bashrc
次に、 wget
Goの最新の準拠バージョンをWebサイトからダウンロードします。 執筆時点で、最新のファイルは go1.4.2.linux-amd64.tar.gz
.
wget https://storage.googleapis.com/golang/go1.4.2.linux-amd64.tar.gz
使用する tar
アーカイブを解除します。
tar zxf go1.4.2.linux-amd64.tar.gz
ディレクトリをに変更します $GOROOT
で定義しました ~/.bashrc
.
sudo mv go $GOROOT
今、あなたがタイプすると go
ターミナルで:
go
次のように表示されます。
Go is a tool for managing Go source code.
Usage:
go command [arguments]
...
Use "go help [topic]" for more information about that topic.
ステップ3—サービスとしてのGogsのインストールと開始
Goにはコマンドが組み込まれています。 get
、Goプロジェクトのソースコードとそのすべての依存関係を簡単にダウンロードするために使用します。これを使用してGogsをダウンロードします。
go get -d github.com/gogits/gogs
Gogsのソースコードは次のようになります $GOPATH/src/github.com/gogits/gogs
、そこに移動します。
cd $GOPATH/src/github.com/gogits/gogs
次に、バイナリをビルドして生成します。 このコマンドの実行には時間がかかる場合があります。
go build
スーパーバイザーを使用してGogsサービスを管理します。
まず、インストールしましょう。
sudo apt-get -y install supervisor
スーパーバイザー構成セクションを作成して、Gogsデーモンを作成しましょう。 まず、ログファイルを保存するためのディレクトリを作成します。
sudo mkdir -p /var/log/gogs
次に、編集のためにスーパーバイザー構成ファイルを開きます。
sudo nano /etc/supervisor/supervisord.conf
次の内容をファイルに追加して、Gogsセクションを作成します。
[program:gogs]
directory=/home/git/go/src/github.com/gogits/gogs/
command=/home/git/go/src/github.com/gogits/gogs/gogs web
autostart=true
autorestart=true
startsecs=10
stdout_logfile=/var/log/gogs/stdout.log
stdout_logfile_maxbytes=1MB
stdout_logfile_backups=10
stdout_capture_maxbytes=1MB
stderr_logfile=/var/log/gogs/stderr.log
stderr_logfile_maxbytes=1MB
stderr_logfile_backups=10
stderr_capture_maxbytes=1MB
environment = HOME="/home/git", USER="git"
user = git
このセクションでは、Gogsを起動するために実行するコマンドを定義し、Supervisorで自動的に起動し、ログファイルと対応する環境変数の場所を指定します。 スーパーバイザー構成の詳細については、このチュートリアルをお読みください。
次に、Supervisorを再起動します。
sudo service supervisor restart
次のコマンドで、Gogsが実行されていることを確認できます。
ps -ef | grep gogs
このようなものが出力として表示されるはずです。
root 1344 1343 0 08:55 ? 00:00:00 /home/git/go/src/github.com/gogits/gogs/gogs web
サーバーが実行されていることを確認するには、 stdout.log
ファイルも。
tail /var/log/gogs/stdout.log
次のような行が表示されます。
2015/03/09 14:24:42 [I] Gogs: Go Git Service 0.5.16.0301 Beta
また、URLを使用してWebページにアクセスできる必要があります http://your_server_ip:3000/
. これによりインストールページにリダイレクトされますが、まだ記入しないでください。
ステップ4—Nginxをリバースプロキシとして設定する
ドメイン名をGogsに簡単にバインドできるように、Nginxをリバースプロキシとして構成することに移りましょう。
まず、Nginxをインストールします。
sudo apt-get -y install nginx
次に、gogsのNginx構成ファイルを作成します。
sudo nano /etc/nginx/sites-available/gogs
次のコンテンツを追加し、置き換えます your_server_ip
ドロップレットのIPアドレスを使用します。 ドロップレットにドメイン名を使用している場合は、代わりにここでドメイン名を使用できます。
server {
listen 80;
server_name your_server_ip;
proxy_set_header X-Real-IP $remote_addr; # pass on real client IP
location / {
proxy_pass http://localhost:3000;
}
}
そして、Nginxが使用できるようにシンボリックリンクします。
sudo ln -s /etc/nginx/sites-available/gogs /etc/nginx/sites-enabled/gogs
Nginx仮想ホスト構成ファイルの詳細については、このチュートリアルを参照してください。
最後に、Nginxを再起動して、仮想ホスト構成をアクティブ化します。
sudo service nginx restart
これで、URLを使用してWebページにアクセスできるようになります。 http://your_server_ip/
、ポートを指定せずに。
ステップ5—ゴグを初期化する
最初の実行のためにGogsを初期化するためのもう1つの簡単なステップが残っています。
訪問 http://your_server_ip/install
次のオプションを入力します。 それらの多くはすでに記入されていますが、赤の変数をサーバーの値に置き換えてください。
最初のセクションで、 GogsにはMySQL、PostgreSQL、またはSQLite3が必要です。次のように入力してください。
- データベースタイプ:
MySQL
- ホスト:
127.0.0.1:3306
- ユーザー:
root
- パスワード:
your_database_password
- データベース名:
gogs
2番目のセクションGogsの一般設定に、次のように入力します。
- リポジトリルートパス:
/home/git/gogs-repositories
- ユーザーの実行:
git
- ドメイン:
your_server_ip
- HTTPポート:
3000
- アプリケーションURL:
http://your_server_ip/
オプションの電子メールと通知の設定をスキップし、管理者アカウント設定で、管理者のユーザー名とパスワードを選択し、電子メールアドレスを含めます。 管理者ユーザー名を次のように参照します your_admin_username
次のステップで。
最後に、 Gogsのインストールをクリックして、ログインします。
ステップ6—ゴグをテストする
これですべて完了です。 Gogsが正しく機能していることを確認するために、簡単なプル/プッシュテストを実行してみましょう。
まず、 http://your_server_ip/repo/create
my-test-repo という名前のリポジトリを作成し、このリポジトリをREADME.mdで初期化するオプションをクリックします。
これで、クローンを作成できるはずです。 まず、ホームディレクトリに移動します。
cd
次に、リポジトリのクローンを作成します。
git clone http://your_server_ip/your_admin_username/my-test-repo.git
リポジトリディレクトリに移動します。
cd my-test-repo
を更新します README.md
.
echo 'I love Gogs!' >> README.md
変更をコミットしてプッシュします。 このコマンドは、Gogsのユーザー名とパスワードの入力を求めます。
git add --all && git commit -m "init commit" && git push origin master
結論
さて、あなたが戻ったら http://your_server_ip/your_admin_username/my-test-repo
、「私はゴグが大好きです!」と表示されます。 READMEに追加された行。 とても簡単です!