diff --git a/README.md b/README.md index ba57123a..75c25c49 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ This is the official repository for the Tipi App Store. It contains all the apps - [Uptime Kuma](https://github.com/louislam/uptime-kuma) - A fancy self-hosted monitoring tool - [Vaultwarden](https://github.com/dani-garcia/vaultwarden) - Unofficial Bitwarden compatible server - [Wireguard Easy](https://github.com/WeeJeWel/wg-easy) - WireGuard VPN + Web-based Admin UI +- [ZeroTier](https://github.com/zerotier/ZeroTierOne) - Easy to use zero configuration VPN. ## How to sumbit an app diff --git a/apps/__tests__/apps.test.ts b/apps/__tests__/apps.test.ts index e3141baa..f6eced8c 100644 --- a/apps/__tests__/apps.test.ts +++ b/apps/__tests__/apps.test.ts @@ -18,7 +18,13 @@ interface AppConfig { available: boolean; } -const networkExceptions = ["pihole", "tailscale", "homeassistant", "plex"]; +const networkExceptions = [ + "pihole", + "tailscale", + "homeassistant", + "plex", + "zerotier", +]; const getAppConfigs = (): AppConfig[] => { const apps: AppConfig[] = []; diff --git a/apps/zerotier/config.json b/apps/zerotier/config.json new file mode 100644 index 00000000..6ac8adb7 --- /dev/null +++ b/apps/zerotier/config.json @@ -0,0 +1,26 @@ +{ + "$schema": "../schema.json", + "name": "Zerotier", + "available": true, + "port": 9993, + "id": "zerotier", + "tipi_version": 1, + "version": "v1.10.1", + "categories": ["network", "security"], + "description": "ZeroTier combines the capabilities of VPN and SD-WAN, simplifying network management.", + "short_desc": "Easy to use zero configuration VPN.", + "author": "© ZeroTier Inc.", + "source": "https://github.com/zerotier/ZeroTierOne", + "website": "hhttps://www.zerotier.com", + "form_fields": [ + { + "type": "text", + "label": "Network ID", + "hint": "Create one at https://my.zerotier.com/", + "max": 16, + "min": 16, + "required": true, + "env_variable": "NETWORK_ID" + } + ] +} diff --git a/apps/zerotier/docker-compose.yml b/apps/zerotier/docker-compose.yml new file mode 100644 index 00000000..c9563278 --- /dev/null +++ b/apps/zerotier/docker-compose.yml @@ -0,0 +1,19 @@ +version: "3.7" +services: + zerotier: + container_name: zerotier + image: zerotier/zerotier:1.10.1 + restart: on-failure + command: "zerotier-cli join ${NETWORK_ID}" + cap_add: + - NET_ADMIN + - SYS_ADMIN + volumes: + - /dev/net/tun + healthcheck: + test: ['CMD','true'] + network_mode: host +# TO DO: Pass host data to retain zerotier id, or setup a volume. Prefer ~stateless. +# networks: +# - tipi_main_network +# mac_address: ${MAC_ADDRESS} diff --git a/apps/zerotier/metadata/description.md b/apps/zerotier/metadata/description.md new file mode 100644 index 00000000..c88e8e99 --- /dev/null +++ b/apps/zerotier/metadata/description.md @@ -0,0 +1,10 @@ +## Securely Connect Any Device, Anywhere. + +ZeroTier combines the capabilities of VPN and SD-WAN, simplifying network management. +Connect team members from anywhere in the world on any device. ZeroTier creates secure networks between on-premise, cloud, desktop, and mobile devices. +Emulates Layer 2 Ethernet with multipath, multicast, and bridging capabilities. +ZeroTier’s zero-trust networking solution provides scalable security with 256-bit end-to-end encryption. + +Create a ZeroTier network at [https://my.zerotier.com/](https://my.zerotier.com/) and invite your team members to join. Once they accept the invitation, they will be able to access the network from any device, anywhere in the world. + +![zt](https://www.zerotier.com/wp-content/uploads/2020/08/ZT_NetworkGraphic_Homepage.png) diff --git a/apps/zerotier/metadata/logo.jpg b/apps/zerotier/metadata/logo.jpg new file mode 100644 index 00000000..d225c2e3 Binary files /dev/null and b/apps/zerotier/metadata/logo.jpg differ