View live API docs @ https://portfoliobuilder-jfv66mvjvq-ew.a.run.app/redoc
Goals:
- Minimalish but still effective FastAPI + Github Action setup
- Exploring severless with Google Cloud (Artifact Regsitry, Cloud Run)
- Refresh knowledge on portfolio optimisation
Run locally with uv
uv sync --all-extras
uv run uvicorn app.main:app --reload
uv run streamlit run streamlit_app.py
Run locally with docker
docker build -t portfoliobuilder .
docker run --rm -it -p 8000:8000/tcp portfoliobuilder:latest
architecture-beta
group github(cloud)[Github]
service github_action(cloud)[Github Actions] in github
group google_cloud(cloud)[Google Cloud]
service artifact_registry(cloud)[Artifact Registry] in google_cloud
service cloud_run(cloud)[Google Cloud Run] in google_cloud
group StreamlitCloud(cloud)[Streamlit Cloud]
service Streamlit(cloud)[Streamlit] in StreamlitCloud
github_action:R --> L:artifact_registry
github_action:R --> L:cloud_run
artifact_registry:T --> B:cloud_run
cloud_run:R --> L:Streamlit
Note: Mermaid supported icons is very limited for now.