Ir al contenido

Instalar Arcanum

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:

Ventana de terminal
openssl rand -hex 24 # ARCANUM_API_KEY (protects the API)
openssl rand -hex 32 # ARCANUM_MASTER_KEY (encrypts the private keys — keep it safe)
Ventana de terminal
git clone https://github.com/diegoparras/arcanum.git && cd arcanum
cp .env.example .env
# edit .env: set ARCANUM_API_KEY and ARCANUM_MASTER_KEY
docker compose up -d

El archivo compose arranca Postgres y la app juntos, mapea el puerto 8094 y reinicia salvo que se lo detenga. Luego abre http://localhost:8094.

  1. Abre http://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).
  2. Elige el entorno — homologación o producción — desde el menú (entorno de ARCA). Puedes cambiarlo más tarde, en caliente, sin volver a desplegar.
  3. Agrega un cliente (CUIT). Arcanum genera el CSR; súbelo a ARCA y pega de vuelta el .crt. La clave privada se almacena cifrada.
  4. Sigue la guía de activación por servicio para autorizar cada servicio web, y luego emite tu primera llamada desde el panel o por REST.

Toda la configuración vive en .env (cópialo desde .env.example).

VariableDefaultDescripción
PORT8094Puerto en el que escucha la app.
ARCANUM_ENVhomoEntorno 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_DBarcanumCredenciales 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.