https://github.com/gstracquadanio/timone
A lightweight object router to store Git LFS objects on different storage backend
https://github.com/gstracquadanio/timone
aws aws-s3 git git-lfs
Last synced: about 2 months ago
JSON representation
A lightweight object router to store Git LFS objects on different storage backend
- Host: GitHub
- URL: https://github.com/gstracquadanio/timone
- Owner: gstracquadanio
- License: mit
- Created: 2019-12-14T09:28:05.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2022-05-25T03:00:45.000Z (about 4 years ago)
- Last Synced: 2025-09-11T05:37:38.544Z (10 months ago)
- Topics: aws, aws-s3, git, git-lfs
- Language: Python
- Homepage:
- Size: 83 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# timone


[](https://badge.fury.io/py/timone)
Current version: 0.4.0
`timone` is a lightweight object router to store Git LFS objects on different storage backend, including AWS S3 compatible storage services.
## Install
```
$ pip install timone
```
## Configuration
`timone` can be configured by passing settings through environment variables, following the 12 factor principles.
### Basic settings
* **TIMONE_LOG_LEVEL**: Python logging level (default: INFO).
* **TIMONE_ENDPOINT_URL**: URL to reach service.
* **TIMONE_TOKEN_SECRET**: secret for token based authentication.
* **TIMONE_STORAGE**: storage driver to use (default: DumbStorageDriver).
Currently supporting `S3StorageDriver`, for AWS S3 services, or `DumbStorageDriver`, for testing purposes.
* **TIMONE_OBJECT_EXPIRESIN**: object availability in seconds (default: 3600).
### S3StorageDriver settings
* **TIMONE_STORAGE_S3_URL**: S3 endpoint URL.
* **TIMONE_STORAGE_S3_REGION**: S3 region.
* **TIMONE_STORAGE_S3_BUCKET**: S3 bucket name.
* **TIMONE_STORAGE_S3_KEY**: S3 access key.
* **TIMONE_STORAGE_S3_SECRET**: S3 access secret.
## Authentication and authorization
`timone` implements a simple token-based authentication system based on JWT, which streamlines authentication and authorization.
You can create tokens to access `timone` using `pyjwt`. For example, you can run the following command to create a token for user _bob_:
```
$ pyjwt --key=mykey encode user=bob
```
where `key` is the `TIMONE_TOKEN_SECRET`.
## Deployment
`timone` is a WSGI application, thus it requires a WSGI HTTP Server, like `gunicorn`, to run.
You can run a `timone` instance using `gunicorn` as follows:
```
$ gunicorn 'timone.wsgi:run()'
```
## Configuring GIT LFS
You can use `timone` to track files for the repository `foo/bar` as follows:
```
git config -f .lfsconfig remote.origin.lfsurl https:///foo/bar/info/lfs
```
where __ is the `timone` endpoint URL.
When pushing for the first time, Git will ask LFS credentials; here, you should use your username and token provided by the service administrator.
## Issues
Please post an issue to report a bug or request new features.
## Authors
* Giovanni Stracquadanio, dr.stracquadanio@gmail.com