+++ date = "2024-02-05" tags = ["api","northflank"] title = "northflankのvolumeをbackupする" slug = "api" +++ `northflank`のapiではvolumeをexportする方法が用意されてないみたいなので、これを自動化する必要があります。 ```sh # https://northflank.com/docs/v1/api/volumes/get-volume $ northflank get volume # https://northflank.com/docs/v1/api/volumes/update-volume $ northflank update volume ``` 具体的には`git`のprivate-repoを使用します。 ```sh $ northflank exec service --project $PROJECT --service $SERVICE --cmd "/data/backup.sh $TOKEN" ``` ```sh:/data/backup.sh #!/bin/bash TOKEN=$1 git config --global user.email $MAIL git config --global user.name $USER cd /data/$REPO git remote add origin https://$TOKEN@github.com/$USER/$REPO git add . git commit -m backup git push origin main git remote rm origin ``` この場合、volumeにdeploy-keyを置いて`git@github.com`でアクセスするよりtokenでアクセスしたほうが良いでしょう。 ただし、tokenの場合は`$REPO/.git/config`に残っていないかチェックしておきましょう。