Skip to content

🌐 यह पृष्ठ अभी तक हिंदी में अनुवादित नहीं किया गया है। पुर्तगाली (BR) संदर्भ दिखाया जा रहा है। अनुवाद में मदद करें

Instalador one-liner (Linux / macOS)

Forma rápida de subir o RoqueOS Server numa máquina Linux ou macOS. Funciona em fresh install e em update — o script é idempotente.

Pré-requisitos

  • Linux Ubuntu 22.04+ ou Debian 12+ (Mint, Pop!_OS, derivados também funcionam) OU macOS 13+
  • Docker instalado (docker --version retorna ≥ 24.x)
  • Porta 27021 liberada no firewall (sudo ufw allow 27021/tcp no Ubuntu)
  • 4 GB RAM mínimo (recomendado 8 GB), 20 GB de disco livre

Não precisa instalar nada manualmente além do Docker — o script cuida do resto.

Comando padrão

bash
curl -fsSL https://roqueos.com.br/install.sh | bash

Em ~2 min você tem roqueos-server rodando em http://localhost:27021.

A próxima coisa que você vê depois do install.sh terminar é o passo de criar a primeira API Key admin no painel web em http://<seu-ip>:27021/admin. Salve apiKey + apiSecret em local seguro — é mostrado uma única vez.

Flags úteis

bash
# Instalar + habilitar RoqueClaw (agente IA, +2 GB imagem)
curl -fsSL https://roqueos.com.br/install.sh | bash -s -- --with-roqueclaw

# Instalar + habilitar Cloud Gaming (Android na nuvem, +1.5 GB imagem)
curl -fsSL https://roqueos.com.br/install.sh | bash -s -- --with-android-gaming

# Atualizar uma instância existente (preserva config + secrets + volumes)
curl -fsSL https://roqueos.com.br/install.sh | bash -s -- --update -y

# Atualizar + liberar espaço (prune imagens dangling depois do pull)
curl -fsSL https://roqueos.com.br/install.sh | bash -s -- --update -y --force-image-prune

# Subir em porta diferente (ex.: 8080 já em uso pelo seu app)
curl -fsSL https://roqueos.com.br/install.sh | bash -s -- --port 8080

# Diretório de dados custom
curl -fsSL https://roqueos.com.br/install.sh | bash -s -- --data-path /mnt/raid/roqueos

# Não-interativo (CI, scripts) — auto-confirma prompts
curl -fsSL https://roqueos.com.br/install.sh | bash -s -- --with-roqueclaw -y

Flag completa (curl ... | bash -s -- --help):

FlagDescrição
--with-roqueclawInstala agente IA OpenClaw (~2 GB imagem extra)
--with-android-gamingInstala Cloud Gaming (Android emulado + ws-scrcpy, ~1.5 GB)
--port PORTPorta do servidor (default: 27021)
--data-path PATHDiretório de dados persistente (default: /data/roqueos)
--updateForça recreate do container mesmo se digest está igual (use após config tweaks)
--force-image-pruneApós update, docker image prune -f libera disco
-y, --yes, --skip-promptsAuto-confirma prompts (não-interativo)
--helpMostra ajuda completa

O que o --update preserva

Esta é a invariante mais importante do script: o update NUNCA perde config. Pode rodar quantas vezes quiser, sem medo.

Preservados (sobrevivem a --update --force-recreate):

  • JWT_SECRET, ENCRYPTION_KEY, GUACAMOLE_CRYPT_KEY (em /data/roqueos/.roqueos-secrets.env)
  • ✅ Banco SQLite (volume Docker roqueos-db)
  • ✅ Arquivos dos usuários (/data/roqueos/users/)
  • ✅ Cache de transcoding (volume roqueos-transcode-cache)
  • ✅ Config de Cloudflare Tunnel (tunnel token, rotas)
  • ✅ API Keys cadastradas
  • ✅ Network Storage configurados (SMB/NFS)
  • ✅ Containers instalados via App Store

Único cenário onde update PODE perder dados: se você apagar manualmente o volume roqueos-db ou o diretório /data/roqueos/. O script nunca faz isso sozinho.

Auto-rollback em falha

Se o update falhar (smoke check em /health não responde 200 dentro de 60s), o script automaticamente:

  1. Detecta falha via smoke_check_post_update
  2. Restaura a imagem tagada como :previous (gerada antes do docker pull)
  3. Recria o container com a versão anterior
  4. Sai com erro descritivo no stderr

Você nunca fica num estado degradado por bug de version nova.

Rollback manual

bash
# Lista versões disponíveis
docker images roqueribeiro1988/roqueos-server

# Volta pra versão específica
docker stop roqueos-server && docker rm roqueos-server
docker run -d --name roqueos-server --restart unless-stopped -p 27021:27021 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /data/roqueos/users:/data/roqueos/users \
  -v /data/roqueos/shared:/data/roqueos/shared \
  -v roqueos-db:/app/data \
  -v roqueos-transcode-cache:/app/transcode-cache \
  --env-file /data/roqueos/.roqueos-secrets.env \
  -e NODE_ENV=production \
  roqueribeiro1988/roqueos-server:v1.0.13   # ← versão desejada

Cloud provisioning (4 flags internas)

Estas flags NÃO são pra você usar manualmente — são consumidas pelo cloud-init que provisiona VMs do RoqueOS Cloud. Documentadas aqui por completude:

FlagFunção
--customer-id IDUID do cliente cloud
--tier NAMEstarter / pro / power
--provisioning-token TOKENToken hex one-time (64 chars, expira 30 min)
--provisioning-callback URLCloud Function endpoint que registra o admin key

Quando as 4 estão presentes, install.sh chama POST /admin/setup localmente, pega {apiKey, apiSecret} e POSTa pro callback. Ver provisioning flow.

Troubleshooting

SintomaDiagnóstico
docker: command not foundInstalar Docker primeiro: curl -fsSL https://get.docker.com | sh
port 27021 already in useOutro processo na porta. sudo lsof -i :27021 pra descobrir; usar --port 8080
permission denied no /var/run/docker.sockAdicionar user no grupo docker: sudo usermod -aG docker $USER (re-login depois)
/health 502 após bootContainer ainda subindo. Aguarde 30s e teste de novo. Se persiste: docker logs roqueos-server
Update falha com "image pull rate limit"Docker Hub anônimo limita pulls. Login: docker login ou aguardar 6h

Logs em tempo real:

bash
docker logs -f roqueos-server

Status detalhado:

bash
curl -sS http://localhost:27021/health | python -m json.tool

Próximos passos

  1. Acessar http://<seu-ip>:27021/admin no navegador
  2. Criar primeira API Key admin
  3. Login em https://roqueos.com.br/app
  4. Settings → Server → "Adicionar servidor" → colar URL + apiKey + apiSecret
  5. Ver wizard de bootstrap pra detalhes do passo a passo

Referências