diff --git a/Server/.env b/.env similarity index 100% rename from Server/.env rename to .env diff --git a/Server/Dockerfile b/Server/Dockerfile index 7e1e498..c5617c2 100644 --- a/Server/Dockerfile +++ b/Server/Dockerfile @@ -1,5 +1,5 @@ FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build-env -WORKDIR /App +WORKDIR /Server # stops restore during build COPY Server.csproj ./ @@ -10,6 +10,6 @@ RUN dotnet publish -c Release -o out # Build runtime image FROM mcr.microsoft.com/dotnet/aspnet:7.0 -WORKDIR /App -COPY --from=build-env /App/out . +WORKDIR /Server +COPY --from=build-env /Server/out . ENTRYPOINT ["dotnet", "Server.dll"] diff --git a/Server/common.yaml b/common.yaml similarity index 100% rename from Server/common.yaml rename to common.yaml diff --git a/Server/docker-compose.PROD.yaml b/docker-compose.PROD.yaml similarity index 52% rename from Server/docker-compose.PROD.yaml rename to docker-compose.PROD.yaml index c9d01fe..793394c 100644 --- a/Server/docker-compose.PROD.yaml +++ b/docker-compose.PROD.yaml @@ -12,5 +12,15 @@ services: environment: CONNECTIONSTRINGS__SPACERACE: "Server=pg;Port=5432;Database=${POSTGRES_DB};User Id=${POSTGRES_USER};Password=${POSTGRES_PASSWORD}" build: - context: . - dockerfile: ./Dockerfile + context: ./Server + dockerfile: ./Server/Dockerfile + + nginx: + image: nginx:latest + volumes: + - './nginx/spacerace.systems.nginx.conf:/etc/nginx/conf.d/default.conf' + - '/etc/letsencrypt:/etc/letsencrypt' + ports: + - '80:80' + - '443:443' + diff --git a/Server/docker-compose.yaml b/docker-compose.yaml similarity index 87% rename from Server/docker-compose.yaml rename to docker-compose.yaml index a89d960..1db63cb 100644 --- a/Server/docker-compose.yaml +++ b/docker-compose.yaml @@ -13,7 +13,7 @@ services: environment: CONNECTIONSTRINGS__SPACERACE: "Server=pg;Port=5432;Database=${POSTGRES_DB};User Id=${POSTGRES_USER};Password=${POSTGRES_PASSWORD}" command: dotnet watch - working_dir: "/App" + working_dir: "/Server" volumes: - - "./:/App" + - "./Server:/Server" diff --git a/nginx/spacerace.systems.nginx.conf b/nginx/spacerace.systems.nginx.conf new file mode 100644 index 0000000..cfcd9c8 --- /dev/null +++ b/nginx/spacerace.systems.nginx.conf @@ -0,0 +1,45 @@ +upstream spacerace_server { + server server:40080; +} + +map $http_upgrade $connection_upgrade { + default upgrade; + '' close; +} + +server { + server_name spacerace.systems; + + gzip on; + gzip_vary on; + gzip_proxied any; + gzip_comp_level 6; + gzip_types text/plain text/css text/xml application/json application/javascript application/xml+rss application/atom+xml image/svg+xml; + + # location / { + # root /srv/spacerace; + # index index.html; + # try_files $uri $uri/ index.html; + # } + + location /api/ { + # trailing slash means api will receive url WITHOUT /api + proxy_pass http://spacerace_server/; + proxy_read_timeout 600s; + } + + error_page 404 /; + + listen [::]:443 ssl ipv6only=on; # managed by Certbot + listen 443 ssl; # managed by Certbot + ssl_certificate /etc/letsencrypt/live/spacerace.systems/fullchain.pem; # managed by Certbot + ssl_certificate_key /etc/letsencrypt/live/spacerace.systems/privkey.pem; # managed by Certbot + include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot + ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot +} + +# http -> https +server { + server_name spacerace.systems; + return 301 https://$host$request_uri; +} diff --git a/ui.txt b/ui.txt deleted file mode 100644 index 0f15097..0000000 --- a/ui.txt +++ /dev/null @@ -1,14 +0,0 @@ - 1 2 3 - ----------------- - 32.0 62.0 - - - - - - - - 1337 1:18.8 - - 32.0 62.0 - -