Skip to content

meteatamel/amathus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

An RSS reader, transformer, and a web API

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published