Papyri is a tool to fetch, manage and own your data.
The idea for the name Papyri
comes from the Villa of Papyri in the ancient Roman city of Herculean in present-day southern Italy, which had a fabled library with a world-class collection of papyri, or scrolls, of great knowledge.
See this diagram for an overview of the functionality.
It is a monorepo, consisting of API and UI microservices.
The API is a Micronaut, Java, and Gradle microservice, and the UI is a very stripped-down React app.
It is written using functional reactive programming (FRP) using Java, Vavr, RxJava and JavaScript, and RxJs.
It is deployable onto a standalone Linux server with Docker (JVM, Nginx containers), or a Kubernetes. It includes a development environment using Kubernetes as well.
-
Clone this repo and
cd papyri
. -
Install Java (Install SDKMan then run
sdk install java
) -
For Spotify, register the app to get a client ID and secret to use
- Ensure the app has access to these via environment variables:
SPOTIFY_CLIENT_ID=<ENTER> SPOTIFY_CLIENT_SECRET=<ENTER>
- Ensure the app has access to these via environment variables:
cd api
- Build and run:
./gradlew build run
or via the Gradle pane in IntelliJ (recommended). View the API via Swagger.
- Navigate to the
ui-pure/index.html
file
The plan is to use Kubernetes to closely mirror the development environment from production (within reason!). For now, NGINX on a Linux box will be used.
A GitOps-style setup with ArgoCD will be evaluated for Kubernetes.
//todo
//todo
//todo
- Micronaut
- Bare-bones React