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
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 Name | Description | Example Value |
|---|---|---|
LETSENCRYPT_EMAIL | Email address for Let's Encrypt SSL certificate registration. | nttg8100@gmail.com |
VITE_BACKEND_URL | Backend API URL for the frontend to connect to. | http://localhost |
FRONTEND_URL | URL where the frontend is served. | http://localhost |
VITE_APP_GOOGLE_CLIENT_ID | Google OAuth client ID for authentication. | 212676895890-3ad1thuq1kmenn32noc0kut7rl9lelk9.apps.googleusercontent.com |
CACHE_DB_HOST | Hostname for the Redis cache used by Celery. | river-redis |
BASE_API_HOST | Hostname for the backend API server. | river-backend |
POSTGRES_DATABASE | Name of the PostgreSQL database. | river |
POSTGRES_USER | PostgreSQL database username. | river |
POSTGRES_PORT | PostgreSQL database port. | 5432 |
POSTGRES_PASSWORD | PostgreSQL database password. | password |
POSTGRES_HOST | Hostname for the PostgreSQL database server. | river-db |
APP_ENV | Application 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
