+
Welcome to Firezone
diff --git a/elixir/apps/web/lib/web/live/sites/new.ex b/elixir/apps/web/lib/web/live/sites/new.ex
index 929703a02..fb7bbaba1 100644
--- a/elixir/apps/web/lib/web/live/sites/new.ex
+++ b/elixir/apps/web/lib/web/live/sites/new.ex
@@ -46,69 +46,10 @@ defmodule Web.Sites.New do
<.tabs id="deployment-instructions">
<:tab id="docker-instructions" label="Docker">
- <.code_block id="code-sample-docker" class="w-full rounded-b-lg" phx-no-format>
- docker run -d \
- --restart=unless-stopped \
- --pull=always \
- --health-cmd="ip link | grep tun-firezone" \
- --name=firezone-gateway \
- --cap-add=NET_ADMIN \
- --sysctl net.ipv4.ip_forward=1 \
- --sysctl net.ipv4.conf.all.src_valid_mark=1 \
- --sysctl net.ipv6.conf.all.disable_ipv6=0 \
- --sysctl net.ipv6.conf.all.forwarding=1 \
- --sysctl net.ipv6.conf.default.forwarding=1 \
- --device="/dev/net/tun:/dev/net/tun" \
- --env FIREZONE_ID="<%= Ecto.UUID.generate() %>" \
- --env FIREZONE_TOKEN="<%= Gateways.encode_token!(hd(@group.tokens)) %>" \
- --env FIREZONE_ENABLE_MASQUERADE=1 \
- --env FIREZONE_HOSTNAME="`hostname`" \
- --env RUST_LOG="warn" \
- ghcr.io/firezone/gateway:${FIREZONE_VERSION:-1}
-
+ <.code_block id="code-sample-docker" class="w-full rounded-b" phx-no-format><%= docker_command(encode_group_token(@group)) %>
<:tab id="systemd-instructions" label="Systemd">
- <.code_block id="code-sample-systemd" class="w-full rounded-b-lg" phx-no-format>
- [Unit]
- Description=Firezone Gateway
- After=network.target
-
- [Service]
- Type=simple
- Environment="FIREZONE_TOKEN=<%= Gateways.encode_token!(hd(@group.tokens)) %>"
- Environment="FIREZONE_VERSION=1.20231001.0"
- Environment="FIREZONE_HOSTNAME=`hostname`"
- Environment="FIREZONE_ENABLE_MASQUERADE=1"
- ExecStartPre=/bin/sh -c ' \
- if [ -e /usr/local/bin/firezone-gateway ]; then \
- current_version=$(/usr/local/bin/firezone-gateway --version 2>&1 | awk "{print $NF}"); \
- else \
- current_version=""; \
- fi; \
- if [ ! "$$current_version" = "${FIREZONE_VERSION}" ]; then \
- arch=$(uname -m); \
- case $$arch in \
- aarch64) \
- bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-aarch64-unknown-linux-musl-${FIREZONE_VERSION}" ;; \
- armv7l) \
- bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-armv7-unknown-linux-musleabihf-${FIREZONE_VERSION}" ;; \
- x86_64) \
- bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-x86_64-unknown-linux-musl-${FIREZONE_VERSION}" ;; \
- *) \
- echo "Unsupported architecture"; \
- exit 1 ;; \
- esac; \
- wget -O /usr/local/bin/firezone-gateway $$bin_url; \
- fi \
- '
- ExecStartPre=/usr/bin/chmod +x /usr/local/bin/firezone-gateway
- ExecStart=/usr/local/bin/firezone-gateway
- Restart=always
- RestartSec=3
-
- [Install]
- WantedBy=multi-user.target
-
+ <.code_block id="code-sample-systemd" class="w-full rounded-b" phx-no-format><%= systemd_command(encode_group_token(@group)) %>
@@ -149,4 +90,75 @@ defmodule Web.Sites.New do
{:noreply, socket}
end
+
+ defp docker_command(token) do
+ """
+ docker run -d \\
+ --restart=unless-stopped \\
+ --pull=always \\
+ --health-cmd="ip link | grep tun-firezone" \\
+ --name=firezone-gateway \\
+ --cap-add=NET_ADMIN \\
+ --sysctl net.ipv4.ip_forward=1 \\
+ --sysctl net.ipv4.conf.all.src_valid_mark=1 \\
+ --sysctl net.ipv6.conf.all.disable_ipv6=0 \\
+ --sysctl net.ipv6.conf.all.forwarding=1 \\
+ --sysctl net.ipv6.conf.default.forwarding=1 \\
+ --device="/dev/net/tun:/dev/net/tun" \\
+ --env FIREZONE_ID="#{Ecto.UUID.generate()}" \\
+ --env FIREZONE_TOKEN="#{token}" \\
+ --env FIREZONE_ENABLE_MASQUERADE=1 \\
+ --env FIREZONE_HOSTNAME="`hostname`" \\
+ --env RUST_LOG="warn" \\
+ ghcr.io/firezone/gateway:${FIREZONE_VERSION:-1}
+ """
+ end
+
+ defp systemd_command(token) do
+ """
+ [Unit]
+ Description=Firezone Gateway
+ After=network.target
+
+ [Service]
+ Type=simple
+ Environment="FIREZONE_TOKEN=#{token}"
+ Environment="FIREZONE_VERSION=1.20231001.0"
+ Environment="FIREZONE_HOSTNAME=`hostname`"
+ Environment="FIREZONE_ENABLE_MASQUERADE=1"
+ ExecStartPre=/bin/sh -c ' \\
+ if [ -e /usr/local/bin/firezone-gateway ]; then \\
+ current_version=$(/usr/local/bin/firezone-gateway --version 2>&1 | awk "{print $NF}"); \\
+ else \\
+ current_version=""; \\
+ fi; \\
+ if [ ! "$$current_version" = "${FIREZONE_VERSION}" ]; then \\
+ arch=$(uname -m); \\
+ case $$arch in \\
+ aarch64) \\
+ bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-aarch64-unknown-linux-musl-${FIREZONE_VERSION}" ;; \\
+ armv7l) \\
+ bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-armv7-unknown-linux-musleabihf-${FIREZONE_VERSION}" ;; \\
+ x86_64) \\
+ bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-x86_64-unknown-linux-musl-${FIREZONE_VERSION}" ;; \\
+ *) \\
+ echo "Unsupported architecture"; \\
+ exit 1 ;; \\
+ esac; \\
+ wget -O /usr/local/bin/firezone-gateway $$bin_url; \\
+ fi \\
+ '
+ ExecStartPre=/usr/bin/chmod +x /usr/local/bin/firezone-gateway
+ ExecStart=/usr/local/bin/firezone-gateway
+ Restart=always
+ RestartSec=3
+
+ [Install]
+ WantedBy=multi-user.target
+ """
+ end
+
+ defp encode_group_token(group) do
+ Gateways.encode_token!(hd(group.tokens))
+ end
end
diff --git a/elixir/apps/web/lib/web/live/sites/new_token.ex b/elixir/apps/web/lib/web/live/sites/new_token.ex
index a0a0a89db..66edd2781 100644
--- a/elixir/apps/web/lib/web/live/sites/new_token.ex
+++ b/elixir/apps/web/lib/web/live/sites/new_token.ex
@@ -37,69 +37,10 @@ defmodule Web.Sites.NewToken do
<.tabs id="deployment-instructions">
<:tab id="docker-instructions" label="Docker">
- <.code_block id="code-sample-docker" class="w-full rounded-b-lg" phx-no-format>
- docker run -d \
- --restart=unless-stopped \
- --pull=always \
- --health-cmd="ip link | grep tun-firezone" \
- --name=firezone-gateway \
- --cap-add=NET_ADMIN \
- --sysctl net.ipv4.ip_forward=1 \
- --sysctl net.ipv4.conf.all.src_valid_mark=1 \
- --sysctl net.ipv6.conf.all.disable_ipv6=0 \
- --sysctl net.ipv6.conf.all.forwarding=1 \
- --sysctl net.ipv6.conf.default.forwarding=1 \
- --device="/dev/net/tun:/dev/net/tun" \
- --env FIREZONE_ID="<%= Ecto.UUID.generate() %>" \
- --env FIREZONE_TOKEN="<%= Gateways.encode_token!(hd(@group.tokens)) %>" \
- --env FIREZONE_ENABLE_MASQUERADE=1 \
- --env FIREZONE_HOSTNAME="`hostname`" \
- --env RUST_LOG="warn" \
- ghcr.io/firezone/gateway:${FIREZONE_VERSION:-1}
-
+ <.code_block id="code-sample-docker" class="w-full rounded-b" phx-no-format><%= docker_command(encode_group_token(@group)) %>
<:tab id="systemd-instructions" label="Systemd">
- <.code_block id="code-sample-systemd" class="w-full rounded-b-lg" phx-no-format>
- [Unit]
- Description=Firezone Gateway
- After=network.target
-
- [Service]
- Type=simple
- Environment="FIREZONE_TOKEN=<%= Gateways.encode_token!(hd(@group.tokens)) %>"
- Environment="FIREZONE_VERSION=1.20231001.0"
- Environment="FIREZONE_HOSTNAME=`hostname`"
- Environment="FIREZONE_ENABLE_MASQUERADE=1"
- ExecStartPre=/bin/sh -c ' \
- if [ -e /usr/local/bin/firezone-gateway ]; then \
- current_version=$(/usr/local/bin/firezone-gateway --version 2>&1 | awk "{print $NF}"); \
- else \
- current_version=""; \
- fi; \
- if [ ! "$$current_version" = "${FIREZONE_VERSION}" ]; then \
- arch=$(uname -m); \
- case $$arch in \
- aarch64) \
- bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-aarch64-unknown-linux-musl-${FIREZONE_VERSION}" ;; \
- armv7l) \
- bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-armv7-unknown-linux-musleabihf-${FIREZONE_VERSION}" ;; \
- x86_64) \
- bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-x86_64-unknown-linux-musl-${FIREZONE_VERSION}" ;; \
- *) \
- echo "Unsupported architecture"; \
- exit 1 ;; \
- esac; \
- wget -O /usr/local/bin/firezone-gateway $$bin_url; \
- fi \
- '
- ExecStartPre=/usr/bin/chmod +x /usr/local/bin/firezone-gateway
- ExecStart=/usr/local/bin/firezone-gateway
- Restart=always
- RestartSec=3
-
- [Install]
- WantedBy=multi-user.target
-
+ <.code_block id="code-sample-systemd" class="w-full rounded-b" phx-no-format><%= systemd_command(encode_group_token(@group)) %>
@@ -111,4 +52,75 @@ defmodule Web.Sites.NewToken do
"""
end
+
+ defp docker_command(token) do
+ """
+ docker run -d \\
+ --restart=unless-stopped \\
+ --pull=always \\
+ --health-cmd="ip link | grep tun-firezone" \\
+ --name=firezone-gateway \\
+ --cap-add=NET_ADMIN \\
+ --sysctl net.ipv4.ip_forward=1 \\
+ --sysctl net.ipv4.conf.all.src_valid_mark=1 \\
+ --sysctl net.ipv6.conf.all.disable_ipv6=0 \\
+ --sysctl net.ipv6.conf.all.forwarding=1 \\
+ --sysctl net.ipv6.conf.default.forwarding=1 \\
+ --device="/dev/net/tun:/dev/net/tun" \\
+ --env FIREZONE_ID="#{Ecto.UUID.generate()}" \\
+ --env FIREZONE_TOKEN="#{token}" \\
+ --env FIREZONE_ENABLE_MASQUERADE=1 \\
+ --env FIREZONE_HOSTNAME="`hostname`" \\
+ --env RUST_LOG="warn" \\
+ ghcr.io/firezone/gateway:${FIREZONE_VERSION:-1}
+ """
+ end
+
+ defp systemd_command(token) do
+ """
+ [Unit]
+ Description=Firezone Gateway
+ After=network.target
+
+ [Service]
+ Type=simple
+ Environment="FIREZONE_TOKEN=#{token}"
+ Environment="FIREZONE_VERSION=1.20231001.0"
+ Environment="FIREZONE_HOSTNAME=`hostname`"
+ Environment="FIREZONE_ENABLE_MASQUERADE=1"
+ ExecStartPre=/bin/sh -c ' \\
+ if [ -e /usr/local/bin/firezone-gateway ]; then \\
+ current_version=$(/usr/local/bin/firezone-gateway --version 2>&1 | awk "{print $NF}"); \\
+ else \\
+ current_version=""; \\
+ fi; \\
+ if [ ! "$$current_version" = "${FIREZONE_VERSION}" ]; then \\
+ arch=$(uname -m); \\
+ case $$arch in \\
+ aarch64) \\
+ bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-aarch64-unknown-linux-musl-${FIREZONE_VERSION}" ;; \\
+ armv7l) \\
+ bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-armv7-unknown-linux-musleabihf-${FIREZONE_VERSION}" ;; \\
+ x86_64) \\
+ bin_url="https://github.com/firezone/firezone/releases/download/${FIREZONE_VERSION}/gateway-x86_64-unknown-linux-musl-${FIREZONE_VERSION}" ;; \\
+ *) \\
+ echo "Unsupported architecture"; \\
+ exit 1 ;; \\
+ esac; \\
+ wget -O /usr/local/bin/firezone-gateway $$bin_url; \\
+ fi \\
+ '
+ ExecStartPre=/usr/bin/chmod +x /usr/local/bin/firezone-gateway
+ ExecStart=/usr/local/bin/firezone-gateway
+ Restart=always
+ RestartSec=3
+
+ [Install]
+ WantedBy=multi-user.target
+ """
+ end
+
+ defp encode_group_token(group) do
+ Gateways.encode_token!(hd(group.tokens))
+ end
end