Pular para o conteúdo
Documentação arquivada. Use a versão correspondente à sua instalação.

Implantando Repovio

Implantação de produção, proxy TLS, backup, restauração, atualização e orientação de reversão para Repovio.

Instantâneo de origem arquivado. Os rótulos dos produtos foram normalizados para Repovio. Para esta versão histórica, use os identificadores de configuração e as referências de contêiner dos arquivos de implantação marcados inalterados.

A pilha Compose de Repovio inicia PostgreSQL, aplica migrações Prisma uma vez e, em seguida, inicia a API e os aplicativos da web. Ele não encerra o TLS. Coloque os serviços da Web e da API atrás de um proxy reverso que possua o nome de host e os certificados públicos.

Pré-requisitos

  • Docker Engine com Docker Compose v2.
  • Um registro DNS para o nome de host público.
  • Um proxy reverso que obtém e renova certificados TLS.
  • Um diretório de servidor privado que pode ser lido apenas por administradores de implantação.

A pilha do Compose persiste dados PostgreSQL, incluindo imagens de perfil de usuário normalizadas, em seu volume nomeado PostgreSQL configurado no arquivo Compose marcado. Não exclua este volume, a menos que queira remover intencionalmente todos os dados Repovio.

Primeira implantação

Etapa 1: Confira uma versão Repovio lançada e crie o arquivo de ambiente privado:

cp .env.example .env
chmod 600 .env

Etapa 2: Substitua todos os espaços reservados em .env, especialmente POSTGRES_PASSWORD, ambos os URLs do banco de dados, AUTH_JWT_SECRET e

TOKEN_ENCRYPTION_KEY. Gere a chave de criptografia com:

openssl rand -base64 32

Etapa 3: Defina os URLs visíveis externamente. Para uma implantação em https://repovio.example.com, use:

PUBLIC_URL=https://repovio.example.com
OIDC_CALLBACK_URL=https://repovio.example.com/api/v1/auth/oidc/callback
CORS_ORIGIN=https://repovio.example.com
NUXT_PUBLIC_API_BASE_URL=https://repovio.example.com/api/v1
OAUTH_CALLBACK_URL=https://repovio.example.com/api/v1/provider-accounts/oauth/callback

Etapa 4: Vincule as portas do contêiner ao loopback quando o proxy reverso for executado no mesmo host:

Use as variáveis de API e porta da web no .env.example da versão, com valores 127.0.0.1:3001 e 127.0.0.1:3000 respectivamente. Os nomes das variáveis ​​históricas diferem das versões atuais do Repovio.

Caso contrário, restrinja o acesso às portas 3000 e 3001 com o firewall do host. Nunca exponha o contêiner PostgreSQL.

Etapa 5: Defina a variável de seleção de versão do .env.example marcado em .env para um par exato de imagens liberadas e, em seguida, inicie a pilha:

docker compose pull
docker compose up --detach --wait

Mantenha esse valor em .env para que cada comando posterior do Compose use a mesma API e versão da web.

Etapa 6: Confirme o endpoint de integridade da API localmente:

curl --fail http://127.0.0.1:3001/api/health

Etapa 7: Abra o URL público Repovio e preencha o configuração única de primeira execução para criar o primeiro

administrador do sistema.

Proxy reverso e TLS

Faça proxy da origem da web pública para a porta 3000 e dos caminhos API e Socket.IO para a porta 3001. Por exemplo, um bloco de site Caddy pode usar:

repovio.example.com {
  reverse_proxy /api/* 127.0.0.1:3001
  reverse_proxy /socket.io/* 127.0.0.1:3001
  reverse_proxy /mcp 127.0.0.1:3001
  reverse_proxy 127.0.0.1:3000
}

O proxy deve redirecionar HTTP para HTTPS, validar conexões upstream de acordo com sua política local e preservar o nome do host público. Configure provedores OAuth com o mesmo URL de retorno de chamada HTTPS definido em OAUTH_CALLBACK_URL.

Atualizando

Use as referências exatas de configuração e imagem fornecidas com esta versão histórica. As instruções atuais de atualização da marca se aplicam somente ao mudar para uma versão mais recente do Repovio; nunca copie identificadores de configuração renomeados em um arquivo Compose mais antigo.

Etapa 1: Crie e verifique um backup do banco de dados antes de alterar as imagens.

Etapa 2: Defina a variável de seleção de lançamento do .env.example marcado para a versão de lançamento exata em .env.

Etapa 3: Puxe e aplique a liberação:

docker compose pull
docker compose up --detach --wait

O serviço migrate aplica migrações pendentes do Prisma antes do início da API. Inspecione-o após cada atualização:

docker compose logs migrate

Etapa 4: verifique o endpoint de integridade e o painel servido por proxy antes de considerar a atualização concluída.

Backup de banco de dados

Execute backups do diretório de implantação. Isso grava um dump de formato personalizado PostgreSQL no host sem imprimir credenciais ou colocá-las na linha de comando:

mkdir -p backups
backup_file="backups/repovio-$(date +%F-%H%M%S).dump"
docker compose exec -T postgres sh -c 'pg_dump -U "$POSTGRES_USER" -Fc "$POSTGRES_DB"' \
  > "$backup_file"
pg_restore --list "$backup_file"

Armazene cópias criptografadas fora do host e teste periodicamente as restaurações em um sistema separado.

Restauração do banco de dados

A restauração substitui os objetos atuais do banco de dados. Faça primeiro um novo backup e agende o tempo de inatividade.

docker compose stop api web
docker compose exec -T postgres sh -c 'pg_restore -U "$POSTGRES_USER" --clean --if-exists --no-owner -d "$POSTGRES_DB"' \
  < backups/repovio-YYYY-MM-DD-HHMMSS.dump
docker compose up --detach --wait

Depois, verifique docker compose logs migrate e o endpoint de integridade da API. Restaure um dump feito por uma versão Repovio compatível ao reverter alterações de esquema.

Reversão

Etapa 1: Mantenha o backup feito imediatamente antes da falha na atualização.

Etapa 2: Defina a variável de seleção de versão do .env.example marcado em .env para a última versão de imagem em boas condições.

Etapa 3: Execute docker compose pull e docker compose up --detach --wait.

Etapa 4: se a versão mais recente migrou o banco de dados de forma incompatível, interrompa a API e a Web, restaure o backup compatível e, em seguida,

inicie a versão anterior da imagem novamente.

Nunca use docker compose down --volumes como um comando de atualização ou reversão: ele remove o volume nomeado PostgreSQL.