サーバー上にデプロイした仮想通貨取引botをGitHubで管理する方法の備忘録です。GitHubをサーバーに導入することでコード管理が非常に楽になります。
※このノートではOSはUbuntを使用しています。またローカルPCではGitHubでのコード管理はすでに導入済みかつGitHubの用語を理解していることを前提に進めます。
当方は非エンジニアのため情報が間違っている場合があります。もし間違いがあればご指摘くだされば嬉しいです。
やりたいこと
サーバー上にデプロイしている取引システムのコード管理をできるだけ楽にしたい!という事でGitHubをサーバー側にもインストールし、自宅のデスクトップPCやノートPCからサーバー上の取引システムのコード管理を簡単に行えるようにします。
下の画像のようなイメージです。
ローカルPCのVSCodeの拡張機能でGitHubを操作し、サーバーからはSSH方式でGitHubとやり取りをします。これで自宅のPCでコードを修正しPush、サーバー側でPullすることで簡単にコードの修正内容を反映させることができます。
サーバーにGitHubをインストールする
ここで紹介するコマンドはUbuntuの場合のものです。ほかのLinuxOSもインストール部分以外はほとんど同じだと思いますが上手く対応してください。
sudo apt-get install gitsudo apt-get update
sudo apt-get install git
git --version
サーバー側でSShの設定をする
GitHubにはssh接続してやり取りをするため、まずはサーバー側で公開鍵と秘密鍵を作成する必要があります。
GitHub公式ドキュメントを参考にsshの設定を行っていきます。
ed25519鍵を作成する
ssh-keygen -t ed25519 -C "your_email@example.com"
githubに登録しているメールアドレスを入力してください。コマンドを実行し以下のようにパスワードの設定を行います。
ここで設定するパスワードはサーバー側でPullやPushする際に使用します。
Enter file in which to save the key (/c/Users/YOU/.ssh/id_ALGORITHM)
> Enterキー
Enter passphrase (empty for no passphrase)
> パスワードを設定
Enter same passphrase again : [Type passphrase again]
> パスワードを設定
次はssh-agent に新しい SSH キーを追加します。
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# 確認
ssh-add -l
パスフレーズを設定したら公開鍵を確認する
cat ~/.ssh/id_ed25519.pub
コンソールに公開鍵が表示されているはずです。先頭のssh-ed25519(またはssh-rsaなど)から始まり、最後のメールアドレス部分までをすべて含んだ文字列が公開鍵となります。
この公開鍵をコピーしておきましょう。
GitHubにsshを登録する
次はGitHubでsshの設定を行います。ブラウザでGitHubにログインし対象のリポジトリを開きましょう。
画面上部タブにあるsettingを選択し設定ページを開きます。
右上のAdd Deploy keysをクリックし、「Key」の欄に先ほどコピーした公開鍵を張り付けます。
「Allow write access」はサーバー側からPushできないようにする設定です。
サーバー側でコードの更新→Pushをしないのであれば、「Allow write access」にチェックを入れたままにしておきます。ここにチェックをするとcloneとPullだけしかできなくなるのでセキュアとなります。
逆にサーバー上で開発したりコードを修正するなら不要ですのチェックを外しましょう。
サーバーにリポジトリをクローンする
設定が終わったので実際にサーバー上にリポジトリをクローンします。
リポジトリ内にある緑色のCodeボタンで表示されるURLをコピーします。
警告文はSSH and GPG keysにsshキーが設定されていない場合に表示されるが、今回はリポジトリ単位でのssh設定なので無視してOKです。
次はサーバーのコンソールから以下のコマンドを実行してリポジトリをcloneします。
git clone git@github.com:xxxxxxxx.git
> yes
サーバーのディレクトリーを確認しリポジトリが作成されていたら成功です。
サーバーからPullする
ローカルPCでコードを編集しPushしたら実際にサーバーからPullしてみましょう!
操作手順は以下の通りになります。
リポジトリに移動して以下のコマンドを実行する
git pull
これだけです。設定が間違っていなければサーバー側のリポジトリにコードの変更が反映されているはずです。
快適な開発ライフを!
お疲れさまでした。GitHubを活用すれば本番環境と開発環境間のやり取りがものすごく楽になるので是非活用して下さいね!
最後に注意点ですが、僕はITとは全くの畑違いの業界で働いている非エンジニアのド素人ですので質問等は受け付けておりません。