- http://nuneno.cocolog-nifty.com/blog/2016/08/synology-nasd-1.html
- https://gist.github.com/walkerjeffd/374750c366605cd5123d
1.NASにGit Serverをインストールする
DSMのパッケージマネージャーから、Git Serverを探してインストールする。Gitlabが使えるという情報もあったが、情報が古いのか、DS418jが対応してないだけなのか、ともかくGitlabはインストール出来ない。Git Server自体はインストールできるので、後はターミナルから操作していく。
なお、Git Server を運用するには、SSH を有効にしなければならない。また、外からGitを使うには、「コンパネ」>「情報センター」>「サービス」とたどって、SSH やGit Server のポート転送を有効にしておく必要がある。
2.鍵ファイルで SSH 認証できるようにする。
ターミナルでNASに接続。
$ cd /volume1/homes/hoge/ $ mkdir .ssh
予め作っておいた秘密鍵/公開鍵のうち、公開鍵の方を Teraterm のSSH SCP を使ってNASに転送する。
再び、ターミナルに戻る。
$ cd ~/.ssh/ $ mv id_rsa.pub authorized_keys $ chmod 644 authorized_keys $ chmod 700 ~/.ssh $ chmod 755 ~ # ココ重要。参考サイトさんもハマったらしいが、これがないとログインできなかった。
一旦、ターミナルを切断し、鍵ファイルでログインできるか試し、問題なく接続できることを確認できた。
3.NAS上でリポートリポジトリを作る
これも、NASにログインしたターミナル上で操作する。Gitlab入れられたら多少楽できるんだろうけど・・・どうも、Synology NAS 上の Gitlab は Docker コンテナとして提供されているのか、Docker が必須らしく、DS418j では Docker が使えない。なので、Gitlab が使えないということみたいだ。
$ cd /volume1/Git $ git init --bare --shared hogehoge.git Initialized empty shared Git repository in /volume1/Git/hogehoge.git/
これで、NAS側の準備ができたので、Visual Studio Code からリポートリポジトリをaddしてpushしてみる。
F:\Develop\hogehoge>git remote add origin ssh://[NASのユーザー名]@[NASのアドレス]/volume1/[gitのパス]/hogehoge.git F:\Develop\hogehoge>git push origin master hoge@192.xxx.xxx.xxx's password: Enumerating objects: 45, done. Counting objects: 100% (45/45), done. Delta compression using up to 6 threads. Compressing objects: 100% (39/39), done. Writing objects: 100% (45/45), 1.48 MiB | 17.47 MiB/s, done. Total 45 (delta 7), reused 0 (delta 0) To ssh://192.xxx.xxx.xxx/volume1/path_to_git/hogehoge.git * [new branch] master -> master
ただ、これだと毎回パスワード聞かれて、鍵ファイル作った意味がない。
参考:https://qiita.com/y-tsutsu/items/ec984831e6c8262d3ff7
が、参考サイトを見てやったら、git のリモート関係のコマンドが全部エラーになった。
error: cannot spawn C:/Windows/System32/OpenSSH/ssh.exe: No such file or directory fatal: unable to fork
なんか微妙に環境が違うからかもしれんけど・・・仕方ないから、当面パスワード入力で我慢しよう。