Docker Compose is the recommended approach as it mirrors the production environment and requires minimal setup.
The easiest way to run the entire application is using Docker Compose:
1
Start the application
From the project root directory, run:
docker compose up
To run in detached mode (background):
docker compose up -d
2
Access the application
Once the container is running, the application will be available at:
http://localhost:5000
The Docker setup serves the built React frontend through the Express backend on port 5000.
3
View logs (if running in detached mode)
docker compose logs -f
4
Stop the application
docker compose down
The Docker Compose setup builds the React app in production mode, so you won’t have hot reloading. For active development with hot reloading, use the manual development approach below.
{ "start": "react-scripts start", // Start development server "build": "react-scripts build", // Build for production "test": "react-scripts test", // Run tests in watch mode "eject": "react-scripts eject" // Eject from Create React App}