Crontab-UI es una interfaz Web de usuario para administrar trabajos programados en sistemas basados en Unix/Linux. Permite programar tareas recurrentes en momentos específicos utilizando el servicio "cron" que está disponible en la mayoría de los sistemas operativos de tipo Unix.
La interfaz de usuario de Crontab-UI es una herramienta gráfica que simplifica la creación, edición y eliminación de tareas cron. Permite a los usuarios establecer tareas en intervalos regulares, como horas, días, semanas o meses, y también ofrece la posibilidad de configurar tareas cron avanzadas, como tareas programadas en días de la semana específicos o días festivos.
En este artículo te explicaremos cómo instalarlo y configurarlo en un Ubuntu/Debian con un proxy inverso con NGINX para utilizar Certbot para adquirir y renovar el certificado SSL (también un servicio systemd para crontab-ui).
Cómo instalar Node.js, NPM y Crontab-UI
Primero, actualiza los repositorios y paquetes:
# apt update && apt upgrade -yE instala las dependencias esenciales:
# apt install build-essentialLuego utiliza el script oficial de Node.js:
# curl -sL https://deb.nodesource.com/setup_18.x | bash -Posteriormente instala Node.js (también instala NPM):
# apt install -y nodejsY utiliza NPM para crontab-ui:
# npm install -g crontab-uiCómo configurar proxy inverso para Crontab-UI
Para configurar el proxy inverso, primero instala NGINX:
# apt install nginx -yE instala los utils de Apache para auth_basic de NGINX:
# apt install apache2-utils -yLuego utiliza htpasswd para crear el archivo y el usuario crontab:
# htpasswd -c /etc/nginx/.htpasswd crontabAsigna la contraseña deseada y recuerda que serán las credenciales de acceso al crontab-ui. Después elimina la configuración por defecto de NGINX:
# rm /etc/nginx/sites-enabled/defaultCrea de nuevo el archivo con un editor:
# nano /etc/nginx/sites-enabled/defaultY añade el siguiente contenido en él:
server {
listen 80;
server_name crontab.ejemplo.com;
auth_basic "Acceso restringido";
auth_basic_user_file /etc/nginx/.htpasswd;
location / {
proxy_pass http://localhost:8000/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Por seguridad, modifica la propiedad del archivo htpasswd y sus permisos:
# chown root:www-data /etc/nginx/.htpasswd && chmod 640 /etc/nginx/.htpasswdCómo configurar servicio systemd para Crontab-UI
Crea un usuario crontabui para levantar un servicio para Crontab-UI (por seguridad sin permisos sudo):
# adduser crontabuiAsígnale la propiedad del directorio de Crontab-UI:
# chown -R crontabui:crontabui /usr/lib/node_modules/crontab-uiY posteriormente, crea el archivo para el servicio systemd con un editor:
# nano /etc/systemd/system/crontab-ui.serviceAñade el siguiente contenido:
[Unit]
Description=Crontab UI
After=network.target
[Service]
ExecStart=/usr/bin/node /usr/bin/crontab-ui
WorkingDirectory=/home/crontabui
Restart=always
User=crontabui
[Install]
WantedBy=multi-user.target
Guarda los cambios y sal del editor. Luego activa el servicio y levántalo:
# systemctl enable crontab-ui.service && systemctl start crontab-ui.servicePuedes comprobar el estado del servicio ejecutando:
# systemctl status crontab-ui.serviceCómo configurar certificado SSL en el proxy inverso
Instala Certbot para adquirir y configurar el certificado:
# apt install python3-certbot-nginx -yY ejecuta certbot con el registro configurado en la configuración de NGINX:
# certbot --nginx --redirect -d crontab.ejemplo.comUna vez realizada esta última acción, tendrás listo Crontab-UI y puedes acceder a él con el registro DNS configurado, en el navegador te aparecerá una ventana para la introducción del usuario creado utilizando htpasswd.
Esperamos que este artículo te haya sido de ayuda, si tienes consultas sobre esta u otra cuestión relacionada con tus servidores en Clouding, no dudes en contactar a soporte@clouding.io. ¡Estamos para ayudarte!