diff --git a/.woodpecker.yml b/.woodpecker.yml index 1b343f0..d7d6c83 100644 --- a/.woodpecker.yml +++ b/.woodpecker.yml @@ -4,7 +4,7 @@ pipeline: commands: - echo -n "${CI_COMMIT_BRANCH//\//-}-${CI_COMMIT_SHA:0:8}, latest" > .tags when: - path: [ "frontend/**", "backend/**" ] + path: [ "frontend/**", "backend/**", "proxy/**" ] event: push @@ -45,4 +45,22 @@ pipeline: path: "frontend/**" event: push + # -------------------------------------- Frontend -------------------------------------- + build_proxy: + image: woodpeckerci/plugin-docker-buildx + settings: + repo: + from_secret: repository_proxy + username: + from_secret: registry_username + password: + from_secret: registry_password + registry: + from_secret: registry + dockerfile: Dockerfile.Proxy + platforms: linux/amd64 + when: + path: "proxy/**" + event: push + branches: main diff --git a/Dockerfile.Proxy b/Dockerfile.Proxy new file mode 100644 index 0000000..b09492d --- /dev/null +++ b/Dockerfile.Proxy @@ -0,0 +1,2 @@ +FROM jonasal/nginx-certbot:latest +COPY proxy/* /etc/nginx/conf.d/ \ No newline at end of file diff --git a/proxy/nginx.conf b/proxy/nginx.conf new file mode 100644 index 0000000..e19f6cb --- /dev/null +++ b/proxy/nginx.conf @@ -0,0 +1,42 @@ +worker_processes 1; + +events { + worker_connections 1024; +} + +http { + # HTTPS server configuration + server { + listen 443 ssl; + server_name translator.dhbw.flokaiser.com; + + ssl_certificate /etc/nginx/certs/cert.pem; + ssl_certificate_key /etc/nginx/certs/key.pem; + + location / { + # Forward requests to port 80 + proxy_pass http://frontend:80/; + 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 https; + } + + location /api { + # Forward requests to port 80 + proxy_pass http://backend:80/api/; + 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 https; + } + } + + # HTTP server configuration + server { + listen 80; + server_name translator.dhbw.flokaiser.com; + + return 301 https://$server_name$request_uri; + } +} \ No newline at end of file