1. 概要
1.1. 目的
- オンプレミスで開発管理サーバーを立てる。
- 使い道なくて余っている"インテル Compute Stick STCK1A8LFC"を有効利用する。
1.2. 構成
- 使用ソフトウェア
ソフトウェア | 内容 | 備考 |
---|---|---|
Git | バージョン管理ツール。 | |
Gitea | Go 言語製の軽量のコードホスティングソリューション。Gitを内蔵している。 | |
Lubuntu 18.04 | サーバーのOS。 |
- Giteaのディレクトリ構成
/var/local/bin/
└ gitea 実行ファイル
/var/local/lib/
├ data データ(SQLiteファイル)、セッション等
├ log ログ
├ repos リポジトリ
└ custom カスタムソース
2. セットアップ
2.1. ハードセットアップ
-
"インテル Compute Stick STCK1A8LFC"のスペックは以下となる。
- CPU: Atom 1.83GHz L2Cache2MB
- メモリ: 1GB
- 内部ストレージ: 8GB
- 外部ストレージ: 32GB(SDカード)
-
Lubuntu 18.04を最小構成でインストールする。
-
ディスク容量や性能に制限があるため、ディレクトリ構造等は工夫している。
パーティション mmcblk1(内部ストレージ: 7-8GB) mmcblk1p1 /boot/efi EFIシステムパーティション(200MB) mmcblk1p5 / ext4(残り6GB) mmcblk2(SDカード: 32GB) mmcblk2p1 /home ext4(10GB) mmcblk2p2 /var ext4(残り22GB)
2.2. パッケージインストール
-
git
パッケージをインストールする。$ sudo apt install git
-
/var/lib/gitea
をアプリのインストール先など、ディレクトリを作成する。$ sudo mkdir /var/local/bin $ sudo mkdir -p /var/local/lib/gitea/{custom,repos,data,log}
-
gitea
をダウンロードし、実行権限を与える。$ cd /var/local/bin/ $ sudo wget -O gitea https://dl.gitea.io/gitea/1.13.6/gitea-1.13.6-linux-amd64 $ sudo chmod +x gitea
-
実行ユーザーを作成し、ディレクトリ権限を設定する。
$ sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git $ sudo chown -R git:git /var/local/lib/gitea/ $ sudo chmod -R 750 /var/local/lib/gitea/ $ sudo mkdir /etc/gitea $ sudo chown root:git /etc/gitea $ sudo chmod 770 /etc/gitea
-
systemdサービスファイルを作成する。
$ sudo vim /etc/systemd/system/gitea.service
[Unit] Description=Gitea (Git with a cup of tea) After=syslog.target After=network.target 〜〜 [Service] 〜〜 RestartSec=2s Type=simple User=git Group=git WorkingDirectory=/var/local/lib/gitea/ 〜〜 ExecStart=/var/local/bin/gitea web --config /etc/gitea/app.ini Restart=always Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/local/lib/gitea 〜〜 [Install] WantedBy=multi-user.target
-
gitea
サービスを起動する。$ sudo systemctl start gitea
-
設定ファイルにポートを設定する。
$ sudo vim /etc/gitea/app.ini
〜〜〜 [server] HTTP_PORT = 8080 〜〜〜
-
サービスの再起動と自動起動設定をする。
$ sudo systemctl restart gitea $ sudo systemctl enable gitea
2.3. 初期設定
-
hostsに名前解決の設定をする。(WindowsでもMacでも)
192.168.x.x <ホスト名>.local
- 画面にアクセスする。
- http://<ホスト名>.local:8080
- "エクスプローラ"、"登録"などのメニューにアクセスすると初期設定画面が開くため、以下を設定する。記述内容以外はデフォルトとする。
- データベース設定
- データベース: SQLite3
- 基本設定
- サイトタイトル: 任意
- リポジトリのルートパス: /var/local/lib/gitea/repos
- SSHサーバーのドメイン: <ホスト名>.local
- GiteaのベースURL: http://<ホスト名>.local:8080/
- データベース設定
- "Giteaをインストール"でインストールを実行する。
2.4. 管理者アカウント登録
最初に登録したユーザーが管理者アカウントとなる。
- "アカウントが必要ですか?今から登録しましょう" などのリンクから登録画面を開く。
- ID、パスワード、メールアドレス等を設定する。
3. 使用方法
3.1. ローカルのGitリポジトリをプッシュ
-
ローカルリポジトリはコミットを済ませておく。
-
Web画面から組織とリポジトリを作成する。
- 最近の事情から、デフォルトブランチは
master
→main
にしている。
- 最近の事情から、デフォルトブランチは
-
リポジトリのURL(例: http://<ホスト名>.local:8080/<組織名>/<リポジトリ名>.git)をコピーする。
-
ローカルリポジトリに移動し、コマンドラインからリモートリポジトリを設定する。
- リモートリポジトリを確認し、設定がある場合は確認して削除する。
リモートリポジトリの確認 % git remote -v →結果あり 削除 % git remote rm origin リモートリポジトリの確認 % git remote -v →結果なし
- リモートリポジトリを登録する。
リモートリポジトリの登録 % git remote add origin http://<ホスト名>.local:8080/<組織名>/<リポジトリ名>.git リモートリポジトリの確認 % git remote -v origin http://<ホスト名>.local:8080/<組織名>/<リポジトリ名>.git (push) origin http://<ホスト名>.local:8080/<組織名>/<リポジトリ名>.git (fetch)
-
ローカルのソースをプッシュする。
プッシュ % git remote origin main
-
Web画面でプッシュされたことを確認する。
3.2. その他
- 課題、WikiなどGithub、Gitlabに似た基本的な機能は使用できる。