English | 中文
Utilize litestream for the automatic backup and restoration of the SQLite database of memos to a B2/S3 Bucket. This initiative represents a restructured iteration of memos-on-fly-build. Feel free to employ this undertaking at your convenience.
To directly execute on fly.io, kindly refer to https://github.com/hu3rror/memos-on-fly
✈️ The Docker image is accessible not only on fly.io but also for local execution.
This endeavor is grounded in usememos/memos and litestream. Much appreciation! ✨
- Docker
- BackBlaze B2 / S3-compatible account (The default template is B2-based)
- To Create a BackBlaze B2 bucket and acquire the bucket-name / endpoint-url
- To Create a BackBlaze B2 user and obtain the access-key-id / secret-access-key
The image supports linux/amd64, linux/arm64, linux/arm/v7
stable
,latest
,test
are accessible docker image tags.
!!! Ensure to modify the environment variables before execution !!!
docker run -d ghcr.io/hu3rror/memos-litestream:stable \
--name memos \
-p 5230:5230 \
-v ~/.memos/:/var/opt/memos \
--env LITESTREAM_REPLICA_PATH=memos_prod.db \
--env LITESTREAM_REPLICA_BUCKET=xxxxxxxxx \
--env LITESTREAM_REPLICA_ENDPOINT=s3.us-west-000.backblazeb2.com \
--env LITESTREAM_ACCESS_KEY_ID=000000001a2b3c40000000001 \
--env LITESTREAM_SECRET_ACCESS_KEY=K000ABCDEFGHiJkLmNoPqRsTuVwXyZ0
or utilize docker-compose.yml in the repository.
LITESTREAM_REPLICA_PATH
LITESTREAM_REPLICA_BUCKET
: Adjust to your S3/B2 bucket nameLITESTREAM_REPLICA_ENDPOINT
: Adjust to your S3/B2 endpoint urlLITESTREAM_ACCESS_KEY_ID
: Your S3/B2 access-key-idLITESTREAM_SECRET_ACCESS_KEY
: Your S3/B2 secret-access-key
For additional insights into litestream, please consult https://litestream.io/getting-started/
Your data is stored in ~/.memos
by default.
In the event of accidental data deletion, restarting the docker container will trigger automatic downloading of the database file from your S3/B2 Bucket.
However, please note that this initiative does not facilitate the backup and restoration of your local resources (e.g., photos). It is recommended to use memos' built-in external resource libraries instead (Using local resources on a Cloud VM is not advisable.)
git clone https://github.com/hu3rror/memos-litestream.git
cd memos-litestream
# modify as necessary
docker buildx build ./ --file ./Dockerfile --tag <your-tag>