How do I update TinyPilot through an HTTP proxy?

For the most part, TinyPilot functions without an Internet connection, but TinyPilot needs Internet access to perform software updates.

If you're running TinyPilot on a restricted network that prohibits devices from making outbound connections, you'll need to configure your TinyPilot to use an HTTP proxy.

Set up the proxy

To configure your TinyPilot device to use an HTTP proxy for updates, SSH to your TinyPilot, and then specify your HTTP proxy's URL.

# Set to your desired proxy address
  • If your proxy requires a username and password use the format: http://username:password@proxy.example.com:8080

Next, run the following commands to configure TinyPilot to use your HTTP proxy:

sudo sed --in-place \
    --expression "/Environment=\"http_proxy/ d" \
    --expression "/Environment=\"https_proxy/ d" \
    /lib/systemd/system/tinypilot*.service && \
  sudo sed --in-place \
    --expression "/ExecStart/ a Environment=\"https_proxy=${https_proxy}\"" \
    --expression "/ExecStart/ a Environment=\"http_proxy=${http_proxy}\"" \
    /lib/systemd/system/tinypilot*.service && \
  sudo systemctl daemon-reload && sudo service tinypilot restart

Now that your proxy is set, you can update using TinyPilot's web interface.

Disabling the proxy

If you no-longer require the proxy, connect to your device over SSH, and then run the following commands:

sudo sed --in-place \
        --expression '/Environment=\"http_proxy=/d' \
        --expression '/Environment=\"https_proxy=/d' \
        /lib/systemd/system/tinypilot*.service && \
    sudo systemctl daemon-reload && sudo service tinypilot restart