Merge branch 'master' into dashboard-v2-auth-pages-registration-and-recovery
This commit is contained in:
commit
e5cd3e1ed6
|
@ -20,10 +20,6 @@ updates:
|
||||||
directory: "/packages/website"
|
directory: "/packages/website"
|
||||||
schedule:
|
schedule:
|
||||||
interval: weekly
|
interval: weekly
|
||||||
- package-ecosystem: docker
|
|
||||||
directory: "/docker/caddy"
|
|
||||||
schedule:
|
|
||||||
interval: weekly
|
|
||||||
- package-ecosystem: docker
|
- package-ecosystem: docker
|
||||||
directory: "/docker/nginx"
|
directory: "/docker/nginx"
|
||||||
schedule:
|
schedule:
|
||||||
|
|
|
@ -8,6 +8,8 @@ x-logging: &default-logging
|
||||||
|
|
||||||
services:
|
services:
|
||||||
abuse-scanner:
|
abuse-scanner:
|
||||||
|
# uncomment "build" and comment out "image" to build from sources
|
||||||
|
# build: https://github.com/SkynetLabs/abuse-scanner.git#main
|
||||||
image: skynetlabs/abuse-scanner
|
image: skynetlabs/abuse-scanner
|
||||||
container_name: abuse-scanner
|
container_name: abuse-scanner
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
|
@ -13,6 +13,8 @@ services:
|
||||||
- BLOCKER_PORT=4000
|
- BLOCKER_PORT=4000
|
||||||
|
|
||||||
blocker:
|
blocker:
|
||||||
|
# uncomment "build" and comment out "image" to build from sources
|
||||||
|
# build: https://github.com/SkynetLabs/blocker.git#main
|
||||||
image: skynetlabs/blocker
|
image: skynetlabs/blocker
|
||||||
container_name: blocker
|
container_name: blocker
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
|
@ -26,6 +26,8 @@ services:
|
||||||
ipv4_address: 10.10.10.100
|
ipv4_address: 10.10.10.100
|
||||||
|
|
||||||
malware-scanner:
|
malware-scanner:
|
||||||
|
# uncomment "build" and comment out "image" to build from sources
|
||||||
|
# build: https://github.com/SkynetLabs/malware-scanner.git#main
|
||||||
image: skynetlabs/malware-scanner
|
image: skynetlabs/malware-scanner
|
||||||
container_name: malware-scanner
|
container_name: malware-scanner
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
|
@ -39,21 +39,19 @@ services:
|
||||||
expose:
|
expose:
|
||||||
- 9980
|
- 9980
|
||||||
|
|
||||||
caddy:
|
certbot:
|
||||||
build:
|
image: certbot/dns-route53:v1.25.0
|
||||||
context: ./docker/caddy
|
entrypoint: sh /entrypoint.sh
|
||||||
dockerfile: Dockerfile
|
container_name: certbot
|
||||||
container_name: caddy
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
logging: *default-logging
|
logging: *default-logging
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
|
environment:
|
||||||
|
- CERTBOT_ARGS=--dns-route53
|
||||||
volumes:
|
volumes:
|
||||||
- ./docker/data/caddy/data:/data
|
- ./docker/certbot/entrypoint.sh:/entrypoint.sh
|
||||||
- ./docker/data/caddy/config:/config
|
- ./docker/data/certbot:/etc/letsencrypt
|
||||||
networks:
|
|
||||||
shared:
|
|
||||||
ipv4_address: 10.10.10.20
|
|
||||||
|
|
||||||
nginx:
|
nginx:
|
||||||
build:
|
build:
|
||||||
|
@ -70,7 +68,7 @@ services:
|
||||||
- ./docker/data/nginx/logs:/usr/local/openresty/nginx/logs
|
- ./docker/data/nginx/logs:/usr/local/openresty/nginx/logs
|
||||||
- ./docker/data/nginx/skynet:/data/nginx/skynet:ro
|
- ./docker/data/nginx/skynet:/data/nginx/skynet:ro
|
||||||
- ./docker/data/sia/apipassword:/data/sia/apipassword:ro
|
- ./docker/data/sia/apipassword:/data/sia/apipassword:ro
|
||||||
- ./docker/data/caddy/data:/data/caddy:ro
|
- ./docker/data/certbot:/etc/letsencrypt
|
||||||
networks:
|
networks:
|
||||||
shared:
|
shared:
|
||||||
ipv4_address: 10.10.10.30
|
ipv4_address: 10.10.10.30
|
||||||
|
@ -79,7 +77,6 @@ services:
|
||||||
- "80:80"
|
- "80:80"
|
||||||
depends_on:
|
depends_on:
|
||||||
- sia
|
- sia
|
||||||
- caddy
|
|
||||||
- handshake-api
|
- handshake-api
|
||||||
- dnslink-api
|
- dnslink-api
|
||||||
- website
|
- website
|
||||||
|
@ -174,5 +171,3 @@ services:
|
||||||
- STATE_DIR=/usr/app/state
|
- STATE_DIR=/usr/app/state
|
||||||
expose:
|
expose:
|
||||||
- 3100
|
- 3100
|
||||||
depends_on:
|
|
||||||
- caddy
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
FROM caddy:2.4.6-builder AS caddy-builder
|
|
||||||
|
|
||||||
# available dns resolvers: https://github.com/caddy-dns
|
|
||||||
RUN xcaddy build --with github.com/caddy-dns/route53
|
|
||||||
|
|
||||||
FROM caddy:2.4.6-alpine
|
|
||||||
|
|
||||||
COPY --from=caddy-builder /usr/bin/caddy /usr/bin/caddy
|
|
||||||
|
|
||||||
# bash required for mo to work (mo is mustache templating engine - https://github.com/tests-always-included/mo)
|
|
||||||
RUN apk add --no-cache bash
|
|
||||||
|
|
||||||
COPY caddy.json.template mo /etc/caddy/
|
|
||||||
|
|
||||||
CMD [ "sh", "-c", \
|
|
||||||
"/etc/caddy/mo < /etc/caddy/caddy.json.template > /etc/caddy/caddy.json ; \
|
|
||||||
caddy run --config /etc/caddy/caddy.json" \
|
|
||||||
]
|
|
|
@ -1,38 +0,0 @@
|
||||||
{
|
|
||||||
"apps": {
|
|
||||||
"tls": {
|
|
||||||
"certificates": {
|
|
||||||
"automate": [
|
|
||||||
{{#PORTAL_DOMAIN}}
|
|
||||||
"{{PORTAL_DOMAIN}}", "*.{{PORTAL_DOMAIN}}", "*.hns.{{PORTAL_DOMAIN}}"
|
|
||||||
{{/PORTAL_DOMAIN}}
|
|
||||||
|
|
||||||
{{#PORTAL_DOMAIN}}{{#SERVER_DOMAIN}},{{/SERVER_DOMAIN}}{{/PORTAL_DOMAIN}}
|
|
||||||
|
|
||||||
{{#SERVER_DOMAIN}}
|
|
||||||
"{{SERVER_DOMAIN}}", "*.{{SERVER_DOMAIN}}", "*.hns.{{SERVER_DOMAIN}}"
|
|
||||||
{{/SERVER_DOMAIN}}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"automation": {
|
|
||||||
"policies": [
|
|
||||||
{
|
|
||||||
"issuers": [
|
|
||||||
{
|
|
||||||
"module": "acme",
|
|
||||||
"email": "{{EMAIL_ADDRESS}}",
|
|
||||||
"challenges": {
|
|
||||||
"dns": {
|
|
||||||
"provider": {
|
|
||||||
"name": "route53"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
1106
docker/caddy/mo
1106
docker/caddy/mo
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,55 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Portal domain requires 3 domain certificates:
|
||||||
|
# - exact portal domain, ie. example.com
|
||||||
|
# - wildcard subdomain on portal domain, ie. *.example.com
|
||||||
|
# used for skylinks served from portal subdomain
|
||||||
|
# - wildcard subdomain on hns portal domain subdomain, ie. *.hns.example.com
|
||||||
|
# used for resolving handshake domains
|
||||||
|
DOMAINS=${PORTAL_DOMAIN},*.${PORTAL_DOMAIN},*.hns.${PORTAL_DOMAIN}
|
||||||
|
|
||||||
|
# Add server domain when it is not empty and different from portal domain
|
||||||
|
if [ ! -z "${SERVER_DOMAIN}" ] && [ "${PORTAL_DOMAIN}" != "${SERVER_DOMAIN}" ]; then
|
||||||
|
# In case where server domain is not covered by portal domain's
|
||||||
|
# wildcard certificate, add server domain name to domains list.
|
||||||
|
# - server-001.example.com is covered by *.example.com
|
||||||
|
# - server-001.servers.example.com or server-001.example-severs.com
|
||||||
|
# are not covered by any already requested wildcard certificates
|
||||||
|
#
|
||||||
|
# The condition checks whether server domain does not match portal domain
|
||||||
|
# with exactly one level of subdomain (portal domain wildcard cert):
|
||||||
|
# (start) [anything but the dot] + [dot] + [portal domain] (end)
|
||||||
|
if ! printf "${SERVER_DOMAIN}" | grep -q -E "^[^\.]+\.${PORTAL_DOMAIN}$"; then
|
||||||
|
DOMAINS=${DOMAINS},${SERVER_DOMAIN}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Server domain requires the same set of domain certificates as portal domain.
|
||||||
|
# Exact server domain case is handled above.
|
||||||
|
DOMAINS=${DOMAINS},*.${SERVER_DOMAIN},*.hns.${SERVER_DOMAIN}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# The "wait" will prevent an exit from the script while background tasks are
|
||||||
|
# still active, so we are adding the line below as a method to prevent orphaning
|
||||||
|
# the background child processe. The trap fires when docker terminates the container.
|
||||||
|
trap exit TERM
|
||||||
|
|
||||||
|
while :; do
|
||||||
|
# Execute certbot and generate or maintain certificates for given domain string.
|
||||||
|
# --non-interactive: we are running this as an automation so we cannot be prompted
|
||||||
|
# --agree-tos: required flag marking agreement with letsencrypt tos
|
||||||
|
# --cert-name: output directory name
|
||||||
|
# --email: required for generating certificates, used for communication with CA
|
||||||
|
# --domains: comma separated list of domains (will generate one bundled SAN cert)
|
||||||
|
# Use CERTBOT_ARGS env variable to pass any additional arguments, ie --dns-route53
|
||||||
|
certbot certonly \
|
||||||
|
--non-interactive --agree-tos --cert-name skynet-portal \
|
||||||
|
--email ${EMAIL_ADDRESS} --domains ${DOMAINS} ${CERTBOT_ARGS}
|
||||||
|
|
||||||
|
# Run a background sleep process that counts down given time
|
||||||
|
# Certbot docs advise running maintenance process every 12 hours
|
||||||
|
sleep 12h &
|
||||||
|
|
||||||
|
# Await execution until sleep process is finished (it's a background process)
|
||||||
|
# Syntax explanation: ${!} expands to a pid of last ran process
|
||||||
|
wait ${!}
|
||||||
|
done
|
|
@ -18,5 +18,6 @@ CMD [ "bash", "-c", \
|
||||||
./mo < /etc/nginx/conf.d.templates/server.api.conf > /etc/nginx/conf.d/server.api.conf; \
|
./mo < /etc/nginx/conf.d.templates/server.api.conf > /etc/nginx/conf.d/server.api.conf; \
|
||||||
./mo < /etc/nginx/conf.d.templates/server.hns.conf > /etc/nginx/conf.d/server.hns.conf; \
|
./mo < /etc/nginx/conf.d.templates/server.hns.conf > /etc/nginx/conf.d/server.hns.conf; \
|
||||||
./mo < /etc/nginx/conf.d.templates/server.skylink.conf > /etc/nginx/conf.d/server.skylink.conf ; \
|
./mo < /etc/nginx/conf.d.templates/server.skylink.conf > /etc/nginx/conf.d/server.skylink.conf ; \
|
||||||
|
while :; do sleep 6h & wait ${!}; /usr/local/openresty/bin/openresty -s reload; done & \
|
||||||
/usr/local/openresty/bin/openresty '-g daemon off;'" \
|
/usr/local/openresty/bin/openresty '-g daemon off;'" \
|
||||||
]
|
]
|
||||||
|
|
|
@ -18,9 +18,6 @@
|
||||||
return "{{SERVER_DOMAIN}}"
|
return "{{SERVER_DOMAIN}}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ssl_certificate /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.{{PORTAL_DOMAIN}}/wildcard_.{{PORTAL_DOMAIN}}.crt;
|
|
||||||
ssl_certificate_key /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.{{PORTAL_DOMAIN}}/wildcard_.{{PORTAL_DOMAIN}}.key;
|
|
||||||
|
|
||||||
include /etc/nginx/conf.d/server/server.account;
|
include /etc/nginx/conf.d/server/server.account;
|
||||||
}
|
}
|
||||||
{{/PORTAL_DOMAIN}}
|
{{/PORTAL_DOMAIN}}
|
||||||
|
@ -37,9 +34,6 @@
|
||||||
server {
|
server {
|
||||||
server_name account.{{SERVER_DOMAIN}}; # example: account.eu-ger-1.siasky.net
|
server_name account.{{SERVER_DOMAIN}}; # example: account.eu-ger-1.siasky.net
|
||||||
|
|
||||||
ssl_certificate /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.{{SERVER_DOMAIN}}/wildcard_.{{SERVER_DOMAIN}}.crt;
|
|
||||||
ssl_certificate_key /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.{{SERVER_DOMAIN}}/wildcard_.{{SERVER_DOMAIN}}.key;
|
|
||||||
|
|
||||||
set_by_lua_block $skynet_portal_domain { return "{{SERVER_DOMAIN}}" }
|
set_by_lua_block $skynet_portal_domain { return "{{SERVER_DOMAIN}}" }
|
||||||
set_by_lua_block $skynet_server_domain { return "{{SERVER_DOMAIN}}" }
|
set_by_lua_block $skynet_server_domain { return "{{SERVER_DOMAIN}}" }
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,6 @@ server {
|
||||||
return "{{SERVER_DOMAIN}}"
|
return "{{SERVER_DOMAIN}}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ssl_certificate /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/{{PORTAL_DOMAIN}}/{{PORTAL_DOMAIN}}.crt;
|
|
||||||
ssl_certificate_key /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/{{PORTAL_DOMAIN}}/{{PORTAL_DOMAIN}}.key;
|
|
||||||
|
|
||||||
include /etc/nginx/conf.d/server/server.api;
|
include /etc/nginx/conf.d/server/server.api;
|
||||||
}
|
}
|
||||||
{{/PORTAL_DOMAIN}}
|
{{/PORTAL_DOMAIN}}
|
||||||
|
@ -36,9 +33,6 @@ server {
|
||||||
server {
|
server {
|
||||||
server_name {{SERVER_DOMAIN}}; # example: eu-ger-1.siasky.net
|
server_name {{SERVER_DOMAIN}}; # example: eu-ger-1.siasky.net
|
||||||
|
|
||||||
ssl_certificate /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/{{SERVER_DOMAIN}}/{{SERVER_DOMAIN}}.crt;
|
|
||||||
ssl_certificate_key /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/{{SERVER_DOMAIN}}/{{SERVER_DOMAIN}}.key;
|
|
||||||
|
|
||||||
set_by_lua_block $skynet_portal_domain { return "{{SERVER_DOMAIN}}" }
|
set_by_lua_block $skynet_portal_domain { return "{{SERVER_DOMAIN}}" }
|
||||||
set_by_lua_block $skynet_server_domain { return "{{SERVER_DOMAIN}}" }
|
set_by_lua_block $skynet_server_domain { return "{{SERVER_DOMAIN}}" }
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,6 @@ server {
|
||||||
return "{{SERVER_DOMAIN}}"
|
return "{{SERVER_DOMAIN}}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ssl_certificate /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.hns.{{PORTAL_DOMAIN}}/wildcard_.hns.{{PORTAL_DOMAIN}}.crt;
|
|
||||||
ssl_certificate_key /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.hns.{{PORTAL_DOMAIN}}/wildcard_.hns.{{PORTAL_DOMAIN}}.key;
|
|
||||||
|
|
||||||
proxy_set_header Host {{PORTAL_DOMAIN}};
|
proxy_set_header Host {{PORTAL_DOMAIN}};
|
||||||
include /etc/nginx/conf.d/server/server.hns;
|
include /etc/nginx/conf.d/server/server.hns;
|
||||||
}
|
}
|
||||||
|
@ -37,9 +34,6 @@ server {
|
||||||
server {
|
server {
|
||||||
server_name *.hns.{{SERVER_DOMAIN}}; # example: *.hns.eu-ger-1.siasky.net
|
server_name *.hns.{{SERVER_DOMAIN}}; # example: *.hns.eu-ger-1.siasky.net
|
||||||
|
|
||||||
ssl_certificate /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.hns.{{SERVER_DOMAIN}}/wildcard_.hns.{{SERVER_DOMAIN}}.crt;
|
|
||||||
ssl_certificate_key /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.hns.{{SERVER_DOMAIN}}/wildcard_.hns.{{SERVER_DOMAIN}}.key;
|
|
||||||
|
|
||||||
set_by_lua_block $skynet_portal_domain { return "{{SERVER_DOMAIN}}" }
|
set_by_lua_block $skynet_portal_domain { return "{{SERVER_DOMAIN}}" }
|
||||||
set_by_lua_block $skynet_server_domain { return "{{SERVER_DOMAIN}}" }
|
set_by_lua_block $skynet_server_domain { return "{{SERVER_DOMAIN}}" }
|
||||||
|
|
||||||
|
|
|
@ -17,9 +17,6 @@ server {
|
||||||
return "{{SERVER_DOMAIN}}"
|
return "{{SERVER_DOMAIN}}"
|
||||||
}
|
}
|
||||||
|
|
||||||
ssl_certificate /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.{{PORTAL_DOMAIN}}/wildcard_.{{PORTAL_DOMAIN}}.crt;
|
|
||||||
ssl_certificate_key /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.{{PORTAL_DOMAIN}}/wildcard_.{{PORTAL_DOMAIN}}.key;
|
|
||||||
|
|
||||||
include /etc/nginx/conf.d/server/server.skylink;
|
include /etc/nginx/conf.d/server/server.skylink;
|
||||||
}
|
}
|
||||||
{{/PORTAL_DOMAIN}}
|
{{/PORTAL_DOMAIN}}
|
||||||
|
@ -39,9 +36,6 @@ server {
|
||||||
set_by_lua_block $skynet_portal_domain { return "{{SERVER_DOMAIN}}" }
|
set_by_lua_block $skynet_portal_domain { return "{{SERVER_DOMAIN}}" }
|
||||||
set_by_lua_block $skynet_server_domain { return "{{SERVER_DOMAIN}}" }
|
set_by_lua_block $skynet_server_domain { return "{{SERVER_DOMAIN}}" }
|
||||||
|
|
||||||
ssl_certificate /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.{{SERVER_DOMAIN}}/wildcard_.{{SERVER_DOMAIN}}.crt;
|
|
||||||
ssl_certificate_key /data/caddy/caddy/certificates/acme-v02.api.letsencrypt.org-directory/wildcard_.{{SERVER_DOMAIN}}/wildcard_.{{SERVER_DOMAIN}}.key;
|
|
||||||
|
|
||||||
include /etc/nginx/conf.d/server/server.skylink;
|
include /etc/nginx/conf.d/server/server.skylink;
|
||||||
|
|
||||||
set_by_lua_block $server_alias { return string.match("{{SERVER_DOMAIN}}", "^([^.]+)") }
|
set_by_lua_block $server_alias { return string.match("{{SERVER_DOMAIN}}", "^([^.]+)") }
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
# https://ssl-config.mozilla.org/#server=nginx&version=1.17.7&config=intermediate&openssl=1.1.1d&hsts=false&ocsp=false&guideline=5.6
|
# https://ssl-config.mozilla.org/#server=nginx&version=1.17.7&config=intermediate&openssl=1.1.1d&hsts=false&ocsp=false&guideline=5.6
|
||||||
|
|
||||||
|
ssl_certificate /etc/letsencrypt/live/skynet-portal/fullchain.pem;
|
||||||
|
ssl_certificate_key /etc/letsencrypt/live/skynet-portal/privkey.pem;
|
||||||
|
|
||||||
ssl_session_timeout 1d;
|
ssl_session_timeout 1d;
|
||||||
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
|
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
|
||||||
ssl_session_tickets off;
|
ssl_session_tickets off;
|
||||||
|
|
||||||
# curl https://ssl-config.mozilla.org/ffdhe2048.txt > /path/to/dhparam
|
# curl https://ssl-config.mozilla.org/ffdhe2048.txt > /path/to/dhparam
|
||||||
|
@ -11,3 +14,13 @@ ssl_dhparam /etc/nginx/conf.d/dhparam.pem;
|
||||||
ssl_protocols TLSv1.2 TLSv1.3;
|
ssl_protocols TLSv1.2 TLSv1.3;
|
||||||
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
|
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
|
||||||
ssl_prefer_server_ciphers off;
|
ssl_prefer_server_ciphers off;
|
||||||
|
|
||||||
|
# HSTS (ngx_http_headers_module is required) (63072000 seconds)
|
||||||
|
add_header Strict-Transport-Security "max-age=63072000" always;
|
||||||
|
|
||||||
|
# OCSP stapling
|
||||||
|
ssl_stapling on;
|
||||||
|
ssl_stapling_verify on;
|
||||||
|
|
||||||
|
# verify chain of trust of OCSP response using Root CA and Intermediate certs
|
||||||
|
ssl_trusted_certificate /etc/letsencrypt/live/skynet-portal/chain.pem;
|
||||||
|
|
|
@ -15,12 +15,12 @@
|
||||||
"framer-motion": "6.2.8",
|
"framer-motion": "6.2.8",
|
||||||
"gatsby": "4.10.1",
|
"gatsby": "4.10.1",
|
||||||
"gatsby-background-image": "1.6.0",
|
"gatsby-background-image": "1.6.0",
|
||||||
"gatsby-plugin-image": "2.9.0",
|
"gatsby-plugin-image": "2.10.0",
|
||||||
"gatsby-plugin-manifest": "4.10.1",
|
"gatsby-plugin-manifest": "4.10.1",
|
||||||
"gatsby-plugin-postcss": "5.9.0",
|
"gatsby-plugin-postcss": "5.10.0",
|
||||||
"gatsby-plugin-react-helmet": "5.10.0",
|
"gatsby-plugin-react-helmet": "5.10.0",
|
||||||
"gatsby-plugin-robots-txt": "1.7.0",
|
"gatsby-plugin-robots-txt": "1.7.0",
|
||||||
"gatsby-plugin-sharp": "4.9.1",
|
"gatsby-plugin-sharp": "4.10.1",
|
||||||
"gatsby-plugin-sitemap": "5.10.1",
|
"gatsby-plugin-sitemap": "5.10.1",
|
||||||
"gatsby-plugin-svgr": "3.0.0-beta.0",
|
"gatsby-plugin-svgr": "3.0.0-beta.0",
|
||||||
"gatsby-source-filesystem": "4.10.0",
|
"gatsby-source-filesystem": "4.10.0",
|
||||||
|
@ -48,7 +48,7 @@
|
||||||
"@tailwindcss/typography": "0.5.2",
|
"@tailwindcss/typography": "0.5.2",
|
||||||
"autoprefixer": "10.4.4",
|
"autoprefixer": "10.4.4",
|
||||||
"cross-env": "7.0.3",
|
"cross-env": "7.0.3",
|
||||||
"cypress": "9.5.1",
|
"cypress": "9.5.2",
|
||||||
"prettier": "2.6.0",
|
"prettier": "2.6.0",
|
||||||
"tailwindcss": "3.0.23"
|
"tailwindcss": "3.0.23"
|
||||||
},
|
},
|
||||||
|
|
|
@ -3339,7 +3339,7 @@ babel-plugin-polyfill-regenerator@^0.3.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/helper-define-polyfill-provider" "^0.3.1"
|
"@babel/helper-define-polyfill-provider" "^0.3.1"
|
||||||
|
|
||||||
babel-plugin-remove-graphql-queries@^4.10.0, babel-plugin-remove-graphql-queries@^4.9.0:
|
babel-plugin-remove-graphql-queries@^4.10.0:
|
||||||
version "4.10.0"
|
version "4.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-4.10.0.tgz#882ec7e75627ffd844e5c4c6d7ae50afe87bc415"
|
resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-4.10.0.tgz#882ec7e75627ffd844e5c4c6d7ae50afe87bc415"
|
||||||
integrity sha512-vANJvjh03qC7o6O3huCKO+Jtmee9WPUJm4Nm+qn/ww+GOOQwz0Z0bSMeBhUkJbT/Y1b1JlysHoxTO3ZNH47EwA==
|
integrity sha512-vANJvjh03qC7o6O3huCKO+Jtmee9WPUJm4Nm+qn/ww+GOOQwz0Z0bSMeBhUkJbT/Y1b1JlysHoxTO3ZNH47EwA==
|
||||||
|
@ -4613,10 +4613,10 @@ custom-error-instance@2.1.1:
|
||||||
resolved "https://registry.yarnpkg.com/custom-error-instance/-/custom-error-instance-2.1.1.tgz#3cf6391487a6629a6247eb0ca0ce00081b7e361a"
|
resolved "https://registry.yarnpkg.com/custom-error-instance/-/custom-error-instance-2.1.1.tgz#3cf6391487a6629a6247eb0ca0ce00081b7e361a"
|
||||||
integrity sha1-PPY5FIemYppiR+sMoM4ACBt+Nho=
|
integrity sha1-PPY5FIemYppiR+sMoM4ACBt+Nho=
|
||||||
|
|
||||||
cypress@9.5.1:
|
cypress@9.5.2:
|
||||||
version "9.5.1"
|
version "9.5.2"
|
||||||
resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.5.1.tgz#51162f3688cedf5ffce311b914ef49a7c1ece076"
|
resolved "https://registry.yarnpkg.com/cypress/-/cypress-9.5.2.tgz#8fb6ee4a890fbc35620800810bf6fb11995927bd"
|
||||||
integrity sha512-H7lUWB3Svr44gz1rNnj941xmdsCljXoJa2cDneAltjI9leKLMQLm30x6jLlpQ730tiVtIbW5HdUmBzPzwzfUQg==
|
integrity sha512-gYiQYvJozMzDOriUV1rCt6CeRM/pRK4nhwGJj3nJQyX2BoUdTCVwp30xDMKc771HiNVhBtgj5o5/iBdVDVXQUg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@cypress/request" "^2.88.10"
|
"@cypress/request" "^2.88.10"
|
||||||
"@cypress/xvfb" "^1.2.4"
|
"@cypress/xvfb" "^1.2.4"
|
||||||
|
@ -4759,7 +4759,7 @@ deep-is@^0.1.3:
|
||||||
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
|
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
|
||||||
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
|
integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
|
||||||
|
|
||||||
deepmerge@^4.0.0, deepmerge@^4.2.2:
|
deepmerge@^4.2.2:
|
||||||
version "4.2.2"
|
version "4.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
|
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
|
||||||
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
|
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
|
||||||
|
@ -6223,7 +6223,7 @@ gatsby-cli@^4.10.1:
|
||||||
yoga-layout-prebuilt "^1.10.0"
|
yoga-layout-prebuilt "^1.10.0"
|
||||||
yurnalist "^2.1.0"
|
yurnalist "^2.1.0"
|
||||||
|
|
||||||
gatsby-core-utils@^3.10.0, gatsby-core-utils@^3.8.2, gatsby-core-utils@^3.9.0, gatsby-core-utils@^3.9.1:
|
gatsby-core-utils@^3.10.0, gatsby-core-utils@^3.8.2:
|
||||||
version "3.10.0"
|
version "3.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-3.10.0.tgz#52be8a9a891d95686a7ee0c1cfef44f8e362232b"
|
resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-3.10.0.tgz#52be8a9a891d95686a7ee0c1cfef44f8e362232b"
|
||||||
integrity sha512-yaRI/uUsbIggPRfh0y6CH+fy2AqbFFLxCYndw5nrVByEY40+KaKs0wOF4yIgPRBZZUHOyfBJ+1AGo2JLHdY5lA==
|
integrity sha512-yaRI/uUsbIggPRfh0y6CH+fy2AqbFFLxCYndw5nrVByEY40+KaKs0wOF4yIgPRBZZUHOyfBJ+1AGo2JLHdY5lA==
|
||||||
|
@ -6306,22 +6306,22 @@ gatsby-parcel-config@^0.1.0:
|
||||||
"@parcel/transformer-raw" "^2.3.1"
|
"@parcel/transformer-raw" "^2.3.1"
|
||||||
"@parcel/transformer-react-refresh-wrap" "^2.3.1"
|
"@parcel/transformer-react-refresh-wrap" "^2.3.1"
|
||||||
|
|
||||||
gatsby-plugin-image@2.9.0:
|
gatsby-plugin-image@2.10.0:
|
||||||
version "2.9.0"
|
version "2.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/gatsby-plugin-image/-/gatsby-plugin-image-2.9.0.tgz#4656dec9c93aec233792012ec952328e3dd702f7"
|
resolved "https://registry.yarnpkg.com/gatsby-plugin-image/-/gatsby-plugin-image-2.10.0.tgz#8b4bb0bb2113ab5fa542e52e83f75228ff577703"
|
||||||
integrity sha512-2LIKmwACRNXBnh30zNhlfEDjSPL60G8vi4ZRAmMpywq7SVXJJ63lKiBRF+g2aKcN/hW0hvBPh0hgQifxSBhbYA==
|
integrity sha512-W6/RvRs27XG5TwxTEAhnY68g0LAqP6T2NDPPEzAe/V/x5PyPn5Zf/N1pPUoqqdJ2n48Wg2BSv3Asz5/4vHfRgw==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/code-frame" "^7.14.0"
|
"@babel/code-frame" "^7.14.0"
|
||||||
"@babel/parser" "^7.15.5"
|
"@babel/parser" "^7.15.5"
|
||||||
"@babel/runtime" "^7.15.4"
|
"@babel/runtime" "^7.15.4"
|
||||||
"@babel/traverse" "^7.15.4"
|
"@babel/traverse" "^7.15.4"
|
||||||
babel-jsx-utils "^1.1.0"
|
babel-jsx-utils "^1.1.0"
|
||||||
babel-plugin-remove-graphql-queries "^4.9.0"
|
babel-plugin-remove-graphql-queries "^4.10.0"
|
||||||
camelcase "^5.3.1"
|
camelcase "^5.3.1"
|
||||||
chokidar "^3.5.2"
|
chokidar "^3.5.2"
|
||||||
common-tags "^1.8.2"
|
common-tags "^1.8.2"
|
||||||
fs-extra "^10.0.0"
|
fs-extra "^10.0.0"
|
||||||
gatsby-core-utils "^3.9.0"
|
gatsby-core-utils "^3.10.0"
|
||||||
objectFitPolyfill "^2.3.5"
|
objectFitPolyfill "^2.3.5"
|
||||||
prop-types "^15.7.2"
|
prop-types "^15.7.2"
|
||||||
|
|
||||||
|
@ -6353,10 +6353,10 @@ gatsby-plugin-page-creator@^4.10.1:
|
||||||
globby "^11.0.4"
|
globby "^11.0.4"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
|
|
||||||
gatsby-plugin-postcss@5.9.0:
|
gatsby-plugin-postcss@5.10.0:
|
||||||
version "5.9.0"
|
version "5.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/gatsby-plugin-postcss/-/gatsby-plugin-postcss-5.9.0.tgz#c1e1888ec6738a4c25e4cafd7acc6d377e5a9603"
|
resolved "https://registry.yarnpkg.com/gatsby-plugin-postcss/-/gatsby-plugin-postcss-5.10.0.tgz#e241f1671e66f7b660826f39fd26591aae652716"
|
||||||
integrity sha512-G94aaf2TvD6XEn1CfXENOlcwjNiU9LK644Ofe1Q+vuV17XmboV2DuBsuNkFJuYKQzJ0FuZ8bomE3EK39SfFpfg==
|
integrity sha512-s1zzysu1kKIqR+CfQeQsG0CCdj2S7tjc4BhCY2a3V4cl7ORJtMx1HGKDUzE9gV/EXRTmr9lhE9Gl+2v8fRouvA==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.15.4"
|
"@babel/runtime" "^7.15.4"
|
||||||
postcss-loader "^4.3.0"
|
postcss-loader "^4.3.0"
|
||||||
|
@ -6376,10 +6376,10 @@ gatsby-plugin-robots-txt@1.7.0:
|
||||||
"@babel/runtime" "^7.16.7"
|
"@babel/runtime" "^7.16.7"
|
||||||
generate-robotstxt "^8.0.3"
|
generate-robotstxt "^8.0.3"
|
||||||
|
|
||||||
gatsby-plugin-sharp@4.9.1:
|
gatsby-plugin-sharp@4.10.1:
|
||||||
version "4.9.1"
|
version "4.10.1"
|
||||||
resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-4.9.1.tgz#44667f134be1855fe666ed58839bd280527337bd"
|
resolved "https://registry.yarnpkg.com/gatsby-plugin-sharp/-/gatsby-plugin-sharp-4.10.1.tgz#d72145f7649b71a1e5051dcf7ed8f4d1f72bb041"
|
||||||
integrity sha512-oHnuxIok0Ct3nktn53XQFX36QXwa4H9hjj5lkxaY3zh0giYJmFAsHyvus6DKzGQ14cTC3AkvaD+rqv4SGdjRcg==
|
integrity sha512-Y+kB5BSfcxMYO5s13W3NDeDH28RCzSa8goo1yQNTISiGaC6iBO4EIEVbUiUBkoLA5nf46J71ve8A3sprZ66bog==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@babel/runtime" "^7.15.4"
|
"@babel/runtime" "^7.15.4"
|
||||||
async "^3.2.3"
|
async "^3.2.3"
|
||||||
|
@ -6387,14 +6387,14 @@ gatsby-plugin-sharp@4.9.1:
|
||||||
debug "^4.3.3"
|
debug "^4.3.3"
|
||||||
filenamify "^4.3.0"
|
filenamify "^4.3.0"
|
||||||
fs-extra "^10.0.0"
|
fs-extra "^10.0.0"
|
||||||
gatsby-core-utils "^3.9.1"
|
gatsby-core-utils "^3.10.0"
|
||||||
gatsby-plugin-utils "^3.3.0"
|
gatsby-plugin-utils "^3.4.1"
|
||||||
gatsby-telemetry "^3.9.1"
|
gatsby-telemetry "^3.10.0"
|
||||||
got "^11.8.3"
|
got "^11.8.3"
|
||||||
lodash "^4.17.21"
|
lodash "^4.17.21"
|
||||||
mini-svg-data-uri "^1.4.3"
|
mini-svg-data-uri "^1.4.3"
|
||||||
potrace "^2.1.8"
|
potrace "^2.1.8"
|
||||||
probe-image-size "^6.0.0"
|
probe-image-size "^7.0.0"
|
||||||
progress "^2.0.3"
|
progress "^2.0.3"
|
||||||
semver "^7.3.5"
|
semver "^7.3.5"
|
||||||
sharp "^0.30.1"
|
sharp "^0.30.1"
|
||||||
|
@ -6429,7 +6429,7 @@ gatsby-plugin-typescript@^4.10.0:
|
||||||
"@babel/runtime" "^7.15.4"
|
"@babel/runtime" "^7.15.4"
|
||||||
babel-plugin-remove-graphql-queries "^4.10.0"
|
babel-plugin-remove-graphql-queries "^4.10.0"
|
||||||
|
|
||||||
gatsby-plugin-utils@^3.3.0, gatsby-plugin-utils@^3.4.1:
|
gatsby-plugin-utils@^3.4.1:
|
||||||
version "3.4.1"
|
version "3.4.1"
|
||||||
resolved "https://registry.yarnpkg.com/gatsby-plugin-utils/-/gatsby-plugin-utils-3.4.1.tgz#14c9cff75af32a32860575069af44bdabc8f65d9"
|
resolved "https://registry.yarnpkg.com/gatsby-plugin-utils/-/gatsby-plugin-utils-3.4.1.tgz#14c9cff75af32a32860575069af44bdabc8f65d9"
|
||||||
integrity sha512-sDMVGauxMgXyX8WGZDndZI2vIaolJzlXBMdKhgP7DIT+Qa5wjvyHWvZy34dxtVrT3IHPK/PRMgpE81Gr7gKveg==
|
integrity sha512-sDMVGauxMgXyX8WGZDndZI2vIaolJzlXBMdKhgP7DIT+Qa5wjvyHWvZy34dxtVrT3IHPK/PRMgpE81Gr7gKveg==
|
||||||
|
@ -6477,7 +6477,7 @@ gatsby-source-filesystem@4.10.0:
|
||||||
valid-url "^1.0.9"
|
valid-url "^1.0.9"
|
||||||
xstate "^4.26.1"
|
xstate "^4.26.1"
|
||||||
|
|
||||||
gatsby-telemetry@^3.10.0, gatsby-telemetry@^3.9.1:
|
gatsby-telemetry@^3.10.0:
|
||||||
version "3.10.0"
|
version "3.10.0"
|
||||||
resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-3.10.0.tgz#917a4914e531d401ecf98ac87d29128b30bfab13"
|
resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-3.10.0.tgz#917a4914e531d401ecf98ac87d29128b30bfab13"
|
||||||
integrity sha512-Oe2OShJbylKr5C4FTl2P/JUX/xRkpYb6IMfEoAd5inG7HNQ1fikON4NdwvJjOp++My4kWo+LLCu92TZBkyTtZw==
|
integrity sha512-Oe2OShJbylKr5C4FTl2P/JUX/xRkpYb6IMfEoAd5inG7HNQ1fikON4NdwvJjOp++My4kWo+LLCu92TZBkyTtZw==
|
||||||
|
@ -9958,15 +9958,6 @@ pretty-error@^2.1.2:
|
||||||
lodash "^4.17.20"
|
lodash "^4.17.20"
|
||||||
renderkid "^2.0.4"
|
renderkid "^2.0.4"
|
||||||
|
|
||||||
probe-image-size@^6.0.0:
|
|
||||||
version "6.0.0"
|
|
||||||
resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-6.0.0.tgz#4a85b19d5af4e29a8de7d53a9aa036f6fd02f5f4"
|
|
||||||
integrity sha512-99PZ5+RU4gqiTfK5ZDMDkZtn6eL4WlKfFyVJV7lFQvH3iGmQ85DqMTOdxorERO26LHkevR2qsxnHp0x/2UDJPA==
|
|
||||||
dependencies:
|
|
||||||
deepmerge "^4.0.0"
|
|
||||||
needle "^2.5.2"
|
|
||||||
stream-parser "~0.3.1"
|
|
||||||
|
|
||||||
probe-image-size@^7.0.0:
|
probe-image-size@^7.0.0:
|
||||||
version "7.2.3"
|
version "7.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-7.2.3.tgz#d49c64be540ec8edea538f6f585f65a9b3ab4309"
|
resolved "https://registry.yarnpkg.com/probe-image-size/-/probe-image-size-7.2.3.tgz#d49c64be540ec8edea538f6f585f65a9b3ab4309"
|
||||||
|
|
|
@ -8,4 +8,3 @@ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPM43lzbKjFLChe5rKETxDpWpNlqXCGTBPiWlDN2vlLD
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN6Kcx8yetova4/ALUQHigo/PBMJO33ZTKOsg2jxSO2a user@deploy.siasky.dev
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIN6Kcx8yetova4/ALUQHigo/PBMJO33ZTKOsg2jxSO2a user@deploy.siasky.dev
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDcenWnMQ6q/OEC4ZmQgjLDV2obWlR3fENV0zRGFvJF+ marcins@siasky.net
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDcenWnMQ6q/OEC4ZmQgjLDV2obWlR3fENV0zRGFvJF+ marcins@siasky.net
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB7prtVOTwtcSN9HkXum107RwcW5H8Vggx6Qv7T57ItT daniel@siasky.net
|
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIB7prtVOTwtcSN9HkXum107RwcW5H8Vggx6Qv7T57ItT daniel@siasky.net
|
||||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAII85HxoIRbPyr+xUjpuFUlQNW7smCNdIcmx2XgpmXnB0 marissa@skynetlabs.com
|
|
||||||
|
|
Reference in New Issue