Compare commits

...

107 commits
main ... main

Author SHA1 Message Date
5e8ad9b7da
Separate snac2 and Phanpy into two subdomains 2024-04-30 14:17:17 +00:00
f216e37a42
Update peertube.conf for v6.1.0 2024-04-29 18:52:38 +00:00
40f25073bb Update mdwalters.conf (#29)
Reviewed-on: exozyme/nginx#29
Co-authored-by: mdwalters <mdwalters.pm@proton.me>
Co-committed-by: mdwalters <mdwalters.pm@proton.me>
2024-04-29 03:39:31 +00:00
140c771c32 Update mdwalters.conf (#28)
Reviewed-on: exozyme/nginx#28
Co-authored-by: mdwalters <mdwalters.pm@proton.me>
Co-committed-by: mdwalters <mdwalters.pm@proton.me>
2024-04-29 03:30:26 +00:00
06ac5c8eea
Remove safetwitch.conf because our instance is no longer maintained 2024-04-15 17:25:25 +00:00
84c65e5506
Track global nginx config options, block Bytespider from redlib 2024-04-13 13:45:52 +00:00
057107d9c5
Fix iacore cert path 2024-04-10 18:56:37 +00:00
iacore
b2348b9646
Add bean-doze 2024-04-07 09:52:13 +00:00
8c2b0854b9
Move log_format to nginx.conf
log_format is only allowed in the http context and not in a server block. Otherwise you get the error "log_format" directive is not allowed here
2024-04-06 15:39:28 +00:00
iacore
42fb81a97a
www.1a-insec.net: Do not log IP address 2024-04-06 12:02:13 +00:00
45ccf9e51c
Merge pull request 'Update mdwalters.conf' (#27) from mdwalters/nginx:main into main
Reviewed-on: exozyme/nginx#27
2024-04-05 16:56:45 +00:00
fa70231eac
Update mdwalters.conf 2024-04-05 14:03:19 +00:00
8fe7a105cb
Use default log format for iacore access log 2024-03-30 20:09:45 +00:00
iacore
a2c5b4ab7c
move log location 2024-03-30 17:36:48 +00:00
iacore
6908e562b3
enable logs for www.1a-insec.net 2024-03-30 16:00:41 +00:00
e451c5e807
Try serving index.txt if index.html
Sometimes I just want to serve a txt and making an HTML file with it inside a <pre> block is too much of a hack
2024-03-27 17:08:52 +00:00
2e503d808b
Fix cert location again 2024-03-05 18:28:43 +00:00
f36d28dae4 Merge pull request 'Add paste to mdwalters.conf' (#26) from mdwalters/nginx:main into main
Reviewed-on: exozyme/nginx#26
Reviewed-by: Anthony Wang <a@noreply.git.exozy.me>
2024-03-05 18:25:53 +00:00
d6324c8098 add paste to mdwalters.conf 2024-03-05 17:14:37 +00:00
850b51b2ed
Fix git.max.is-probably.gay cert path 2024-03-04 23:40:20 +00:00
132a20839d Merge pull request 'Update mdwalters configs' (#25) from mdwalters/nginx:main into main
Reviewed-on: exozyme/nginx#25
2024-03-04 23:38:55 +00:00
02e7c1ff99 Update mdwalters.conf 2024-03-04 22:14:31 +00:00
3cc1f4e85e Update mdwalters.conf 2024-03-04 22:02:38 +00:00
0f98fb86ef
Reformat nvpie.conf 2024-02-29 15:45:55 +00:00
06d2e7c208
Reverting to old config 2024-02-29 15:44:46 +00:00
e541b39644
Reformat and generate certs for iacore.conf 2024-02-26 16:52:19 +00:00
iacore
6d15c0efae
Add www.1a-insec.net 2024-02-26 15:54:38 +00:00
5e683f3f90
Delete old ta180m redirect 2024-02-23 17:28:00 +00:00
014aa68ba5
Make mastodon-streaming and mastodon-web Unix sockets use different RuntimeDirectory's
systemd doesn't support this https://github.com/systemd/systemd/issues/5394 and it's surprising that it's even worked until recently
2024-02-20 04:14:03 +00:00
1ca4e9c17a
PeerTube 6.0.3 2024-01-21 03:38:03 +00:00
f9748b3ec7
Change /srv/http/pages to /srv/http, don't automatically forward ports 4200-9
The first change doesn't require any manual intervention since /srv/http/pages is now symlinked to /srv/http. The purpose of it is just to make paths shorter, that's all.

I have several reasons for the second change, even though it may have been a useful feature:
- Security: Some programs use those ports by default and you don't want to accidentally expose them to the internet. If you want to run a program on exozyme and view it on your own computer, use SSH port forwarding instead.
- There was some weird DNS resolution problem with that config so I made it only listen to IPv4, which can cause problems since some programs only bind to IPv6.
- If you want to expose a program to the internet, you must use a Unix socket or socat. This feature was useful as a quick-and-dirty option, but socat is also just one command and doesn't require much more effort.
2024-01-20 16:01:08 +00:00
25b463ada1
Reformat x.conf 2024-01-20 03:32:24 +00:00
d6172c33c2
Merge pull request 'Proxying Through Nginx' (#23) from x/nginx:main into main
Reviewed-on: exozyme/nginx#23
2024-01-20 03:31:21 +00:00
x
4267f0ef03
Proxying Through Nginx
redlib, priviblur, memos, rss-bridge
2024-01-20 07:30:57 +05:30
0c08f30f8f
Enable HSTS for Nextcloud (it should be automatically enabled for all sites so idk why I have to do it manually for Nextcloud) 2024-01-12 23:21:01 +00:00
baf40d7694
Update nextcloud.conf to match upstream (https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html) 2024-01-12 18:06:27 +00:00
1c88742815
Add calibre-web.conf with 200M upload limit 2024-01-12 17:55:07 +00:00
7c95638d93
Oops forgot to add ta180m.conf 2024-01-11 19:43:13 +00:00
e6731d996e
Rename redirect.conf to ta180m.conf 2024-01-11 18:31:02 +00:00
21303cfea0
Move SSL stuff to /etc/nginx/nginx.conf 2024-01-11 18:25:56 +00:00
1b30fed65f
Improve SSL config 2024-01-11 17:43:59 +00:00
f6322e183d
Merge pull request 'Updated nvpie config for websockets' (#22) from nvpie/nginx:main into main
Reviewed-on: exozyme/nginx#22
2023-12-29 15:48:49 +00:00
bfce841044
Updated nvpie config for websockets 2023-12-29 11:23:34 +00:00
af75fb68a7
Fix typo in PeerTube client path 2023-12-28 16:18:10 +00:00
e5ba1ce1df
PeerTube 6.0.0 updates 2023-12-24 00:28:14 +00:00
eb1da632fb
Remove Websockets proxying for iacore.conf 2023-12-21 22:01:02 +00:00
4cce3721b2
Uncomment commented stuff in iacore.conf 2023-12-21 19:19:54 +00:00
184b931fd0 Update iacore.conf 2023-12-20 14:10:25 +00:00
05126f565b
Merge pull request 'modify iacore.conf: try minimal config' (#21) from patch-3 into main
Reviewed-on: exozyme/nginx#21
2023-12-20 12:40:35 +00:00
Locria Cyber
c71ee472ae
modify iacore.conf: try minimal config 2023-12-20 12:40:02 +00:00
8383e4eb10
Merge pull request 'Add iacore.conf' (#20) from patch-3 into main
Reviewed-on: exozyme/nginx#20
2023-12-19 23:19:58 +00:00
Locria Cyber
c82031450c
Add iacore.conf 2023-12-19 23:18:09 +00:00
8712f423cb
Revert "Revert "Revert "Add drgns-space.conf"""
This reverts commit 63914e5d7f.
2023-12-16 21:08:25 +00:00
d798a49551
Use same TLS cert for all mdwalters.exozy.me subdomains 2023-11-28 01:32:15 +00:00
c2fb98cd29 Merge pull request 'Add Git instance for mdwalters.conf' (#18) from mdwalters/nginx:main into main
Reviewed-on: exozyme/nginx#18
2023-11-28 01:24:40 +00:00
66ee1ba697
Add Git instance 2023-11-27 20:08:30 -05:00
e1ae9e4a8a
Fix typo, reformat drgns-space.conf 2023-11-16 15:06:43 +00:00
63914e5d7f
Revert "Revert "Add drgns-space.conf""
This reverts commit 60014a661f.
2023-11-16 15:05:46 +00:00
cba3cc387f
Use single cert for both xtexx.eu.org and blog.xtexx.eu.org 2023-11-16 02:24:46 +00:00
47967fd747
Use one TLS cert for all meower.mdwalters.exozy.me subdomains, reformat file 2023-11-16 02:18:47 +00:00
1652642e12 Merge pull request 'Separate endpoints in mdwalters.conf' (#16) from mdwalters/nginx:main into main
Reviewed-on: exozyme/nginx#16
2023-11-16 02:16:19 +00:00
60014a661f
Revert "Add drgns-space.conf"
This reverts commit 02f764b5a5.

Oops, merged this too soon, since I'm unable to generate the TLS certs since drgns.space's DNS records aren't set up properly
2023-11-16 02:13:46 +00:00
127c8f5ecb
Merge pull request 'Add drgns-space.conf' (#17) from dragongoose/nginx:main into main
Reviewed-on: exozyme/nginx#17
Reviewed-by: Anthony Wang <a@noreply.git.exozy.me>
2023-11-16 02:09:08 +00:00
02f764b5a5
Add drgns-space.conf
give temporary message while drgns.space is down :(
2023-11-16 01:46:04 +00:00
Max
e66063fae3 Update mdwalters.conf 2023-11-16 00:55:49 +00:00
Max
c5a78986ac Separate endpoints in mdwalters.conf 2023-11-16 00:55:03 +00:00
866325e088
Fix typos, properly proxy WebSockets, format mdwalters.conf 2023-11-15 22:06:50 +00:00
b5cd8cfd6d Merge pull request 'Add my personal configurations' (#15) from mdwalters/nginx:main into main
Reviewed-on: exozyme/nginx#15
2023-11-15 21:59:16 +00:00
Max
d1c2e9470d Update mdwalters.conf 2023-11-15 20:30:22 +00:00
Max
f4075ccb1a Update mdwalters.conf 2023-11-15 19:20:41 +00:00
Max
ce158df2da feat: add meower line 2023-11-15 17:25:20 +00:00
Max
f2442f0a08 fix: use the other template 2023-11-15 12:58:45 +00:00
Max
f4438b09a8 feat: add config files for mdwalters 2023-11-15 01:34:13 +00:00
23732b339a
Update mastodon.conf with v4.2.0 stuff 2023-09-21 16:55:39 +00:00
00fc2e086f
Delete iacore.conf because www.1a-insec.net is now being served by pages.sr.ht 2023-09-04 17:59:36 +00:00
93c6f888dc
Merge pull request 'Fix UNIX domain socket for xtex.conf' (#14) from xtex/nginx:xtex/fix-uds into main
Reviewed-on: exozyme/nginx#14
2023-09-03 14:34:06 +00:00
956cb33b26
Remove .sock suffix for xtex.conf 2023-09-03 12:43:37 +08:00
ce94ff3f6b
Fix UNIX domain socket for xtex.conf
I also changed the permission of the sockets to 0777.
Now it should be working.
srwxrwxrwx  1 xtex          http             0 Sep  3 00:09 xtexblog.sock=
srwxrwxrwx  1 xtex          http             0 Sep  3 00:09 xtexhome.sock=
Sorry for my mistakes
2023-09-03 08:11:14 +08:00
96ed6d7bdf
Wrap proxy_pass stuff in a location / block for xtex.conf 2023-09-02 19:20:23 +00:00
94a223180f
Merge pull request 'Update xtexx.eu.org' (#13) from xtex/nginx:xtex/deploy-xtexx-eu-org into main
Reviewed-on: exozyme/nginx#13
2023-09-02 19:18:43 +00:00
62870b2f0a
Update xtexx.eu.org
- xtexx.eu.org is moving from Vercel to exopages for better experience
  and extensible (e.g. CSP)
  The refactor is also in progress.
  The source code can be found at https://codeberg.org/xtex/home.git
  The server is deployed with podman with a low memory limitation.
  btw, cache-handler sucks.
- blog.xtexx.eu.org is now handled by the same caddy instance for
  xtexx.eu.org.
  The main reason is that, there will be more and more complex rules in
  the future. And I will implement more RFCs (e.g. RFC6415) for this domain.
2023-09-02 19:36:46 +08:00
27d2e328ed
Merge pull request 'refactor: migrate to xtexx.eu.org' (#12) from xtex/nginx:xtex-eu-org-migrate into main
Reviewed-on: exozyme/nginx#12
2023-07-20 14:38:01 +00:00
14cccfb385
refactor: migrate to xtexx.eu.org 2023-07-20 20:43:36 +08:00
6e2381b74c
Update peertube.conf to match upstream 2023-07-16 20:16:39 +00:00
482db51233
Stop PeerTube journal spam by specifying ::1 instead of localhost 2023-07-07 00:55:56 +00:00
d7e4151476
Use new http2 on; directive to enable HTTP/2 in /etc/nginx/nginx.conf instead of in individual conf files 2023-07-06 14:48:08 +00:00
fab570ee50
Update mastodon.conf to match upstream 2023-07-06 14:31:51 +00:00
216daf7a23
Enable symlinks for Nextcloud 2023-06-14 21:20:25 +00:00
e58c22e34a
Format configs 2023-06-12 00:12:49 +00:00
caadf1c3eb
Merge pull request 'add blog.xtexx.ml' (#10) from xtex/nginx:main into main
Reviewed-on: exozyme/nginx#10
2023-06-12 00:12:38 +00:00
cfe3c09e5c
add blog.xtexx.ml 2023-06-12 07:53:08 +08:00
0f29483002
Merge pull request 'Add safetwitch.conf' (#9) from dragongoose/nginx:main into main
Reviewed-on: exozyme/nginx#9
2023-06-07 16:11:56 +00:00
6aa9ddf371
Add safetwitch.conf 2023-06-07 15:49:38 +00:00
b0941d271f
Revert "Enable CGI for exopages using php-fpm"
This reverts commit 52fc0762e8.

CGI has serious security issues since all CGI scripts run as the http user
2023-06-01 16:30:47 +00:00
52fc0762e8
Enable CGI for exopages using php-fpm 2023-06-01 16:22:31 +00:00
cff9ad23b0
Generate letsencrypt cert for neovoid.is-cool.dev, use try_files instead of proxy_pass 2023-05-12 03:32:35 +00:00
262a9eda64 Merge pull request 'corrected nginx conf' (#8) from nvpie/nginx:main into main
Reviewed-on: exozyme/nginx#8
2023-05-11 14:14:52 +00:00
43b6be1eeb corrected nginx conf
wildcard at root domain not needed
2023-05-11 11:46:21 +00:00
23ecefb89b Merge pull request 'nginx config added for nvpie's site' (#7) from nvpie/nginx:main into main
Reviewed-on: exozyme/nginx#7
2023-05-10 14:34:48 +00:00
2f48a822ae nginx config added for nvpie's site
for neovoid.is-cool.dev domain
2023-05-10 08:35:12 +00:00
6e66d8d5cc Merge pull request 'Add 404 page' (#6) from iacore/nginx:patch-2 into main
Reviewed-on: exozyme/nginx#6
2023-05-10 01:51:32 +00:00
Locria Cyber
67c8eed118
Add 404 page 2023-05-10 01:45:18 +00:00
85af427d7e Merge pull request '(iacore.conf) fix Cache-Control stale' (#5) from iacore/nginx:iacore-patch-1 into main
Reviewed-on: exozyme/nginx#5
2023-04-13 23:50:29 +00:00
Locria Cyber
c090dd6ad2
(iacore.conf) fix Cache-Control stale 2023-04-13 23:43:29 +00:00
e07b0dd49d
Fix typo in iacore.conf 2023-04-13 20:04:46 +00:00
613e03be26 Merge pull request '[iacore.conf] cache resources' (#4) from iacore/nginx:iacore-patch-1 into main
Reviewed-on: exozyme/nginx#4
2023-04-13 20:01:09 +00:00
65ea204f75 [iacore.conf] cache resources
See http://nginx.org/en/docs/http/ngx_http_headers_module.html

I did not add `Expires` to allow re-validation on each request.
2023-04-13 19:42:55 +00:00
21 changed files with 403 additions and 192 deletions

14
calibre-web.conf Normal file
View file

@ -0,0 +1,14 @@
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name library.exozy.me;
location / {
proxy_pass http://unix:/srv/http/library;
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 $scheme;
client_max_body_size 200M;
}
}

View file

@ -1,10 +1,8 @@
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
server_name portal.exozy.me;
include conf.d/ssl;
location / {
# Required to proxy the connection to Cockpit
proxy_pass https://localhost:9090;

View file

@ -8,13 +8,11 @@ server {
}
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
listen 443 ssl default_server;
listen [::]:443 ssl default_server;
server_name exozy.me;
include conf.d/ssl;
root /srv/http/exozyme;
root /srv/http/www;
index index.html;
location /.well-known/matrix/server {

View file

@ -1,9 +1,11 @@
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
server_name git.exozy.me;
include conf.d/ssl;
if ($http_user_agent = "Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; spider-feedback@bytedance.com)") {
return 444;
}
location / {
proxy_pass http://unix:/run/forgejo/forgejo.sock;

View file

@ -1,10 +1,8 @@
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
server_name desk.exozy.me;
include conf.d/ssl;
location / {
proxy_pass http://localhost:4080/guacamole/;
proxy_buffering off;

View file

@ -1,15 +1,40 @@
log_format 1a-simple '[$time_local] "$request" $status $bytes_sent "$http_referer"';
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
server_name www.1a-insec.net;
ssl_certificate /etc/letsencrypt/live/www.1a-insec.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/www.1a-insec.net/privkey.pem;
ssl_certificate /etc/letsencrypt/live/1a-insec.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/1a-insec.net/privkey.pem;
root /srv/http/pages/iacore;
index index.html;
root /srv/http/iacore;
access_log /var/log/nginx/www.1a-insec.net.access.log 1a-simple;
location / {
try_files $uri $uri.html $uri/ =404;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name bean.1a-insec.net;
ssl_certificate /etc/letsencrypt/live/1a-insec.net/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/1a-insec.net/privkey.pem;
location / {
proxy_pass http://unix:/srv/http/bean-doze;
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 $scheme;
# Proxy WebSockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}

View file

@ -1,11 +1,8 @@
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
server_name hub.exozy.me;
include conf.d/ssl;
location ~ ^/user/(.*)/desk/(.*)$ {
return 301 /hub/desk/$2;
}

View file

@ -3,26 +3,32 @@ map $http_upgrade $connection_upgrade {
'' close;
}
upstream backend {
server unix:/run/mastodon/mastodon-web.sock fail_timeout=0;
upstream web {
server unix:/run/mastodon-web/mastodon-web.sock fail_timeout=0;
}
upstream streaming {
server unix:/run/mastodon/mastodon-streaming.sock fail_timeout=0;
# Instruct nginx to send connections to the server with the least number of connections
# to ensure load is distributed evenly.
least_conn;
server unix:/run/mastodon-streaming/mastodon-streaming.sock fail_timeout=0;
# Uncomment these lines for load-balancing multiple instances of streaming for scaling,
# this assumes your running the streaming server on ports 4000, 4001, and 4002:
# server 127.0.0.1:4001 fail_timeout=0;
# server 127.0.0.1:4002 fail_timeout=0;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=CACHE:10m inactive=7d max_size=1g;
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
server_name social.exozy.me;
include conf.d/ssl;
keepalive_timeout 70;
sendfile on;
client_max_body_size 80m;
client_max_body_size 99m;
root /var/lib/mastodon/public;
@ -33,50 +39,71 @@ server {
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml image/x-icon;
location / {
try_files $uri @proxy;
}
location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) {
add_header Cache-Control "public, max-age=31536000, immutable";
add_header Strict-Transport-Security "max-age=31536000";
try_files $uri @proxy;
# If Docker is used for deployment and Rails serves static files,
# then needed must replace line `try_files $uri =404;` with `try_files $uri @proxy;`.
location = /sw.js {
add_header Cache-Control "public, max-age=604800, must-revalidate";
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
try_files $uri =404;
}
location /sw.js {
add_header Cache-Control "public, max-age=0";
add_header Strict-Transport-Security "max-age=31536000";
try_files $uri @proxy;
location ~ ^/assets/ {
add_header Cache-Control "public, max-age=2419200, must-revalidate";
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
try_files $uri =404;
}
location @proxy {
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 $scheme;
proxy_set_header Proxy "";
proxy_pass_header Server;
proxy_pass http://backend;
proxy_buffering on;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_cache CACHE;
proxy_cache_valid 200 7d;
proxy_cache_valid 410 24h;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
add_header X-Cached $upstream_cache_status;
add_header Strict-Transport-Security "max-age=31536000";
tcp_nodelay on;
location ~ ^/avatars/ {
add_header Cache-Control "public, max-age=2419200, must-revalidate";
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
try_files $uri =404;
}
location /api/v1/streaming {
location ~ ^/emoji/ {
add_header Cache-Control "public, max-age=2419200, must-revalidate";
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
try_files $uri =404;
}
location ~ ^/headers/ {
add_header Cache-Control "public, max-age=2419200, must-revalidate";
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
try_files $uri =404;
}
location ~ ^/packs/ {
add_header Cache-Control "public, max-age=2419200, must-revalidate";
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
try_files $uri =404;
}
location ~ ^/shortcuts/ {
add_header Cache-Control "public, max-age=2419200, must-revalidate";
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
try_files $uri =404;
}
location ~ ^/sounds/ {
add_header Cache-Control "public, max-age=2419200, must-revalidate";
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
try_files $uri =404;
}
location ~ ^/system/ {
add_header Cache-Control "public, max-age=2419200, immutable";
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
add_header X-Content-Type-Options nosniff;
add_header Content-Security-Policy "default-src 'none'; form-action 'none'";
try_files $uri =404;
}
location ^~ /api/v1/streaming {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@ -90,8 +117,34 @@ server {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
tcp_nodelay on;
}
error_page 500 501 502 503 504 /500.html;
location @proxy {
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 $scheme;
proxy_set_header Proxy "";
proxy_pass_header Server;
proxy_pass http://web;
proxy_buffering on;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_cache CACHE;
proxy_cache_valid 200 7d;
proxy_cache_valid 410 24h;
proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
add_header X-Cached $upstream_cache_status;
tcp_nodelay on;
}
error_page 404 500 501 502 503 504 /500.html;
}

50
mdwalters.conf Normal file
View file

@ -0,0 +1,50 @@
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name git.max.is-probably.gay;
ssl_certificate /etc/letsencrypt/live/max.is-probably.gay/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/max.is-probably.gay/privkey.pem;
location / {
proxy_pass http://localhost:1351;
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 $scheme;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name fedi.max.is-probably.gay;
ssl_certificate /etc/letsencrypt/live/max.is-probably.gay/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/max.is-probably.gay/privkey.pem;
location / {
proxy_pass http://localhost:1350;
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 $scheme;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name phanpy.max.is-probably.gay;
ssl_certificate /etc/letsencrypt/live/max.is-probably.gay/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/max.is-probably.gay/privkey.pem;
location / {
proxy_pass http://localhost:5173;
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 $scheme;
}
}

View file

@ -10,16 +10,18 @@ map $arg_v $asset_immutable {
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
server_name cloud.exozy.me;
# Enable symlinks
disable_symlinks off;
# Path to the root of your installation
root /usr/share/webapps/nextcloud;
# Use Mozilla's guidelines for SSL/TLS settings
# https://mozilla.github.io/server-side-tls/ssl-config-generator/
include conf.d/ssl;
# Prevent nginx HTTP Server Detection
server_tokens off;
# HSTS settings
# WARNING: Only add the preload option once you read about
@ -27,7 +29,7 @@ server {
# will add the domain to a hardcoded list that is shipped
# in all major browsers and getting removed from this list
# could take several months.
#add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload" always;
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains" always;
# set max upload size and increase upload timeout:
client_max_body_size 16G;
@ -40,21 +42,20 @@ server {
gzip_comp_level 4;
gzip_min_length 256;
gzip_proxied expired no-cache no-store private no_last_modified no_etag auth;
gzip_types application/atom+xml application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
gzip_types application/atom+xml text/javascript application/javascript application/json application/ld+json application/manifest+json application/rss+xml application/vnd.geo+json application/vnd.ms-fontobject application/wasm application/x-font-ttf application/x-web-app-manifest+json application/xhtml+xml application/xml font/opentype image/bmp image/svg+xml image/x-icon text/cache-manifest text/css text/plain text/vcard text/vnd.rim.location.xloc text/vtt text/x-component text/x-cross-domain-policy;
# Pagespeed is not supported by Nextcloud, so if your server is built
# with the `ngx_pagespeed` module, uncomment this line to disable it.
#pagespeed off;
# The settings allows you to optimize the HTTP2 bandwitdth.
# The settings allows you to optimize the HTTP2 bandwidth.
# See https://blog.cloudflare.com/delivering-http-2-upload-speed-improvements/
# for tunning hints
# for tuning hints
client_body_buffer_size 512k;
# HTTP response headers borrowed from Nextcloud `.htaccess`
add_header Referrer-Policy "no-referrer" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Download-Options "noopen" always;
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Permitted-Cross-Domain-Policies "none" always;
add_header X-Robots-Tag "noindex, nofollow" always;
@ -69,7 +70,7 @@ server {
# only for Nextcloud like below:
include mime.types;
types {
application/javascript js mjs;
text/javascript js mjs;
}
# Specify how to handle directories -- specifying `/index.php$request_uri`
@ -79,7 +80,7 @@ server {
# that file is correctly served; if it doesn't, then the request is passed to
# the front-end controller. This consistent behaviour means that we don't need
# to specify custom rules for certain paths (e.g. images and other assets,
# `/updater`, `/ocm-provider`, `/ocs-provider`), and thus
# `/updater`, `/ocs-provider`), and thus
# `try_files $uri $uri/ /index.php$request_uri`
# always provides the desired behaviour.
index index.php index.html /index.php$request_uri;
@ -138,7 +139,7 @@ server {
# to the URI, resulting in a HTTP 500 error response.
location ~ \.php(?:$|/) {
# Required for legacy support
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|oc[ms]-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;
rewrite ^/(?!index|remote|public|cron|core\/ajax\/update|status|ocs\/v[12]|updater\/.+|ocs-provider\/.+|.+\/richdocumentscode\/proxy) /index.php$request_uri;
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
set $path_info $fastcgi_path_info;
@ -160,7 +161,8 @@ server {
fastcgi_max_temp_file_size 0;
}
location ~ \.(?:css|js|svg|gif|png|jpg|ico|wasm|tflite|map)$ {
# Serve static files
location ~ \.(?:css|js|mjs|svg|gif|png|jpg|ico|wasm|tflite|map|ogg|flac)$ {
try_files $uri /index.php$request_uri;
add_header Cache-Control "public, max-age=15778463, $asset_immutable";
access_log off; # Optional: Don't log access to assets

22
nginx.conf Normal file
View file

@ -0,0 +1,22 @@
# SSL
ssl_certificate /etc/letsencrypt/live/exozy.me/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exozy.me/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
add_header Strict-Transport-Security "max-age=63072000" always;
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/exozy.me/chain.pem;
# Log to system journal
access_log syslog:server=unix:/dev/log;
error_log syslog:server=unix:/dev/log;
# Disable symlinks so users can't make nginx follow symlinks to sensitive files
disable_symlinks if_not_owner;
# Force UTF-8 because why not
charset utf-8;
# Yay HTTP/2!
http2 on;

16
nvpie.conf Normal file
View file

@ -0,0 +1,16 @@
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name neovoid.is-cool.dev;
ssl_certificate /etc/letsencrypt/live/neovoid.is-cool.dev/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/neovoid.is-cool.dev/privkey.pem;
root /srv/http/nvpie;
index index.html;
location / {
try_files $uri $uri.html $uri/ =404;
}
}

View file

@ -1,36 +1,10 @@
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name ~^(\d)\.exozy\.me;
include conf.d/ssl;
index index.html;
location / {
# https://serverfault.com/questions/638505/nginx-dynamic-proxy-pass-doesnt-resolve-properly
proxy_pass http://127.0.0.1:420$1;
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 $scheme;
# Proxy WebSockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
server_name ~^(?<page>.+)\.exozy\.me;
include conf.d/ssl;
root /srv/http/pages/$page;
index index.html;
root /srv/http/$page;
index index.html index.txt;
error_page 502 404 /404.html;
location = /404.html {
@ -42,7 +16,7 @@ server {
}
location @fallback {
proxy_pass http://unix:/srv/http/pages/$page;
proxy_pass http://unix:/srv/http/$page;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

View file

@ -3,16 +3,14 @@
# STANDARD HTTP MODULES: Core, Proxy, Rewrite, Access, Gzip, Headers, HTTP/2, Log, Real IP, SSL, Thread Pool, Upstream, AIO Multithreading.
# THIRD PARTY MODULES: None.
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name tube.exozy.me;
upstream backend {
server [::1]:9000; # https://framacolibri.org/t/listen-to-unix-socket-instead-of-localhost-9000/5348
}
##
# Certificates
# you need a certificate to run in production. see https://letsencrypt.org/
##
include conf.d/ssl;
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name tube.exozy.me;
##
# Application
@ -30,14 +28,21 @@ server {
proxy_read_timeout 10m;
send_timeout 10m;
proxy_pass http://localhost:9000;
proxy_pass http://backend;
}
location / {
try_files /dev/null @api;
}
location = /api/v1/videos/upload-resumable {
location ~ ^/api/v1/videos/(upload-resumable|([^/]+/source/replace-resumable))$ {
client_max_body_size 0;
proxy_request_buffering off;
try_files /dev/null @api;
}
location ~ ^/api/v1/users/[^/]+/imports/import-resumable$ {
client_max_body_size 0;
proxy_request_buffering off;
@ -59,6 +64,13 @@ server {
try_files /dev/null @api;
}
location ~ ^/api/v1/runners/jobs/[^/]+/(update|success)$ {
client_max_body_size 12G; # default is 1M
add_header X-File-Maximum-Size 8G always; # inform backend of the set value in bytes before mime-encoding (x * 1.4 >= client_max_body_size)
try_files /dev/null @api;
}
location ~ ^/api/v1/(videos|video-playlists|video-channels|users/me) {
client_max_body_size 6M; # default is 1M
add_header X-File-Maximum-Size 4M always; # inform backend of the set value in bytes before mime-encoding (x * 1.4 >= client_max_body_size)
@ -78,7 +90,7 @@ server {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://localhost:9000;
proxy_pass http://backend;
}
location /socket.io {
@ -134,10 +146,10 @@ server {
# If you have a small /var/lib partition, it could be interesting to store temp nginx uploads in a different place
# See https://nginx.org/en/docs/http/ngx_http_core_module.html#client_body_temp_path
#client_body_temp_path /var/lib/peertube/storage/nginx/;
#client_body_temp_path /var/www/peertube/storage/nginx/;
# Bypass PeerTube for performance reasons. Optional.
# Should be consistent with client-overrides assets list in /server/controllers/client.ts
# Should be consistent with client-overrides assets list in client.ts server controller
location ~ ^/client/(assets/images/(icons/icon-36x36\.png|icons/icon-48x48\.png|icons/icon-72x72\.png|icons/icon-96x96\.png|icons/icon-144x144\.png|icons/icon-192x192\.png|icons/icon-512x512\.png|logo\.svg|favicon\.png|default-playlist\.jpg|default-avatar-account\.png|default-avatar-account-48x48\.png|default-avatar-video-channel\.png|default-avatar-video-channel-48x48\.png))$ {
add_header Cache-Control "public, max-age=31536000, immutable"; # Cache 1 year
@ -153,29 +165,7 @@ server {
alias /usr/share/webapps/peertube/client/dist/$1;
}
# Bypass PeerTube for performance reasons. Optional.
location ~ ^/static/(thumbnails|avatars)/ {
if ($request_method = 'OPTIONS') {
add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Methods 'GET, OPTIONS';
add_header Access-Control-Allow-Headers 'Range,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header Access-Control-Max-Age 1728000; # Preflight request can be cached 20 days
add_header Content-Type 'text/plain charset=UTF-8';
add_header Content-Length 0;
return 204;
}
add_header Access-Control-Allow-Origin '*';
add_header Access-Control-Allow-Methods 'GET, OPTIONS';
add_header Access-Control-Allow-Headers 'Range,DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header Cache-Control "public, max-age=7200"; # Cache response 2 hours
rewrite ^/static/(.*)$ /$1 break;
try_files $uri @api;
}
location ~ ^(/static/(webseed|streaming-playlists)/private/)|^/download {
location ~ ^(/static/(webseed|web-videos|streaming-playlists/hls)/private/)|^/download {
# We can't rate limit a try_files directive, so we need to duplicate @api
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
@ -184,20 +174,14 @@ server {
proxy_limit_rate 5M;
proxy_pass http://localhost:9000;
proxy_pass http://backend;
}
# Bypass PeerTube for performance reasons. Optional.
location ~ ^/static/(webseed|redundancy|streaming-playlists)/ {
location ~ ^/static/(webseed|web-videos|redundancy|streaming-playlists)/ {
limit_rate_after 5M;
# Clients usually have 4 simultaneous webseed connections, so the real limit is 3MB/s per client
set $peertube_limit_rate 800k;
# Increase rate limit in HLS mode, because we don't have multiple simultaneous connections
if ($request_uri ~ -fragmented.mp4$) {
set $peertube_limit_rate 5M;
}
set $peertube_limit_rate 5M;
# Use this line with nginx >= 1.17.0
limit_rate $peertube_limit_rate;
@ -229,7 +213,8 @@ server {
sendfile_max_chunk 1M; # prevent one fast connection from entirely occupying the worker process. should be > 800k.
aio threads;
rewrite ^/static/webseed/(.*)$ /videos/$1 break;
# web-videos is the name of the directory mapped to the `storage.web_videos` key in your PeerTube configuration
rewrite ^/static/webseed/(.*)$ /web-videos/$1 break;
rewrite ^/static/(.*)$ /$1 break;
try_files $uri @api;

View file

@ -1,13 +1,13 @@
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
server_name karawale.in *.karawale.in;
ssl_certificate /home/pranav/.local/share/cert/karawale.in/fullchain.pem;
ssl_certificate_key /home/pranav/.local/share/cert/karawale.in/key.pem;
location / {
proxy_pass http://unix:/srv/http/pages/pranav;
proxy_pass http://unix:/srv/http/pranav;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

View file

@ -1,11 +0,0 @@
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name ta180m.exozy.me;
include conf.d/ssl;
location / {
return 301 https://a.exozy.me$request_uri;
}
}

8
ssl
View file

@ -1,8 +0,0 @@
ssl_certificate /etc/letsencrypt/live/exozy.me/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/exozy.me/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
add_header Strict-Transport-Security "max-age=31536000" always;
ssl_trusted_certificate /etc/letsencrypt/live/exozy.me/chain.pem;
ssl_stapling on;
ssl_stapling_verify on;

View file

@ -1,11 +1,8 @@
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
server_name chat.exozy.me;
include conf.d/ssl;
location / {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;

View file

@ -1,10 +1,8 @@
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
listen 443 ssl;
listen [::]:443 ssl;
server_name ci.exozy.me;
include conf.d/ssl;
location / {
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;

59
x.conf Normal file
View file

@ -0,0 +1,59 @@
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name pb.exozy.me;
location / {
proxy_pass http://localhost:7631;
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 $scheme;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name memos.exozy.me;
location / {
proxy_pass http://localhost:7632;
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 $scheme;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name reddit.exozy.me;
if ($http_user_agent = "Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; spider-feedback@bytedance.com)") {
return 444;
}
location / {
proxy_pass http://localhost:7633;
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 $scheme;
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name rssbridge.exozy.me;
location / {
proxy_pass http://localhost:7634;
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 $scheme;
}
}

42
xtex.conf Normal file
View file

@ -0,0 +1,42 @@
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name xtexx.eu.org;
ssl_certificate /etc/letsencrypt/live/xtexx.eu.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xtexx.eu.org/privkey.pem;
add_header Server exozyme;
location / {
proxy_pass http://unix:/srv/http/xtexhome;
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 $scheme;
# Proxy WebSockets
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name blog.xtexx.eu.org;
ssl_certificate /etc/letsencrypt/live/xtexx.eu.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/xtexx.eu.org/privkey.pem;
add_header Server exozyme;
location / {
proxy_pass http://unix:/srv/http/xtexblog;
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 $scheme;
}
}