Bummer. It sounds like the octoprint service isn't running (now?)
And yet, that netstat shows that it's listening on localhost rather than 0.0.0.0
(all network adapters). But you proved that it is running earlier and it's listening to port 5000.
This is mine:
sudo netstat -tulpen|grep LISTEN
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 0 14458 483/./mjpg_streamer
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 0 16703 879/sshd
tcp 0 0 127.0.0.1:5000 0.0.0.0:* LISTEN 1000 16435 449/python
tcp6 0 0 :::8080 :::* LISTEN 0 14459 483/./mjpg_streamer
tcp6 0 0 :::80 :::* LISTEN 0 16048 883/haproxy
tcp6 0 0 :::22 :::* LISTEN 0 16705 879/sshd
tcp6 0 0 :::443 :::* LISTEN 0 16049 883/haproxy
I guess what you have then is to be expected for the octoprint service. Interestingly, I myself can't reach my own instance from http://octopi.local:5000/ . Perhaps something was changed in one of the releases but I seem to remember this working in the past.
Let's focus on haproxy
then. Let us know if yours differs from this.
cat /etc/haproxy/haproxy.cfg
global
maxconn 4096
user haproxy
group haproxy
log 127.0.0.1 local1 debug
defaults
log global
mode http
option httplog
option dontlognull
retries 3
option redispatch
option http-server-close
option forwardfor
maxconn 2000
timeout connect 5s
timeout client 15min
timeout server 15min
frontend public
bind :::80 v4v6
bind :::443 v4v6 ssl crt /etc/ssl/snakeoil.pem
option forwardfor except 127.0.0.1
use_backend webcam if { path_beg /webcam/ }
default_backend octoprint
backend octoprint
acl needs_scheme req.hdr_cnt(X-Scheme) eq 0
reqrep ^([^\ :]*)\ /(.*) \1\ /\2
reqadd X-Scheme:\ https if needs_scheme { ssl_fc }
reqadd X-Scheme:\ http if needs_scheme !{ ssl_fc }
option forwardfor
server octoprint1 127.0.0.1:5000
errorfile 503 /etc/haproxy/errors/503-no-octoprint.http
backend webcam
reqrep ^([^\ :]*)\ /webcam/(.*) \1\ /\2
server webcam1 127.0.0.1:8080
errorfile 503 /etc/haproxy/errors/503-no-webcam.http