Requisitos

  • Docker 20.10+
  • Docker Compose v2+
docker --version
docker compose version

Compilación con Docker

JustC2 incluye un docker-compose.yml con perfiles separados para cada componente.

Compilar el servidor

make docker-build-server

Equivalente a:

docker compose --profile build-server build
docker compose --profile build-server up --abort-on-container-exit
docker compose --profile build-server down

Los binarios se generan en JustServer/server-dist/:

  • justserver
  • ssl_gen.sh
  • profile.yaml
  • 404page.html

Compilar los extenders

make docker-build-extenders

Los extenders compilados se depositan en JustServer/server-dist/extenders/.

Compilar servidor + extenders

make docker-build-server-ext

Compila ambos en un solo paso. Esta es la opción recomendada para despliegues en VPS.

Compilar el cliente (AppImage)

make docker-build-client

Genera un AppImage del cliente en JustClient/client-dist/.

Compilar todo

make docker-build-all

Ejecución con Docker

Iniciar el servidor

make docker-up

El contenedor se ejecuta con las siguientes características:

  • network_mode: host — El contenedor comparte la red del host, necesario para que los listeners escuchen en las interfaces del sistema
  • Volúmenes:
    • server-dist/data/app/data — Datos persistentes (base de datos, descargas)
    • server-dist/profile.yaml/app/profile.yaml (lectura)
  • Recursos limitados: 2 CPU, 2GB RAM (configurable)
  • Restart: unless-stopped

Ver logs

make docker-logs

Detener el servidor

make docker-down

Reiniciar

make docker-restart

Configuración del contenedor

Antes de iniciar el contenedor, configura el profile.yaml en JustServer/server-dist/:

Teamserver:
  interface: "0.0.0.0"
  port: 4321
  endpoint: "/endpoint"
  password: "tu_contraseña_segura"
  only_password: true
  cert: "server.rsa.crt"
  key: "server.rsa.key"
  extenders:
    - "extenders/beacon_listener_http/config.yaml"
    - "extenders/beacon_agent/config.yaml"
    # ... más extenders según necesites

Genera los certificados TLS dentro de server-dist/:

cd JustServer/server-dist
bash ssl_gen.sh

Variables de entorno

VariableDescripciónValor por defecto
TZZona horaria del contenedorUTC
# Ejemplo: establecer zona horaria
TZ=America/New_York make docker-up

Limpieza de Docker

# Eliminar contenedores e imágenes de los builders
make docker-clean

# Eliminar TODO: contenedores, imágenes, volúmenes y redes
make docker-clean-all

Personalización del docker-compose.yml

Ajustar recursos

Edita la sección deploy.resources en docker-compose.yml:

deploy:
  resources:
    limits:
      cpus: '4.0'      # Máximo de CPUs
      memory: 4G        # Máximo de RAM
    reservations:
      cpus: '2.0'       # CPUs reservados
      memory: 2G        # RAM reservada

Deshabilitar restart automático

Cambia restart: unless-stopped a restart: "no" en el servicio just-server-runtime.