#!/bin/bash # exit when any command fails set -e # Check if /dev/net/tun already exists, avoid creating it if it's already present if [ ! -c /dev/net/tun ]; then echo "/dev/net/tun not found, unable to create it as non-root user. Ensure the hosting environment provides the tun device." exit 1 fi # start dbus (if applicable) mkdir -p /run/dbus if [ -f /run/dbus/pid ]; then rm /run/dbus/pid fi dbus-daemon --config-file=/usr/share/dbus-1/system.conf # start the WARP daemon warp-svc --accept-tos & # sleep to wait for the daemon to start, default 2 seconds sleep "$WARP_SLEEP" # if /var/lib/cloudflare-warp/reg.json not exists, setup new warp client if [ ! -f /var/lib/cloudflare-warp/reg.json ]; then # if /var/lib/cloudflare-warp/mdm.xml not exists, register the warp client if [ ! -f /var/lib/cloudflare-warp/mdm.xml ]; then warp-cli register && echo "Warp client registered!" # if a license key is provided, register the license if [ -n "$WARP_LICENSE_KEY" ]; then echo "License key found, registering license..." warp-cli register --license "$WARP_LICENSE_KEY" && echo "Warp license registered!" fi fi # connect to the warp server warp-cli --accept-tos connect else echo "Warp client already registered, skipping registration" fi # Start WARP in proxy mode on localhost echo "Starting WARP in local proxy mode..." warp-cli --accept-tos set-mode proxy warp-cli --accept-tos connect