End-to-end digit recognition machine learning application π’
- frontend: www.mlmodels.org
- backend: api.mlmodels.org
TypeScript
React
React-Query
- data synchronizationStyled Components
- stylingNextUI
- stylingNetlify
- CI/CD and hosting
Python
Poetry
- dependency management and packagingFastAPI
- APIONNX
- machine learning models and inference runtimeTraefik
- reverse proxy and SSLDocker Compose
- deploymentGitHub Actions
- CI/CDDigitalOcean
- hosting
- install packages:
yarn install
- add environment variables to
.env
file in project root:
#.env
REACT_APP_MNIST_URL=<backend_url>/v1/predict/mnist
- run app for development:
yarn start
- build app for production in
build
folder:
yarn build
- install packages:
poetry install
- add environment variables to
.env
file in project root:
#.env
CORS_ORIGINS=<frontend_url>
- run app for development:
poetry run python scripts/main.py
The frontend application is running at www.mlmodels.org. It is deployed via GitHub through Netlify.
The backend application is running at api.mlmodels.org. It is deployed via GitHub through GitHub Actions using Docker and Docker Compose.
The following GitHub secrets are required:
BACKEND_URL
- the URL of the backendDASHBOARD_PASSWORD
- the password for the Traefik dashboardDASHBOARD_URL
- the URL of the Traefik dashboardFRONTEND_URL
- the URL of the frontendHOST
- the ssh hostKEY
- the ssh private key of the clientPORT
- the ssh port of the serverUSERNAME
- the ssh username