| tags:raspberry pi categories:server
Giteaをインストール
何でもセルフホスト・パイ・サーバー計画続行中です。 今回はgitlabほど仰々しくないgolangで書かれた、 gitサーバーことgiteaをインストールしました。
サービスを動かすためのユーザーを作ります。--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
になります。
データベースやその他の基本設定をします。
SSHドメインとベースURLにはIPかドメイン名を入れる必要があります。 ポート番号はgrafanaとかぶりますので、grafanaのポート番号を変更しました。 最初にログインしたユーザーが管理者になります。もしそうでない場合は、あらかじめ設定しておくのがよろしいようです。 お一人様なのでそのまま。
複数人で使う場合はDisable Self-registration
のボックスはチェックしたほうが良いそうです。(勝手にアカウントを追加できないようになる)
サーバー設定以下にあったような。。
シンプルな設定になっているので、使っている環境に合わせて変えてください。
後々変更するには、/etc/gitea/app.ini
のファイルを変更します。
インストールが終了したのちにユーザーを登録し、サインインします。
基本githubと似てますが、ちょっとすっきりしてます。個人用途では十分に思えます。
外でフラフラと作業をので、回線に依存しないのはちょっとありがたいんですよね。 個人のプロジェクトはこちらに放り込もうと思ってます。 恥ずかしいコードも人に見られることもなくやりたい放題できます。