Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/action-on-pr.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

name: Validate PR - Docker Compose Build

on:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/docker-publish.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

name: Docker Publish

on:
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/inference-deploy-on-merge.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

name: Deploy bird-border and zerotier on merge to main

on:
Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

# Go
*.o
/bgp-daemon
Expand Down
170 changes: 170 additions & 0 deletions LICENSES/CC-BY-SA-4.0.txt

Large diffs are not rendered by default.

232 changes: 232 additions & 0 deletions LICENSES/GPL-3.0-only.txt

Large diffs are not rendered by default.

6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2025 AlterMundi

SPDX-License-Identifier: CC-BY-SA-4.0
-->

# 44Mesh

Run your own Autonomous System (AS) with BGP peering and a ZeroTier mesh network.
Expand Down
10 changes: 10 additions & 0 deletions REUSE.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
version = 1
SPDX-PackageName = "44mesh"
SPDX-PackageSupplier = "AlterMundi"
SPDX-PackageDownloadLocation = "https://github.com/altermundi/44mesh"

[[annotations]]
path = "deploy/zerotier-ui/network-config-example.json"
precedence = "aggregate"
SPDX-FileCopyrightText = "2025 AlterMundi"
SPDX-License-Identifier = "GPL-3.0-only"
4 changes: 4 additions & 0 deletions deploy/bird-border/.env.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

# Border Router Configuration
# Copy to .env and customize

Expand Down
4 changes: 4 additions & 0 deletions deploy/bird-border/.gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

.env
4 changes: 4 additions & 0 deletions deploy/bird-border/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

FROM debian:12-slim

RUN apt-get update && apt-get install -y \
Expand Down
6 changes: 6 additions & 0 deletions deploy/bird-border/README.dockerhub.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2025 AlterMundi

SPDX-License-Identifier: CC-BY-SA-4.0
-->

# 44mesh BIRD2 Border Router

BIRD2 border router container for 44mesh networks. Handles eBGP peering with upstream ISPs
Expand Down
6 changes: 6 additions & 0 deletions deploy/bird-border/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2025 AlterMundi

SPDX-License-Identifier: CC-BY-SA-4.0
-->

# Border Router Setup

> [← Back to main README](../../README.md)
Expand Down
4 changes: 4 additions & 0 deletions deploy/bird-border/bird.conf.template
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

# BIRD - Border Router (AS ${BORDER_ROUTER_AS})
# Routes between ISP and ZeroTier mesh

Expand Down
4 changes: 4 additions & 0 deletions deploy/bird-border/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

# Border Router Node
# BGP peering with ISP + ZeroTier mesh connectivity
#
Expand Down
5 changes: 5 additions & 0 deletions deploy/bird-border/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
#!/bin/bash

# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

set -euo pipefail

MAX_WAIT="${MAX_WAIT:-60}"
Expand Down
4 changes: 4 additions & 0 deletions deploy/rpi-isp/.env.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

# Mock ISP Configuration (for testing)
# Copy to .env and customize

Expand Down
4 changes: 4 additions & 0 deletions deploy/rpi-isp/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

FROM debian:12-slim

RUN apt-get update && apt-get install -y \
Expand Down
6 changes: 6 additions & 0 deletions deploy/rpi-isp/README.dockerhub.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2025 AlterMundi

SPDX-License-Identifier: CC-BY-SA-4.0
-->

# 44mesh BIRD2 Router for Raspberry Pi

BIRD2-based BGP router image for 44mesh ISP nodes. Tuned for Raspberry Pi and general ARM/AMD64.
Expand Down
6 changes: 6 additions & 0 deletions deploy/rpi-isp/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2025 AlterMundi

SPDX-License-Identifier: CC-BY-SA-4.0
-->

# Mock ISP Setup (AS 65001)

> [← Back to main README](../../README.md)
Expand Down
4 changes: 4 additions & 0 deletions deploy/rpi-isp/bird.conf.template
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

# BIRD - Mock ISP (AS ${ISP_AS})
# Announces test prefixes to Border Router

Expand Down
4 changes: 4 additions & 0 deletions deploy/rpi-isp/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

# Mock ISP - Raspberry Pi
# AS 65001 - Announces test prefixes to Border Router

Expand Down
5 changes: 5 additions & 0 deletions deploy/rpi-isp/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
#!/bin/bash

# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

set -euo pipefail

echo "=== BIRD BGP Daemon (Mock ISP) ==="
Expand Down
4 changes: 4 additions & 0 deletions deploy/zerotier-ui/.env.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

# ZeroTier controller build version
ZEROTIER_VERSION=1.16.0

Expand Down
4 changes: 4 additions & 0 deletions deploy/zerotier-ui/Dockerfile.ztncui
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

FROM node:18-bookworm

RUN apt-get update && apt-get install -y \
Expand Down Expand Up @@ -28,7 +32,7 @@
ENV ZTNCUI_HTTPS_PORT=
ENV ZTNCUI_HTTP_ALL_INTERFACES=
ENV ZTNCUI_HTTPS_HOST=
ENV ZTNCUI_PASSWD=

Check warning on line 35 in deploy/zerotier-ui/Dockerfile.ztncui

View workflow job for this annotation

GitHub Actions / Build/push 44mesh-zerotier-ui

Sensitive data should not be used in the ARG or ENV commands

SecretsUsedInArgOrEnv: Do not use ARG or ENV instructions for sensitive data (ENV "ZTNCUI_PASSWD") More info: https://docs.docker.com/go/dockerfile/rule/secrets-used-in-arg-or-env/

RUN groupadd --gid 995 ztgrp \
&& useradd --create-home --shell /bin/false --uid 999 --gid 995 ztncui \
Expand Down
6 changes: 6 additions & 0 deletions deploy/zerotier-ui/README.dockerhub.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2025 AlterMundi

SPDX-License-Identifier: CC-BY-SA-4.0
-->

# 44mesh ZeroTier UI (ztncui fork)

Web UI for managing a ZeroTier controller. Customized [ztncui](https://github.com/key-networks/ztncui)
Expand Down
6 changes: 6 additions & 0 deletions deploy/zerotier-ui/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2025 AlterMundi

SPDX-License-Identifier: CC-BY-SA-4.0
-->

# ZeroTier Web UI

Web interface for ZeroTier member management. Built from the
Expand Down
4 changes: 4 additions & 0 deletions deploy/zerotier-ui/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

services:
zerotier-ui:
build:
Expand Down
5 changes: 5 additions & 0 deletions deploy/zerotier-ui/ztncui-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
#!/bin/sh

# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

set -eu

ZT_TOKEN_FILE="/var/lib/zerotier-one/authtoken.secret"
Expand Down
4 changes: 4 additions & 0 deletions deploy/zerotier/.env.example
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

# ZeroTier network ID (16 hex chars)
ZT_NETWORK_ID=

Expand Down
4 changes: 4 additions & 0 deletions deploy/zerotier/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

FROM ubuntu:22.04 AS build

RUN apt-get update && apt-get install -y \
Expand Down
6 changes: 6 additions & 0 deletions deploy/zerotier/README.dockerhub.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2025 AlterMundi

SPDX-License-Identifier: CC-BY-SA-4.0
-->

# 44mesh ZeroTier (AlterMundi fork)

Multi-arch ZeroTier One built from the [AlterMundi fork](https://github.com/AlterMundi/ZeroTierOne)
Expand Down
6 changes: 6 additions & 0 deletions deploy/zerotier/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2025 AlterMundi

SPDX-License-Identifier: CC-BY-SA-4.0
-->

# ZeroTier Mesh Node (Docker)

Joins the any89 mesh network using the [AlterMundi/ZeroTierOne](https://github.com/AlterMundi/ZeroTierOne)
Expand Down
5 changes: 5 additions & 0 deletions deploy/zerotier/controller-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
#!/bin/bash

# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

set -e

ZT_DIR=/var/lib/zerotier-one
Expand Down
4 changes: 4 additions & 0 deletions deploy/zerotier/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

services:
zerotier:
build: .
Expand Down
5 changes: 5 additions & 0 deletions deploy/zerotier/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -1,4 +1,9 @@
#!/bin/bash

# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

set -Eeo pipefail

if [ ! -e /dev/net/tun ]; then
Expand Down
4 changes: 4 additions & 0 deletions deploy/zerotier/local.conf
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

{
"settings": {
"allowManagementFrom": ["0.0.0.0/0", "::/0"]
Expand Down
4 changes: 4 additions & 0 deletions deploy/zerotier/network.local.conf
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
# SPDX-FileCopyrightText: 2025 AlterMundi
#
# SPDX-License-Identifier: GPL-3.0-only

allowManaged=1
allowGlobal=1
allowDefault=1
Expand Down
6 changes: 6 additions & 0 deletions docs/ZEROTIER.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<!--
SPDX-FileCopyrightText: 2025 AlterMundi

SPDX-License-Identifier: CC-BY-SA-4.0
-->

# ZeroTier Mesh — Architecture & Operations Guide

This document describes the ZeroTier-based mesh used in 44mesh, including the
Expand Down
Loading