diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..f5eb881 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,40 @@ +FROM node:20-alpine AS builder + +WORKDIR /app + +# Copy root package files +COPY package.json package-lock.json ./ +COPY server/package.json server/ +COPY client/package.json client/ + +# Install all dependencies +RUN npm ci + +# Copy source code +COPY server/ server/ +COPY client/ client/ + +# Build frontend +RUN npm run --workspace=client build + +# Production stage +FROM node:20-alpine + +WORKDIR /app + +# Copy root package files and lockfile +COPY package.json package-lock.json ./ +COPY server/package.json server/ + +# Install all server deps (tsx is in devDependencies but needed to run) +RUN npm ci --workspace=server + +# Copy server source +COPY server/ server/ + +# Copy built frontend +COPY --from=builder /app/client/dist client/dist + +EXPOSE 3002 + +CMD ["npm", "run", "--workspace=server", "start"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..5d7bdf1 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,16 @@ +services: + server-monitor: + build: . + container_name: eventify-server-monitor + restart: unless-stopped + ports: + - "3002:3002" + environment: + - SSH_HOST=host.docker.internal + - SSH_USER=ubuntu + - SSH_KEY_PATH=/root/.ssh/id_rsa + - PORT=3002 + extra_hosts: + - "host.docker.internal:host-gateway" + volumes: + - /home/ubuntu/.ssh/id_rsa:/root/.ssh/id_rsa:ro diff --git a/server/src/index.ts b/server/src/index.ts index 7a1b48b..1e63754 100644 --- a/server/src/index.ts +++ b/server/src/index.ts @@ -15,7 +15,7 @@ const app = express(); // ── Middleware ── app.use( cors({ - origin: ['http://localhost:5173', 'http://localhost:5174'], + origin: ['http://localhost:5173', 'http://localhost:5174', 'https://status.eventifyplus.com'], credentials: true, }) );