Inspired by [linkding on fly.io](https://github.com/fspoettel/linkding-on-fly) ## Storing the state in s3 You'll an s3 compatible bucket, like backblaze, aws, cloudflare or any compatible provider. Litestream will restore the bucket in an `emptyDir`. Then during operation a `litestream` sidecar will live replicate the changes to s3. ## Contents of `manifest.yaml` - a `Namespace` for the project - a `ConfigMap` containing `litestream.yml` config - replace `$S3_ENDPOINT` with your bucket config - a `StatefulSet` containing - an `initContainer` to restore the sqlite db - a `Pod` with `linkding` + `litestream` official images - a `Service` to expose the pods - I'm using tailscale annotations, replace these with traefik or your favorite ingress controller stuff. ## Setup ``` $ export S3_ENDPOINT= $ export S3_BUCKET= $ export S3_PATH= $ export S3_ACCESS_KEY_ID= $ export S3_SECRET_ACCESS_KEY= $ envsubst