Primeros pasos

Instalación con Docker

Despliega TraDoc desde GHCR en el puerto coherente 2507 del host Docker y del contenedor.

TraDoc utiliza el puerto 2507 en el host Docker y 2507 dentro del contenedor de producción. Su base de datos, documentos y datos del proveedor persisten en ./data.

Docker Compose listo para copiar

services:
  tradoc:
    image: ghcr.io/lucas-lepajollec/tradoc:latest
    ports:
      - "2507:2507"
    env_file:
      - path: .env
        required: false
    volumes:
      - ./data:/app/data
    extra_hosts:
      - "host.docker.internal:host-gateway"
    restart: unless-stopped

Inicia y comprueba TraDoc:

mkdir -p data
sudo chown -R 1000:1000 data
docker compose pull
docker compose up -d --force-recreate
docker compose ps
curl http://localhost:2507/health

Los dos primeros comandos preparan un bind mount de Linux para el UID/GID sin root 1000:1000 de la imagen. Docker Desktop suele gestionar por sí mismo el uso compartido de archivos del host. Nunca sustituyas la propiedad correcta por chmod 777.

El primer inicio no requiere .env. Un .env opcional no versionado puede sustituir los ajustes iniciales del proveedor; copia .env.example y sustituye sus valores de ejemplo antes de reiniciar. Un valor antiguo de APP_SECRET se ignora.

Abre http://<ip-del-servidor>:2507 desde la LAN. La imagen ya se ejecuta sin root e incluye su propia comprobación de salud en el puerto 2507; Compose no repite esos ajustes. Configura después el proveedor, la clave y el modelo dentro de TraDoc.

La entrada host.docker.internal permite al contenedor acceder a un servidor de inferencia ejecutado directamente en el host Docker. Cambia LLM_ENDPOINT si el proveedor está en otro lugar.

Compilar desde el código fuente

git clone https://github.com/lucas-lepajollec/tradoc.git
cd tradoc
docker compose -f docker-compose.yml -f docker-compose.build.yml up -d --build

El override compila tradoc:local sin cambiar el puerto 2507 ni ./data.

Actualizar con seguridad

Detén TraDoc y respalda todo el directorio data antes de actualizar. Después descarga la imagen y vuelve a crear el contenedor. No uses docker compose down -v ni elimines data durante una actualización normal. Consulta Actualizaciones.