5 Commits

Author SHA1 Message Date
9896850b49 fix: force CGO
Some checks failed
Build and Push Docker Images / build-and-push-backend (push) Failing after 13s
Build and Push Docker Images / build-and-push-frontend (push) Successful in 8s
2026-01-31 01:30:43 +01:00
48f4423986 fix: Dockerfile cgo
All checks were successful
Build and Push Docker Images / build-and-push-backend (push) Successful in 16s
Build and Push Docker Images / build-and-push-frontend (push) Successful in 7s
2026-01-31 01:21:43 +01:00
460b13c195 Changed to proxy
All checks were successful
Build and Push Docker Images / build-and-push-backend (push) Successful in 8s
Build and Push Docker Images / build-and-push-frontend (push) Successful in 15s
2026-01-31 01:16:48 +01:00
b77e1ce605 Docker Compose 2026-01-31 01:03:36 +01:00
c8920df87e Update Docker
All checks were successful
Build and Push Docker Images / build-and-push-backend (push) Successful in 7s
Build and Push Docker Images / build-and-push-frontend (push) Successful in 17s
2026-01-31 00:54:10 +01:00
5 changed files with 35 additions and 3 deletions

View File

@@ -13,7 +13,7 @@ COPY . .
# Build the application # Build the application
# CGO_ENABLED=0 is important for a clean static build for Alpine # CGO_ENABLED=0 is important for a clean static build for Alpine
# -o main specifies the output file name # -o main specifies the output file name
RUN CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -o main . RUN CGO_ENABLED=1 go build -o main .
# Stage 2: Create the final lightweight image # Stage 2: Create the final lightweight image
FROM alpine:latest FROM alpine:latest

19
docker-compose.yml Normal file
View File

@@ -0,0 +1,19 @@
services:
backend:
image: git.out.jafre.li/jafreli/dashboard-backend:latest
container_name: dashboard-backend
# ports:
# - "8080:8080"
restart: unless-stopped
volumes:
- ./data/dashboard.db:/root/dashboard.db
frontend:
image: git.out.jafre.li/jafreli/dashboard-frontend:latest
container_name: dashboard-frontend
ports:
- "80:80"
restart: unless-stopped
depends_on:
- backend

View File

@@ -26,7 +26,7 @@ COPY nginx.conf /etc/nginx/conf.d/default.conf
# Copy the built application from the builder stage to Nginx's web root directory # Copy the built application from the builder stage to Nginx's web root directory
# I am assuming the project name is 'dashboard'. If not, you may need to change the path 'dist/dashboard/browser'. # I am assuming the project name is 'dashboard'. If not, you may need to change the path 'dist/dashboard/browser'.
COPY --from=builder /app/dist/dashboard/browser /usr/share/nginx/html COPY --from=builder /app/dist/frontend /usr/share/nginx/html
# Expose port 80 for the web server # Expose port 80 for the web server
EXPOSE 80 EXPOSE 80

View File

@@ -13,4 +13,17 @@ server {
# This is the key for making client-side routing work. # This is the key for making client-side routing work.
try_files $uri $uri/ /index.html; try_files $uri $uri/ /index.html;
} }
# Add a new location block to proxy API requests
location /api/ {
# Forward the request to the backend service.
# The name 'backend' is resolved by Docker's internal DNS.
proxy_pass http://backend:8080;
# Set headers to pass along client information to the backend
proxy_set_header Host $host;
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;
}
} }

View File

@@ -7,7 +7,7 @@ import { Item } from '../models/item';
providedIn: 'root' providedIn: 'root'
}) })
export class ApiService { export class ApiService {
private apiUrl = 'http://localhost:8080/api/items'; private apiUrl = '/api/items';
constructor(private http: HttpClient) { } constructor(private http: HttpClient) { }