Adding Projects - pratikchaudhari64/personal_devserver GitHub Wiki

Adding Projects

Quick Guide

  1. Containerize your project
  2. Add to docker-compose.yml
  3. Add route to nginx/default.conf
  4. Restart services

Examples

React App

1. Create Dockerfile in ./my-react-app/:

FROM node:18-alpine
WORKDIR /app
COPY . .
RUN npm install && npm run build
CMD ["npm", "start"]

2. Add to docker-compose.yml:

my_react_app:
  build: ./my-react-app
  container_name: my_react_app
  expose:
    - "3000"
  networks:
    - app_network

3. Add to nginx/default.conf:

location /myapp/ {
    proxy_pass http://my_react_app:3000/;
    proxy_set_header Host $host;
}

4. Restart:

docker compose down
docker compose up -d

Python FastAPI

1. Structure:

my-api/
├── Dockerfile
├── requirements.txt
└── main.py

2. Dockerfile:

FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
CMD ["uvicorn", "main:app", "--host", "0.0.0.0", "--port", "8000"]

3. Add to configs (same pattern as React)

Static Site

1. Add to nginx/default.conf:

location /docs/ {
    alias /usr/share/nginx/html/docs/;
    try_files $uri $uri/ =404;
}

2. Mount in docker-compose.yml:

nginx:
  volumes:
    - ./my-docs:/usr/share/nginx/html/docs:ro

Tips

  • Use expose not ports for internal services
  • Always add to app_network
  • Check logs: docker logs <container_name>
  • Test locally first: curl http://localhost:8000/yourpath/