Cómo instalar IronCalc en Docker - Spreadsheet engine Rust autohospedado

IronCalc | Spreadsheet Engine | Rust | Docker | Excel-compatible | 300+ functions | Python/JavaScript bindings | Open source

IronCalc en Docker: Motor hojas de cálculo Rust autohospedado con soporte Excel .xlsx, 300+ funciones, bindings Python/JavaScript, sin vendor lock-in, alternativa Gnumeric/LibreOffice calc, embebible/self-hosted, 2.5k+ stars, MIT/Apache 2.0 open source, production-ready 📊🔧

IronCalc es un motor de hojas de cálculo completamente autohospedado construido en Rust. Alternativa moderna a Excel/Google Sheets/LibreOffice Calc sin vendor lock-in. Soporte .xlsx completo (import/export preservando formulas + formato). 300+ funciones Excel-compatible (LET/LAMBDA/FILTER). Bindings Python + JavaScript. Multi-idioma + multi-locale. Se puede embeber en aplicaciones o usar como servicio web self-hosted. 2.5k+ GitHub stars. MIT/Apache 2.0 open source. Desarrollo activo.

Vídeo tutorial en YouTube

Mira el vídeo completo sobre cómo instalar y usar IronCalc en Docker en el canal GENBYTE:

¿Qué es IronCalc en Docker?

IronCalc es un motor de hojas de cálculo completamente autohospedado construido en Rust que proporciona alternativa moderna a Excel/Google Sheets/LibreOffice Calc con soporte .xlsx completo (import/export preservando formulas + formato), 300+ funciones Excel-compatible (LET/LAMBDA/FILTER), bindings Python + JavaScript, multi-idioma + multi-locale, sin vendor lock-in, embebible en aplicaciones o deployable como servicio web self-hosted. Spreadsheet engine que pedías sin depender de terceros.

Propuesta clave: Open source spreadsheet engine (Rust-powered). Import/export .xlsx files. Preserve formulas, formatting, named ranges. 300+ functions (Excel-compatible). Advanced features: LET/LAMBDA, FILTER, dynamic arrays, conditional formatting, multiple sheets. Python bindings (PyPI). JavaScript bindings (npm wasm). NodeJS support. Multi-language support (EN, DE, FR, IT, ES, etc). Multi-locale (date/number formatting). Timezone handling. Zero vendor lock-in. Deploy as web app (React UI). Embed in applications. CLI tools. API-driven. MIT + Apache 2.0 dual licensing. 2.5k+ GitHub stars. Active development. Roadmap: Version 1.0 (stable), Version 2.0 (charts, pivot tables, merge cells, formula help).

Para developers: Spreadsheet functionality sin Excel/Google Sheets dependencies. Embebible. Headless (formula logic programmatic). Self-hosted complete control.

Características principales

Import/Export .xlsx

Lee y escribe Excel. Preserva formulas, formato, estilos, nombres.

300+ funciones Excel

LET, LAMBDA, FILTER, MAP, REDUCE. Comportamiento compatible Excel.

Hojas múltiples

Multi-sheet workbooks. Named ranges. Cross-sheet formulas.

Formatos avanzados

Rich formatting. Conditional formatting. Cell alignment, borders, colores.

Python bindings

PyPI package. Instala con pip. Usa IronCalc desde Python.

JavaScript bindings

npm package + WASM. NodeJS + browser support.

Web UI (React)

Modern interface. Responsive. Docker ready. 2080 puerto por defecto.

Multi-idioma

Soporte múltiples idiomas. Locales (date/number formatting).

API REST

Headless mode. Integra con cualquier aplicación.

CLI tools

Command-line interface. Procesa spreadsheets en scripts/bash.

Open source MIT+Apache

Dual licensing. Usa libremente. Modifica. Despliega anywhere.

Nextcloud integration

App Nextcloud oficial (proof of concept). Open con IronCalc.

Requisitos del sistema

  • Docker & Docker Compose v2+
  • 2 GB - 4 GB RAM mínimo (Rust app, Node.js wasm)
  • 1 GB - 10 GB espacio disco (aplicación + datos spreadsheets)
  • Puerto TCP: 2080 (web UI, configurable)
  • Rust 1.75+ (opcional, si builds from source)
  • Node.js 22+ (bundled en imagen Docker o necesario para dev)
  • WASM toolchain (bundled en Docker)
  • Opcional: Reverse proxy nginx/Caddy + HTTPS
⚠️ Work-in-progress: IronCalc está en desarrollo activo. Versión 1.0 aún en roadmap. Expect cambios. Lee changelog antes de update.
💡 Para desarrollo: Si quieres contribuir o compilar from source, necesitas Rust 1.75+ + Node.js 22 + wasm-pack.

Instalación con Docker Compose

Paso 1: Clonar repositorio

git clone https://github.com/ironcalc/IronCalc.git cd IronCalc

Paso 2: Iniciar con Docker Compose

# Compilar imagen + iniciar servicios docker compose up --build # O si ya tienes imagen compilada: docker compose up -d

Paso 3: Acceder a IronCalc

# Espera ~30 segundos para que compile (primera vez) # Luego abre en navegador: http://localhost:2080 # Desde otro dispositivo: http://192.168.1.100:2080

Acceder a IronCalc

📊 IronCalc Web UI: http://localhost:2080

Primeros pasos

  1. Abre http://localhost:2080 en navegador
  2. Interfaz web limpia y moderna (React)
  3. Crea nuevo spreadsheet o importa .xlsx existente
  4. Edita: datos, formulas, formato, múltiples hojas
  5. Exporta como .xlsx (preserva todo)
💡 No hay login requerido (por defecto). Para production, configura autenticación en reverse proxy.

Casos de uso

  • Aplicaciones que necesitan spreadsheets: Embeber IronCalc. Python/JavaScript bindings. Lógica fórmulas en backend.
  • Reportes automáticos: Genera .xlsx con Python. Formulas + datos. Sin Excel/LibreOffice.
  • SaaS con feature spreadsheet: Embeber engine. Multi-tenant. Proporciona Excel-like UI a users.
  • Migration from Excel: Importa librerías Excel. Usa en Python/JS. Sin vendor lock-in Excel.
  • Nextcloud integration: Open spreadsheets directamente en Nextcloud con IronCalc UI.
  • Data analysis tools: Carga datos, formulas, export resultados .xlsx.

Usar IronCalc con Python

Instalación

pip install ironcalc

Ejemplo básico

from ironcalc import IronCalc # Crear nuevo workbook calc = IronCalc() # Agregar datos calc.set_cell("A1", "Nombre") calc.set_cell("B1", "Edad") calc.set_cell("A2", "Juan") calc.set_cell("B2", 30) # Agregar fórmula calc.set_cell("B3", "=AVERAGE(B2:B2)") # Exportar como .xlsx calc.save("reporte.xlsx")

Usar IronCalc con JavaScript

Instalación (npm)

npm install ironcalc

Ejemplo básico (Node.js)

const IronCalc = require('ironcalc'); # Crear workbook const calc = new IronCalc(); # Datos calc.setCell("A1", "Producto"); calc.setCell("B1", "Precio"); calc.setCell("A2", "Laptop"); calc.setCell("B2", 1200); # Fórmula calc.setCell("B3", "=SUM(B2:B2)"); # Exportar calc.save("datos.xlsx");

Gestión y mantenimiento

Ver estado

docker compose ps

Ver logs

docker compose logs -f

Detener IronCalc

docker compose down

Actualizar versión

docker compose pull docker compose up -d --build

Monitorear consumo

docker stats # Típicamente: # CPU: 0-10% idle # RAM: 400-800MB # Pico durante compilación: 2-4 GB

Stack técnico

  • Backend: Rust (Axum framework)
  • Frontend: React 19 (TypeScript)
  • Spreadsheet engine: IronCalc core (Rust)
  • WASM: wasm32-unknown-unknown target
  • Build tools: wasm-pack, cargo, npm
  • API: REST (OpenAPI)
  • Bindings: Python (PyPI), JavaScript (npm/wasm)
  • Deployment: Docker, Docker Compose
  • Licencia: MIT + Apache 2.0 (dual)

Comparativa con alternativas

vs LibreOffice Calc

IronCalc gana: Modern, lightweight, embebible, headless. LibreOffice gana: Feature-complete, macros, charts, pivot tables.

vs Excel (on-prem)

IronCalc gana: Open source, cross-platform, headless, no vendor lock-in. Excel gana: Polish, ecosystem, macros VBA, support.

vs Gnumeric

IronCalc gana: Modern codebase (Rust), Python/JS bindings, active development. Gnumeric gana: Mature, feature-complete.

Mejor para: Developers. Open source projects. Embedded spreadsheets. Python/JavaScript automation. Self-hosted infrastructure. No vendor lock-in.

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.