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.
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
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
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
Build:
scripts/build web
Deploy a public service:
scripts/deploy web public
There's a Flutter client. See README.md for details.
Inside Amathus.Reader, Amathus.Converter, or Amathus.Web folder:
dotnet run
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