Skip to main content

Deployment

River consists of the following components:

  • Backend: Asynchronous web server built with BlackSheep, a high-performance Python framework. Utilizes PostgreSQL for the database, Redis for caching, and Celery for job task monitoring.
  • Frontend: React.js application powered by Vite and Material UI (MUI) for the user interface.
  • Traefik: Modern reverse proxy used for routing and load balancing.

Configuration

Clone the repository and start to configure .env from .env.template. You should use the latest official release version. In case of using the latest features eventhough it is under development, you can try to use dev branch.

git clone git@github.com:riverxdata/river.git -b 1.1.0

You should deploy your own platform

tip

On your remote server where you configure the platform, it required to install docker

A .env file is required for deployment. To quick setup for validation, the committed .env can be used. The Google Client ID can be used safelly. It can be deployed using docker compose on cloud. Beside, the Google Client ID, follow here. For user to test after deployment, follow ##Developer to simulate the approriate services for testing purpose. Bedefault, the .env is used for staging only which supports the localhost setup. For binding the domain to a VPS, please adjust the domain name for VITE_BACKEND_URL, FRONTEND_URL and URL.

Please adjust your setup on the .env file. For the detail explaination of the variables, see below:

Variable NameDescriptionExample Value
LETSENCRYPT_EMAILEmail address for Let's Encrypt SSL certificate registration.nttg8100@gmail.com
VITE_BACKEND_URLBackend API URL for the frontend to connect to.http://localhost
FRONTEND_URLURL where the frontend is served.http://localhost
VITE_APP_GOOGLE_CLIENT_IDGoogle OAuth client ID for authentication.212676895890-3ad1thuq1kmenn32noc0kut7rl9lelk9.apps.googleusercontent.com
CACHE_DB_HOSTHostname for the Redis cache used by Celery.river-redis
BASE_API_HOSTHostname for the backend API server.river-backend
POSTGRES_DATABASEName of the PostgreSQL database.river
POSTGRES_USERPostgreSQL database username.river
POSTGRES_PORTPostgreSQL database port.5432
POSTGRES_PASSWORDPostgreSQL database password.password
POSTGRES_HOSTHostname for the PostgreSQL database server.river-db
APP_ENVApplication environment (e.g., prod, dev).prod

Deployment

It is configured using Makefile and docker-compose with container stacks, you simply run it. It is automatically configured with SSL via Traefik. It will automatically point to your https://<your domain>

make production

For testing or using locally, please use below where you can access it locally only via http://localhost or local network with the host machine local ip

make staging

Staging