diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..48d8ab8 --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,17 @@ +name: Deploy faithshort to production + +on: + push: + branches: + - production + +jobs: + deploy: + runs-on: docker + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Deploy with Docker Compose + run: | + docker compose up -d --build diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..556a2fb --- /dev/null +++ b/Dockerfile @@ -0,0 +1,18 @@ +FROM ubuntu:latest +LABEL authors="KAKOU CYR LEONCE ANICET" +FROM node:22-alpine AS builder +WORKDIR /app +COPY package*.json ./ +RUN npm install +COPY . . +RUN npm run build + +FROM node:22-alpine +WORKDIR /app +ENV NODE_ENV=production +COPY package*.json ./ +RUN npm install --omit=dev +COPY --from=builder /app/.next ./.next +COPY --from=builder /app/public ./public +EXPOSE 3000 +CMD ["npm", "run", "start"] diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..76d88e2 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,38 @@ +services: + faithshort: + build: + context: . + dockerfile: Dockerfile + container_name: faithshort + environment: + NODE_ENV: production + DB_HOST: db_faithshort + DB_PORT: 5432 + DB_NAME: faithshort_db + DB_USER: faithshort_user + DB_PASSWORD: h%%!m2B75hkr5Vh5bZ3V + networks: + - web + depends_on: + - db_faithshort + restart: unless-stopped + + db_faithshort: + image: postgres:17 + container_name: db_faithshort + environment: + POSTGRES_DB: faithshort_db + POSTGRES_USER: faithshort_user + POSTGRES_PASSWORD: h%%!m2B75hkr5Vh5bZ3V + volumes: + - faithshort_pgdata:/var/lib/postgresql/data + networks: + - web + restart: unless-stopped + +networks: + web: + external: true + +volumes: + faithshort_pgdata: