Go to file
copilot-swe-agent[bot] 53b676c007 Replace README with fork-specific documentation for EdgeOS and multi-arch builds
- Explains this is an auto-synced fork with MIPS/EdgeOS support
- Documents all 9 supported architectures with device mapping table
- Provides quick install commands for all EdgeRouter models
- Explains the automated upstream sync CI/CD pipeline with diagram
- Includes EdgeOS service setup guide
- Includes cross-compilation instructions
- Links back to upstream project and documentation

Co-authored-by: ApophisLee <2356831+ApophisLee@users.noreply.github.com>
Agent-Logs-Url: https://github.com/cafe-x-technologies/cloudflared/sessions/28c1db55-3cb1-4db2-9ae3-ad4fb3869432
2026-03-25 14:25:46 +00:00
.ci TUN-9858: Remove proxy-dns feature from cloudflared 2026-02-06 12:43:53 +00:00
.github Add CI/CD workflow to sync upstream releases and build EdgeOS packages 2026-03-25 14:11:37 +00:00
.mac_resources AUTH-2712 mac package build script and better config file handling when started as a service 2020-06-25 16:44:57 -05:00
carrier AUTH-7480 update fed callback url for login helper 2025-08-19 18:54:31 +00:00
cfapi chore: Addressing small fixes and typos 2026-03-05 16:53:48 +00:00
cfio TUN-6035: Reduce buffer size when proxying data 2022-04-11 14:41:33 +00:00
client TUN-9883: Add new datagram v3 feature flag 2025-10-10 13:55:31 -07:00
cmd/cloudflared TUN-10292: Add cloudflared management token command 2026-03-05 16:31:24 +00:00
component-tests TUN-10292: Add cloudflared management token command 2026-03-05 16:31:24 +00:00
config TUN-9858: Remove proxy-dns feature from cloudflared 2026-02-06 12:43:53 +00:00
connection chore: Addressing small fixes and typos 2026-03-05 16:53:48 +00:00
credentials TUN-9755: Set endpoint in tunnel credentials when generating locally managed tunnel with a Fed token 2025-08-27 15:57:58 +00:00
datagramsession TUN-9016: update go to 1.24 2025-06-06 09:05:49 +00:00
diagnostic TUN-8914: Create a flags module to group all cloudflared cli flags 2025-02-06 03:30:27 -08:00
edgediscovery chore: Remove h2mux code 2024-10-15 13:10:30 -07:00
features TUN-9883: Add new datagram v3 feature flag 2025-10-10 13:55:31 -07:00
fips TUN-8855: Update PQ curve preferences 2025-01-30 05:02:47 -08:00
flow TUN-8861: Rename Session Limiter to Flow Limiter 2025-01-20 06:33:40 -08:00
hello TUN-7590: Remove usages of ioutil 2023-07-17 19:08:38 +00:00
ingress TUN-9882: Add write deadline for UDP origin writes 2025-10-07 19:54:42 -07:00
internal/test TUN-7125: Add management streaming logs WebSocket protocol 2023-04-05 16:25:16 +00:00
ipaccess TUN-6016: Push local managed tunnels configuration to the edge 2022-05-06 15:43:24 +00:00
logger TUN-9371: Add logging format as JSON 2025-06-16 21:25:13 +00:00
management TUN-9583: set proper url and hostname for cloudflared tail command 2025-07-23 20:09:50 +01:00
metrics TUN-8792: Make diag/system endpoint always return a JSON 2024-12-11 02:48:41 -08:00
mocks TUN-8861: Rename Session Limiter to Flow Limiter 2025-01-20 06:33:40 -08:00
orchestration TUN-9470: Add OriginDialerService to include TCP 2025-06-30 13:24:16 -07:00
overwatch AUTH-2169 make access login page more generic 2020-06-08 11:20:30 -05:00
packet chore: Addressing small fixes and typos 2026-03-05 16:53:48 +00:00
proxy TUN-9470: Add OriginDialerService to include TCP 2025-06-30 13:24:16 -07:00
quic TUN-9882: Bump datagram v3 write channel capacity 2025-10-13 17:18:22 -07:00
release chore: Update cloudflared signing key name in index.html 2025-11-04 16:59:30 +00:00
retry chore: fix linter rules 2025-04-01 18:57:55 +01:00
signal TUN-1562: Refactor connectedSignal to be safe to close multiple times 2019-03-05 15:51:35 -06:00
socks TUN-7590: Remove usages of ioutil 2023-07-17 19:08:38 +00:00
sshgen TUN-8333: Bump go-jose dependency to v4 2024-04-10 09:49:40 -07:00
stream TUN-7545: Add support for full bidirectionally streaming with close signal propagation 2023-07-06 11:54:26 +01:00
supervisor CUSTESC-53681: Correct QUIC connection management for datagram handlers 2025-08-19 16:10:00 -07:00
tlsconfig TUN-7590: Remove usages of ioutil 2023-07-17 19:08:38 +00:00
token TUN-9852: Remove fmt.Println from cloudflared access command 2025-09-22 12:01:48 +01:00
tracing add: new go-fuzz targets 2024-11-11 20:45:49 +05:30
tunnelrpc TUN-9016: update go to 1.24 2025-06-06 09:05:49 +00:00
tunnelstate TUN-8728: implement diag/tunnel endpoint 2024-11-25 10:43:32 -08:00
validation add: new go-fuzz targets 2024-11-11 20:45:49 +05:30
vendor fix: Update go-sentry and go-oidc to address CVE's 2026-03-05 19:10:16 +00:00
watcher TUN-7584: Bump go 1.20.6 2023-07-26 13:52:40 -07:00
websocket TUN-7057: Remove dependency github.com/gorilla/mux 2022-12-24 21:05:51 -07:00
.docker-images TUN-6825: Fix cloudflared:version images require arch hyphens 2022-10-04 15:48:58 +00:00
.dockerignore TUN-5129: Use go 1.17 and copy .git folder to docker build to compute version 2021-09-21 15:50:35 +00:00
.gitignore fix: rpm bundling and rpm key import 2026-01-19 18:10:47 +00:00
.gitlab-ci.yml TUN-10258: add agents.md 2026-02-24 11:17:27 +00:00
.golangci.yaml TUN-9016: update go to 1.24 2025-06-06 09:05:49 +00:00
.vulnignore TUN-9858: Remove proxy-dns feature from cloudflared 2026-02-06 12:43:53 +00:00
AGENTS.md TUN-10258: add agents.md 2026-02-24 11:17:27 +00:00
CHANGES.md chore: Addressing small fixes and typos 2026-03-05 16:53:48 +00:00
Dockerfile TUN-10216: TUN fix cloudflare vulnerabilities GO-2026-4340 and GO-2026-4341 2026-02-06 10:01:07 +00:00
Dockerfile.amd64 TUN-10216: TUN fix cloudflare vulnerabilities GO-2026-4340 and GO-2026-4341 2026-02-06 10:01:07 +00:00
Dockerfile.arm64 TUN-10216: TUN fix cloudflare vulnerabilities GO-2026-4340 and GO-2026-4341 2026-02-06 10:01:07 +00:00
LICENSE TUN-5851: Update all references to point to Apache License 2.0 2022-03-08 17:35:31 +00:00
Makefile Add CI/CD workflow to sync upstream releases and build EdgeOS packages 2026-03-25 14:11:37 +00:00
README.md Replace README with fork-specific documentation for EdgeOS and multi-arch builds 2026-03-25 14:25:46 +00:00
RELEASE_NOTES Release 2026.3.0 2026-03-06 12:53:40 +00:00
catalog-info.yaml GRC-16749: Add fedramp tags to catalog 2025-10-07 11:27:41 +00:00
cfsetup.yaml TUN-9800: Migrate apt internal builds to Gitlab 2025-11-10 14:43:10 +00:00
check-fips.sh TUN-5551: Reintroduce FIPS compliance for linux amd64 now as separate binaries 2021-12-20 21:50:42 +00:00
cloudflared.wxs Remove extraneous `period` from Path Environment Variable (#1009) 2023-12-14 16:32:48 +00:00
cloudflared_man_template AUTH-2644: Change install location and add man page 2020-07-06 19:27:25 +00:00
github_message.py TUN-6823: Update github release message to pull from KV 2022-10-11 15:43:06 +00:00
github_release.py DEVTOOLS-16383: Create GitlabCI pipeline to release Mac builds 2025-04-30 09:57:52 +00:00
go.mod fix: Update go-sentry and go-oidc to address CVE's 2026-03-05 19:10:16 +00:00
go.sum fix: Update go-sentry and go-oidc to address CVE's 2026-03-05 19:10:16 +00:00
postinst.sh TUN-9919: Make RPM postinstall scriplet idempotent 2025-10-15 14:33:43 +00:00
postrm.sh TUN-8290: Remove `|| true` from postrm.sh 2024-03-07 16:22:56 +00:00
release_pkgs.py TUN-9800: Add pipelines for linux packaging 2025-11-05 10:45:04 +00:00
wix.json AUTH-2712 mac package build script and better config file handling when started as a service 2020-06-25 16:44:57 -05:00

README.md

cloudflared — EdgeOS & Multi-Arch Fork

🔄 Auto-synced fork of cloudflare/cloudflared with additional builds for UniFi EdgeOS routers and other MIPS devices.

Sync Upstream Release

What is this?

This repository is a fork of the official cloudflare/cloudflared Cloudflare Tunnel client. It adds:

  • Automated upstream sync — A CI/CD pipeline checks for new upstream releases every 6 hours and automatically builds & publishes them here
  • MIPS architecture support — Pre-built binaries and .deb packages for UniFi EdgeOS devices that are not available in the official releases
  • Multi-architecture releases — Every release includes 9 platform/arch combinations plus .deb packages

Supported Architectures

Platform Architecture Binary .deb Devices
Linux amd64 Standard x86_64 servers
Linux arm64 Raspberry Pi 3/4/5, AWS Graviton
Linux armhf (ARMv7) Raspberry Pi 2, 32-bit ARM
Linux arm (ARMv5) Older ARM devices
Linux 386 32-bit x86
Linux mipsle EdgeRouter X / ER-X-SFP (MT7621)
Linux mips64 EdgeRouter Lite / ER-4 / ER-6P / ER-12 (Cavium Octeon)
macOS amd64 Intel Mac
macOS arm64 Apple Silicon (M1/M2/M3/M4)

Quick Install — EdgeOS

EdgeRouter X / ER-X-SFP (MIPS little-endian)

# Download and install the latest release
LATEST=$(curl -s https://api.github.com/repos/cafe-x-technologies/cloudflared/releases/latest | grep tag_name | cut -d '"' -f4)
curl -L -o /tmp/cloudflared.deb "https://github.com/cafe-x-technologies/cloudflared/releases/download/${LATEST}/cloudflared_${LATEST}_mipsel.deb"
sudo dpkg -i /tmp/cloudflared.deb

# Verify installation
cloudflared --version

EdgeRouter Lite / ER-4 / ER-6P / ER-12 (MIPS64 big-endian)

# Download and install the latest release
LATEST=$(curl -s https://api.github.com/repos/cafe-x-technologies/cloudflared/releases/latest | grep tag_name | cut -d '"' -f4)
curl -L -o /tmp/cloudflared.deb "https://github.com/cafe-x-technologies/cloudflared/releases/download/${LATEST}/cloudflared_${LATEST}_mips64.deb"
sudo dpkg -i /tmp/cloudflared.deb

# Verify installation
cloudflared --version

Manual binary install (any architecture)

# Example for mipsle (EdgeRouter X)
LATEST=$(curl -s https://api.github.com/repos/cafe-x-technologies/cloudflared/releases/latest | grep tag_name | cut -d '"' -f4)
curl -L -o /tmp/cloudflared "https://github.com/cafe-x-technologies/cloudflared/releases/download/${LATEST}/cloudflared-linux-mipsle"
chmod +x /tmp/cloudflared
sudo mv /tmp/cloudflared /usr/local/bin/cloudflared

Quick Install — Other platforms

For standard platforms (amd64, arm64, macOS), you can use the official Cloudflare installation methods or download binaries from our Releases page.

See the official cloudflared documentation for more installation options.

How the Sync Works

┌──────────────────────────┐
│  cloudflare/cloudflared   │  Upstream (official)
│  New release tagged       │
└────────────┬─────────────┘
             │  ⏰ Checked every 6 hours
             ▼
┌──────────────────────────┐
│  sync-upstream-release    │  GitHub Actions workflow
│  .yml                     │
├───────────────────────────┤
│ 1. Detect new release tag │
│ 2. Build 9 arch binaries  │
│ 3. Package 5 .deb files   │
│ 4. Create GitHub Release  │
└────────────┬──────────────┘
             ▼
┌──────────────────────────┐
│  cafe-x-technologies/     │  This fork
│  cloudflared/releases     │  With MIPS + all platforms
└───────────────────────────┘

The workflow can also be manually triggered from the Actions tab with options to:

  • Specify a particular upstream tag to sync
  • Force re-release an existing tag

Running cloudflared as a Service on EdgeOS

After installing, you can set up cloudflared as a tunnel service:

# Authenticate (follow the URL that appears)
cloudflared tunnel login

# Create a tunnel
cloudflared tunnel create my-tunnel

# Configure your tunnel (edit the config file)
sudo mkdir -p /etc/cloudflared
sudo cat > /etc/cloudflared/config.yml << 'EOF'
tunnel: <YOUR-TUNNEL-ID>
credentials-file: /root/.cloudflared/<YOUR-TUNNEL-ID>.json

ingress:
  - hostname: myapp.example.com
    service: http://localhost:8080
  - service: http_status:404
EOF

# Run the tunnel
cloudflared tunnel run my-tunnel

To run on boot, create a systemd service or add to EdgeOS task-scheduler.

Development

This fork tracks upstream and adds MIPS architecture support to the Makefile.

Cross-compile for EdgeOS

# EdgeRouter X (mipsle, softfloat)
make cloudflared TARGET_OS=linux TARGET_ARCH=mipsle TARGET_MIPS=softfloat

# EdgeRouter Lite/4/6P/12 (mips64)
make cloudflared TARGET_OS=linux TARGET_ARCH=mips64

# Build .deb package
make cloudflared-deb TARGET_OS=linux TARGET_ARCH=mipsle TARGET_MIPS=softfloat

Build & test (standard)

make cloudflared   # Build for current platform
make test          # Run tests
make lint          # Run linters

For full development documentation, see the upstream README.

Upstream Project

This is a fork of cloudflare/cloudflared — the official Cloudflare Tunnel client.

License

Same as upstream — Apache License 2.0