Skip to content

Latest commit

 

History

History
102 lines (64 loc) · 1.66 KB

README.md

File metadata and controls

102 lines (64 loc) · 1.66 KB

Amathus

Amathus reads RSS feeds, transforms them into a common feed format, and exposes them behind a Web API. Written in ASP.NET Core and deployed as 3 separate Cloud Run microservices on Google Cloud.

Architecture

Archictecture

Setup

Make sure gcloud points to the right project and you're in Amathus folder where Amathus.sln is.

(One time) Enable Google Cloud services needed:

scripts/enable

Amathus.Reader

Build:

scripts/build reader

Deploy a private service:

scripts/deploy reader

(One time) Create a Cloud Storage bucket and a Scheduler job to invoke the service:

scripts/setup_reader

Amathus.Converter

Build:

scripts/build converter

Deploy a private service:

scripts/deploy converter

(One time) Set converter to receive Pub/Sub messages with bucket changes:

scripts/setup_converter

Amathus.Web

Build:

scripts/build web

Deploy a public service:

scripts/deploy web public

AmathusClient

There's a Flutter client. See README.md for details.

Debugging

Run locally

Inside Amathus.Reader, Amathus.Converter, or Amathus.Web folder:

dotnet run

Build and run Docker image locally

Inside Amathus folder, you can build and run the image for each service. For example, for Amathus.Web:

Build image:

docker build -t amathus-web -f Amathus.Web/Dockerfile .

Run image:

docker run -p 8080:8080 amathus-web