Skip to content

Commit e1ca5bc

Browse files
committed
deployment ready
1 parent 8565fbb commit e1ca5bc

File tree

38 files changed

+514
-162
lines changed

38 files changed

+514
-162
lines changed

.env.postgres

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ POSTGRES_DB=postgres
44
POSTGRES_HOST=postgres
55
POSTGRES_PORT=5432
66
DATABASE_URL=postgresql://postgres:Welcome@localhost:5432/postgres
7-
# if you run using docker run --name pgsql-dev -e POSTGRES_PASSWORD=Welcome -p 5432:5432 postgres:latest
7+
# if you run using docker run --name byoc_postgres -e POSTGRES_PASSWORD=Welcome -p 5432:5432 postgres:latest

.env.template

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# for localhost
2+
# DATABASE_URL=postgresql://postgres:Welcome@localhost:5432/postgres
3+
# for docker
4+
DATABASE_URL="postgresql://postgres:Welcome@db:5432/postgres"
5+
GIN_MODE=release
6+
FE_URL=http://localhost:3000

Dockerfile

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Build stage
2+
FROM golang:1.22.5 AS builder
3+
4+
WORKDIR /app
5+
6+
# Copy go.mod and go.sum
7+
COPY go.mod go.sum ./
8+
RUN go mod download
9+
10+
# Copy the rest of the code
11+
COPY . .
12+
13+
# Build the application
14+
RUN CGO_ENABLED=0 GOOS=linux go build -o main ./cmd/main.go
15+
16+
# Final stage
17+
FROM golang:1.22.5
18+
19+
WORKDIR /root/
20+
21+
COPY --from=builder /app/main .
22+
23+
EXPOSE 2001
24+
25+
CMD ["./main"]

README.md

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,24 @@ i should add ci linters, the code quality is crap, oops
1010

1111
## Database setup etc
1212
### in the pkg/database dir
13-
setup the db `docker run --name pgsql-dev -e POSTGRES_PASSWORD=Welcome -p 5432:5432 postgres:latest`
13+
setup the db `docker run --name byoc_postgres -e POSTGRES_PASSWORD=Welcome -p 5432:5432 postgres:latest`
1414
First time cmd:
1515
[run db push to synchronize your schema with your database. It will also create the database if it doesn't exist.]
1616
`go run github.com/steebchen/prisma-client-go db push`
1717

1818
Everytime model is changed, migrate your database and re-generate your prisma code:
1919
`go run github.com/steebchen/prisma-client-go migrate dev --name add_comment_model`
2020

21+
Access the databse using:
22+
`docker exec -it psql-dev psql -U postgres -d postgres`
23+
2124

2225
`mkdir data`
2326
`
2427
docker run -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -v ./data:/var/lib/postgresql/data --name byoc-postgres -d postgres
2528
`
2629
```
27-
docker run --name pgsql-dev \
30+
docker run --name byoc_postgres \
2831
-e POSTGRES_PASSWORD=Welcome \
2932
-p 5432:5432 \
3033
-v byoc_pg:/var/lib/postgresql/data \

cmd/main.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
package main
22

33
import (
4+
"log"
5+
"os"
6+
47
"github.com/g4ze/byoc/pkg/routes"
58
"github.com/joho/godotenv"
69
)
710

811
func main() {
9-
err := godotenv.Load("./.env.postgres")
10-
if err != nil {
11-
panic(err)
12+
if os.Getenv("GIN_MODE") != "release" {
13+
err := godotenv.Load()
14+
if err != nil {
15+
log.Fatalf("Error loading .env file: %v", err)
16+
}
1217
}
1318
routes.Server()
1419
}

compose.yml

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
version: '3.8'
2+
3+
services:
4+
app:
5+
build:
6+
context: .
7+
dockerfile: Dockerfile
8+
ports:
9+
- "80:2001"
10+
depends_on:
11+
- db
12+
env_file:
13+
- ./.env
14+
15+
volumes:
16+
- .:/app
17+
networks:
18+
- byoc-network
19+
20+
db:
21+
image: postgres:latest
22+
container_name: byoc_postgres
23+
environment:
24+
- POSTGRES_PASSWORD=Welcome
25+
ports:
26+
- "5432:5432"
27+
volumes:
28+
- postgres_data:/var/lib/postgresql/data
29+
networks:
30+
- byoc-network
31+
32+
volumes:
33+
postgres_data:
34+
35+
networks:
36+
byoc-network:
37+
driver: bridge

docs/deployment_changes.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Get your fork ready for deployment
2+
I'll go ahead and document what changes i will be making to the repo for deploying it to AWS.
3+

fe/app.log

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
{"level":"info","message":"Home Page called ","timestamp":"2024-07-08T17:08:44.260Z"}
2+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:09:15.640Z"}
3+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:09:18.278Z"}
4+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:10:05.824Z"}
5+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:10:29.617Z"}
6+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:10:36.997Z"}
7+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:11:55.161Z"}
8+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:12:13.610Z"}
9+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:12:16.322Z"}
10+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:12:25.669Z"}
11+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:12:41.656Z"}
12+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:12:43.907Z"}
13+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:12:51.076Z"}
14+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:13:22.233Z"}
15+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:18:01.775Z"}
16+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:18:02.617Z"}
17+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:18:22.190Z"}
18+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:19:15.909Z"}
19+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:19:30.827Z"}
20+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:19:43.846Z"}
21+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:23:37.959Z"}
22+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:23:37.962Z"}
23+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:23:37.972Z"}
24+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:23:37.992Z"}
25+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:23:38.020Z"}
26+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:23:37.978Z"}
27+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:23:37.974Z"}
28+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:23:37.991Z"}
29+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:23:38.009Z"}
30+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:23:38.035Z"}
31+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:30:55.846Z"}
32+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T17:31:33.515Z"}
33+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:05:23.589Z"}
34+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:05:32.965Z"}
35+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:07:14.927Z"}
36+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:15:18.957Z"}
37+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:21:58.454Z"}
38+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:25:10.841Z"}
39+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:25:11.039Z"}
40+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:25:11.371Z"}
41+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:25:11.550Z"}
42+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:25:28.394Z"}
43+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:25:28.472Z"}
44+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:25:28.521Z"}
45+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:25:28.681Z"}
46+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:26:12.532Z"}
47+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:26:17.060Z"}
48+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:28:01.676Z"}
49+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:28:01.864Z"}
50+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:28:02.153Z"}
51+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:28:02.331Z"}
52+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:28:06.986Z"}
53+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:30:26.976Z"}
54+
{"level":"info","message":"NEXT_PUBLIC_BE_URL: ","timestamp":"2024-07-08T18:31:36.112Z"}

fe/app/layout.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { Metadata } from "next";
22
import { Inter } from "next/font/google";
33
import "./globals.css";
44
import Earth3D from "@/components/Earth3D";
5-
5+
import {logger} from "@/logger";
66
const inter = Inter({ subsets: ["latin"] });
77

88
export const metadata: Metadata = {
@@ -15,6 +15,7 @@ export default function RootLayout({
1515
}: Readonly<{
1616
children: React.ReactNode;
1717
}>) {
18+
logger.info("NEXT_PUBLIC_BE_URL: ", process.env.NEXT_PUBLIC_BE_URL);
1819
return (
1920
<html lang="en">
2021
<body className={inter.className}>

fe/app/login/page.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ export default function Login() {
1111
const [username, setUsername] = useState("");
1212
// URL of the login endpoint
1313
const loginEndpoint = "/login";
14-
const hosturl ="http://localhost:2001";
14+
const hosturl = process.env.NEXT_PUBLIC_BE_URL || "http://localhost:2001";
1515
return (
1616
<section className="h-screen">
1717
<div className="flex justify-center items-center h-screen ">
@@ -79,7 +79,7 @@ export default function Login() {
7979
</div>
8080
</form>
8181
<div className="text-center mt-4">
82-
Don't have an account? Sign Up
82+
Don&apos;t have an account? <a onClick={() => router.push("/signup")}>Sign Up</a>
8383
</div>
8484
</div>
8585
</div>

0 commit comments

Comments
 (0)