Tabla de Contenidos

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:

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://<IP_DE_TU_SERVIDOR>: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