forked from shellhub-io/shellhub
-
Notifications
You must be signed in to change notification settings - Fork 0
/
shellhub.conf
82 lines (71 loc) · 2.46 KB
/
shellhub.conf
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
79
80
81
82
server {
listen 80;
server_name _;
location / {
resolver 127.0.0.11 ipv6=off valid=10s;
proxy_pass http://ui:8080;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
location /api {
resolver 127.0.0.11 ipv6=off valid=10s;
auth_request /auth;
auth_request_set $tenant_id $upstream_http_x_tenant_id;
error_page 500 =401 /auth;
rewrite ^/api/(.*)$ /$1 break;
proxy_set_header X-Tenant-ID $tenant_id;
proxy_pass http://api:8080;
}
location /api/devices/auth {
resolver 127.0.0.11 ipv6=off valid=10s;
auth_request off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://api:8080;
}
location /api/login {
resolver 127.0.0.11 ipv6=off valid=10s;
auth_request off;
rewrite ^/api/(.*)$ /$1 break;
proxy_pass http://api:8080;
}
location /auth {
resolver 127.0.0.11 ipv6=off valid=10s;
internal;
proxy_pass http://api:8080;
}
location /ws {
resolver 127.0.0.11 ipv6=off valid=10s;
rewrite ^/ws/(.*)$ /$1 break;
proxy_pass http://ws:8080;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_http_version 1.1;
proxy_cache_bypass $http_upgrade;
proxy_redirect off;
}
location /endpoints {
default_type application/json;
content_by_lua_block {
local host=ngx.var.http_host
local ssh_port=os.getenv("SHELLHUB_SSH_PORT")
local json = require('cjson')
local data = {api=host, ssh=host .. ":" .. ssh_port, mqtt=host .. ":1883"}
ngx.say(json.encode(data))
}
}
location /install.sh {
default_type "text/x-shellscript";
content_by_lua_block {
local host=ngx.var.http_host
local tenant_id=ngx.var.arg_tenant_id
local version=os.getenv("SHELLHUB_VERSION")
ngx.say("docker run -d --restart=unless-stopped --privileged --net=host --pid=host -v /:/host -e SERVER_ADDRESS=http://",host," -e PRIVATE_KEY=/host/etc/shellhub.key -e TENANT_ID=",tenant_id," shellhubio/agent:",version)
}
}
}