Frontend Roadmap here:
https://my.vikunja.cloud/share/UrdhKPqumxDXUbYpEGJLSIyNTwAnbBzVlwdDpRbv/auth
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
2.6 KiB
115 lines
2.6 KiB
user nginx; |
|
worker_processes 1; |
|
|
|
error_log /var/log/nginx/error.log warn; |
|
pid /var/run/nginx.pid; |
|
|
|
|
|
events { |
|
worker_connections 1024; |
|
} |
|
|
|
|
|
http { |
|
include /etc/nginx/mime.types; |
|
default_type application/octet-stream; |
|
|
|
types { |
|
application/manifest+json webmanifest; |
|
} |
|
|
|
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; |
|
#tcp_nopush on; |
|
|
|
keepalive_timeout 65; |
|
|
|
gzip on; |
|
|
|
gzip_vary on; |
|
gzip_proxied any; |
|
gzip_comp_level 6; |
|
gzip_buffers 16 8k; |
|
gzip_http_version 1.1; |
|
gzip_min_length 256; |
|
gzip_types |
|
text/plain |
|
text/css |
|
application/json |
|
application/x-javascript |
|
application/javascript |
|
text/xml |
|
application/xml |
|
application/xml+rss |
|
text/javascript |
|
application/vnd.ms-fontobject |
|
application/x-font-ttf |
|
font/opentype |
|
image/svg+xml |
|
image/x-icon |
|
audio/wav; |
|
|
|
map_hash_max_size 128; |
|
map_hash_bucket_size 128; |
|
|
|
# Expires map |
|
map $sent_http_content_type $expires { |
|
default off; |
|
text/css max; |
|
application/javascript max; |
|
text/javascript max; |
|
application/vnd.ms-fontobject max; |
|
application/x-font-ttf max; |
|
font/opentype max; |
|
font/woff2 max; |
|
image/svg+xml max; |
|
image/x-icon max; |
|
audio/wav max; |
|
~images/ max; |
|
~font/ max; |
|
} |
|
|
|
server { |
|
listen 80; |
|
listen 81 default_server http2 proxy_protocol; ## Needed when behind HAProxy with SSL termination + HTTP/2 support |
|
|
|
server_name _; |
|
|
|
expires $expires; |
|
|
|
root /usr/share/nginx/html; |
|
|
|
# all assets contain hash in filename, cache forever |
|
location ^~ /assets/ { |
|
add_header Cache-Control "public, max-age=31536000, s-maxage=31536000, immutable"; |
|
try_files $uri =404; |
|
} |
|
|
|
# all workbox scripts are compiled with hash in filename, cache forever3 |
|
location ^~ /workbox- { |
|
add_header Cache-Control "public, max-age=31536000, s-maxage=31536000, immutable"; |
|
try_files $uri =404; |
|
} |
|
|
|
# assume that everything else is handled by the application router, by injecting the index.html. |
|
location / { |
|
autoindex off; |
|
expires off; |
|
add_header Cache-Control "public, max-age=0, s-maxage=0, must-revalidate" always; |
|
try_files $uri /index.html =404; |
|
} |
|
|
|
location ~* .(txt|webmanifest|css|js|mjs|map|svg|jpg|jpeg|png|ico|ttf|woff|woff2|wav)$ { |
|
try_files $uri $uri/ =404; |
|
} |
|
|
|
error_page 500 502 503 504 /50x.html; |
|
location = /50x.html { |
|
} |
|
} |
|
}
|
|
|