{"repo":"unmade/shelf-back","free":true,"listed":false,"github":"https://github.com/unmade/shelf-back","clone":"git clone https://github.com/unmade/shelf-back.git","description":"Shelf App Backend - self-hosted file storage","language":"Python","stars":26,"topics":["python3","fastapi","arq","tortoise-orm"],"license":"AGPL-3.0","category":"self-hosted-apps","readme_excerpt":"Shelf App This is backend for the Shelf App - a self-hosted file storage. Demo - https://app.getshelf.cloud/files - https://api.getshelf.cloud/docs Development Running locally This project relies on uv to manage requirements. Install requirements: Install pre-commit hooks: Run services: Start the worker: Start the application: Testing Test runner will create a new test database. Building a Docker image Normally, a docker image is built in CI whenever there is a new tag. To build a docker image locally: Optionally, you can provide two environment variables to autocreate a superuser on the first image run: - SHELF SUPERUSER USERNAME - a superuser username - SHELF SUPERUSER PASSWORD - a superuser password Environment variables Name Required Default Description :----------------------------- :-------- :------- :----------- APP NAME - Shelf Application name APP DEBUG - False Whether to run app in debug mode APP VERSION - dev Application version. Normally, this env is set during build AUTH ACCESS TOKEN TTL - 15m A time-to-live of the access token. AUTH SECRET KEY + - Application secret key. This is used to provide cryptographic signing, and should be set to a unique, unpredictable value AUTH REFRESH TOKEN TTL - 3d A time-to-live of the refresh token. CACHE BACKEND DSN - mem:// Cache backend DSN. See options CACHE DISK CACHE MAX SIZE - - Client cache size limit in bytes. Can be set in a format like \"512MB\", \"1GB\" CORS ALLOWED ORIGINS - [] A comma-separated list of origins that shoul","default_branch":null,"files":null,"tree":[],"storefront":"/r/unmade","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/unmade/shelf-back/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}