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/chinaskiReemplaza 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>, nunca0.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-timersmuestra 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/healthque devuelvestatus/uptime/db/workers/piden 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.shen 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,cpanmincluido, y el script de instalación más un archivo de checksum. Tras copiarlo a la máquina de destino y descomprimirlo, ejecutasudo 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 enhttp://<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.