Instalación del Ecosistema Devjobs: Pipeline Completo desde Cero

Instalación del Ecosistema Devjobs: Pipeline Completo desde Cero

Guía de instalación paso a paso del ecosistema Devjobs: credenciales de Telegram, grabador de directos, monitor de ffmpeg, pipeline de 160 canales de YouTube, bot, scrapers y auto-arranque con systemd. Solo instalación: toda la explicación del código está en el proyecto.

FECHA:
AUTOR:Jorge Beneyto Castelló
LECTURA:6 MINUTOS DE LECTURA

Este post es solo la instalación: credenciales, clonado, configuración, build y auto-arranque.

📚 ¿Buscas entender cómo funciona el código, los pipelines, los casos de uso y las situaciones operativas? Eso está explicado para principiantes en Ecosistema Devjobs: Suite de Automatización — allí vive toda la explicación, autocontenida.


1. El mapa del ecosistema

Instalarás dos repos que juntos forman toda la suite:

RepoQué instalaPara qué
devjobsEl ecosistema completo (pipelines, bot, scrapers, backup)Todo lo demás de esta guía

Los componentes que se levantan:

ComponenteFunción
Pipeline 1 (Twitch)Graba directos de Sendo Sama y los sube a Telegram
Pipeline 2 (YouTube)Descarga 160 canales de YouTube y los sube a Telegram
Bot TelegramBot interactivo del grupo
ScrapersNoticias, tips, cine
AliasesControl desde terminal
SystemdAuto-arranque al boot

✅ Todo lo demás (monitores, uploaders, IPC, keywords, OCR) está explicado en el post de myprojects, no aquí. Aquí solo se instala.


2. Requisitos previos

  • Windows 10/11 con WSL2 y Docker Desktop (o Docker Engine en Linux)
  • Git (viene con WSL2)
  • Unos 20 GB de disco libre y una cuenta de Telegram

📚 Todo el funcionamiento interno (keyword _KW_, OCR/sidecar, IPC, casos de uso) está explicado y autocontenido en Ecosistema Devjobs: Suite de Automatización.

3. Obtener el API ID y Hash de Telegram

Necesitas un API ID y un API Hash para que el bot/uploader puedan conectarse a la API de Telegram. Son tuyos y de tu cuenta: no uses los de otra persona.

  1. Ve a https://my.telegram.org e inicia sesión con tu número.
  2. Entra en API development tools.
  3. Crea una app: título y short name cualquiera (ej. Devjobs, devjobs).
  4. Copia el api_id (número) y el api_hash (cadena).

⚠️ Mantén estos datos en secreto: quien los tenga puede acceder a tu sesión de Telegram.

Desde terminal:

# Guardar como variables de entorno
echo 'export TG_API_ID=12345678' >> ~/.bashrc
echo 'export TG_API_HASH=abcdef...' >> ~/.bashrc
source ~/.bashrc

4. Obtener el token del bot de Telegram

Para el pipeline (uploader/bot) necesitas el token de un bot. Crea uno con @BotFather:

  1. Abre Telegram y busca @BotFather.
  2. /newbot → nombre → username.
  3. Copia el token (123456789:AAF...).

Guárdalo:

echo 'export BOT_TOKEN=123456789:AAF...' >> ~/.bashrc
source ~/.bashrc

💡 El bot es para subir contenido; la sesión de usuario (paso 7) es para los grupos privados.


5. Clonar el repositorio

cd ~
git clone git@github.com:jorbencas/devjobs.git
cd devjobs

6. Configurar variables de entorno

El repo trae archivos de ejemplo. Cópiate y rellena los reales:

cd ~/devjobs
cp .env.example .env
nano .env

Rellena al menos:

  • TG_API_ID / TG_API_HASH (paso 3)
  • BOT_TOKEN (paso 4)

🤖 La ruta data/ se crea automáticamente al primer arranque.


7. Crear la sesión de Telegram

Para los grupos privados (pipeline 1 y 2) necesitas una sesión de usuario. El repo incluye un script:

cd ~/devjobs
python3 -m pip install -r requirements.txt  # solo la primera vez
python3 -m scripts.crear_sesion

Sigue las instrucciones: introduce tu número y el código que te llega. Se generará un archivo .session que el uploader usará.

🔐 Mantén ese .session en secreto y no lo subas a GitHub.


8. Configurar grupos de Telegram

El uploader necesita saber a qué grupo y temas subir. Configura en config/:

cd ~/devjobs && nano config/grupos.json

Estructura mínima:

{
  "grupo": "Stream Tecnologia",
  "temas": {
    "wordle": { "topic_id": 5, "keyword": "wordle" },
    "midudev": { "topic_id": 12, "keyword": "midudev" }
  }
}

🔗 Cómo se obtiene cada topic_id y casuística completa: el contrato de keyword y el ruteo.


9. Construir las imágenes Docker

cd ~/devjobs
docker compose build

O si prefieres construir solo algunos servicios:

docker compose build twitchrecorder-sendo ffmpeg_monitor-sendo uploader-sendo

10. Instalar los aliases

El repo incluye un instalador de aliases (40+ comandos pipe_*, ff_*, tg_*):

cd ~/devjobs
bash servicios/instalar_aliases.sh
source ~/.bashrc

Verifica:

pipe_help   # muestra todos los aliases

🔗 Todos los aliases explicados: Sistema de aliases.


11. Probar el pipeline

Arranca todo el ecosistema:

pipe_up
  • Pipeline 1: twitchrecorder-sendo (grabador), ffmpeg_monitor-sendo (compresor), uploader-sendo (subidor a Telegram)
  • Pipeline 2: yt-pipeline (descarga → convierte → sube) con su cron
  • Bot: telegram-bot

Prueba el estado con el bot: /estado desde Telegram, o en terminal:

pipe_ps        # contenedores en marcha
plogs          # logs de los 3 daemons a la vez

12. Auto-arranque con systemd

Para que todo arranque solo al encender el PC:

# Instalar servicios (una sola vez)
bash servicios/bootstrap_arrancar.sh

# Gestionar
sudo systemctl status  twitch-stream-pipeline.service
sudo systemctl status  telegram-bot.service

🔗 Servicios, aliases *_sys_* y bootstrap en otra máquina: Systemd.


Verificación final

ComprobaciónCómo
¿Contenedores arriba?docker ps
¿Grabando un directo?plogs o ff_logs
¿El bot responde?/estado en Telegram
¿Pipeline 2 arranca?cat data/yt-pipeline/logs/cron_$(date +%Y%m%d).log

Troubleshooting

ProblemaSolución
La sesión no conectaRegenera .session con crear_sesion
El bot no respondeRevisa BOT_TOKEN y DATA_BOT en .env
No graba ningún directoComprueba la config del canal y start_time
Los contenedores no arrancandocker compose build de nuevo; revisa puertos
No hay tema en TelegramRevisa grupos.json y el topic_id

El resto de piezas (explicadas en myprojects)

Toda la explicación del código y los casos de uso (no instalación) vive ahora en Ecosistema Devjobs: Suite de Automatización:

  • Pipeline 1 (Twitch → Telegram): detección de directo, playlist congelada, keyword _KW_, sidecar, IPC, cambio de plataforma a mitad
  • Pipeline 2 (YouTube → Telegram, 160 canales): configuración, flujo, cron
  • Monitor de ffmpeg: por qué no hay un monitor.json, flags y variables
  • backup_youtube.sh y resto de herramientas Docker (casos de uso)
  • Bot, scrapers, aliases y systemd: detalles operativos completos

Ahí está todo explicado paso a paso para que cualquiera lo entienda sin haber instalado nada.

COMPARTIR:
COMENTARIOS:

📋 Contenido