Skip to content

Commit c017207

Browse files
committed
dockerized and added deployment workflow
1 parent cec2c7b commit c017207

File tree

4 files changed

+57
-6
lines changed

4 files changed

+57
-6
lines changed

.github/workflows/deploy.yml

+45
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: Deploy
2+
3+
on:
4+
push:
5+
branches: ["devops(dockerfile)/dev"]
6+
7+
jobs:
8+
deploy:
9+
name: Deploy
10+
runs-on: ubuntu-latest
11+
concurrency:
12+
group: deployment_lock
13+
cancel-in-progress: false
14+
steps:
15+
- name: Checkout Code
16+
uses: actions/checkout@v4
17+
18+
- name: Set up SSH key
19+
run: |
20+
mkdir -p ~/.ssh
21+
echo "${{ secrets.KEY }}" > ~/.ssh/key
22+
chmod 600 ~/.ssh/key
23+
ssh-keyscan ${{ secrets.HOST }} >> ~/.ssh/known_hosts
24+
25+
- name: Create .env file
26+
run: |
27+
echo 'DATABASE_URL="${{ secrets.DATABASE_URL }}"' >> .env
28+
echo 'NEXTAUTH_URL="${{ secrets.NEXTAUTH_URL }}"' >> .env
29+
echo 'NEXT_PUBLIC_LEPTON_API_URL="${{ secrets.NEXT_PUBLIC_LEPTON_API_URL }}"' >> .env
30+
echo 'ALLOWED_GROUP_SLUGS="${{ secrets.ALLOWED_GROUP_SLUGS }}"' >> .env
31+
echo 'NEXTAUTH_SECRET="${{ secrets.NEXTAUTH_SECRET }}"' >> .env
32+
33+
- name: Copy .env to VPS
34+
run: |
35+
scp -v -i ~/.ssh/key .env ${{ secrets.USER }}@${{ secrets.HOST }}:${{ secrets.PATH }}
36+
37+
38+
- name: Deploy to VPS
39+
run: |
40+
ssh -v -i ~/.ssh/key ${{ secrets.USER }}@${{ secrets.HOST }} << 'ENDSSH'
41+
cd ${{ secrets.PATH }}
42+
chmod 0600 .env
43+
git pull
44+
make prod
45+
ENDSSH

Makefile

+9
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
11
.PHONY: db
22
db:
33
docker compose up -d
4+
5+
.PHONY: prod
6+
prod:
7+
- docker container stop blitzed
8+
- docker container rm blitzed
9+
- docker image rm blitzed
10+
docker build -t blitzed:latest .
11+
prisma migrate deploy
12+
docker run --env-file .env -p 4000:3000 --name blitzed -d blitzed:latest

next.config.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
await import("./src/env.js");
66

77
/** @type {import("next").NextConfig} */
8-
const config = {};
8+
const config = {
9+
output: "standalone",
10+
};
911

1012
export default config;

prisma/schema.prisma

-5
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,6 @@ generator client {
55
provider = "prisma-client-js"
66
}
77

8-
generator erDiagram {
9-
provider = "prisma-erd-generator"
10-
output = "../ER_diagram.pdf"
11-
}
12-
138
datasource db {
149
provider = "postgresql"
1510
url = env("DATABASE_URL")

0 commit comments

Comments
 (0)