Hecho con Chinaski

Quickstart

Un sitio totalmente nuevo en cualquier servidor Debian/Ubuntu, sin prerequisitos, en un solo comando:

curl -fsSL https://chinaski.net/install | sudo bash -s -- 1 --repo https://github.com/bigjohncobb/chinaski

Reemplaza 1 por un nombre de instancia: cualquier cosa alfanumérica (2, prod, staging, el nombre de un cliente). Cada instancia es su propio sitio aislado con su propia base de datos; ejecutar varias a la vez es lo normal. El script necesita ninguna configuración previa y se completa en menos de cinco minutos.

Lo que hace el script

Se encarga de todo él mismo:

  • instala los paquetes del sistema requeridos y las dependencias de Perl (desde paquetes Debian precompilados: sin compilación de C)
  • crea un usuario del sistema dedicado chinaski
  • clona el código, inicializa la base de datos, escribe el archivo env
  • inicia el servicio de systemd

Cuando termina, apunta un navegador al admin y continúa por /setup: cambia la contraseña del admin (al menos 12 caracteres, mayúsculas y minúsculas más un dígito), define la URL del sitio y elige tus idiomas. Ese es tu primer sitio listo para editar; el build ocurre cuando tú lo clicas.

Lista de verificación del primer día

Verifica esto antes de enviar tráfico real:

  • El admin está enlazado a loopback. Una verificación de sockets en escucha debería mostrar 127.0.0.1:300<N>, nunca 0.0.0.0: los visitantes no deben alcanzar el CMS directamente desde afuera.
  • Certificado TLS emitido. El Caddyfile de ejemplo instalado por instancia lee tu DNS y renueva los certificados de Let's Encrypt; prueba curl -I https://<host> una vez que el DNS y los puertos 80/443 resuelvan y respondan.
  • Los respaldos están programados. Un snapshot automático diario de la base de datos más los medios corre a las 03:17: verifica que el temporizador de systemd esté activo, y que el directorio de respaldo esté en modo 700 y pertenezca al usuario del servicio. Si editas la programación del reloj manualmente, confirma que systemctl list-timers muestra una próxima ejecución: un typo hace que el temporizador se salte en silencio.
  • Notifica a tu monitor sobre /health. El endpoint de salud del CMS devuelve un reporte JSON agregado: {"status":"ok|warning|critical", timestamp, total_checks, checks[]}: con HTTP 503 solo cuando una verificación crítica falla. (El Chinaski Manager aparte tiene su propio /health que devuelve status/uptime/db/workers/pid en el puerto del plano de control.)
  • Zona horaria: se define desde los ajustes de /admin. Las programaciones usan la zona horaria del sitio; los nombres de zona horaria mal escritos caen a UTC al guardar: revísala, y luego mantén todas tus entradas programadas correctas.

Dos variables de entorno importan en /etc/chinaski<N>/env (modo 0600): CHINASKI_SECRET: la clave aleatoria de 32+ bytes para firmar sesiones: y LISTEN_URL, que debe apuntar a loopback en producción. Las rutas de base de datos y salida se derivan del nombre de instancia por la unidad; normalmente no necesitas sobrescribirlas.

Otras rutas para correr Chinaski

  • Primera ejecución totalmente sin conexión: un script de instalación puede usarse en una máquina sin internet preparando primero un bundle: ejecuta bash install/make-bundle.sh en una máquina conectada, lo que produce un tarball que contiene el código fuente de la aplicación, todos los tarballs de módulos Perl, cpanm incluido, y el script de instalación más un archivo de checksum. Tras copiarlo a la máquina de destino y descomprimirlo, ejecuta sudo bash install.sh: todo se instala sin acceso a internet. En tarjetas ARM ( Raspberry Pi) instala explícitamente las librerías de imagen (libjpeg, libpng, libgif), de lo contrario las herramientas de imagen no compilan.
  • Ejecución sin systemd: descomprime y ejecuta sudo bash install.sh --no-service (opcionalmente --prefix /srv/chinaski), luego inicia mediante el hypnotoad incluido; el admin responde en http://<host-ip>:8080/admin. El archivo env ya contiene el secreto y el modo air-gap.
  • HTTP plano, para siempre: donde nunca existirán ni DNS ni autoridad de certificados, hypnotoad puede servir directamente sobre HTTP: sin certificados que adquirir, renovar o que expiren.

Qué pasa después

La primera visita al admin redirige a /setup; una vez reemplazada la contraseña placeholder, esa página desaparece (devuelve 404). Desde ahí toma el relevo el ciclo cotidiano de editar → compilar → servir (ver How It Works): y si alguna vez pierdes la contraseña del admin, perl bin/reset-admin.pl te devuelve a ese mismo estado de setup.

Lee este sitio en