Instalación

Para probarlo en tu máquina

git clone https://github.com/ssergy/syncapos.git
cd syncapos
docker compose up

Abre http://localhost:8080 y crea tu cuenta: la primera cuenta es la dueña de la instalación, no hay administrador aparte que configurar antes.

No hay archivo que editar antes: las contraseñas que nadie elige las genera el servidor al arrancar y las guarda en un volumen. Si prefieres poner las tuyas, copia deploy/quickstart/.env.example a .env y cámbialas.

Levanta cuatro servicios:

servicio qué es
db PostgreSQL
api el servidor: la consola, la ingesta, el esquema y los roles de cada local
ai-bundle prepara lo que el asistente puede responder
ai el asistente

La primera compilación tarda, sobre todo la imagen del asistente.

Para servir un local de verdad

El stack de producción agrega TLS al frente, secretos como archivos, una lista de destinos permitidos para las llamadas al modelo y límites de recursos:

deploy/production/init-secrets.sh        # genera las contraseñas, una vez
$EDITOR deploy/production/.env           # el nombre del sitio
docker compose --env-file deploy/production/.env \
  -f docker-compose.yml -f deploy/production/compose.yaml up -d

Las dos bases de datos

Base Qué guarda Si la pierdes
syncapos cuentas, locales, cajas, tickets, ventas, facturas, cortes se acabó: es la que hay que respaldar
syncapos_sync el reflejo de la base de cada POS, un esquema por local el agente vuelve a leer el POS y la manda otra vez

Operación

Script Para qué
deploy/production/backup.sh respaldo completo: las dos bases, el .env y los secretos
deploy/production/restore.sh restaurar ese respaldo en una instalación vacía
deploy/production/upgrade.sh subir de versión en el orden correcto, con respaldo previo
deploy/production/rollback.sh volver a las imágenes anteriores; no deshace migraciones
deploy/production/rotate-ai-db-key.sh rotar la contraseña con la que el asistente entra a la base
deploy/production/package-release.sh armar un paquete que se instala sin internet