Requisitos
Lo que una computadora necesita antes de poder correr Chinaski: sistema operativo, runtime de lenguaje, base de datos, y dimensionamiento. La versión corta: una caja Debian/Ubuntu y Perl 5.26+.
Sistema operativo
- Familia Debian/Ubuntu. Todo lo que Chinaski necesita: incluida cada dependencia de Perl: está disponible en los paquetes estables de Debian, así que un servidor sin modificar se instala sin desvíos del lado del compilador. El instalador de una sola vez maneja la instalación de paquetes él mismo; no hay nada que compilar a mano.
- Las placas ARM (como Raspberry Pi) funcionan, con un detalle: las librerías de imagen listadas abajo necesitan instalación explícita, o el módulo de procesamiento de imágenes no compilará.
Perl y requisitos a nivel de lenguaje
- Perl 5.26 o posterior: los instaladores lo verifican explícitamente y se niegan con un mensaje de error que nombra la versión encontrada si es más vieja.
- El conjunto de dependencias (todas empaquetadas en Debian, con mínimos exactos en el cpanfile del proyecto): Mojolicious, DBI + DBD::SQLite, Template (Template Toolkit), Crypt::Passphrase (+Bcrypt, +PBKDF2), CryptX, Imager, DateTime + DateTime::TimeZone, Archive::Tar, File::Copy::Recursive.
- Dos módulos opcionales alimentan solo al importador de Markdown (CommonMark, que se liga a la librería cmark del sistema, y YAML::PP). Sin ellos el site arranca y todo lo demás funciona; solo esa ruta de importador muestra un error claro dentro del admin.
Paquetes de sistema (instalaciones manuales/sin conexión)
Si estás instalando en una máquina sin conexión o manualmente desde el código fuente, estos paquetes apt se requieren primero: perl, make, gcc, sqlite3, más las librerías dev de imagen (libjpeg, libpng, libgif): y para el instalador en línea también openssl y cpanminus:
- make/gcc: usados solo cuando se compilan los módulos XS (nativos) en el momento de la instalación; el instalador oficial usa en su lugar paquetes Debian precompilados así que ahí no se necesita compilación.
- sqlite3: el CLI de la base de datos, usado para configuración y mantenimiento.
- Librerías de imagen: requeridas por la compilación nativa del módulo Imager.
La base de datos
SQLite: embebida, sin proceso de servidor, sin credenciales que administrar. Corre en modo WAL con una cache de 64 MiB y un busy timeout de 5 segundos, dimensionada para la carga esperada: una sesión de admin activa, builds por lotes periódicos. El backup es una copia de archivo.
Dimensionamiento de recursos
Las unidades systemd incluidas documentan el envoltorio previsto y acotan los procesos desbocados:
| Componente | Tope de memoria | CPU |
|---|---|---|
| Instancia del CMS | 1 GiB (con límite suave de 768 MiB) | el equivalente a 2 núcleos |
| Servidor MCP | 512 MiB (límite suave de 384 MiB) | el equivalente a 1 núcleo |
- Workers: el daemon corre 2 workers por defecto, dimensionados "seguros en una máquina de 1 GB". Si varios editores estarán conectados a la vez, la configuración acepta 4: cómodo en un host de 2+ GB.
- Los builds son procesos separados con su propio límite de tiempo de reloj (30 minutos duros) y un presupuesto de escritura por build: así un solo build desbocado no puede starving la caja indefinidamente.
- Disco: dos consumidores prácticos dominan: la base de datos SQLite (lo que pese tu contenido) y el árbol de salida estática (espejado en los rebuilds). Las instantáneas de backup añaden aproximadamente el tamaño comprimido de la DB por día bajo la retención por defecto de 14 días.
Puertos y postura de red
- Los daemons del backend bindean puertos altos (serie 3000 por número de instancia por defecto; las instalaciones rápidas directas usan 8080) y el reverse proxy es dueño de 80/443: ver la página de troubleshooting de puertos para las reglas exactas de asignación.
- Tras la instalación, las llamadas salientes desaparecen por completo en modo air-gap; la conectividad a internet nunca es requerida para que la aplicación funcione.
Rutas de instalación
- Servidor Debian/Ubuntu: el instalador en línea de una línea (instala paquetes, crea el usuario de sistema, clona, inicializa la base de datos, escribe el archivo env, arranca systemd).
- Sin conexión: la instalación de bundle sin conexión documentada en un lugar que no necesita Internet: instalación solo desde mirror con tarballs incluidos y un archivo de checksum SHA-256 para verificar la integridad.
- Ejecución local rápida: extraer el tar;
install.sh --no-service; correr vía hypnotoad incluido en el puerto 8080: sin systemd, sin reverse proxy, sin llamadas salientes necesarias.