Guia completo

Instalação, dia a dia, backups e resolução de problemas — explicado passo a passo, sem precisar de perceber de tecnologia.

Duas formas de instalar

O OficinaOS é sempre o mesmo programa — a diferença está em como é arrancado no PC da loja. O instalador escolhe o caminho certo sozinho, mas convém perceber os dois:

Docker é a forma normal e recomendada: um programa gratuito que embala a app e a base de dados em «contentores» isolados. Precisa de uma funcionalidade do processador chamada virtualização — a maioria dos PCs a tem, mas alguns trazem-na desligada na BIOS ou não a suportam.

O modo portátil existe para esses PCs: traz tudo embutido num pacote único (a app, a base de dados PostgreSQL e o runtime), sem Docker, sem virtualização e sem serviços Windows.

Docker (recomendado) Portátil (fallback)
Quando usar Sempre que possível PCs sem virtualização (VT-x/SVM)
Requisitos Docker Desktop + virtualização na BIOS Qualquer Windows 10/11 64-bit
Download ~1 GB (Docker + app) ~540 MB (tudo embutido)
Arranque com o PC Automático Automático (opcional, perguntado na 1ª execução)
Se a app crashar Reinicia sozinha Reinicia sozinha (wrapper)
Backups Diários, automáticos (a cada 24h) A cada arranque + BACKUP.bat manual
Backups fora do PC Suportado (rclone → S3/B2/GCS) Manual — copiar a pasta de backups
Atualizações Só descarrega o que mudou; automático opcional Descarrega o pacote inteiro; sempre manual
Acesso remoto (HTTPS) Cloudflare Tunnel incluído Cloudflare Tunnel instalado à parte

Instalação normal — Docker (uma vez, ~10 minutos)

Descarregue o instalador ZIP, extraia para uma pasta (ex.: C:\OficinaOS) e faça duplo clique em INSTALAR.bat. Se o Windows Defender SmartScreen avisar: «Mais informações» → «Executar mesmo assim».

O instalador faz tudo sozinho: verifica se o PC consegue correr Docker, instala o Docker Desktop se faltar, gera as palavras-passe e segredos, descarrega a app e arranca. Se pedir para reiniciar, reinicie e corra INSTALAR.bat outra vez.

No fim o browser abre em http://localhost:4000. Primeiro login: utilizador admin, palavra-passe braindead — a app obriga a mudar ambos.

Em Linux ou Mac não há instalador automático — usa-se Docker manualmente:


              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
            

Erro «virtualization support not detected»

Se o PC não consegue correr Docker, o instalador deteta isso antes de tentar e apresenta duas opções:

  • Ativar na BIOS — reiniciar, premir F2/F10/DEL/ESC no arranque, procurar «Intel VT-x», «Virtualization Technology» ou «SVM Mode», ativar e gravar (F10). Depois o caminho Docker normal funciona.
  • Instalação portátil — o instalador descarrega oficinaos-portable.zip (~540 MB) e arranca sem Docker: a mesma app, a mesma base de dados, as mesmas funcionalidades.

Dia a dia — ligar, desligar, ficheiros

Depois de instalado, o dia a dia resume-se a duplo clique num ficheiro. Os nomes são iguais nos dois modos — só muda a pasta onde estão:

  • Modo Docker: na pasta onde extraiu o instalador.
  • Modo portátil: dentro da pasta oficinaos-portable — os dados vivem em data\, os backups em app\uploads\backups.
  • Outros dispositivos da loja (tablet, telemóvel, outro PC) não instalam nada — abrem http://<IP-do-PC>:4000 no browser.
Ficheiro Para quê
INICIAR.bat Ligar o OficinaOS — abre o browser no fim
PARAR.bat Desligar — os dados ficam guardados
ATUALIZAR.bat Atualizar para a versão mais recente
BACKUP.bat (só portátil) Backup manual da base de dados
RESTAURAR.bat (só portátil) Repor a base de dados a partir de um backup

Backups e restauro

Os backups são ficheiros comprimidos (.sql.gz) com a base de dados inteira. A app mostra o estado do último backup em Definições → Loja → Backups — funciona igual nos dois modos.

No modo Docker um serviço dedicado faz um backup a cada 24 horas, guarda 14 dias, e opcionalmente copia para armazenamento externo (S3, Backblaze, etc.) e testa o restauro automaticamente.

No modo portátil o backup corre a cada arranque e com BACKUP.bat. Restaurar é com RESTAURAR.bat (repor um ficheiro de backups). Como não há cópia fora do PC automática, copie a pasta app\uploads\backups para um disco externo ou pen — backups no mesmo disco não protegem contra avaria, roubo ou ransomware.

Atualizações

A app avisa no topo quando existe versão nova. Para atualizar, basta duplo clique em ATUALIZAR.bat — faz backup, descarrega a versão nova e reinicia. As migrações da base de dados correm sozinhas.

Diferença prática: no Docker só se descarrega o que mudou; no portátil descarrega-se o pacote inteiro (~540 MB). No modo Docker pode ainda ativar atualizações 100% automáticas (Watchtower).

Na loja — telemóveis, tablets e PCs

Qualquer aparelho ligado à Wi-Fi da loja abre a app no browser — sem instalar nada. Basta escrever o endereço que a instalação dá e fazer login:

Funciona sem internet para o uso do dia a dia. Guarde o endereço nos favoritos — é sempre o mesmo.


              http://192.168.1.33:4000   # o endereço do PC-servidor
            

Ícone no ecrã do telemóvel

Para abrir com um toque, como uma app normal — demora 10 segundos:

  • iPhone/iPad: Safari → botão Partilhar → «Adicionar ao ecrã principal»
  • Android: Chrome → menu ⋮ → «Adicionar ao ecrã principal»
  • Com acesso remoto ligado, o Android chega a oferecer «Instalar aplicação» — instalação real

Fora da loja — acesso remoto

Com o PC da loja ligado, um Cloudflare Tunnel gratuito dá à loja um endereço https:// próprio — sem mexer no router, funciona com qualquer operadora, mesmo as que bloqueiam portas (CGNAT).

Serve para a equipa consultar a app fora da loja e para os links dos clientes — tracking, orçamentos, QR de garantia — abrirem em qualquer lado.

  • Criar conta grátis na Cloudflare + um domínio (~10 €/ano)
  • No painel Zero Trust: criar o túnel e copiar o token
  • Duas linhas no ficheiro .env e reiniciar a app
  • Na app: Definições → Loja → URL base de tracking → o endereço público

Privado por defeito

O túnel é opcional: a app funciona a 100% na rede local mesmo sem internet. Os dados dos clientes ficam na loja — a Cloudflare apenas transporta o tráfego encriptado quando o túnel está ligado.

Quem quiser uma barreira extra pode ativar o Cloudflare Access (grátis): email + código antes do login, mantendo as páginas públicas dos clientes abertas.

Problemas comuns

As situações mais frequentes e a resolução de cada uma:

Sintoma O que fazer
SmartScreen avisa ao instalar «Mais informações» → «Executar mesmo assim» — é um ficheiro novo sem reputação, não um vírus
«Virtualization support not detected» O instalador oferece as duas opções: ativar na BIOS ou usar o modo portátil
O Windows pede para reiniciar durante a instalação Reiniciar e correr INSTALAR.bat outra vez — é normal na instalação do Docker
Firewall do Windows pergunta Escolher «Permitir» em rede privada
Página em branco / não abre Ctrl+F5; confirmar que o endereço é http:// (não https://)
«Invalid username or password» O login é por utilizador (admin), não por email
O PC mudou de IP e os outros dispositivos não ligam Atualizar APP_URL no .env (Docker) ou apagar .env e correr INSTALAR.bat de novo
Porta 4000 ocupada (portátil) Mudar PORT em app\.env
Postgres não arranca (portátil) Ver data\postgres.log; porta 5433 ocupada → mudar em data\postgresql.conf e no .env
Desinstalar tudo PARAR.bat + apagar a pasta (modo portátil); docker compose down -v + apagar a pasta (Docker). Atenção: apaga a base de dados — fazer backup antes

Documentação completa

Este guia cobre o essencial. O repositório no GitHub tem a documentação técnica completa — instalação detalhada, acesso remoto, telemóveis, backups com cópia externa e o funcionamento interno do pacote portátil: