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
Tras realizar una instalación limpia de Debian, procedemos a configurar la identidad y los servicios básicos del sistema.
Bautizamos al servidor con un nombre distintivo (por ejemplo, diogenes.lan):
sudo hostnamectl set-hostname diogenes
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
Se añade al usuario principal al grupo de administración y al grupo de contenedores Docker:
sudo usermod -aG sudo,docker tu_usuario
Es posible configurar un banner ASCII personalizado y dedicatorias editando el archivo del sistema:
sudo nano /etc/motd
—
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.
—
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
—
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.
Creamos la carpeta de trabajo:
mkdir -p ~/taguette cd ~/taguette nano 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:
Para poner en marcha los contenedores en segundo plano:
sudo docker compose up -d --build
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…`
—
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