# datasette-litestream
[](https://pypi.org/project/datasette-litestream/)
[](https://github.com/datasette/datasette-litestream/releases)
[](https://github.com/datasette/datasette-litestream/actions?query=workflow%3ATest)
[](https://github.com/datasette/datasette-litestream/blob/main/LICENSE)
An experimental Datasette <-> Litestream plugin.
## Installation
Install this plugin in the same environment as Datasette.
datasette install datasette-litestream
## Usage
```yaml
plugins:
datasette-litestream:
metrics-addr: :9090
all-replicate:
- file://$PWD/$DB-backup
```
### Replicate a single database to a local directory
```yaml
databases:
my_database:
plugins:
datasette-litestream:
replicas:
- path: ./my_database-backup
```
### Replicate a single database to S3
```yaml
databases:
my_database:
plugins:
datasette-litestream:
replicas:
- url: s3://my-bucket/my_database
```
1. Environment variables `LITESTREAM_ACCESS_KEY_ID` and `LITESTREAM_SECRET_ACCESS_KEY`. `AWS_ACCESS_KEY_ID` `AWS_SECRET_ACCESS_KEY`
2. Environment variables with `access-key-id` and `secret-access-key` config options.
3. Raw values in `secret-access-key` and `secret-access-key` config options.
### Replicate all databases
```yaml
plugins:
datasette-litestream:
all-replicate:
- s3://my-bucket/$DB
```
## Config
### Top-level
The following are valid keys that are allowed when specifying top-evel
- `all-replicate`
- `access-key-id`
- `secret-access-key`
- `metrics-addr`
None of these keys are required.
Example:
```yaml
plugins:
datasette-litestream:
all-replicate:
- XXX
- YYY
access-key-id: $YOUR_KEY
secret-access-key: $YOUR_SECRET
metrics-addr: :5001
```
### Database-level
- `replicas`
- `monitor-interval`
- `checkpoint-interval`
- `min-checkpoint-page-count`
- `max-checkpoint-page-count`
```yaml
databases:
my_database:
plugins:
datasette-litestream:
replicas:
- XXX
- XXX
monitor-interval: XXX
checkpoint-interval: XXX
min-checkpoint-page-count: XXX
max-checkpoint-page-count: XXX
```
## Development
To set up this plugin locally, first checkout the code. Then create a new virtual environment:
cd datasette-litestream
python3 -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
pytest
Raw data
{
"_id": null,
"home_page": "",
"name": "datasette-litestream",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "",
"author": "Alex Garcia",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/8e/4f/fb931d3a53d8a8b9db6b56eb540f8ce4f392a1da0c9491a12103da81b01e/datasette-litestream-0.0.1a10.tar.gz",
"platform": null,
"description": "# datasette-litestream\n\n[](https://pypi.org/project/datasette-litestream/)\n[](https://github.com/datasette/datasette-litestream/releases)\n[](https://github.com/datasette/datasette-litestream/actions?query=workflow%3ATest)\n[](https://github.com/datasette/datasette-litestream/blob/main/LICENSE)\n\nAn experimental Datasette <-> Litestream plugin.\n\n## Installation\n\nInstall this plugin in the same environment as Datasette.\n\n datasette install datasette-litestream\n\n## Usage\n\n```yaml\nplugins:\n datasette-litestream:\n metrics-addr: :9090\n all-replicate:\n - file://$PWD/$DB-backup\n```\n\n### Replicate a single database to a local directory\n\n```yaml\ndatabases:\n my_database:\n plugins:\n datasette-litestream:\n replicas:\n - path: ./my_database-backup\n```\n\n### Replicate a single database to S3\n\n```yaml\ndatabases:\n my_database:\n plugins:\n datasette-litestream:\n replicas:\n - url: s3://my-bucket/my_database\n```\n\n1. Environment variables `LITESTREAM_ACCESS_KEY_ID` and `LITESTREAM_SECRET_ACCESS_KEY`. `AWS_ACCESS_KEY_ID` `AWS_SECRET_ACCESS_KEY`\n2. Environment variables with `access-key-id` and `secret-access-key` config options.\n3. Raw values in `secret-access-key` and `secret-access-key` config options.\n\n### Replicate all databases\n\n```yaml\nplugins:\n datasette-litestream:\n all-replicate:\n - s3://my-bucket/$DB\n```\n\n## Config\n\n### Top-level\n\nThe following are valid keys that are allowed when specifying top-evel\n\n- `all-replicate`\n- `access-key-id`\n- `secret-access-key`\n- `metrics-addr`\n\nNone of these keys are required.\n\nExample:\n\n```yaml\nplugins:\n datasette-litestream:\n all-replicate:\n - XXX\n - YYY\n access-key-id: $YOUR_KEY\n secret-access-key: $YOUR_SECRET\n metrics-addr: :5001\n```\n\n### Database-level\n\n- `replicas`\n- `monitor-interval`\n- `checkpoint-interval`\n- `min-checkpoint-page-count`\n- `max-checkpoint-page-count`\n\n```yaml\ndatabases:\n my_database:\n plugins:\n datasette-litestream:\n replicas:\n - XXX\n - XXX\n monitor-interval: XXX\n checkpoint-interval: XXX\n min-checkpoint-page-count: XXX\n max-checkpoint-page-count: XXX\n```\n\n## Development\n\nTo set up this plugin locally, first checkout the code. Then create a new virtual environment:\n\n cd datasette-litestream\n python3 -m venv venv\n source venv/bin/activate\n\nNow install the dependencies and test dependencies:\n\n pip install -e '.[test]'\n\nTo run the tests:\n\n pytest\n",
"bugtrack_url": null,
"license": "Apache-2.0",
"summary": "",
"version": "0.0.1a10",
"project_urls": {
"CI": "https://github.com/datasette/datasette-litestream/actions",
"Changelog": "https://github.com/datasette/datasette-litestream/releases",
"Homepage": "https://github.com/datasette/datasette-litestream",
"Issues": "https://github.com/datasette/datasette-litestream/issues"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "c74804285b84d7f19657e57d8d7d748ced6680691428dd651a9728544ea08a69",
"md5": "115a7c7fcbd0168ba096e24a49028614",
"sha256": "5aa262c7a75bdcc2624e7ef7bc10c3773a8088b44dae56b66355e3b9d7b4d52b"
},
"downloads": -1,
"filename": "datasette_litestream-0.0.1a10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "115a7c7fcbd0168ba096e24a49028614",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10970,
"upload_time": "2023-08-14T19:04:58",
"upload_time_iso_8601": "2023-08-14T19:04:58.723991Z",
"url": "https://files.pythonhosted.org/packages/c7/48/04285b84d7f19657e57d8d7d748ced6680691428dd651a9728544ea08a69/datasette_litestream-0.0.1a10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0a32f31769c3a3497798e5f7f21dfcf731901b3436edfb2c71790b14f0f9363d",
"md5": "3b3dfa9a584a33a1db6281fe0b9368e9",
"sha256": "265337d03a7565f49bd6ce05d42edc2ba5a012a3f020001f15b3afa9c9e289fa"
},
"downloads": -1,
"filename": "datasette_litestream-0.0.1a10-py3-none-linux_armv7l.whl",
"has_sig": false,
"md5_digest": "3b3dfa9a584a33a1db6281fe0b9368e9",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8908721,
"upload_time": "2023-08-14T19:05:00",
"upload_time_iso_8601": "2023-08-14T19:05:00.865922Z",
"url": "https://files.pythonhosted.org/packages/0a/32/f31769c3a3497798e5f7f21dfcf731901b3436edfb2c71790b14f0f9363d/datasette_litestream-0.0.1a10-py3-none-linux_armv7l.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cb9429c80d7d81f783c7996dd016266a6d93c73f5e3f0b7a39e1b5000b5466fc",
"md5": "d3afe7132fcc81afbce47b8eca7715e3",
"sha256": "c254fe7955a583612f823348adb71594f6741ed60541a02274177d15429d4fdc"
},
"downloads": -1,
"filename": "datasette_litestream-0.0.1a10-py3-none-macosx_10_6_x86_64.whl",
"has_sig": false,
"md5_digest": "d3afe7132fcc81afbce47b8eca7715e3",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 10000017,
"upload_time": "2023-08-14T19:05:03",
"upload_time_iso_8601": "2023-08-14T19:05:03.497345Z",
"url": "https://files.pythonhosted.org/packages/cb/94/29c80d7d81f783c7996dd016266a6d93c73f5e3f0b7a39e1b5000b5466fc/datasette_litestream-0.0.1a10-py3-none-macosx_10_6_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "47346a8c23f8f4d5bdea5a158005e8fe573509550acc32b9a2a64138cce6db1e",
"md5": "ee46107e2be04809c9cf32be66f427dd",
"sha256": "711b663d61a312be96c95d1d9d6a17e5095ad22cffcff3369314af5922cf3b5c"
},
"downloads": -1,
"filename": "datasette_litestream-0.0.1a10-py3-none-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "ee46107e2be04809c9cf32be66f427dd",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9147650,
"upload_time": "2023-08-14T19:05:05",
"upload_time_iso_8601": "2023-08-14T19:05:05.811551Z",
"url": "https://files.pythonhosted.org/packages/47/34/6a8c23f8f4d5bdea5a158005e8fe573509550acc32b9a2a64138cce6db1e/datasette_litestream-0.0.1a10-py3-none-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "77a970063b1ac9109a1d5cb8ff6425ed1fdf45654e94556565735fec4ce104fb",
"md5": "b72b05df522817e9411ac384eb9175a4",
"sha256": "01eb38cc9d71da9e168b12e53697b34404210911c5f3833693bc8559fb74c521"
},
"downloads": -1,
"filename": "datasette_litestream-0.0.1a10-py3-none-manylinux1_x86_64.whl",
"has_sig": false,
"md5_digest": "b72b05df522817e9411ac384eb9175a4",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 9609472,
"upload_time": "2023-08-14T19:05:08",
"upload_time_iso_8601": "2023-08-14T19:05:08.530174Z",
"url": "https://files.pythonhosted.org/packages/77/a9/70063b1ac9109a1d5cb8ff6425ed1fdf45654e94556565735fec4ce104fb/datasette_litestream-0.0.1a10-py3-none-manylinux1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ef7230ebc87380016cade5e871b83b3afcddecb9db0d9cec0b2a7727361c059a",
"md5": "fdd6e67de7aede4637e3abe387e30896",
"sha256": "96ba3db9838deab3417e17a0f9f8b0fe903d805f2ae4cc622ce77f23e4f56eb3"
},
"downloads": -1,
"filename": "datasette_litestream-0.0.1a10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"has_sig": false,
"md5_digest": "fdd6e67de7aede4637e3abe387e30896",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 8703060,
"upload_time": "2023-08-14T19:05:11",
"upload_time_iso_8601": "2023-08-14T19:05:11.384538Z",
"url": "https://files.pythonhosted.org/packages/ef/72/30ebc87380016cade5e871b83b3afcddecb9db0d9cec0b2a7727361c059a/datasette_litestream-0.0.1a10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8e4ffb931d3a53d8a8b9db6b56eb540f8ce4f392a1da0c9491a12103da81b01e",
"md5": "dab53834f2e2d7d42d19eea675e352ef",
"sha256": "71a9ba835475fb0a292b531cc27afde25c1ac5156a41489b906dc47a187d2c78"
},
"downloads": -1,
"filename": "datasette-litestream-0.0.1a10.tar.gz",
"has_sig": false,
"md5_digest": "dab53834f2e2d7d42d19eea675e352ef",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 10872,
"upload_time": "2023-08-14T19:05:13",
"upload_time_iso_8601": "2023-08-14T19:05:13.633724Z",
"url": "https://files.pythonhosted.org/packages/8e/4f/fb931d3a53d8a8b9db6b56eb540f8ce4f392a1da0c9491a12103da81b01e/datasette-litestream-0.0.1a10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-14 19:05:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "datasette",
"github_project": "datasette-litestream",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "datasette-litestream"
}