LoginSignup
2
4

More than 3 years have passed since last update.

オンプレミスの開発管理サーバーをGiteaで構築する

Last updated at Posted at 2021-04-28

1. 概要

1.1. 目的

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. パッケージインストール

  1. gitパッケージをインストールする。

    $ sudo apt install git
    
  2. /var/lib/gitea をアプリのインストール先など、ディレクトリを作成する。

    $ sudo mkdir /var/local/bin
    $ sudo mkdir -p /var/local/lib/gitea/{custom,repos,data,log}
    
  3. 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
    
  4. 実行ユーザーを作成し、ディレクトリ権限を設定する。

    $ 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
    
  5. 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
    
  6. gitea サービスを起動する。

    $ sudo systemctl start gitea
    
  7. 設定ファイルにポートを設定する。

    $ sudo vim /etc/gitea/app.ini
    
    〜〜〜
    [server]
    HTTP_PORT = 8080
    〜〜〜
    
  8. サービスの再起動と自動起動設定をする。

    $ sudo systemctl restart gitea
    $ sudo systemctl enable gitea
    

2.3. 初期設定

  • hostsに名前解決の設定をする。(WindowsでもMacでも)

    192.168.x.x <ホスト名>.local
    
  1. 画面にアクセスする。
    • http://<ホスト名>.local:8080
  2. "エクスプローラ"、"登録"などのメニューにアクセスすると初期設定画面が開くため、以下を設定する。記述内容以外はデフォルトとする。
    • データベース設定
      • データベース: SQLite3
    • 基本設定
      • サイトタイトル: 任意
      • リポジトリのルートパス: /var/local/lib/gitea/repos
      • SSHサーバーのドメイン: <ホスト名>.local
      • GiteaのベースURL: http://<ホスト名>.local:8080/
  3. "Giteaをインストール"でインストールを実行する。

2.4. 管理者アカウント登録

最初に登録したユーザーが管理者アカウントとなる。

  1. "アカウントが必要ですか?今から登録しましょう" などのリンクから登録画面を開く。
  2. ID、パスワード、メールアドレス等を設定する。

3. 使用方法

3.1. ローカルのGitリポジトリをプッシュ

  1. ローカルリポジトリはコミットを済ませておく。
  2. Web画面から組織とリポジトリを作成する。
    • 最近の事情から、デフォルトブランチはmastermainにしている。
  3. リポジトリのURL(例: http://<ホスト名>.local:8080/<組織名>/<リポジトリ名>.git)をコピーする。
  4. ローカルリポジトリに移動し、コマンドラインからリモートリポジトリを設定する。

    1. リモートリポジトリを確認し、設定がある場合は確認して削除する。
    リモートリポジトリの確認
    % git remote -v
    →結果あり
    
    削除
    % git remote rm origin
    
    リモートリポジトリの確認
    % git remote -v
    →結果なし
    
    1. リモートリポジトリを登録する。
    リモートリポジトリの登録
    % git remote add origin http://<ホスト名>.local:8080/<組織名>/<リポジトリ名>.git
    
    リモートリポジトリの確認
    % git remote -v
    origin http://<ホスト名>.local:8080/<組織名>/<リポジトリ名>.git (push)
    origin http://<ホスト名>.local:8080/<組織名>/<リポジトリ名>.git (fetch)
    
  5. ローカルのソースをプッシュする。

    プッシュ
    % git remote origin main
    
  6. Web画面でプッシュされたことを確認する。

3.2. その他

  • 課題、WikiなどGithub、Gitlabに似た基本的な機能は使用できる。
2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4