This project demonstrates deploying the open-source PoolsApp (mrpool404/poolsapp) using Docker containers on a local machine. The app includes:
- Frontend: Angular
- Backend: Node.js
- Database: MongoDB
- Frontend: Angular
- Backend: Node.js
- Database: MongoDB
- Containerization: Docker
docker-deployment-local/
├── LICENSE
├── ORIGINAL_README.md # ← upstream PoolsApp README
├── README.md # ← this file
├── start.sh # start script for automating deployment
├── Pools-App-Frontend/ # Angular source + Dockerfile
│ ├── Dockerfile
│ ├── proxyconfig.json
│ ├── package.json
│ └── … (Angular source files)
└── Pools-App-Backend/ # Node.js source + Dockerfile
├── Dockerfile
├── index.js
├── DataSchema.js
├── UserSchema.js
├── config.json
└── … (Node.js routes & logic)
-
Clone this repo and move the original PoolsApp README out of the way:
git clone https://github.com/kakarot404/docker-deployment-local.git cd docker-deployment-local mv README.md ORIGINAL_README.md # (or move it into docs/ if you prefer)
-
Make the startup script executable and run everything with one command:
chmod +x start.sh ./start.sh
-
Browse the app at ➡ http://localhost:4200
Builds Docker images for frontend and backend
Pushes them to Docker Hub (OPTIONALLY)
Creates a Docker network (mongo-network)
Launches three containers:
i. mongodb (mongo-container)
ii. backend (backend-container)
iii. frontend (poolapp-frontend)
If you prefer to run steps individually, here they are:
# Build frontend image
cd Pools-App-Frontend
docker build -t yourdockerhub/pools-app-frontend:v1 .
# Build backend image
cd ../Pools-App-Backend
docker build -t yourdockerhub/pools-app-backend:v1 .docker push yourdockerhub/pools-app-frontend:v1
docker push yourdockerhub/pools-app-backend:v1```bash
docker network inspect mongo-network >/dev/null 2>&1 || docker network create mongo-network
```
# MongoDB
docker run -d \
--name mongo-container \
-p 27017:27017 \
--network mongo-network \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=password \
mongo
# Backend
docker run -d \
--name backend-container \
-p 1234:1234 \
--network mongo-network \
yourdockerhub/pools-app-backend:v1
# Frontend
docker run -d \
--name poolapp-frontend \
-p 4200:4200 \
--network mongo-network \
yourdockerhub/pools-app-frontend:v1Look for: "Connected to MongoDB!"
docker logs backend-container --follow________________________________________________________________YOU SHOULD SEE Something like this :
docker exec -it mongo-container mongosh | admin 100.00 KiB
> use admin | config 12.00 KiB
> db.auth("admin", "password") | local 72.00 KiB
> show dbs |Er. Powar Shubham S
GitHub: kakarot404
Docker Hub: https://hub.docker.com/repositories/kakarot404