Guía completa
Instalación, uso diario, copias de seguridad y resolución de problemas — paso a paso, sin necesidad de saber de tecnología.
Dos formas de instalar
OficinaOS es siempre el mismo programa — la diferencia está en cómo se ejecuta en el PC de la tienda. El instalador elige el camino correcto solo, pero conviene entender los dos:
Docker es la forma normal y recomendada: un programa gratuito que empaqueta la app y la base de datos en «contenedores» aislados. Necesita una función del procesador llamada virtualización — la mayoría de los PCs la tienen, pero algunos la traen desactivada en la BIOS o no la soportan.
El modo portátil existe para esos PCs: trae todo en un único paquete (la app, la base de datos PostgreSQL y el runtime), sin Docker, sin virtualización y sin servicios de Windows.
| Docker (recomendado) | Portátil (alternativa) | |
|---|---|---|
| Cuándo usarlo | Siempre que sea posible | PCs sin virtualización (VT-x/SVM) |
| Requisitos | Docker Desktop + virtualización en BIOS | Cualquier Windows 10/11 64-bit |
| Descarga | ~1 GB (Docker + app) | ~540 MB (todo incluido) |
| Arranque con el PC | Automático | Automático (opcional, se pregunta la 1ª vez) |
| Si la app falla | Se reinicia sola | Se reinicia sola (wrapper) |
| Copias de seguridad | Diarias, automáticas (cada 24h) | En cada arranque + BACKUP.bat manual |
| Copias fuera del PC | Soportado (rclone → S3/B2/GCS) | Manual — copiar la carpeta de backups |
| Actualizaciones | Solo descarga lo que cambió; automático opcional | Descarga el paquete entero; siempre manual |
| Acceso remoto (HTTPS) | Cloudflare Tunnel incluido | Cloudflare Tunnel instalado aparte |
Instalación normal — Docker (una vez, ~10 minutos)
Descarga el instalador ZIP, extráelo en una carpeta (ej.: C:\OficinaOS) y haz doble clic en INSTALAR.bat. Si Windows Defender SmartScreen avisa: «Más información» → «Ejecutar de todas formas».
El instalador lo hace todo: comprueba si el PC puede ejecutar Docker, instala Docker Desktop si falta, genera las contraseñas y secretos, descarga la app y la arranca. Si pide reiniciar, reinicia y ejecuta INSTALAR.bat otra vez.
Al final el navegador se abre en http://localhost:4000. Primer acceso: usuario admin, contraseña braindead — la app obliga a cambiar ambos.
En Linux o Mac no hay instalador automático — se usa Docker directamente:
git clone https://github.com/braindeadpt/OficinaOS.git
cd OficinaOS && cp .env.example .env
docker compose up -d
docker compose exec app bun run db:seed
El error «virtualization support not detected»
Si el PC no puede ejecutar Docker, el instalador lo detecta antes de intentarlo y ofrece dos opciones:
- Activarlo en la BIOS — reiniciar, pulsar F2/F10/DEL/ESC al arrancar, buscar «Intel VT-x», «Virtualization Technology» o «SVM Mode», activar y guardar (F10). Después funciona el camino Docker normal.
- Instalación portátil — el instalador descarga oficinaos-portable.zip (~540 MB) y arranca sin Docker: la misma app, la misma base de datos, las mismas funciones.
Día a día — encender, apagar, archivos
Una vez instalado, el día a día es doble clic en un archivo. Los nombres son iguales en los dos modos — solo cambia la carpeta donde están:
- Modo Docker: en la carpeta donde extrajiste el instalador.
- Modo portátil: dentro de la carpeta oficinaos-portable — los datos viven en data\, las copias en app\uploads\backups.
- Otros dispositivos de la tienda (tablet, móvil, otro PC) no instalan nada — abren http://<IP-del-PC>:4000 en el navegador.
| Archivo | Para qué |
|---|---|
| INICIAR.bat | Encender OficinaOS — abre el navegador al final |
| PARAR.bat | Apagar — los datos quedan guardados |
| ATUALIZAR.bat | Actualizar a la versión más reciente |
| BACKUP.bat | (solo portátil) Copia de seguridad manual |
| RESTAURAR.bat | (solo portátil) Restaurar la base de datos desde una copia |
Copias de seguridad y restauración
Las copias son archivos comprimidos (.sql.gz) con toda la base de datos. La app muestra el estado de la última copia en Ajustes → Tienda → Copias de seguridad — funciona igual en los dos modos.
En modo Docker un servicio dedicado hace una copia cada 24 horas, guarda 14 días, y opcionalmente copia a almacenamiento externo (S3, Backblaze, etc.) y prueba la restauración automáticamente.
En modo portátil la copia se hace en cada arranque y con BACKUP.bat. Restaurar se hace con RESTAURAR.bat (elige un archivo de backups). Como no hay copia fuera del PC automática, copia la carpeta app\uploads\backups a un disco externo o USB — las copias en el mismo disco no protegen contra avería, robo o ransomware.
Actualizaciones
La app avisa arriba cuando hay una versión nueva. Para actualizar basta doble clic en ATUALIZAR.bat — hace copia, descarga la versión nueva y reinicia. Las migraciones de la base de datos corren solas.
Diferencia práctica: en Docker solo se descarga lo que cambió; en portátil se descarga el paquete entero (~540 MB). En Docker puedes activar actualizaciones 100% automáticas (Watchtower).
En la tienda — móviles, tablets y PCs
Cualquier aparato conectado al Wi-Fi de la tienda abre la app en el navegador — sin instalar nada. Solo hay que escribir la dirección que da la instalación e iniciar sesión:
Funciona sin internet para el uso diario. Guarda la dirección en favoritos — siempre es la misma.
http://192.168.1.33:4000 # la dirección del PC servidor
Icono en la pantalla del móvil
Para abrir con un toque, como una app normal — tarda 10 segundos:
- iPhone/iPad: Safari → botón Compartir → «Añadir a pantalla de inicio»
- Android: Chrome → menú ⋮ → «Añadir a pantalla de inicio»
- Con acceso remoto activo, Android puede llegar a ofrecer «Instalar aplicación» — instalación real
Fuera de la tienda — acceso remoto
Con el PC de la tienda encendido, un Cloudflare Tunnel gratuito da a la tienda una dirección https:// propia — sin tocar el router, funciona con cualquier operadora, incluso las que bloquean puertos (CGNAT).
Sirve para que el equipo consulte la app fuera de la tienda y para que los enlaces de los clientes — seguimiento, presupuestos, QR de garantía — abran en cualquier parte.
- Crear cuenta gratis en Cloudflare + un dominio (~10 €/año)
- En el panel Zero Trust: crear el túnel y copiar el token
- Dos líneas en el archivo .env y reiniciar la app
- En la app: Ajustes → Tienda → URL base de seguimiento → la dirección pública
Privado por defecto
El túnel es opcional: la app funciona al 100% en la red local incluso sin internet. Los datos de los clientes se quedan en la tienda — Cloudflare solo transporta el tráfico cifrado mientras el túnel está activo.
Quien quiera una barrera extra puede activar Cloudflare Access (gratis): email + código antes del login, manteniendo abiertas las páginas públicas de los clientes.
Problemas comunes
Las situaciones más frecuentes y cómo resolver cada una:
| Síntoma | Qué hacer |
|---|---|
| SmartScreen avisa al instalar | «Más información» → «Ejecutar de todas formas» — es un archivo nuevo sin reputación, no un virus |
| «Virtualization support not detected» | El instalador ofrece las dos opciones: activar en BIOS o usar el modo portátil |
| Windows pide reiniciar durante la instalación | Reiniciar y ejecutar INSTALAR.bat otra vez — es normal al instalar Docker |
| El firewall de Windows pregunta | Elegir «Permitir» en red privada |
| Página en blanco / no abre | Ctrl+F5; comprobar que la dirección es http:// (no https://) |
| «Invalid username or password» | El acceso es por usuario (admin), no por email |
| El PC cambió de IP y los demás dispositivos no conectan | Actualizar APP_URL en .env (Docker) o borrar .env y ejecutar INSTALAR.bat de nuevo |
| Puerto 4000 ocupado (portátil) | Cambiar PORT en app\.env |
| Postgres no arranca (portátil) | Ver data\postgres.log; puerto 5433 ocupado → cambiarlo en data\postgresql.conf y en .env |
| Desinstalar todo | PARAR.bat + borrar la carpeta (portátil); docker compose down -v + borrar la carpeta (Docker). Ojo: borra la base de datos — hacer copia antes |
Documentación completa
Esta guía cubre lo esencial. El repositorio en GitHub tiene la documentación técnica completa — instalación detallada, acceso remoto, móviles, copias con réplica externa y el funcionamiento interno del paquete portátil: