diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..bc5793d --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM oven/bun AS build + +WORKDIR /app + +COPY bun.lock . +COPY package.json . + +RUN bun install --frozen-lockfile + +COPY src ./src + +RUN bun build ./src/index.ts --compile --outfile server + +FROM ubuntu:22.04 + +WORKDIR /app + +COPY --from=build /app/server /app/server + +ENV TZ=America/Indiana/Indianapolis + +EXPOSE 3000 + +CMD ["/app/server"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..578bbab --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,18 @@ +services: + phack-api: + build: . + container_name: phack-api + expose: + - "3000" + environment: + - TZ=America/Indiana/Indianapolis + + nginx: + image: nginx:alpine + container_name: nginx + ports: + - "3000:80" + volumes: + - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro + depends_on: + - phack-api diff --git a/nginx/nginx.conf b/nginx/nginx.conf new file mode 100644 index 0000000..b63ddab --- /dev/null +++ b/nginx/nginx.conf @@ -0,0 +1,29 @@ +resolver 1.1.1.1 8.8.8.8 ipv6=off valid=300s; + +server { + listen 80; + + location /phonebell/ { + proxy_pass https://api.purduehackers.com$request_uri; + proxy_ssl_server_name on; + proxy_set_header Host api.purduehackers.com; + + proxy_http_version 1.1; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } + + location / { + proxy_pass http://phack-api:3000; + proxy_http_version 1.1; + proxy_set_header Host $host; + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection "upgrade"; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } +} diff --git a/package.json b/package.json index 74d2603..64d339a 100644 --- a/package.json +++ b/package.json @@ -4,7 +4,7 @@ "type": "module", "private": true, "scripts": { - "dev": "bun run --hot src/index.ts", + "dev": "bun run src/index.ts", "build": "bun build src/index.ts --compile --outfile server", "start": "bun run src/index.ts" }, diff --git a/src/index.ts b/src/index.ts index 5ee506e..1989825 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,4 @@ import server from "./server"; -server.listen({ port: 3000 }); +server.listen({ hostname: "0.0.0.0", port: 3000 }); console.log("Server is running on http://localhost:3000");