55 lines
2.3 KiB
Bash
Executable File
55 lines
2.3 KiB
Bash
Executable File
#!/bin/sh
|
|
set -e
|
|
|
|
if [ "$1" = configure ]; then
|
|
# Unprivileged system account the daemon runs as. It only makes outbound
|
|
# connections and proxies to localhost, so it needs no root privileges.
|
|
if ! getent passwd cloudflared >/dev/null; then
|
|
adduser --system --group --no-create-home --home /nonexistent --quiet cloudflared
|
|
fi
|
|
fi
|
|
|
|
if [ "$1" = configure ] || [ "$1" = abort-upgrade ] || [ "$1" = abort-deconfigure ] || [ "$1" = abort-remove ]; then
|
|
# Update timer: enabled on first install, and an admin's later `systemctl
|
|
# disable` survives upgrades (the same logic dh_installsystemd generates).
|
|
deb-systemd-helper unmask cloudflared-update.timer >/dev/null || true
|
|
if deb-systemd-helper --quiet was-enabled cloudflared-update.timer; then
|
|
deb-systemd-helper enable cloudflared-update.timer >/dev/null || true
|
|
else
|
|
deb-systemd-helper update-state cloudflared-update.timer >/dev/null || true
|
|
fi
|
|
|
|
if [ -d /run/systemd/system ]; then
|
|
systemctl --system daemon-reload >/dev/null || true
|
|
deb-systemd-invoke start cloudflared-update.timer >/dev/null || true
|
|
# cloudflared-tunnel-setup enables the tunnel, not the package. On upgrade,
|
|
# restart it if it's running so a changed unit file takes effect.
|
|
systemctl try-restart cloudflared-tunnel.service >/dev/null || true
|
|
fi
|
|
fi
|
|
|
|
# First install only ($2 is the previously-configured version on upgrade). The
|
|
# package ships no tunnel config, so tell the admin how to register one.
|
|
if [ "$1" = configure ] && [ -z "$2" ]; then
|
|
cat <<'EOF'
|
|
|
|
cloudflared-tunnel is installed, but no tunnel is configured yet. Pick a mode:
|
|
|
|
# Named tunnel on your own domain (prints a URL to log in to Cloudflare):
|
|
sudo cloudflared-tunnel-setup --hostname app.example.com --port 3000
|
|
|
|
# Dashboard-managed tunnel (Zero Trust > Networks > Tunnels; copy the token,
|
|
# then set that hostname's service to http://localhost:PORT in the dashboard):
|
|
sudo cloudflared-tunnel-setup --token <TUNNEL_TOKEN> --port 3000
|
|
|
|
# Random trycloudflare.com URL, no Cloudflare account needed (testing only):
|
|
sudo cloudflared-tunnel-setup --quick --port 3000
|
|
|
|
cloudflared-tunnel.service stays stopped until you run one of the above.
|
|
Details: cloudflared-tunnel-setup --help, and
|
|
/usr/share/doc/cloudflared-tunnel/README.Debian
|
|
EOF
|
|
fi
|
|
|
|
exit 0
|