42 lines
1.1 KiB
Markdown
42 lines
1.1 KiB
Markdown
+++
|
|
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`に残っていないかチェックしておきましょう。
|
|
|