Gitlab CE+Sourcetree環境の作成 on QNAP


この記事はContainer Stationのバージョンアップに伴って新しい環境に適用できなくなったため、新たに記事を設けています。Contgainer Stationが3の場合はリンク先記事に参考にできる場所があるかもしれません。



前段

自分、IT技術者じゃないんですが。 そして特段文筆業でもないんですが。

少々前に目に留まったこの記事で中を見て面白そうだな、と思ったので環境を作ることだけちょっと遊んでみています。
ただ、Github,Gitlab等のクラウドサービスは、作成したデータを公開しないプロジェクトとして扱うことが出来るんですが、クラウドサービスに対して自分のお遊びのデータをアップロードすることに少しばかり抵抗感があったので自分のQNAPにGitlab Community Editionの環境を作ることにしましたので手順を備忘録を兼ねてまとめておきます。

目標

1.QNAP(NAS)にGitlabというクラウドサービスのGitHubと同じような環境を作れるソフトをインストールする。
2.WebUIにアクセスしてどういう感じでプロジェクトを作成するか確認する。
3.そこへアクセスできるGUIツールのSourceTreeをインストールし、取りあえず”GitとGitのツールってどんな感じ?"を体験できる環境を作る。

という辺りまで。 

環境

Windows10 home 20H2
QNAP NAS (TS-251B) IntelCPUタイプだったら問題ないはず
QTS(QNAP NASのFirmware)4.5.1
 (Container Stationが使えれば恐らく問題ないはず)

準備

以下ツールのインストール

Windows Terminal (MS Storeからインストールできて機能で迷わない)
※もしくはTeraTerm (ログが残せるので自分の作業を見返すのには便利)
EmEditor (MS Storeからインストールできる)
※まあ、個人的に使い慣れてるテキストエディタなら何でも
※試しだけならWindows標準のメモ帳で十分?


QNAPの準備

Windows TerminalからSSHでQNAPにログイン

ssh *** QNAP Hostname or IP address *** -l admin

最初のログイン時には確認が入りますがYesを入力。 Passwordは当然adminのパスワードになります。



 +-------------------------------------------------------------------+
 |  Console Management - Main menu                                   |
 |                                                                   |
 |  1: Show network settings                                         |
 |  2: System event logs                                             |
 |  3: Reset to factory default (password required)                  |
 |  4: Activate/ deactivate a license                                |
 |  5: App management                                                |
 |  6: Reboot in Rescue mode (w/o configured disk)                   |
 |  7: Reboot in Maintenance Mode                                    |
 |  Q: Quit (return to normal shell environment)                     |
 |                                                                   |
 |                                                                   |
 |                                                                   |
 |                                                                   |
 +-------------------------------------------------------------------+
 >>

Quit選択し、y回答。 
その後、QNAPにアプリケーションを削除した後でもデータが消えないように保存ディレクトリを作成

mkdir -p /share/Container/volumes/gitlab/

コマンドライン作業はここまでなのでWindowsTerminalは閉じてOk

GitLab Community Editionのインストール

その後ブラウザでQNAPの管理者権限でログイン。

管理者権限でログインした後、App Centerから Container Stationをインストール。

Container Stationを起動したら以下画面からアプリケーションの作成

画像1
画像2

内容は以下の内容を編集して貼り付け。
だいぶ長い

version: '2.3'

services:
 redis:
   restart: always
   image: redis:5.0.9
   command:
   - --loglevel warning
   volumes:
   - /share/Container/volumes/gitlab/redis:/var/lib/redis:Z

 postgresql:
   restart: always
   image: sameersbn/postgresql:11-20200524
   volumes:
   - /share/Container/volumes/gitlab/postgresql:/var/lib/postgresql:Z
   environment:
   - DB_USER=gitlab
   - DB_PASS=password
   - DB_NAME=gitlabhq_production
   - DB_EXTENSION=pg_trgm,btree_gist

 gitlab:
   restart: always
   image: sameersbn/gitlab:13.6.1
   depends_on:
   - redis
   - postgresql
   ports:
   - "10080:80"
   - "10022:22"

  volumes:
   - /share/Container/volumes/gitlab:/home/git/data:Z
   healthcheck:
     test: ["CMD", "/usr/local/sbin/healthcheck"]
     interval: 5m
     timeout: 10s
     retries: 3
     start_period: 5m
   environment:
   - DEBUG=false

   - DB_ADAPTER=postgresql
   - DB_HOST=postgresql
   - DB_PORT=5432
   - DB_USER=gitlab
   - DB_PASS=password
   - DB_NAME=gitlabhq_production

   - REDIS_HOST=redis
   - REDIS_PORT=6379

   - TZ=Asia/Tokyo
   - GITLAB_TIMEZONE=Tokyo

   - GITLAB_HTTPS=false
   - SSL_SELF_SIGNED=false

   - GITLAB_HOST=■■ここにホスト名かIPアドレス
   - GITLAB_PORT=10080
   - GITLAB_SSH_PORT=10022
   - GITLAB_RELATIVE_URL_ROOT=
   - GITLAB_SECRETS_DB_KEY_BASE=long-and-random-alphanumeric-string
   - GITLAB_SECRETS_SECRET_KEY_BASE=long-and-random-alphanumeric-string
   - GITLAB_SECRETS_OTP_KEY_BASE=long-and-random-alphanumeric-string

   - GITLAB_ROOT_PASSWORD=
   - GITLAB_ROOT_EMAIL=

   - GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
   - GITLAB_NOTIFY_PUSHER=false

   - GITLAB_EMAIL=notifications@example.com
   - GITLAB_EMAIL_REPLY_TO=noreply@example.com
   - GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com

   - GITLAB_BACKUP_SCHEDULE=daily
   - GITLAB_BACKUP_TIME=01:00

   - SMTP_ENABLED=false
   - SMTP_DOMAIN=www.example.com
   - SMTP_HOST=smtp.gmail.com
   - SMTP_PORT=587
   - SMTP_USER=mailer@example.com
   - SMTP_PASS=password
   - SMTP_STARTTLS=true
   - SMTP_AUTHENTICATION=login

   - IMAP_ENABLED=false
   - IMAP_HOST=imap.gmail.com
   - IMAP_PORT=993
   - IMAP_USER=mailer@example.com
   - IMAP_PASS=password
   - IMAP_SSL=true
   - IMAP_STARTTLS=false

変更するのはGITLAB_HOSTNAME
QNAPのホスト名でOk もしくはIPアドレスでも良いはず。
一番下の【YAMLを検証】を押して緑のチェックマークがついたらアプリケーション名を付けて("gitlab"とか。全てアルファベット小文字のみ)適用。
インストールが始まります。
■■結構時間掛かります■■

環境更新につき追記

現在、Microsoft EdgeほかChrome、Firefoxは10080ポートをERR_UNSAFE_PORT表示で拒否します。 そのため外部向けポート番号は任意の番号に更新の必要があります。



画像3

こうなったらアプリの作成自体はおしまい。
CPUが80%超の使用率でガリガリやってるときはだいた未だバックグラウンドで何かしてます。
少し待ちましょう。

画像4

この鎖マークの所にリンクがあります。
バックグラウンド処理が終わってCPUが落ち着いたらクリックしてGitLabのトップページを表示します。

画像5

これが表示したらちょっと早すぎ。 しばらく待ってからひらき直して下さい。

初期パスワードの設定画面が表示したら適当なパスワードを設定します。
これは管理者のroot用になります。
正常にログインできるか確認した後、右上のアイコンからsign outを選択して戻った後、Registerを選んで自分用のユーザー登録をします。
Firstname Lastnameは日本語入力OkですがUsernameはアルファベットじゃないと駄目のようです。 アンダーバーなどはOkでした。

画像6

Welcome To GitLab と表示したら適当にRoleを選択して Get started! 

画像7

一応これでWebUIの操作はできるんですが、日本語設定は右上アイコンからSettings > メニューのPreferences > 大分したの方にLocalizationの項目のLanguageを日本語に。 割とさっくり日本語で動きます。

画像8

左上のGitLabアイコンをクリックするとプロジェクトの初期画面が表示しますので、ここから新規プロジェクトを作るなど気の済むようにいじり回してください。

画像9

あとからSourcetreeとの連携のために設定をひらきますが、とりあえずWeb側はこれで一段落です。

Sourcetreeのインストール

こちらのページを参照するのが良いと思います。


BitBucketのアカウントは不要です。
その他Mercurialも不要。

SourceTreeへのリモートリポジトリの登録

リポジトリ、というのはGit用語で保管先、くらいのことです。

画像10

Localでリポジトリを作って、というのも在りだとは思うんですけどリモートで作った方が全体的にわかりやすかったのでそちら推奨。

画像11

アカウントを追加、から次の画面に

画像12

設定はこんな感じです。

画像13

urlは勿論手元のQNAPのホスト名。もしくはIP。 注意しないといけないのは、優先するプロトコルはHTTPSでもホストURLはhttp://で記入すること。 ここに気がつかなくて1週間ぐらいドハマった。

次にGitLabの個人ページに戻り、アクセストークンを発行します。

画像14

取りあえず名前はユーザー名、有効期限は設定無し、スコープはapi,read_userにチェックして [ Create personal access token ] 実行で上にトークン(一時的パスワード)が表示されます。 
これは一度しか表示されないので表示したら即コピーして貼り付け準備しておきます。

そしてSourceTreeのホスティングアカウント設定画面の Personal Access Tokenを再読み込み をクリックすると出てくる画面にこれを貼り付け。

画像15

そうするとこんなような画面になって(ならないときは更新をクリック)作成していたGitLabCEのプロジェクトをローカルにクローン(Git用語で手元にコピーすること)することが出来ます。

画像16


環境の構築はここまで

残る課題は
・SSH認証設定 ・・・
・全サービスのSSL(HTTPS)化 ・・・ここまで手間は掛かるけど難しくない
・サービスの外部公開 ・・・練習用と考えると不要かも
・実作業の流れ ・・・まだ自分自身操作はこれからでさっぱりだ。
・Redmineとの連携 ・・・取りあえず、興味はある。 #Redmine自体は起動したが連携はまだ
・というか誰か小説の書き方なんて教えてはくれないものか。


追記

Sourcetreeは微妙に不安定になったとき、削除、再インストールでうまく初期化できない。
ちょいちょい固まったりする症状が出てきたときには%homepath%下の

AppData\Local\Attlasian
AppData\Local\Sourcetree
AppData\Roaming\Attlasian

の全てを削除しないと設定などが消えない。 前二つはともかく最後のRoaming配下の事はSourcetreeの初期化の記事に載ってなかったので注意。
そこに設定ファイルが入っている。


この記事が気に入ったらサポートをしてみませんか?