2023-08-16 17:49:24 +00:00
< p align = "center" >
< img src = "./assets/rotini-logo.png" >
< / p >
< h1 align = "center" > Rotini< / h1 >
## 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.
2023-08-09 03:49:54 +00:00
## Development
2023-08-12 20:32:07 +00:00
### Tooling
Utility commands are managed by [go-task ](https://github.com/go-task/task ) and can be called from anywhere. Running `.
2023-12-31 19:28:21 +00:00
script/bootstrap` in the project root installs `go-task` within the project and gets everything ready. From there, `task -l` provides a
2023-08-12 20:32:07 +00:00
breakdown of available tools.
Note that this is the preferred way to running any tooling-related task within the repository, regardless of
2023-12-31 19:28:21 +00:00
environment. Individual scripts exist under `/{frontend,backend}/script` but generally assume that they will be called
through `task` to inject some environment variables.
2023-08-12 20:32:07 +00:00
2024-01-17 01:10:40 +00:00
The project uses [Podman ](https://podman.io/ ) as a default container manager, but is Docker-compatible
(`Taskfile.backend.yml` can be made to specify `CONTAINER_MANAGER="docker"` to use it).
2023-12-31 19:28:21 +00:00
#### Formatting
2023-08-12 20:32:07 +00:00
2023-12-31 19:28:21 +00:00
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.
2023-08-12 20:32:07 +00:00
2023-12-31 19:28:21 +00:00
#### Running tests
2023-08-16 03:57:09 +00:00
2023-12-31 19:28:21 +00:00
Test suites can be executed by environment via `task {fe,be}:test` .
2023-08-16 03:57:09 +00:00
2023-12-31 19:28:21 +00:00
### Running locally
2023-08-16 03:57:09 +00:00
2023-12-31 19:28:21 +00:00
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.
2023-08-16 03:57:09 +00:00
2024-01-17 01:10:40 +00:00
Starting the backend (including a database) and frontend applications can be done via `task be:container:start` and `task fe:start` .
2023-08-16 03:57:09 +00:00
2023-12-31 19:28:21 +00:00
See the README files of each of those environments ([backend](./backend/README.md), [frontend ](./frontend/README.md )) for specific requirements around `*.env` files that aren't committed with the code.
2023-08-16 03:57:09 +00:00
2023-12-31 19:28:21 +00:00
## Production-ready deployments
2023-08-16 03:57:09 +00:00
2023-12-31 19:28:21 +00:00
_Coming soon!_