Proxy integration tests (#228)

* cicd: Proxies included in integration testing

* cicd: proxy configs for integration testing
This commit is contained in:
James Read 2024-02-09 17:12:25 +01:00 committed by GitHub
parent c12431d8a3
commit 917a0469d8
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 1266 additions and 0 deletions

View File

@ -2,6 +2,11 @@ default:
npm install --no-fund npm install --no-fund
./node_modules/.bin/mocha ./node_modules/.bin/mocha
nginx:
podman-compose up -d nginx
clean:
podman-compose down
getsnapshot: getsnapshot:
rm -rf /opt/OliveTin-snapshot/* rm -rf /opt/OliveTin-snapshot/*

View File

@ -0,0 +1,17 @@
---
version: "3.8"
services:
nginx:
container_name: nginx
image: docker.io/nginx
volumes:
- ./proxies/nginx/:/etc/nginx/
ports:
- "8443:8443"
restart: unless-stopped
networks:
- otproxy
networks:
otproxy:
name: otproxy

View File

@ -0,0 +1,3 @@
http://olivetin.example.com {
reverse_proxy * http://localhost:1337
}

View File

@ -0,0 +1,15 @@
frontend cleartext_frontend
bind 0.0.0.0:80
option httplog
use_backend be_olivetin_webs if { hdr(Host) -i olivetin.example.com && path_beg /websocket }
use_backend be_olivetin_http if { hdr(Host) -i olivetin.example.com }
backend be_olivetin_http
server olivetinServer 127.0.0.1:1337 check
backend be_olivetin_webs
timeout tunnel 1h
option http-server-close
server olivetinServer 127.0.0.1:1337

View File

@ -0,0 +1,9 @@
<VirtualHost *:80>
ServerName olivetin.example.com
ProxyPass / http://localhost:1337/
ProxyPassReverse / http://localhost:1337/
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/websocket
RewriteRule /(.) ws://localhost:1337/websocket [P,L]
</VirtualHost>

View File

@ -0,0 +1,22 @@
server {
listen 8443 ssl;
ssl_certificate "/etc/nginx/conf.d/server.crt";
ssl_certificate_key "/etc/nginx/conf.d/server.key";
access_log /var/log/nginx/ot.access.log main;
error_log /var/log/nginx/ot.error.log notice;
server_name olivetin.example.com;
location / {
proxy_pass http://host.containers.internal:1337/;
proxy_redirect http://host.containers.internal:1337/ http://host.containers.internal/OliveTin/;
}
location /websocket {
proxy_set_header Upgrade "websocket";
proxy_set_header Connection "upgrade";
proxy_pass http://host.containers.internal:1337/websocket;
}
}

View File

@ -0,0 +1,33 @@
-----BEGIN CERTIFICATE-----
MIIFozCCA4ugAwIBAgIUYg/opRI/l1bwd390u+Csd7l+lIgwDQYJKoZIhvcNAQEL
BQAwYTELMAkGA1UEBhMCWFgxFTATBgNVBAcMDERlZmF1bHQgQ2l0eTEcMBoGA1UE
CgwTRGVmYXVsdCBDb21wYW55IEx0ZDEdMBsGA1UEAwwUb2xpdmV0aW4uZXhhbXBs
ZS5jb20wHhcNMjMxMDIzMTU1ODM4WhcNMjQxMDIyMTU1ODM4WjBhMQswCQYDVQQG
EwJYWDEVMBMGA1UEBwwMRGVmYXVsdCBDaXR5MRwwGgYDVQQKDBNEZWZhdWx0IENv
bXBhbnkgTHRkMR0wGwYDVQQDDBRvbGl2ZXRpbi5leGFtcGxlLmNvbTCCAiIwDQYJ
KoZIhvcNAQEBBQADggIPADCCAgoCggIBANkQz+EbX1NeQvUaFTxhhSbQysf+/MwA
xsgmjWCVCLJBW9ShGS+HQhYE1NyPfU60DKbJ8Zhzqv/nWtOPfCZZnY8cw8VEp53L
fxPMvoQWDzHXnUF/MGZ6fLznaGdFcLl7BfBUK6k+ditaV2XwhODKryd+V2X6GF7q
yK0ZFENv3tsXwwL01OE8a+Z5cbERBZXVELV9ZY0gEACoN0Xd/28nCigZX5ZJo+Zh
N4Mow6G9jFdoV7p1MXff2xmwN1UMXp6/7vnl+jozl/rZ5FRFT5zGabMRTDEA5+eo
HBJIwiSXjDZNYdqGOFWaWS8gN3EuzAngZsFmFu6hBkX3OCNVbGNBf+npVDheKK/p
rI09UbxfxfUKQ/Hh8ojqYCFfPc5ogu75DTGkWSwORKQRegdzSYhnRujMu4JfU8d5
DoOvyKU5UBvNM6XqJV7GDjW/ftZ3XrlKu/IBm89//wEP+5jAEnMJGyTlAdDu+rnF
Hiys8UxTjmf0TyYWhD1+qtUXMEZFtLKUjlwOLKW8c5DBjnOzNsqGez99DM/mRFbI
uR6ON72GP8GnlPDNXxoUNYy99nkkEeicTKHEvA2XI0aYwxVjgbR8PCBAV22KNwcU
ZTz7wpOeQb+0oL7nzT88yj8xxuXQhslZPKAagiw93hWhq1JPO61/9kpH/81p7JNP
R2Zi18wRZkutAgMBAAGjUzBRMB0GA1UdDgQWBBQhV1Q2avE1LxP7gV2UaSD0QB/4
SjAfBgNVHSMEGDAWgBQhV1Q2avE1LxP7gV2UaSD0QB/4SjAPBgNVHRMBAf8EBTAD
AQH/MA0GCSqGSIb3DQEBCwUAA4ICAQBy+zu+bTU/IbB1bJU2L/gCWW3atPueWcrJ
m7eZiR0g8w9NExvvAUaw9ahnCZqCZHYUo4r8CdwHyUGACm/EhzWf1/Mlw1abdxtB
M05nIAoMkedq5uBS58TcZM6N6XlgYjh4pu2JkTpUi9YqPNeFHAzzS4lwpHgyujVZ
jQuXyedtG5IiyZO9xMNCHExY5r7wYWtIdrT8d4eP/zWQ2jcnAeL52MkT4N0lXXxx
AUitrb5dw6i0HUUh6I+lkBAEO1SwJ8ERbSpDPHMwSztd384ELneJVWX2MX6fNJVg
mgQte6jzVvrDrFWdEbbzsXppxMtZgx1HpH05vW5RrFPEnqHZ7pOpMFb7geHl4VwE
3Vy5ilg6tG78bfNqocRthw54n1N8hLvAHNm1DsRsdfyxxkb1ZmcBvCQiZkmZbpn7
nny2GKO5iNHMDVgtWBUBLr7jQri5cluY+rpAaY2By/dfVNIuJupfd/EZg0ea0i/i
ufv4HqmqiOxSz4GTNtONLhSGEkRE91e4SzGQh3q6nZFsHJATYIv8Sp6TNlSLupJM
VrY5cJ1UjTycO/TwWfabiNnhrKw+uxrVnaIM6qPDUWkquj1unl/ChRXLTmnvzI2T
1OCJnjp2eUBy0VhPd2FDMS5nw1wKn+pKVSNV9aeGU87pbi/t9iM6JKI214QlaXb9
GC7hzoakuA==
-----END CERTIFICATE-----

View File

@ -0,0 +1,52 @@
-----BEGIN PRIVATE KEY-----
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
4yUUyGwTvAXkb/sR4+AhqzfChmbub6E=
-----END PRIVATE KEY-----

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,82 @@
# For more information on configuration, see:
# * Official English Documentation: http://nginx.org/en/docs/
# * Official Russian Documentation: http://nginx.org/ru/docs/
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log notice;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
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;
types_hash_max_size 4096;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
server {
listen 80;
listen [::]:80;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
error_page 404 /404.html;
location = /404.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
# Settings for a TLS enabled server.
#
# server {
# listen 8443 ssl http2;
# listen [::]:8443 ssl http2;
# server_name _;
# root /usr/share/nginx/html;
#
# ssl_certificate "/etc/pki/nginx/server.crt";
# ssl_certificate_key "/etc/pki/nginx/private/server.key";
# ssl_session_cache shared:SSL:1m;
# ssl_session_timeout 10m;
# ssl_ciphers PROFILE=SYSTEM;
# ssl_prefer_server_ciphers on;
#
# # Load configuration files for the default server block.
# include /etc/nginx/default.d/*.conf;
#
# error_page 404 /404.html;
# location = /404.html {
# }
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
# }
# }
}