Configuração do ambiente de desenvolvimento
Este guia orientará você na configuração de um ambiente de desenvolvimento local para omegaUp usando Docker.
Vídeo Tutorial
Temos um vídeo tutorial que demonstra visualmente o processo de configuração.
Pré-requisitos
Antes de começar, certifique-se de ter o seguinte instalado:
- Docker Engine: Instalar Docker
- Docker Compose 2: Instalar Docker Compose
- Git: Para clonar o repositório
Usuários WSL
Se você estiver usando WSL (subsistema Windows para Linux), siga o guia oficial de integração WSL do Docker Desktop.
Configuração específica do Linux
Se você estiver executando o Linux, após instalar o Docker, adicione seu usuário ao grupo docker:
sudo usermod -a -G docker $USER
Git Conhecimento
Se você não tiver confiança no uso do Git, recomendamos a leitura este tutorial do Git primeiro.
Etapa 1: bifurcar e clonar o repositório
-
Fork do repositório: Visite github.com/omegaup/omegaup e clique no botão "Fork"
-
Clone seu garfo:
git clone --recurse-submodules https://github.com/YOURUSERNAME/omegaup cd omegaup - Inicializar submódulos (se necessário):
git submodule update --init --recursive
Etapa 2: iniciar contêineres Docker
Configuração pela primeira vez
Na primeira execução, extraia as imagens do Docker e inicie os contêineres:
docker-compose pull
docker-compose up --no-build
frontend_1 | Child frontend:
frontend_1 | 1550 modules
frontend_1 | Child HtmlWebpackCompiler:
frontend_1 | 1 module
...
Execuções subsequentes
Após a primeira execução, você pode iniciar contêineres mais rapidamente com:
docker compose up --no-build
--no-build evita reconstruir tudo, acelerando significativamente a inicialização.
Etapa 3: acesse sua instância local
Assim que os contêineres estiverem em execução, acesse sua instância local do omegaUp em:
Etapa 4: acessar o console do contêiner
Para executar comandos dentro do contêiner:
docker exec -it omegaup-frontend-1 /bin/bash
/opt/omegaup dentro do contêiner.
Contas de Desenvolvimento
Sua instalação local inclui contas pré-configuradas:
Conta de administrador
- Nome de usuário:
omegaup - Senha:
omegaup - Função: Administrador (privilégios de administrador de sistema)
Conta de usuário normal
- Nome de usuário:
user - Senha:
user - Função: usuário regular
Contas de teste
Para fins de teste, você pode usar estas contas de teste:
| Nome de usuário | Senha |
|---|---|
test_user_0 |
test_user_0 |
test_user_1 |
test_user_1 |
| ... | ... |
course_test_user_0 |
course_test_user_0 |
Verificação de e-mail
No modo de desenvolvimento, a verificação de e-mail está desabilitada. Você pode usar endereços de e-mail fictícios ao criar novas contas.
Executando testes localmente
Se você deseja executar testes JavaScript/TypeScript fora do Docker:
Pré-requisitos
- Node.js: versão 16 ou superior
- Yarn: Gerenciador de pacotes
Etapas de configuração
- Inicializar submódulos Git:
Isso baixa as dependências necessárias:
git submodule update --init --recursive pagedown- Editor de reduçãoiso-3166-2.js- Códigos de país/regiãocsv.js- análise CSV-
mathjax- Renderização matemática -
Instalar dependências:
yarn install - Executar testes:
yarn test
Início rápido (novo clone)
Para um novo clone, use este único comando:
git clone --recurse-submodules https://github.com/YOURUSERNAME/omegaup
cd omegaup
yarn install
yarn test
Estrutura da base de código
A base de código omegaUp é organizada da seguinte forma:
omegaup/
├── frontend/
│ ├── server/
│ │ └── src/
│ │ ├── Controllers/ # Business logic & API endpoints
│ │ ├── DAO/ # Data Access Objects
│ │ └── libs/ # Libraries & utilities
│ ├── www/ # Frontend assets (TypeScript, Vue.js)
│ ├── templates/ # Smarty templates & i18n files
│ ├── database/ # Database migrations
│ └── tests/ # Test files
Problemas comuns
O aplicativo da web não está mostrando minhas alterações
Certifique-se de que o Docker esteja em execução:
docker compose up --no-build
Navegador redireciona HTTP para HTTPS
Se o seu navegador continuar mudando http para https para localhost, você poderá desabilitar as políticas de segurança para localhost. Veja este guia.
Erro MySQL não encontrado
Se você encontrar esse erro ao enviar para o GitHub:
FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/mysql'
sudo apt-get install mysql-client mysql-server
cat > ~/.mysql.docker.cnf <<EOF
[client]
port=13306
host=127.0.0.1
protocol=tcp
user=root
password=omegaup
EOF
ln -sf ~/.mysql.docker.cnf .my.cnf
Erro de conexão MySQL
Se o MySQL estiver instalado, mas você receber erros de conexão, certifique-se de que o arquivo de configuração acima esteja configurado corretamente.
Próximas etapas
- Aprenda como contribuir - Crie ramificações e envie solicitações pull
- Revise as diretrizes de codificação - Entenda nossos padrões de codificação
- Explore a arquitetura - Entenda como o omegaUp funciona
Obtendo ajuda
Se você encontrar problemas não abordados aqui:
- Verifique o Guia de ajuda
- Pesquise [problemas do GitHub] existentes (https://github.com/omegaup/deploy/issues)
- Pergunte em nosso servidor Discord
Pronto para começar a codificar? Acesse o Guia de contribuição para saber como enviar sua primeira solicitação pull!