Configuración del entorno de desarrollo
Esta guía lo guiará en la configuración de un entorno de desarrollo local para omegaUp usando Docker.
Videotutorial
Tenemos un video tutorial que demuestra visualmente el proceso de configuración.
Requisitos previos
Antes de comenzar, asegúrese de tener instalado lo siguiente:
- Docker Engine: Instalar Docker
- Docker Compose 2: Instalar Docker Compose
- Git: Para clonar el repositorio
Usuarios de WSL
Si está utilizando WSL (Subsistema de Windows para Linux), siga la [guía oficial de integración de WSL de Docker Desktop] (https://docs.docker.com/desktop/features/wsl).
Configuración específica de Linux
Si está ejecutando Linux, después de instalar Docker, agregue su usuario al grupo de Docker:
sudo usermod -a -G docker $USER
Git Knowledge
Si no está seguro de usar Git, le recomendamos leer este tutorial de Git primero.
Paso 1: bifurcar y clonar el repositorio
-
Bifurcar el repositorio: visita github.com/omegaup/omegaup y haz clic en el botón "Bifurcar"
-
Clona tu tenedor:
git clone --recurse-submodules https://github.com/YOURUSERNAME/omegaup cd omegaup - Inicializar submódulos (si es necesario):
git submodule update --init --recursive
Paso 2: Iniciar contenedores Docker
Configuración por primera vez
En su primera ejecución, extraiga las imágenes de Docker e inicie los contenedores:
docker-compose pull
docker-compose up --no-build
frontend_1 | Child frontend:
frontend_1 | 1550 modules
frontend_1 | Child HtmlWebpackCompiler:
frontend_1 | 1 module
...
Ejecuciones posteriores
Después de la primera ejecución, puedes iniciar contenedores más rápido con:
docker compose up --no-build
--no-build evita reconstruir todo, acelerando significativamente el inicio.
Paso 3: acceda a su instancia local
Una vez que los contenedores se estén ejecutando, acceda a su instancia local de omegaUp en:
Paso 4: Acceder a la consola del contenedor
Para ejecutar comandos dentro del contenedor:
docker exec -it omegaup-frontend-1 /bin/bash
/opt/omegaup dentro del contenedor.
Cuentas de Desarrollo
Su instalación local incluye cuentas preconfiguradas:
Cuenta de administrador
- Nombre de usuario:
omegaup - Contraseña:
omegaup - Rol: Administrador (privilegios de administrador de sistemas)
Cuenta de usuario habitual
- Nombre de usuario:
user - Contraseña:
user - Rol: Usuario habitual
Cuentas de prueba
Para fines de prueba, puede utilizar estas cuentas de prueba:
| Nombre de usuario | Contraseña |
|---|---|
test_user_0 |
test_user_0 |
test_user_1 |
test_user_1 |
| ... | ... |
course_test_user_0 |
course_test_user_0 |
Verificación por correo electrónico
En el modo de desarrollo, la verificación de correo electrónico está deshabilitada. Puede utilizar direcciones de correo electrónico ficticias al crear cuentas nuevas.
Ejecución de pruebas localmente
Si desea ejecutar pruebas de JavaScript/TypeScript fuera de Docker:
Requisitos previos
- Node.js: Versión 16 o superior
- Yarn: Administrador de paquetes
Pasos de configuración
- Inicializar submódulos de Git:
Esta descarga requiere dependencias:
git submodule update --init --recursive pagedown- Editor de rebajasiso-3166-2.js- Códigos de país/regióncsv.js- Análisis CSV-
mathjax- Representación matemática -
Instalar dependencias:
yarn install - Ejecutar pruebas:
yarn test
Inicio rápido (clon nuevo)
Para un clon nuevo, use este único comando:
git clone --recurse-submodules https://github.com/YOURUSERNAME/omegaup
cd omegaup
yarn install
yarn test
Estructura de la base de código
El código base de omegaUp está organizado de la siguiente manera:
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 comunes
La aplicación web no muestra mis cambios
Asegúrese de que Docker se esté ejecutando:
docker compose up --no-build
El navegador redirige HTTP a HTTPS
Si su navegador sigue cambiando http a https para localhost, puede desactivar las políticas de seguridad para localhost. Consulte esta guía.
Error de MySQL no encontrado
Si encuentra este error al ingresar a 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
Error de conexión MySQL
Si MySQL está instalado pero obtiene errores de conexión, asegúrese de que el archivo de configuración anterior esté configurado correctamente.
Próximos pasos
- Aprenda cómo contribuir - Cree sucursales y envíe solicitudes de extracción
- Revisar las pautas de codificación - Comprenda nuestros estándares de codificación
- Explora la arquitectura - Entiende cómo funciona omegaUp
Obtener ayuda
Si encuentra problemas que no se tratan aquí:
- Consulte la Guía para obtener ayuda
- Busque [problemas de GitHub] existentes (https://github.com/omegaup/deploy/issues)
- Pregunta en nuestro servidor de Discord
¿Listo para comenzar a codificar? Dirígete a la Guía de contribución para saber cómo enviar tu primera solicitud de extracción.