====== Servidor Casero de Investigación con Debian, Docker y Taguette ====== ===== Especificaciones del Hardware ===== El nodo principal de la red doméstica opera sobre un equipo reciclado y optimizado como servidor *headless* (sin entorno gráfico): * **Modelo de Referencia:** HP Pavilion x360 * **Procesador (CPU):** Intel Pentium N3710 (diseñado para bajo consumo energético) * **Memoria RAM:** 4 GB * **Almacenamiento:** Disco duro mecánico (HDD) adaptado * **Sistema Operativo:** Debian 13 (Trixie) en modo *headless* para maximizar la estabilidad y eficiencia de los contenedores Docker ===== 1. Preparación del Sistema e Identidad ===== Tras realizar una instalación limpia de Debian, procedemos a configurar la identidad y los servicios básicos del sistema. ==== Configuración del Hostname ==== Bautizamos al servidor con un nombre distintivo (por ejemplo, **diogenes.lan**): sudo hostnamectl set-hostname diogenes ==== Corrección del Tiempo del Sistema (Problema de Batería CMOS) ==== Si el equipo posee una batería CMOS agotada, la hora del sistema se desincronizará al reiniciar, provocando fallos en la validación de firmas (`apt`) y certificados TLS. Se soluciona instalando y habilitando `systemd-timesyncd`: sudo apt update sudo apt install systemd-timesyncd -y sudo systemctl enable --now systemd-timesyncd ==== Creación de Identidad y Permisos ==== Se añade al usuario principal al grupo de administración y al grupo de contenedores Docker: sudo usermod -aG sudo,docker tu_usuario ==== Bienvenida y Conmemoración (MOTD Personalizado) ==== Es posible configurar un banner ASCII personalizado y dedicatorias editando el archivo del sistema: sudo nano /etc/motd --- ===== 2. Configuración de Red (IP Estática) ===== Para garantizar que los servicios siempre sean accesibles en la red doméstica bajo la misma dirección, se recomienda asignar una IP estática (por ejemplo, `192.168.1.100` o la que corresponda a tu segmento de red local) mediante el gestor de red del sistema. --- ===== 3. Instalación del Motor Docker y Docker Compose ===== Para levantar los servicios de investigación de forma aislada y ligera, instalamos Docker Engine: sudo apt install docker.io docker-compose-v2 -y sudo systemctl enable --now docker --- ===== 4. Despliegue de Taguette con Docker Compose ===== Taguette is una herramienta web de código abierto para análisis cualitativo de textos. Utilizaremos un despliegue contenerizado combinando una base de datos PostgreSQL y la aplicación corriendo en paralelo. ==== Estructura del Proyecto ==== Creamos la carpeta de trabajo: mkdir -p ~/taguette cd ~/taguette nano docker-compose.yml ==== Contenido de `docker-compose.yml` ==== *(Nota: Reemplaza `un_password_seguro` por una contraseña robusta de tu elección).* yaml services: db: image: postgres:15-alpine container_name: taguette_db restart: unless-stopped environment: POSTGRES_USER: taguette POSTGRES_PASSWORD: un_password_seguro POSTGRES_DB: taguette volumes: - pgdata:/var/lib/postgresql/data taguette: build: https://github.com/remram44/taguette.git#master container_name: taguette_app restart: unless-stopped ports: - "0.0.0.0:8080:7465" environment: - DATABASE_URL=postgresql://taguette:un_password_seguro@db/taguette depends_on: - db volumes: pgdata: ==== Arranque del Servicio ==== Para poner en marcha los contenedores en segundo plano: sudo docker compose up -d --build ==== Obtención del Token de Seguridad ==== En su primer arranque, Taguette genera un token alfanumérico único por seguridad. Para consultarlo y obtener el enlace de acceso: sudo docker compose logs taguette --tail=15 El sistema arrojará una línea de este tipo: > `http://localhost:7465/?token=abc123xyz...` Para entrar desde cualquier dispositivo en la red doméstica, se reemplaza `localhost:7465` por la IP fija de tu servidor y el puerto expuesto: 👉 **`http://:8080/?token=abc123xyz...`** --- ===== 5. Herramientas Auxiliares: OpenCode CLI ===== Para contar con asistencia directa en la terminal del servidor, podemos instalar OpenCode mediante su script oficial: curl -fsSL https://opencode.ai/install | bash source ~/.bashrc Verificamos la correcta instalación ejecutando: opencode --version