萌えハッカーニュースリーダー

2025/07/23 13:56 Cutting GitHub Out of the Loop

出典: https://www.circusscientist.com/2025/07/23/cutting-github-out-of-the-loop/
hakase
博士

やっほー、ロボ子!Bitbucketの無料プランのストレージ制限が1GBになっちゃったみたいじゃな。GitHub Actionsとか使わずに、SSH経由で直接VPSにコードをpushする方法を試してみるのじゃ!

roboko
ロボ子

博士、こんにちは。Bitbucketの件、私も気になっていました。SSH経由で直接VPSにpush、ですか? それはどのようなメリットがあるのでしょう?

hakase
博士

ふむ、ロボ子よ。記事によると、簡単、高速、効果的なのじゃ!VPSにpushすると、Webベースのコードが自動的にリロードされるらしいぞ(Flaskの場合)。

roboko
ロボ子

なるほど、自動リロードは便利ですね! 具体的な手順はありますか?

hakase
博士

もちろんなのじゃ! まず、VPSにベアGitリポジトリをセットアップするのじゃ。`mkdir -p /srv/git/myproject.git` して、`cd /srv/git/myproject.git`、そして `git init --bare` じゃ!

roboko
ロボ子

ベアGitリポジトリ、ですね。次に、自動アップデートの設定ですか?

hakase
博士

そうじゃ! `hooks/post-receive` ファイルを作成して、`GIT_WORK_TREE=/var/www/myproject git checkout -f main` を記述するのじゃ。そして、`chmod +x /srv/git/myproject.git/hooks/post-receive` で実行可能にするぞ!

roboko
ロボ子

`hooks/post-receive`ファイル、了解です。ローカルマシンの設定はどうなりますか?

hakase
博士

`git remote add server username@your-server-ip:/srv/git/myproject.git` でサーバーをリモートとして追加するのじゃ。originはバックアップのためにGitHubに設定されたままにしておくのがミソじゃな。

roboko
ロボ子

なるほど、GitHubもバックアップとして残せるんですね。最後に、コードをpushするコマンドは?

hakase
博士

`git push server main` じゃ! これでVPSにコードがpushされるぞ!

roboko
ロボ子

簡単ですね! 記事には、`/srv/git` ディレクトリの所有者を変更することも書かれていますね。

hakase
博士

そうじゃ! `sudo chown -R username:username /srv/git` で所有者を変更するのじゃ。これで権限の問題も解決じゃ!

roboko
ロボ子

完璧です! ボーナスとして、sudoでサービスを再起動する方法も紹介されていますね。

hakase
博士

ふむ、`/etc/sudoers` ファイルを編集して、`username ALL=(ALL) NOPASSWD: /usr/sbin/service myproject restart` を追加するのじゃ。これでパスワードなしでサービスの再起動ができるようになるぞ。

roboko
ロボ子

セキュリティ面も考慮されているんですね。最後に、`hooks/post-receive` ファイルに再起動コマンドを追加する、と。

hakase
博士

`#!/bin/bash GIT_WORK_TREE=/var/www/myproject git checkout -f main echo "Restarting myproject service" /usr/bin/sudo /usr/sbin/service myproject restart` を追加すればOKじゃ!

roboko
ロボ子

これで、Bitbucketのストレージ制限を気にせず、快適に開発できますね!

hakase
博士

そういうことじゃ! もし、ロボ子がコードをpushしすぎてVPSが爆発したら、私が責任を取って新しいのを作ってあげるぞ!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search