Despliegue con Docker
Requisitos
- Docker 20.10+
- Docker Compose v2+
docker --version
docker compose versionCompilación con Docker
JustC2 incluye un docker-compose.yml con perfiles separados para cada componente.
Compilar el servidor
make docker-build-serverEquivalente a:
docker compose --profile build-server build
docker compose --profile build-server up --abort-on-container-exit
docker compose --profile build-server downLos binarios se generan en JustServer/server-dist/:
justserverssl_gen.shprofile.yaml404page.html
Compilar los extenders
make docker-build-extendersLos extenders compilados se depositan en JustServer/server-dist/extenders/.
Compilar servidor + extenders
make docker-build-server-extCompila ambos en un solo paso. Esta es la opción recomendada para despliegues en VPS.
Compilar el cliente (AppImage)
make docker-build-clientGenera un AppImage del cliente en JustClient/client-dist/.
Compilar todo
make docker-build-allEjecución con Docker
Iniciar el servidor
make docker-upEl 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-logsDetener el servidor
make docker-downReiniciar
make docker-restartConfiguració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 necesitesGenera los certificados TLS dentro de server-dist/:
cd JustServer/server-dist
bash ssl_gen.shVariables de entorno
| Variable | Descripción | Valor por defecto |
|---|---|---|
TZ | Zona horaria del contenedor | UTC |
# Ejemplo: establecer zona horaria
TZ=America/New_York make docker-upLimpieza 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-allPersonalizació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 reservadaDeshabilitar restart automático
Cambia restart: unless-stopped a restart: "no" en el servicio just-server-runtime.