# This config is based on the standard `nginx.conf` shipping with the stable
# nginx package from the NGINX mirrors as of 2023-01.

user  nginx;
worker_processes  auto;

error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}

# Listen on port 443 as a reverse proxy and use PROXY Protocol for the
# upstreams.
stream {
    resolver 212.12.50.158 192.76.134.90;

    map $ssl_preread_server_name $address {
        ccchoir.de ccchoir-intern.hamburg.ccc.de:8443;
        www.ccchoir.de ccchoir-intern.hamburg.ccc.de:8443;
        cloud.hamburg.ccc.de cloud-intern.hamburg.ccc.de:8443;
        pad.hamburg.ccc.de pad-intern.hamburg.ccc.de:8443;
        pretalx.hamburg.ccc.de pretalx-intern.hamburg.ccc.de:8443;
        id.hamburg.ccc.de 172.31.17.144:8443;
        invite.hamburg.ccc.de 172.31.17.144:8443;
        keycloak-admin.hamburg.ccc.de 172.31.17.144:8444;
        grafana.hamburg.ccc.de 172.31.17.145:8443;
        wiki.ccchh.net 172.31.17.146:8443;
        wiki.hamburg.ccc.de 172.31.17.146:8443;
        onlyoffice.hamburg.ccc.de 172.31.17.147:8443;
        hackertours.hamburg.ccc.de 172.31.17.151:8443;
        staging.hackertours.hamburg.ccc.de 172.31.17.151:8443;
        netbox.hamburg.ccc.de 172.31.17.167:8443;
        matrix.hamburg.ccc.de 172.31.17.150:8443;
        element.hamburg.ccc.de 172.31.17.151:8443;
        branding-resources.hamburg.ccc.de 172.31.17.151:8443;
        www.hamburg.ccc.de 172.31.17.151:8443;
        hamburg.ccc.de 172.31.17.151:8443;
        staging.hamburg.ccc.de 172.31.17.151:8443;
        spaceapi.hamburg.ccc.de 172.31.17.151:8443;
        tickets.hamburg.ccc.de 172.31.17.148:8443;
        zammad.hamburg.ccc.de 172.31.17.152:8443;
        c3cat.de 172.31.17.151:8443;
        www.c3cat.de 172.31.17.151:8443;
        staging.c3cat.de 172.31.17.151:8443;
        git.hamburg.ccc.de 172.31.17.154:8443;
        eh03.easterhegg.eu 172.31.17.151:8443;
        eh05.easterhegg.eu 172.31.17.151:8443;
        eh07.easterhegg.eu 172.31.17.151:8443;
        eh09.easterhegg.eu 172.31.17.151:8443;
        eh11.easterhegg.eu 172.31.17.151:8443;
        eh20.easterhegg.eu 172.31.17.151:8443;
        www.eh20.easterhegg.eu 172.31.17.151:8443;
        eh22.easterhegg.eu 172.31.17.165:8443;
        easterheggxxxx.hamburg.ccc.de 172.31.17.151:8443;
        eh2003.hamburg.ccc.de 172.31.17.151:8443;
        www.eh2003.hamburg.ccc.de 172.31.17.151:8443;
        easterhegg2003.hamburg.ccc.de 172.31.17.151:8443;
        www.easterhegg2003.hamburg.ccc.de 172.31.17.151:8443;
        eh2005.hamburg.ccc.de 172.31.17.151:8443;
        www.eh2005.hamburg.ccc.de 172.31.17.151:8443;
        easterhegg2005.hamburg.ccc.de 172.31.17.151:8443;
        www.easterhegg2005.hamburg.ccc.de 172.31.17.151:8443;
        eh2007.hamburg.ccc.de 172.31.17.151:8443;
        www.eh2007.hamburg.ccc.de 172.31.17.151:8443;
        eh07.hamburg.ccc.de 172.31.17.151:8443;
        www.eh07.hamburg.ccc.de 172.31.17.151:8443;
        easterhegg2007.hamburg.ccc.de 172.31.17.151:8443;
        www.easterhegg2007.hamburg.ccc.de 172.31.17.151:8443;
        eh2009.hamburg.ccc.de 172.31.17.151:8443;
        www.eh2009.hamburg.ccc.de 172.31.17.151:8443;
        eh09.hamburg.ccc.de 172.31.17.151:8443;
        www.eh09.hamburg.ccc.de 172.31.17.151:8443;
        easterhegg2009.hamburg.ccc.de 172.31.17.151:8443;
        www.easterhegg2009.hamburg.ccc.de 172.31.17.151:8443;
        eh2011.hamburg.ccc.de 172.31.17.151:8443;
        www.eh2011.hamburg.ccc.de 172.31.17.151:8443;
        eh11.hamburg.ccc.de 172.31.17.151:8443;
        www.eh11.hamburg.ccc.de 172.31.17.151:8443;
        easterhegg2011.hamburg.ccc.de 172.31.17.151:8443;
        www.easterhegg2011.hamburg.ccc.de 172.31.17.151:8443;
        eh20.hamburg.ccc.de 172.31.17.151:8443;
        hacker.tours 172.31.17.151:8443;
        staging.hacker.tours 172.31.17.151:8443;
        woodpecker.hamburg.ccc.de 172.31.17.160:8443;
        design.hamburg.ccc.de 172.31.17.162:8443;
        hydra.hamburg.ccc.de 172.31.17.163:8443;
        cfp.eh22.easterhegg.eu pretalx-intern.hamburg.ccc.de:8443;
        hub.eh22.easterhegg.eu eh22hub-intern.hamburg.ccc.de:8443;
        netbox.eh22.easterhegg.eu eh22-netbox-intern.hamburg.ccc.de:8443;
    }

    server {
        listen 0.0.0.0:443;
        listen [::]:443;
        proxy_pass $address;
        ssl_preread on;
        proxy_protocol on;
    }

    server {
        listen 0.0.0.0:8448;
        listen [::]:8448;
        proxy_pass 172.31.17.150:8448;
        ssl_preread on;
        proxy_protocol on;
    }
}

# Still have the default http block, so the `acme_challenge.conf` works.
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    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;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}