mirror of
https://github.com/suitenumerique/docs.git
synced 2026-08-25 17:02:31 +02:00
Replaces #1020 - fixes https://github.com/suitenumerique/docs/pull/1020#discussion_r2314089799 by creating a `deploy/` directory, making room for a deploy/docker directory later - fixes https://github.com/suitenumerique/docs/pull/1020#issuecomment-3886237213 by adding documentation in docs/installation - in general, follow the same changes as we did in https://github.com/suitenumerique/meet/pull/957 Tested successfuly on Scalingo Co-authored-by: Sylvain Zimmer <sylvain@sylvainzimmer.com>
113 lines
3.3 KiB
ERB
113 lines
3.3 KiB
ERB
# ERB templated nginx configuration
|
|
# see https://doc.scalingo.com/platform/deployment/buildpacks/nginx
|
|
|
|
upstream backend_server {
|
|
server localhost:8000 fail_timeout=0;
|
|
}
|
|
|
|
upstream collaboration_server {
|
|
server localhost:4444 fail_timeout=0;
|
|
}
|
|
|
|
server {
|
|
listen <%= ENV["PORT"] %>;
|
|
server_name _;
|
|
|
|
root /app/build/frontend-out;
|
|
|
|
error_page 404 /404.html;
|
|
|
|
location /collaboration/api/ {
|
|
proxy_set_header X-Forwarded-Proto https;
|
|
proxy_set_header Host $http_host;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
proxy_redirect off;
|
|
proxy_pass http://collaboration_server;
|
|
}
|
|
|
|
location /collaboration/ws/ {
|
|
|
|
proxy_http_version 1.1;
|
|
proxy_set_header Upgrade $http_upgrade;
|
|
proxy_set_header Connection "Upgrade";
|
|
|
|
# Set appropriate timeout for WebSocket
|
|
proxy_read_timeout 86400;
|
|
proxy_send_timeout 86400;
|
|
|
|
proxy_set_header X-Forwarded-Proto https;
|
|
proxy_set_header Host $http_host;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
proxy_redirect off;
|
|
proxy_pass http://collaboration_server;
|
|
}
|
|
|
|
# Django rest framework
|
|
location ^~ /api/ {
|
|
proxy_set_header X-Forwarded-Proto https;
|
|
proxy_set_header Host $http_host;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
proxy_redirect off;
|
|
proxy_pass http://backend_server;
|
|
}
|
|
|
|
# Django admin
|
|
location ^~ /admin/ {
|
|
proxy_set_header X-Forwarded-Proto https;
|
|
proxy_set_header Host $http_host;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
|
|
proxy_redirect off;
|
|
proxy_pass http://backend_server;
|
|
}
|
|
|
|
# Proxy auth for media
|
|
location /media/ {
|
|
# Auth request configuration
|
|
auth_request /media-auth;
|
|
auth_request_set $authHeader $upstream_http_authorization;
|
|
auth_request_set $authDate $upstream_http_x_amz_date;
|
|
auth_request_set $authContentSha256 $upstream_http_x_amz_content_sha256;
|
|
|
|
# Pass specific headers from the auth response
|
|
proxy_set_header Authorization $authHeader;
|
|
proxy_set_header X-Amz-Date $authDate;
|
|
proxy_set_header X-Amz-Content-SHA256 $authContentSha256;
|
|
|
|
# Get resource from Object Storage
|
|
proxy_pass <%= ENV["AWS_S3_ENDPOINT_URL"] %>/<%= ENV["AWS_STORAGE_BUCKET_NAME"] %>/;
|
|
proxy_set_header Host <%= ENV["AWS_S3_ENDPOINT_URL"].split("://")[1] %>;
|
|
|
|
add_header Content-Security-Policy "default-src 'none'" always;
|
|
}
|
|
|
|
location /media-auth {
|
|
proxy_pass http://backend_server/api/v1.0/documents/media-auth/;
|
|
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-Original-URL $request_uri;
|
|
|
|
# Prevent the body from being passed
|
|
proxy_pass_request_body off;
|
|
proxy_set_header Content-Length "";
|
|
proxy_set_header X-Original-Method $request_method;
|
|
}
|
|
|
|
location / {
|
|
try_files $uri index.html $uri/ =404;
|
|
}
|
|
|
|
location ~ "^/docs/[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}/?$" {
|
|
try_files $uri /docs/[id]/index.html;
|
|
}
|
|
|
|
location = /404.html {
|
|
internal;
|
|
}
|
|
|
|
}
|