Skip to content

Criar uma forma mais facilitada para o usuário final instalar / atualizar a aplicação web #32

@robertatakenaka

Description

@robertatakenaka

Contexto

O repositório markapi contém diversas ferramentas para trabalhar com XML e arquivos relacionados. O nome do produto é SciELO XML Tools. Um dos componentes é a ferramenta para marcação de documentos Word contendo artigos científicos, construída com Django/Wagtail. Atualmente, o sistema possui configurações Docker voltadas para desenvolvedores (local.yml) e produção (production.yml), mas precisamos de uma solução intermediária que permita que pesquisadores e editores científicos (usuários leigos em tecnologia) executem a aplicação localmente como se fosse um software desktop tradicional.

PARTIR DO BRANCH markupapp

Problema

Usuários finais não-técnicos precisam rodar o Markup em suas máquinas locais, mas a complexidade atual do Docker e comandos de terminal representa uma barreira significativa para adoção da ferramenta. Além disso, o Markup precisa coexistir com outras aplicações SciELO que o usuário pode executar simultaneamente.

Critérios de Aceitação

  • interface visual ou pelo menos comandos simplificados
  • usar determinada imagem - NÃO usar git para nada
  • manter os dados fora da pasta da app e em local padrão para facilitar o backup e futuro suporte para os usuários.

Proposta de Solução

1. Criar configuração Docker simplificada

  • Desenvolver desktop.yml otimizado para execução local
    • Todos os serviços essenciais (incluindo Celery para processamento de documentos)
    • Redis configurado para filas de tarefas
    • PostgreSQL para o banco de dados
    • Wagtail com todas as dependências
    • Usar porta 8005 para evitar conflitos (8006/upload, 8009/core, 8000/opac_5 já são usadas)
    • Volumes persistentes em diretório de dados do usuário (fora do código)
    • Configuração de recursos otimizada para desktop (limites de memória/CPU)

2. Scripts de gerenciamento simplificados

Nota: os comandos abaixo são só exemplos. Faça os comandos que geralmente já usamos e/ou potencialmente serão usados pelos usuários finais

Criar scripts multiplataforma (bash/batch/PowerShell) para:

  • install: Instalação inicial, migrations e collectstatic
  • start: Iniciar aplicação (Django/Wagtail + celery worker + celery beat + redis)
  • stop: Parar todos os serviços gracefully
  • status: Verificar status dos serviços
  • admin: Criar superuser do Wagtail com wizard interativo
  • update: Atualizar versão, rodar migrations e collectstatic
  • backup: Fazer backup do banco, media files e documentos
  • logs: Visualizar logs simplificados
  • reset: Limpar dados e reiniciar do zero (com confirmação)
  • check-ports: Verificar se portas necessárias estão disponíveis

3. Estrutura de dados externa

  • Criar diretório de dados do usuário fora da aplicação
    • Windows: %USERPROFILE%\Documents\Markup\data
    • macOS: ~/Documents/Markup/data
    • Linux: ~/Documents/Markup/data

4. Instalador gráfico (Fase 2 - Opcional)

  • Investigar soluções como:
    • Electron + Docker integrado com painel de controle
    • PyQt/Tkinter para launcher nativo
    • Docker Desktop com configuração customizada
    • PWA do Wagtail admin como "aplicativo desktop"

Requisitos Técnicos

Essenciais

  • Compatibilidade com Windows 10/11, macOS 10.15+, Ubuntu 20.04+
  • Verificação automática de Docker instalado
  • Interface Wagtail acessível em http://localhost:8005/admin/
  • Interface pública em http://localhost:8005/
  • Verificação de conflito de portas (alertar se 8005 já estiver em uso)
  • Compatibilidade com outras aplicações SciELO rodando simultaneamente
  • Persistência de dados em pasta Documents do usuário
  • Mensagens de erro user-friendly em português, espanhol, inglês, ou seja, usar internacionalização
  • Execução automática de migrations ao iniciar
  • Backup automático antes de updates

Portas Utilizadas

  • 8005: Aplicação Markup (Wagtail/Django)
  • 5433: PostgreSQL (evitar conflito com PostgreSQL padrão na 5432)
  • 6380: Redis (evitar conflito com Redis padrão na 6379)

Portas Reservadas (outras aplicações SciELO)

  • 8000: OPAC_5
  • 8006: Upload v2.x
  • 8007: Upload v3.x
  • 8009: Core
  • 8001-8004: Reservadas para futuras aplicações

relacionado com #30

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions