Skip to content

Craig Johnson -- rebuild static http sites on Debian.

ORGANIZE THIS PILE

Go old school on the static network configuration.

Systemd/networkd is coming but I want something that works right now.

/etc/network/interfaces aint broken.

So tear out all the new and replace it with the old.

systemctl stop systemd-networkd
systemctl disable systemd-networkd
systemctl stop systemd-networkd.socket
systemctl disable systemd-networkd.socket
apt install ifupdown

Then configure it like it was a decade ago.

cat /etc/network/interfaces
auto lo
iface lo inet loopback


auto eth0
iface eth0 inet static
     address 198.202.31.221
     network 198.202.31.128
     netmask 255.255.255.128
     broadcast 198.202.31.255
     gateway 198.202.31.129 
     mtu 9000

auto eth0:1
iface eth0:1 inet static
     address 198.202.31.230
     network 198.202.31.128
     netmask 255.255.255.128
     broadcast 198.202.31.255
     gateway 198.202.31.129 
     mtu 9000

auto eth0:2
iface eth0:2 inet static
     address 198.202.31.231
     network 198.202.31.128
     netmask 255.255.255.128
     broadcast 198.202.31.255
     gateway 198.202.31.129 
     mtu 9000


auto eth0:3
iface eth0:3 inet static
     address 198.202.31.232
     network 198.202.31.128
     netmask 255.255.255.128
     broadcast 198.202.31.255
     gateway 198.202.31.129 
     mtu 9000

nginx configuration

New config for www.3dangst.com (default)

server {

    #listen 443 ssl 198.202.31.221;
    root /var/www/3dangst/site;
    index index.html;

    server_name www.3dangst.com;

    location / {
        try_files $uri $uri/ =404;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.3dangst.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.3dangst.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

}

server {
    if ($host = www.3dangst.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80 default_server;

    server_name www.3dangst.com;
    return 404; # managed by Certbot


}

copy nginx config, /etc/letsencrypt and content (/var/www/*) from the old server

We copied the old servers default to /etc/nginx/sites-avaliable/digithink and then linked it into sites-enabled.

cat /etc/nginx/sites-avaliable/digithink
server {

    listen 198.202.31.230:80;
    server_name www.digithink.com;

    if ($host = www.digithink.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    if ($host = 198.202.31.230) {
        return 444;
    } # managed by Certbot

    return 404; # managed by Certbot
}


server {
    listen 198.202.31.230:80;
    server_name  www.digithink.com;
    root /var/www/digithink/site;
    index index.html;

    listen 198.202.31.230:443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/www.digithink.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/www.digithink.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

    if ($host = 198.202.31.230) {
       return 444;
    } # managed by Certbot

   error_page 404 /404.html;
   location  /404.html {
      internal;
   }

}

upstream bartender {
    server 127.0.0.1:5000;
}

server {
    server_name bartender.digithink.com;

    listen 198.202.31.232:443 ssl;
    server_name bartender.digithink.com;
    ssl_certificate /etc/letsencrypt/live/bartender.digithink.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/bartender.digithink.com/privkey.pem; # managed by Certbot

    root /var/www/digithink/whiskey/bartender;
    index index.html;
    location /whiskey {
        include proxy_params;
        proxy_pass http://bartender/whiskey;
    }

    error_page 404 /404.html;
    location  /404.html {
          internal;
    }

    location /lacuenta {
        root /var/www/digithink/whiskey/logs;
    }


}

server {
    if ($host = bartender.digithink.com) {
        return 301 https://$host$request_uri;
    } # managed by Certbot

    listen 198.202.31.232:80;
    server_name bartender.digithink.com;
    return 404; # managed by Certbot
}


server {
        listen 198.202.31.231:80;
        server_name busholini.org w.busholini.org www.busholini.org;
        if ($host = www.busholini.org) {
           return 301 https://$host$request_uri;
        } # managed by Certbot
        if ($host = git.suspectdevices.com) {
           return 444;
        }
        if ($host = 198.202.31.231) {
           return 444;
        }
    return 404; # managed by Certbot


}

server {
        listen 198.202.31.231:443 ssl; # managed by Certbot
        ssl_certificate /etc/letsencrypt/live/www.busholini.org/fullchain.pem; # managed by Certbot
        ssl_certificate_key /etc/letsencrypt/live/www.busholini.org/privkey.pem; # managed by Certbot
        include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

        server_name busholini.org w.busholini.org www.busholini.org;

        if ($host = git.suspectdevices.com) {
           return 444;
        }
        if ($host = 198.202.31.231) {
           return 444;
        }

        root /var/www/busholini/www;
        index index.html;

}
cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/digithink .
nginx -t

Install the parts that the bartender needs

apt install python3-flask
apt install python3-gunicorn

apt install at
echo www-data |tee /etc/at.allow