diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..61eb75f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM alpine:3.15.3 AS builder + +RUN apk update && \ + apk add --no-cache \ + hugo + +WORKDIR /app + +COPY . ./ + +# Build the site +RUN hugo + + +FROM nginx:1.21.6-alpine + +ENV MATRIX_SERVER=matrix.rustybever.be:443 \ + MATRIX_CLIENT_SERVER=https://matrix.rustybever.be + +COPY nginx/nginx.conf /etc/nginx/nginx.conf +COPY nginx/default.conf /etc/nginx/conf.d/default.conf +COPY nginx/*.conf.template /etc/nginx/templates/ + +COPY --from=builder /app/public /usr/share/nginx/html diff --git a/content/posts/tour-of-flanders/index.md b/content/posts/tour-of-flanders/index.md deleted file mode 100644 index 2a83fac..0000000 --- a/content/posts/tour-of-flanders/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: "Tour of Flanders" -date: 2022-04-04T12:53:23+02:00 -draft: true ---- - -Yesterday, some friends & I met to "watch" the Tour of Flanders (gonna have to -trust Google Translate on this one). Mind the quotes, because none of us really -know anything about cycling ;p One of us just lived close to where the tour -ended, so we used this as an excuse to organize a party at their place! - -It was really fun standing in a big crowd of bystanders while the two -frontrunners passed by. Everyone went wild! It really shows how cosy a group of -Belgians can be if we just don't talk about anything besides sports (let's -leave the politics aside). - -Afterwards, we went back to their place, ate some delicious burgers courtesy of -their mom, and watched [De -Mol](https://en.wikipedia.org/wiki/De_Mol_(TV_series)) together. For the rest -of the evening we had some beer & wine (and a glass of Johnnie Walker Black -Label ;) ), and just talked about everything. I really enjoy these kinds of -evenings, chilling with friends, no pressure to go out, just relaxing & talking -with some good booze :) diff --git a/nginx/default.conf b/nginx/default.conf new file mode 100644 index 0000000..1c28faa --- /dev/null +++ b/nginx/default.conf @@ -0,0 +1,15 @@ +# vim: ft=nginx + +# =====FRONTEND HOSTING===== +location / { + root /usr/share/nginx/html; + index index.html; +} + +error_page 404 /404.html; + +# redirect server error pages to the static page /50x.html +error_page 500 502 503 504 /50x.html; +location = /50x.html { + root /usr/share/nginx/html; +} diff --git a/nginx/matrix.conf.template b/nginx/matrix.conf.template new file mode 100644 index 0000000..abc2879 --- /dev/null +++ b/nginx/matrix.conf.template @@ -0,0 +1,49 @@ +# vim: ft=nginx + +# =====MATRIX WELL-KNOWN FILES===== +# Used for server federation +location = /.well-known/matrix/server { + charset utf-8; + default_type application/json; + + if ($request_method = 'GET') { + add_header Access-Control-Allow-Origin '*'; + add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; + add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; + + return 200 '{"m.server":"${MATRIX_SERVER}"}'; + } + + if ($request_method = 'OPTIONS') { + add_header Access-Control-Allow-Origin '*'; + add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; + add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; + add_header 'Content-Length' 0; + return 204; + } + + return 405; +} + +location = /.well-known/matrix/client { + charset utf-8; + default_type application/json; + + if ($request_method = 'GET') { + add_header Access-Control-Allow-Origin '*'; + add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; + add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; + + return 200 '{"m.homeserver":{"base_url":"${MATRIX_CLIENT_SERVER}"}}'; + } + + if ($request_method = 'OPTIONS') { + add_header Access-Control-Allow-Origin '*'; + add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; + add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; + add_header 'Content-Length' 0; + return 204; + } + + return 405; +} diff --git a/nginx/nginx.conf b/nginx/nginx.conf new file mode 100644 index 0000000..561a1bb --- /dev/null +++ b/nginx/nginx.conf @@ -0,0 +1,37 @@ +user nginx; +worker_processes auto; + +error_log /var/log/nginx/error.log notice; +pid /var/run/nginx.pid; + + +events { + worker_connections 1024; +} + + +http { + include /etc/nginx/mime.types; + default_type application/octet-stream; + + log_format main '$remote_addr - $remote_user [$time_local] "$request" ' + '$status $body_bytes_sent "$http_referer" ' + '"$http_user_agent" "$http_x_forwarded_for"'; + + access_log /var/log/nginx/access.log main; + + sendfile on; + + keepalive_timeout 65; + + gzip off; + + server { + listen 80; + listen [::]:80; + + # This order is important, as the Matrix matches should be evaluated first + include /etc/nginx/conf.d/matrix.conf; + include /etc/nginx/conf.d/default.conf; + } +}