-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCaddyfile
78 lines (63 loc) · 1.61 KB
/
Caddyfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
{
{$CADDY_GLOBAL_OPTIONS}
frankenphp {
#worker /path/to/your/worker.php
{$FRANKENPHP_CONFIG}
}
}
{$CADDY_EXTRA_CONFIG}
{$SERVER_NAME:localhost} {
#log {
# # Redact the authorization query parameter that can be set by Mercure
# format filter {
# request>uri query {
# replace authorization REDACTED
# }
# }
#}
root * public/
encode zstd br gzip
# Uncomment the following lines to enable Mercure and Vulcain modules
#mercure {
# # Transport to use (default to Bolt)
# transport_url {$MERCURE_TRANSPORT_URL:bolt:///data/mercure.db}
# # Publisher JWT key
# publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG}
# # Subscriber JWT key
# subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG}
# # Allow anonymous subscribers (double-check that it's what you want)
# anonymous
# # Enable the subscription API (double-check that it's what you want)
# subscriptions
# # Extra directives
# {$MERCURE_EXTRA_DIRECTIVES}
#}
#vulcain
###
{$CADDY_SERVER_EXTRA_DIRECTIVES}
@file_exists `file({path}) && !path_regexp(".php")`
@php `path_regexp('(.php|^/(api|admin|_profiler|_wdt|_error))')`
@websockets {
header Connection *Upgrade*
header Upgrade websocket
}
handle / {
reverse_proxy node:3000
}
# Proxy websockets to node container
handle @websockets {
reverse_proxy node:3000
}
# Load files that exist already in "backend/public/"
handle @file_exists {
file_server
}
# If file does not exist, or contains ".php", proxy to PHP
handle @php {
php_server
}
# Fall back to node.js application
handle {
reverse_proxy node:3000
}
}