This project provides Dockerfiles for both the backend (Node.js/Express) and frontend (Expo/React Native web) applications. The recommended way to run the full stack is with Docker Compose.
- Docker and Docker Compose installed
- Node.js version:
22.13.1(as specified in Dockerfiles) - Project-specific environment variable files:
./backend/.env./frontend/.env
-
Ensure your
.envfiles are present in bothbackendandfrontenddirectories. -
From the project root, run:
docker compose up --build
This will build and start both services:
- js-backend (Node.js backend)
- ts-frontend (Expo/React frontend)
-
Backend (
js-backend)- Built from
./backendusing Node.js22.13.1-slim - Exposes port 3000 (API)
- Requires
./backend/.envfor configuration
- Built from
-
Frontend (
ts-frontend)- Built from
./frontendusing Node.js22.13.1-slim - Exposes port 8081 (Expo web server)
- Requires
./frontend/.envfor configuration - Depends on the backend service
- Built from
- Both services run as non-root users for security.
- The containers are connected via a custom Docker network (
appnet). - The backend and frontend are started with production environment settings (
NODE_ENV=production).
- Backend API: http://localhost:3000
- Frontend (web): http://localhost:8081
For any additional configuration, refer to the respective .env files in backend and frontend directories.