commit b7167bb856cd7c92e104327b2fcac1c72cc19117 Author: Yasien Mac Mini Date: Fri Jan 30 10:24:07 2026 +0200 DevOps Config diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1c96159 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +node_modules +dist +.env +.git \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ffec8cc --- /dev/null +++ b/.gitignore @@ -0,0 +1,35 @@ + +# Dependencies +node_modules/ +.bun/ +bun.lockb # Optional: Keep this if you want consistent versions across team, + # but ignore if you want Bun to regenerate it locally. + +# Build output +dist/ +dist-ssr/ +*.local + +# Environment variables (Crucial for security!) +.env +.env.local +.env.*.local + +# Docker logs and data +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +data/ +letsencrypt/ +mih_monitor/ + +# IDE / System files +.DS_Store +.vscode/ +.idea/ +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..70fa5b7 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +# Stage 1: Build the app +FROM oven/bun:latest AS builder +WORKDIR /app + +COPY package.json bun.lockb ./ +RUN bun install +#--frozen-lockfile + +COPY . . +RUN bun run build + +# Stage 2: Serve with Nginx +FROM nginx:alpine +# Copy the build output from Vite (usually the 'dist' folder) +COPY --from=builder /app/dist /usr/share/nginx/html + +EXPOSE 80 +CMD ["nginx", "-g", "daemon off;"] \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..6bb6a75 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,41 @@ +version: '3.8' + +services: + #============== React Application ==================================================================== + app-frontend: + build: . + container_name: golden-silk-app + restart: unless-stopped + ports: + - "8080:80" # This allows access via http://localhost:8080 + networks: + - taylor-network + #============== Proxy Manager ==================================================================== + nginx-proxy: + image: 'jc21/nginx-proxy-manager:latest' + container_name: nginx-proxy-manager + restart: unless-stopped + ports: + - '80:80' # Public HTTP + - '443:443' # Public HTTPS + - '81:81' # Admin UI + volumes: + - ./data:/data + - ./letsencrypt:/etc/letsencrypt + networks: + - taylor-network + #============== MIH-Monitor Portainer ==================================================================== + mih-monitor: + container_name: mih-monitor + image: portainer/portainer-ce:2.20.3 + ports: + - 9444:9443 + volumes: + - ./mih_monitor/data:/data + - /var/run/docker.sock:/var/run/docker.sock + restart: unless-stopped + networks: + - taylor-network +networks: + taylor-network: + driver: bridge \ No newline at end of file