diff --git a/.gitignore b/.gitignore index 0e83ad3..6acf881 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ -/dist .DS_Store +/dist diff --git a/Makefile b/Makefile index 67d653b..f28e223 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,18 @@ default: dist: mkdir -p dist + cp etc/litestream.yml dist/litestream.yml docker run --rm -v "${PWD}":/usr/src/litestream -w /usr/src/litestream -e GOOS=linux -e GOARCH=amd64 golang:1.15 go build -v -o dist/litestream ./cmd/litestream tar -cz -f dist/litestream-linux-amd64.tar.gz -C dist litestream - rm dist/litestream -.PHONY: dist +deb: dist +ifndef VERSION + $(error VERSION is undefined) +endif + cat etc/nfpm.yml | envsubst > dist/nfpm.yml + nfpm pkg --config dist/nfpm.yml --packager deb --target dist/litestream.deb + +clean: + rm -rf dist + +.PHONY: deb dist clean diff --git a/etc/litestream.service b/etc/litestream.service new file mode 100644 index 0000000..141f8ef --- /dev/null +++ b/etc/litestream.service @@ -0,0 +1,9 @@ +[Unit] +Description=Litestream + +[Service] +Restart=always +ExecStart=/usr/bin/litestream replicate + +[Install] +WantedBy=multi-user.target diff --git a/etc/litestream.yml b/etc/litestream.yml new file mode 100644 index 0000000..bdde5d8 --- /dev/null +++ b/etc/litestream.yml @@ -0,0 +1,10 @@ +# AWS credentials +# access-key-id: AKIAxxxxxxxxxxxxxxxx +# secret-access-key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxx + +# dbs: +# - path: /path/to/primary/db # Database to replicate from +# replicas: +# - path: /path/to/replica # File-based replication +# - path: s3://my.bucket.com/db # S3-based replication + diff --git a/etc/nfpm.yml b/etc/nfpm.yml new file mode 100644 index 0000000..7aad52c --- /dev/null +++ b/etc/nfpm.yml @@ -0,0 +1,19 @@ +name: litestream +arch: amd64 +platform: linux +version: "${LITESTREAM_VERSION}" +section: "default" +priority: "extra" +maintainer: "Ben Johnson " +description: Litestream is a tool for real-time replication of SQLite databases. +homepage: "https://github.com/benbjohnson/litestream" +license: "GPLv3" +contents: +- src: ./dist/litestream + dst: /usr/bin/litestream +- src: ./etc/litestream.yml + dst: /etc/litestream.yml + type: config +- src: ./etc/litestream.service + dst: /usr/lib/systemd/system/litestream.service + type: config \ No newline at end of file