Raspberry Pi に Gitea をインストールして独自のコード リポジトリを作成する

Raspberry Pi に Gitea をインストールして独自のコード リポジトリを作成する

Git は、ソフトウェア開発者、コーダー、いじり屋がオープン ソース プロジェクトの共同作業と配布に使用するバージョン管理システムです。Git を使用すると、任意のサイズのプロジェクトを処理し、コードの変更とマージを取り込み、ユーザーがリポジトリを自分のマシンに複製できるようにすることができます。オープン ソース エコシステムは Git 上で動作し、MakeUseOf.com で紹介されているプロジェクトの多くは GitHub のリソースを使用しています。Gitea を使用すると、自宅の Raspberry Pi で完全に機能する独自の Git リポジトリをホストできます。

GitHub を使用する代わりに、Raspberry Pi で独自の Git サービスをホストする理由

React のソース コードからのファイルのリストを表示する GitHub リポジトリ ページ

5,500 万人のユーザーを抱える GitHub は、地球上で最大の無料およびオープン ソース ソフトウェアのリポジトリですが、その現在の所有者である Microsoft は、管理者の役割にふさわしくありません。同社の以前の CEO は、Linux と General Public License を「癌」と表現しており、Microsoft 自身の製品のほとんどは独占的でクローズド ソースです。

Microsoft の所有権により、GitHub は倫理的に疑わしいテクノロジをいくつか検討しています。特に、GitHub Copilot は、プログラマがコードを生成するのを支援する AI ツールです。Copilot は GitHub からのデータでトレーニングされており、コーダーが採用しているクリエイティブ コモンズ ライセンスの条件に違反している可能性があります。

開発者は GitHub を使用することで、イノベーションが抑制され、弱体化され、軽薄な干渉を受ける可能性があるさらに別のチョーク ポイントを作成しています。

Gitea を使用すると、Raspberry Pi に独自の Git サーバーをセットアップできます

Gitea は Gogs のフォークであり、Go で記述され、MIT ライセンスの下で公開されているコミュニティ管理の軽量コード ホスティング ソリューションです。これは、前任者よりもオープンで高速な開発モデルを目指しており、Raspberry Pi などの適度なリソースを備えたマシンでも実行できます。ドットファイル、カスタム Ubuntu ISO、Bash スクリプト、Java および Python ユーティリティを、DMCA による削除の対象になったり、悪質なソフトウェアのトレーニングに使用されたり、その他の方法で制御できなくなったりすることを恐れずに作業できます。 .

Raspberry Pi に Gitea をインストールする方法

Gitea にはいくつかのインストール方法がありますが、最も簡単なのは Docker を使用する方法です。これらをまだ Raspberry Pi で実行していない場合は、今すぐ Docker と Docker Compose をインストールしてください。

Gitea サーバーに保存するファイルは多くのスペースを占有する可能性があるため、Raspberry Pi で外部ストレージを使用し、それを Gitea インストールの場所として使用することをお勧めします。

SSH 経由で Pi に接続し、Gitea をインストールする場所に移動し、新しいディレクトリを作成してそこに移動します。

mkdir gitea
cd gitea

nano で新しいファイルを作成します。

nano docker-compose.yml

…次のコードを貼り付けます。

version: "3"

networks:
gitea:
external: false

services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=mysql
- GITEA__database__HOST=db:3306
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
-. /gitea:/data
- /etc/timezone:/etc/timezone:gb
- /etc/localtime:/etc/localtime:gb
ports:
- "3000:3000"
- "222:22"
depends_on:
- db

db:
image: mysql:8
restart: always
environment:
- MYSQL_ROOT_PASSWORD=gitea
- MYSQL_USER=gitea
- MYSQL_PASSWORD=gitea
- MYSQL_DATABASE=gitea
networks:
- gitea
volumes:
-. /mysql:/var/lib/mysql

タイムゾーンを自分のロケールに変更し、データベースの強力なパスワードを選択してから、保存してCtrl + O、次にCtrl + Xで nano を終了します。

入る:

docker-compose up -d

…分離モードで docker-compose を立ち上げます。Docker-compose は Gitea と Maria DB の複数のイメージをプルし、コンテナーをセットアップします。接続速度によっては、時間がかかる場合があります。

docker-compose ps で gitea と gitea_db_1 が起動していることを示す

コマンド プロンプトに戻ったら、次の操作を行います。

docker-compose ps

…「gitea」と「gitea_db_1」が「up」と表示されるはずです。your.pi.local.ip.address:3000 にある Gitea サイトの初期設定ページにアクセスできるようになりました。

まだ何も変更しないでください。インターネット経由で Gitea インスタンスにアクセスすることを計画している場合は、最初にもう少し準備を行う必要があります。

インターネット経由で Gitea インスタンスにアクセスする

標準の URL を入力して Gitea インスタンスにアクセスできるようにしたいので、プロキシを処理するために Apache が必要になります。次を使用して Apache をインストールします。

sudo apt install apache2

次に、次のコマンドで Apache を起動して有効にします。

sudo systemctl start apache2
sudo systemctl enable apache2

以下を使用して、Apache のプロキシ モジュールを有効にします。

sudo a2enmod proxy
sudo a2enmod proxy_http

評判の良いレジストラーからドメイン名またはサブドメイン名を選択します。次に、レジストラーの設定ページから、[高度な DNS] オプションを見つけて、新しいAレコードを追加します。ホストフィールドを「@」に設定し、値フィールドを静的 IP アドレスに設定します。TTL (Time to Lease) 値をできるだけ低く設定してから、保存します。

ルーターの管理ページを開き、 Port ForwardingPort Mapping、またはPort Managementというタイトルのセクションを見つけます。

HTTP 要求の新しいエントリを作成します。ローカル ポートとパブリック ポートの両方を80に設定し、ローカル IP アドレスを Raspberry Pi の IP アドレスに設定します。

HTTPS 要求には、2 つ目の開いているポートが必要です。ローカル ポートとパブリック ポートの両方を443に設定し、ローカル IP アドレスを Pi の IP アドレスに設定します。

最後に、Git サーバーへの SSH リクエスト用に開いているポートが必要です。ローカル ポートとパブリック ポートの両方を222に設定し、ローカル IP アドレスを Pi の IP アドレスに設定します。

Certbot を使用して、セキュリティ証明書とキーを取得します。Certbot リポジトリを追加し、更新してから、Certbot をインストールします。

sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt-get install python3-certbot-apache

ディレクトリを変更し、nano で新しいファイルを作成します。

cd /etc/apache2/sites-available/
nano gitea.conf

新しいファイルに次を貼り付けます。独自のドメイン名をコピーしてください。

<VirtualHost *:80>ServerName your-domain-name.tldProxyPass / http://127.0.0.1:3000/ProxyPassReverse / http:/127.0.0.1:3000/ProxyPreserveHost On</VirtualHost>

Ctrl + O、次にCtrl + Xで nano を保存して終了し、次のコマンドで新しい conf ファイルを有効にします。

sudo a2ensite gitea.conf

アパッチを再起動します。

sudo service apache2 restart

以下を使用して Certbot を実行します。

sudo certbot

…リストからドメイン名を選択します。Certbot は、証明書とキーを取得してインストールします。プロンプトに戻ったら、Apache を再起動します。

sudo service apache2 restart

Gitea インスタンスのセットアップ

アドレスhttps://your-domain-name.tldを使用して、ブラウザーで Gitea インスタンスにアクセスできるようになりました。最初のセクションで、データベースの種類、パスワード、およびその他の変数を設定できます。これらは docker-compose ファイルで指定した値になり、既に入力されているはずなので、変更する必要はありません。

一般設定では、サイトのタイトルを適切なものに設定します。サーバー ドメインは自分のドメイン名で、SSH サーバー ポートは222に設定する必要があります。ベース URL は、「HTTPS://」を含むドメイン名にする必要があります。

完了したら、大きな青いInstall Giteaボタンをクリックします。大きな緑色のお茶と、インスタンスに付けた名前とナメクジが迎えてくれます。最初のユーザーを作成するには、ページの右上にある [登録] をクリックし、詳細を入力します。おめでとう!

他のユーザーが Git サーバーに自分のリポジトリを登録してホストするのを防ぐには、 app.iniファイルを編集する必要があります。最初に/ (ルート) ディレクトリにGiteaディレクトリを作成した場合は、次のように入力します。

nano /gitea/gitea/gitea/conf/app.ini

サービス セクションまでスクロールし、DISABLE_REGISTRATIONを true に設定します。

gitea diable 登録を true に設定

Ctrl + O、次にCtrl + Xで nano を保存して終了し、コンテナを再起動します。

docker-compose downdocker-compose up -d

ギテアの使用

GitHub を使用したことがある場合は、すぐに Gitea に慣れることができます。ログインすると、利用可能なリポジトリがないことがわかります。ページの右側にある+記号をクリックして作成し、適切な名前を付けます。

gitea 初期リポジトリ作成

ボックスをオンにしてリポジトリを非公開にするか、公開したままにしておくかを選択できます。チェックボックスをオンにして readme ファイルで初期化し、[Create Repository]​​をクリックして最初のリポジトリを作成します。GitHub と同じように、変更を加えてコミットし、ファイルをアップロードし、編集することができます。

SSHをクリックしてアドレスをコピーすると、リポジトリをローカル マシンにクローンできなくなり、代わりに「正しいアクセス権があり、リポジトリが存在することを確認してください」というエラーが表示されます。まず、ローカル マシンの SSH キーを Gitea に追加する必要があります。これを行うには、次の出力をコピーします。

cat ~/.ssh/id_rsa.pub

Gitea ウェブ インターフェースで、プロフィール写真をクリックし、[設定] > [SSH/GPG キー]を選択します。[キーの追加]をクリックし、コピーしたばかりのキーを貼り付けます。

sshキーをgiteaに追加

独自の Raspberry Pi 上の独自の Git サーバーで、独自の Git リポジトリを操作できるようになりました!

Gitea インスタンスを使用して素晴らしいソフトウェア プロジェクトを作成する

Git は素晴らしいプロジェクトで共同作業を行うための素晴らしいツールですが、チームがなくても、独自のワークフローを編成し、素晴らしいソフトウェアや構成を作成するには素晴らしいツールです。新しいプログラミング言語を学習したり、デスクトップ システムを最適な状態にカスタマイズしたりする際に、ファイルを追跡するのに役立ちます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です