# These values are sourced by the zrok-share.service. Search for "MUST" to identify the values that need to be changed.

#
## ZROK ENVIRONMENT
#
# You MUST enable a zrok environment by setting the environment enable token here. This file must be readable by
# 'other'.  Obtain the enable token from the zrok console after accepting your invitation and creating a password.
#
# WARNING: changing these values has no effect if /var/lib/zrok-share/.zrok/environment.json exists. Remove that file to
# enable a new environment and /var/lib/zrok-share/.zrok/reserved.json to provision a new frontend URL for the specified
# target.
#
ZROK_ENABLE_TOKEN=""

#
# You MAY customize the environment name that appears in the zrok console.
#
ZROK_ENVIRONMENT_NAME=""

# You MUST set this if not using the default API endpoint
#ZROK_API_ENDPOINT="https://api.zrok.io"

#
## ZROK BACKEND MODE AND TARGET
#
# You MUST define the backend target and mode. The frontend URL will be provisioned when the service starts. You MAY
# change ZROK_TARGET and frontend URL will remain the same after a restart as long as the backend mode and frontend
# authentication options are the same. Options that require provisioning a new frontend URL when changed are marked with
# WARNING. You may delete /var/lib/zrok-share/.zrok/reserved.json and restart the service to provision a new frontend URL.

#
## BACKEND MODES THAT WORK WITH PUBLIC AND PRIVATE HTTP SHARES
#

# backend-mode "proxy" (default): share a backend web server URL that's reachable by this host; must begin with 'http://' or
# 'https://'; must accept the HOST header of the proxy frontend. Check out backend mode "caddy" if you need more control.
ZROK_BACKEND_MODE="proxy"
ZROK_TARGET=""                  # e.g., http://127.0.0.1:3000
# if defined, an https share's backend server certificate will not be verified with backend-mode 'proxy'
# NOTE: changing this value does not require provisioning a new frontend URL
#ZROK_INSECURE="--insecure"

# backend-mode "web": run a web server and share a static HTML directory that's present on this host. Must be an
# absolute path to a directory that is readable by 'other'
#ZROK_BACKEND_MODE="web"
#ZROK_TARGET="/var/www/html"

# backend-mode "drive": run a WebDAV file server sharing a directory that's present on this host. Must be an absolute
# path to a directory that is readable by 'other'
#ZROK_BACKEND_MODE="drive"
#ZROK_TARGET="/usr/share/doc"

# backend-mode "caddy": run an embedded Caddy server configured by the supplied Caddyfile. Must be an absolute path that
# is readable by 'other'.
#ZROK_BACKEND_MODE="caddy"
#ZROK_TARGET="/opt/openziti/etc/zrok/multiple_upstream.Caddyfile"

#
## BACKEND MODES THAT ONLY WORK WITH PRIVATE SHARES
#

# you MUST set ZROK_FRONTEND_MODE to 'reserved-private' or 'temp-private' to use private share backend modes

#ZROK_BACKEND_MODE="tcpTunnel"
#ZROK_TARGET="127.0.0.1:25565"

#ZROK_BACKEND_MODE="udpTunnel"
#ZROK_TARGET="127.0.0.1:53"

# you MUST grant NET_ADMIN capability to the service to enable vpn mode, e.g., run these two commands:
# sed -Ei 's/.*AmbientCapabilities=CAP_NET_ADMIN/AmbientCapabilities=CAP_NET_ADMIN/' /etc/systemd/system/zrok-share.service.d/override.conf
# systemctl daemon-reload
#ZROK_BACKEND_MODE="vpn"
#ZROK_TARGET="172.16.0.1/12"

# there is no target for socks mode because the share is only a dynamic exit for the proxy client
#ZROK_BACKEND_MODE="socks"
#ZROK_TARGET=""

#
## ZROK FRONTEND 
#

# you MAY customize the share token that is used to construct the reserved subdomain; if not set a random
# subdomain is reserved
# WARNING: changes take effect the next time the frontend URL is reserved
#ZROK_UNIQUE_NAME=""

# you MAY set one OAuth2/OIDC provider; "google" and "github" are valid for the default instance api.zrok.io
# WARNING: changes take effect the next time the frontend URL is reserved
# NOTE: basic auth and oauth are mutually exclusive
#ZROK_OAUTH_PROVIDER="google"

# you MAY restrict access to one or more email addresses or domains; must be a space-separate list
# WARNING: changes take effect the next time the frontend URL is reserved
#ZROK_OAUTH_EMAILS="alice@example.com *@acme.example.com"

# you MAY require a password with HTTP basic authentication
# WARNING: changes take effect the next time the frontend URL is reserved
# NOTE: basic auth and oauth are mutually exclusive
#ZROK_BASIC_AUTH=""

# set if self-hosting zrok and not using only the default frontend name 'public'; must be a space-separated list
# WARNING: changes take effect the next time the frontend URL is reserved
#ZROK_FRONTENDS="public"

# you MAY set to change the frontend mode: reserved-public (default), reserved-private, temp-public, temp-private 
#ZROK_FRONTEND_MODE="reserved-public"

# you MAY restrict access to a private share allowing only your own zrok account
#ZROK_PERMISSION_MODE="closed"
# if permission mode "closed" - space-separated list of additional zrok account emails to grant access with the share token
#ZROK_ACCESS_GRANTS=""


#
## OPTIONS
#

# DEBUG log level
# NOTE: changing this value does not require provisioning a new frontend URL
#ZROK_VERBOSE="--verbose"

# you MAY set additional command-line options for the share; see "zrok reserve public --help" for hints
ZROK_SHARE_OPTS=""
