| tags:raspberry pi categories:server

Giteaをインストール

何でもセルフホスト・パイ・サーバー計画続行中です。 今回はgitlabほど仰々しくないgolangで書かれた、 gitサーバーことgiteaをインストールしました。

Gitea install on Pi

サービスを動かすためのユーザーを作ります。--disabled-passwordのオプションをつけることでログインはできません。giteaを動かすためだけのユーザーになります。

pi@raspberrypi:~ $ sudo -Es
root@raspberrypi:~ # sudo adduser --system --shell /bin/bash --group --disabled-password --home /home/git git
Adding system user `git' (UID 111) ...
Adding new group `git' (GID 116) ...
Adding new user `git' (UID 111) with group `git' ...
Creating home directory `/home/git' ...

そして必要なフォルダーを作成し運用環境を整えます。

root@raspberrypi:~ # mkdir -p /var/lib/gitea/{custom,data,indexers,public,log}
root@raspberrypi:~ # chown git:git /var/lib/gitea/{data,indexers,log}
root@raspberrypi:~ # chmod 750 /var/lib/gitea/{data,indexers,log}
root@raspberrypi:~ # mkdir /etc/gitea
root@raspberrypi:~ # chown root:git /etc/gitea
root@raspberrypi:~ # chmod 770 /etc/gitea

データーベースの作成

giteaで使うmariaDBのデーターベースを作っておきます。

  • DB Name: gitea_db
  • DB user/passwd: gitea-user / git-tea-user

作業は以下’の通り、

root@raspberrypi:~ # mysql -u root
MariaDB [(none)]> CREATE DATABASE gitea_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON gitea_db.* TO 'gitea-user'@'localhost' IDENTIFIED BY "git-tea-user";
MariaDB [(none)]> exit

バイナリーのダウンロード

デビアンではパッケージに登録されているも、メンテナンスはされていないようなのです。 基本的にシングル・バイナリーで動くようなので、 環境に合ったバイナリーを直接サイトよりダウンロードして使うことにします。 ラズベリーパイではarm7のバイナリーは動作しないようなので、arm6のバイナリーをダウンロードします。 実行権限を追加して、/usr/local/bin/に移動します。

root@raspberrypi:~ # wget -c -O gitea https://dl.gitea.io/gitea/1.8.3/gitea-1.8.3-linux-arm-6
root@raspberrypi:~ # chmod +x gitea
root@raspberrypi:~ # mv gitea /usr/local/bin/

download page : https://dl.gitea.io/gitea/

Systemd サービス

バイナリーを実行するためにsystemdのファイル/usr/lib/systemd/system/gitea.serviceを作ります。使っているサーバーのサービスをコメントアウトします。(RequiresもAfterにしたけれど、違いがわかりません。)

pi@raspberrypi:~ $ sudo vi /usr/lib/systemd/system/gitea.service

[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target
After=network.target
#Requires=mysql.service
After=mariadb.service
#Requires=postgresql.service
#Requires=memcached.service
#Requires=redis.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea
# If you want to bind Gitea to a port below 1024 uncomment
# the two values below
###
#CapabilityBoundingSet=CAP_NET_BIND_SERVICE
#AmbientCapabilities=CAP_NET_BIND_SERVICE

[Install]
WantedBy=multi-user.target 

起動時に動作するように登録して、サービスを開始します。 sudo systemctl start giteaにてエラーが上がっていないか動作の確認をします。

pi@raspberrypi:~ $ sudo systemctl enable gitea
pi@raspberrypi:~ $ sudo systemctl start gitea
pi@raspberrypi:~ $ sudo systemctl start gitea
● gitea.service - Gitea (Git with a cup of tea)
   Loaded: loaded (/usr/lib/systemd/system/gitea.service; disabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-07-12 11:18:42 +07; 9s ago
 Main PID: 984 (gitea)
    Tasks: 13 (limit: 2200)
   Memory: 78.3M
   CGroup: /system.slice/gitea.service
           └─984 /usr/local/bin/gitea web -c /etc/gitea/app.ini

Jul 12 11:18:42 raspberrypi systemd[1]: Started Gitea (Git with a cup of tea).
Jul 12 11:18:49 raspberrypi gitea[984]: 2019/07/12 11:18:49 Serving [::]:3000 with pid 984

無事に起動しました。

giteaの設定

最初にgiteaを設定します。アクセスは、http://<<IP_ADDRESS>>:3000/installになります。 データベースやその他の基本設定をします。

Gitea install on Pi

SSHドメインとベースURLにはIPかドメイン名を入れる必要があります。 ポート番号はgrafanaとかぶりますので、grafanaのポート番号を変更しました。 最初にログインしたユーザーが管理者になります。もしそうでない場合は、あらかじめ設定しておくのがよろしいようです。 お一人様なのでそのまま。

Gitea install on Pi

複数人で使う場合はDisable Self-registrationのボックスはチェックしたほうが良いそうです。(勝手にアカウントを追加できないようになる) サーバー設定以下にあったような。。 シンプルな設定になっているので、使っている環境に合わせて変えてください。

Gitea install on Pi

後々変更するには、/etc/gitea/app.iniのファイルを変更します。


インストールが終了したのちにユーザーを登録し、サインインします。

Gitea install on Pi Gitea install on Pi

基本githubと似てますが、ちょっとすっきりしてます。個人用途では十分に思えます。

Gitea install on Pi

外でフラフラと作業をので、回線に依存しないのはちょっとありがたいんですよね。 個人のプロジェクトはこちらに放り込もうと思ってます。 恥ずかしいコードも人に見られることもなくやりたい放題できます。

See Also

🏝 tipping

🌷 sat ⚡️ goozenlab@getalby.com
🌻 bitcoin : bc1qnjhnsxgqah050995dkdveav4y3t3d7uxyme4ud

If you do send a tip, Please email me so that I can say thank you.