Docker
El camino soportado. El docker compose incluido levanta la app y Postgres juntos.
Arcanum se distribuye como una única imagen Docker más una base de datos Postgres. Todo — la firma WSAA, las claves privadas cifradas, el tráfico SOAP hacia ARCA — ocurre dentro de tu contenedor. Nada se autentica a través de un tercero.
Docker
El camino soportado. El docker compose incluido levanta la app y Postgres juntos.
Dos secretos
Una API key (protege la superficie REST) y una clave maestra (cifra las claves privadas en reposo).
Genéralos con openssl.
Un certificado de ARCA
Por CUIT, en homologación o producción. Arcanum genera el CSR; lo subes a ARCA y
pegas de vuelta el .crt.
Genera primero los dos secretos:
openssl rand -hex 24 # ARCANUM_API_KEY (protects the API)openssl rand -hex 32 # ARCANUM_MASTER_KEY (encrypts the private keys — keep it safe)git clone https://github.com/diegoparras/arcanum.git && cd arcanumcp .env.example .env# edit .env: set ARCANUM_API_KEY and ARCANUM_MASTER_KEYdocker compose up -dEl archivo compose arranca Postgres y la app juntos, mapea el puerto 8094 y reinicia salvo que se
lo detenga. Luego abre http://localhost:8094.
Usa la imagen publicada en GHCR con tu propio Postgres:
docker run -d -p 8094:8094 \ -e ARCANUM_ENV=homo \ -e ARCANUM_API_KEY="$(openssl rand -hex 24)" \ -e ARCANUM_MASTER_KEY="$(openssl rand -hex 32)" \ -e DATABASE_URL="postgres://arcanum:arcanum@your-db:5432/arcanum" \ ghcr.io/diegoparras/arcanum:latesthttp://localhost:8094 e inicia sesión (ARCANUM_ADMIN_USER / ARCANUM_ADMIN_PASS, o la
contraseña impresa una sola vez en los logs si la dejaste vacía)..crt.
La clave privada se almacena cifrada.Toda la configuración vive en .env (cópialo desde .env.example).
| Variable | Default | Descripción |
|---|---|---|
PORT | 8094 | Puerto en el que escucha la app. |
ARCANUM_ENV | homo | Entorno de ARCA por defecto: homo (pruebas) o prod. Se puede cambiar en la UI. |
ARCANUM_API_KEY | (vacío) | Clave para la API REST (X-API-Key). Vacío → se genera y se imprime una sola vez en el log. |
ARCANUM_MASTER_KEY | (vacío) | Clave hex de 32 bytes que cifra las claves privadas en reposo. |
DATABASE_URL | (compose) | Cadena de conexión de PostgreSQL. El archivo compose la conecta al arcanum-db incluido. |
POSTGRES_USER / POSTGRES_PASSWORD / POSTGRES_DB | arcanum | Credenciales del Postgres incluido. |
ARCANUM_ADMIN_USER | (vacío) | Nombre de usuario admin para el panel web. |
ARCANUM_ADMIN_PASS | (vacío) | Contraseña admin. Vacío → se genera y se imprime una sola vez en el log. |
ARCANUM_OIDC_ISSUER | (vacío) | URL del issuer de Lockatus — defínela para federar el login (SSO opcional). |
ARCANUM_OIDC_CLIENT_ID | (vacío) | Slug de la app en Lockatus (arcanum) cuando está federada. |
ARCANUM_OIDC_CLIENT_SECRET | (vacío) | Secreto del cliente OIDC, cuando está federada. |