I want to access my jupyter notebooks running on my server from anywhere. I don't want to open ports on my router or firewall. Can I use ssh to do it? Can I use a custom domain?
The following command will expose your service (port 8888) to the public internet (port 80/443). Caution, security is only as good as the security of Jupyter’s login screen. You can use your own domain (e.g. https://n.u.example.com). If ssh crashes, the command will attempt to restart once per second. See serveo.net for more information.
date && until ssh -o ServerAliveInterval=60 -R n.u.example.com:443:localhost:8888 serveo.net -i ~/OneDrive/Documents/u.example.com; do date && sleep 1 && echo "Restarting..."; done