signoli/cloudflared-rb3011

By signoli

Updated 2 months ago

Imagen Docker lista para usar con cloudflared precompilado para arquitectura ARMv7 32-bit.

Image
Networking
0

251

signoli/cloudflared-rb3011 repository overview

Cloudflare Tunnel para MikroTik RB3011 (ARMv7 32-bit)

Imagen Docker lista para usar con cloudflared precompilado para MikroTik RB3011 y otros routers con arquitectura ARMv7 32-bit corriendo RouterOS v7.x con el paquete container.

Solo necesitás cargar el token del túnel de Cloudflare. El resto ya viene resuelto.


✨ Características

  • 🪶 Basada en Alpine Linux (~15 MB)
  • 🔧 Binario oficial cloudflared de Cloudflare ya instalado
  • 🎯 Compilada específicamente para ARMv7 32-bit (RB3011, hAP, etc.)
  • 🔑 Soporta token vía variable de entorno o argumento CMD
  • ♻️ Persistente: arranca automáticamente con el router
  • 📦 Optimizada para los ~87 MB de almacenamiento del RB3011

🚀 Quick Start (3 pasos)

1. Obtener el token del túnel

En Cloudflare Zero Trust DashboardNetworks → Tunnels → Create tunnel → copiá el token (empieza con eyJ...).

2. Crear el contenedor en MikroTik
# Configurar el registry de Docker Hub
/container/config
set registry-url=https://registry-1.docker.io tmp-dir=slot1/tmp

# Agregar variable de entorno con el token
/container/envs
add list=cloudflared name=TUNNEL_TOKEN value="eyJhIjoiTU_TOKEN_AQUI..."

# Crear el contenedor
/container
add remote-image=signoli/cloudflared-rb3011:latest \
    name=cloudflare-tunnel \
    interface=veth-cloudflare \
    root-dir=slot1/cloudflared \
    envlist=cloudflared \
    start-on-boot=yes
3. Iniciar el túnel
/container/start [find name=cloudflare-tunnel]

# Ver logs para confirmar
/container/shell cloudflare-tunnel
# o desde el log del sistema
/log/print where topics~"container"

Listo. El túnel queda activo y arranca solo con el router.


📋 Requisitos previos en MikroTik

Si ya tenés el setup de red del contenedor armado, saltá esta sección.

Paquete container instalado
/system/package/print
# Debe aparecer "container" en la lista

Si no lo tenés: descargar de mikrotik.com/download el paquete container para tu arquitectura, subirlo al router y reiniciar.

Bridge dedicado e interfaz VETH
# 1. Bridge dedicado para contenedores
/interface/bridge
add name=docker-bridge

# 2. Red 172.17.0.0/24 con el router como gateway
/ip/address
add address=172.17.0.1/24 interface=docker-bridge

# 3. Interfaz virtual VETH para el contenedor
/interface/veth
add name=veth-cloudflare address=172.17.0.2/24 gateway=172.17.0.1

# 4. Asociar la VETH al bridge
/interface/bridge/port
add bridge=docker-bridge interface=veth-cloudflare

# 5. NAT masquerade para que el contenedor salga a internet
/ip/firewall/nat
add chain=srcnat src-address=172.17.0.0/24 action=masquerade
Habilitar contenedores (requiere reinicio)
/system/device-mode/update container=yes
# Confirmar presionando el botón físico del router cuando lo pida

🔐 Métodos de autenticación

Opción A — Variable de entorno (recomendado)
/container/envs/add list=cloudflared name=TUNNEL_TOKEN value="eyJ..."

/container/add remote-image=signoli/cloudflared-rb3011:latest \
    name=cloudflare-tunnel \
    interface=veth-cloudflare \
    root-dir=slot1/cloudflared \
    envlist=cloudflared

Ventajas: el token no queda en el campo cmd del contenedor, más fácil de rotar.

Opción B — Token en CMD (compatible con setups previos)
/container/add remote-image=signoli/cloudflared-rb3011:latest \
    name=cloudflare-tunnel \
    interface=veth-cloudflare \
    root-dir=slot1/cloudflared \
    cmd="tunnel --no-autoupdate run --token eyJ..."

⚠️ El ENTRYPOINT de la imagen ya invoca cloudflared, así que en cmd no hay que repetir /usr/local/bin/cloudflared.


🧪 Verificación

Estado del contenedor
/container/print
# Debe mostrar status=running
Logs del túnel
/container/shell cloudflare-tunnel
# Una vez adentro, los logs van por stdout del entrypoint

O desde el log de RouterOS:

/log/print where topics~"container"
Confirmación en Cloudflare

En el dashboard de Zero Trust → Networks → Tunnels debería figurar como HEALTHY en pocos segundos.


🛠️ Troubleshooting

ProblemaCausa probableSolución
no such image al hacer addRegistry mal configuradoVerificar /container/config printregistry-url=https://registry-1.docker.io
manifest unknownArquitectura incorrectaEsta imagen es solo ARMv7. Confirmá con /system/resource/printarchitecture-name: arm
Contenedor arranca y muereToken inválido o sin definirVerificar la env var con /container/envs/print
Sin acceso a internet desde el contenedorFalta NAT o gatewayRevisar /ip/firewall/nat/print y la IP de la VETH
no space left on deviceMemoria flash llenaEliminar imágenes viejas: /container/print y /container/remove

📦 Tags disponibles

TagDescripción
latestÚltima versión estable de cloudflared sobre Alpine 3.20
YYYY.MM.XVersión específica de cloudflared (ej: 2025.1.0)

📐 Specs técnicos

ParámetroValor
Imagen basearm32v7/alpine:3.20
Arquitecturalinux/arm/v7
Binariocloudflared-linux-arm (Cloudflare oficial)
Tamaño aprox.~30 MB
Hardware testeadoMikroTik RB3011UiAS
RouterOSv7.20.1+ con paquete container

📝 Origen

Imagen basada en el procedimiento manual documentado para desplegar cloudflared en MikroTik RB3011 vía Alpine + instalación manual del binario. Esta imagen automatiza ese flujo: ya viene todo precompilado, solo hace falta el token.

📄 Licencia

cloudflared es de Cloudflare, Inc. bajo licencia Apache 2.0. Este wrapper se distribuye sin garantías.

Tag summary

Content type

Image

Digest

sha256:d662db137

Size

20 MB

Last updated

2 months ago

docker pull signoli/cloudflared-rb3011