An unnamed cloud storage app
This repository has been archived on 2024-07-19. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2024-01-28 11:13:29 +00:00
.github chore(deps): update actions/cache action to v4 2024-01-18 00:07:22 +00:00
assets chore: add logo to README (#20) 2023-08-16 13:49:24 -04:00
backend chore(deps): update dependency uvicorn to v0.27.0 2024-01-23 17:17:23 +00:00
frontend chore(deps): update dependency @types/node to v20.11.9 2024-01-28 11:13:29 +00:00
script build(git): add pre-commit to selective format, typecheck 2023-12-31 14:26:31 -05:00
.gitignore chore: .python-version is ignored 2023-12-28 00:34:28 -05:00
backend-test.env refactor(taskfiles): extract start logic out of taskfile 2023-12-18 00:01:26 -05:00
CONTRIBUTING.md docs: basic contributing doc 2023-12-31 14:30:17 -05:00
LICENSE chore: add AGPLv3 license 2023-08-17 21:20:02 -04:00
README.md build(containers): default to podman + update references 2024-01-16 20:16:12 -05:00
renovate.json5 chore(renovate): update automerge for test+formatting minor+patches 2024-01-16 20:35:50 -05:00
Taskfile.backend.yml build(containers): default to podman + update references 2024-01-16 20:16:12 -05:00
Taskfile.frontend.yml refactor(taskfiles): remove redundant path to frontend 2023-12-18 00:07:02 -05:00
Taskfile.yml refactor(taskfiles): remove redundant path to frontend 2023-12-18 00:07:02 -05:00

Rotini

Overview

Rotini is a self-hosted cloud storage application that gives you full-control over the data you store. It aims for simplicity and extensibility, such that you can get started in minutes and easily fork or contribute upstream if you fancy a feature that's not already there.

It's roadmap is currently TBD and will become better defined as it gets closer to a first release.

Development

Tooling

Utility commands are managed by go-task and can be called from anywhere. Running . script/bootstrap in the project root installs go-task within the project and gets everything ready. From there, task -l provides a breakdown of available tools.

Note that this is the preferred way to running any tooling-related task within the repository, regardless of environment. Individual scripts exist under /{frontend,backend}/script but generally assume that they will be called through task to inject some environment variables.

The project uses Podman as a default container manager, but is Docker-compatible (Taskfile.backend.yml can be made to specify CONTAINER_MANAGER="docker" to use it).

Formatting

Formatting in either frontend or backend environment can be done via task {fe,be}:lint. Applying fixes is available through the lintfix variant of the command.

Running tests

Test suites can be executed by environment via task {fe,be}:test.

Running locally

The application requires a Postgres database instance to be made available to the backend. Setting up a local database is handled by the backend start command.

Starting the backend (including a database) and frontend applications can be done via task be:container:start and task fe:start.

See the README files of each of those environments (backend, frontend) for specific requirements around *.env files that aren't committed with the code.

Production-ready deployments

Coming soon!