cms
Contest
CMS es un sistema para concursos de programación basado en subtareas en lugar de intentos/tiempo como DOMJudge.
Instalación (1.5.dev0)
- Sistema: ubuntu20.04 o equivalentes. Las versiones de Python que acepta son limitadas.
- Instalación de CMS
# Install requirements sudo apt-get install -y \ build-essential \ cgroup-lite \ git \ libcap-dev \ libcups2-dev \ libffi-dev \ libpq-dev \ libyaml-dev \ postgresql-client \ python3-pip \ python3.8 \ python3.8-dev \ sudo \ wait-for-it \ zip # Optional requirements for specific languages: # C++ (docs): cppreference-doc-en-html # Pascal: fp-compiler # Java: openjdk-8-jdk-headless # Haskell: haskell-platform # C#: mono-mcs # PHP: php7.4-cli # Python2: python2 # Rust: rustc # Create cmsuser user with sudo privileges useradd -ms /bin/bash cmsuser usermod -aG sudo cmsuser sudo passwd cmsuser # Set a password for sudo! # Change user and setup with python sudo su - cmsuser git clone --recursive https://github.com/cms-dev/cms.git cd cms sudo pip3 install -r requirements.txt sudo python3 setup.py install sudo python3 prerequisites.py --yes --cmsuser=cmsuser install
- Configure: move the .conf at
/usr/local/etc
and set the password on the database setting. Also, generate asecret_key
. - Create the database
sudo apt-get install postgresql sudo su - postgres createuser --username=postgres --pwprompt cmsuser createdb --username=postgres --owner=cmsuser cmsdb psql --username=postgres --dbname=cmsdb --command='ALTER SCHEMA public OWNER TO cmsuser' psql --username=postgres --dbname=cmsdb --command='GRANT SELECT ON pg_largeobject TO cmsuser'
- Inicializar base de datos:
sudo -u cmsuser cmsInitDB
- Arrancar los siguientes servicios, manualmente o con servicios systemD:
- cmsAdminWebServer (AWS): para editar concursos y usuarios, panel de administración.
- cmsContestWebServer (CWS): para la interfaz principal del concurso.
- cmsEvaluationService: evalúa la salida dadas las ejecuciones y reglas de corrección.
- cmsLogService: recoge los registros del resto de servicios.
- cmsProxyService: copia los resultados desde CWS hacia RWS. Sin éste, en RWS no aparecerá nada.
- cmsResourceService: muestra todos los servicios y su estado.
- cmsRankingWebServer (RWS): muestra el ránking actual.
- cmsScoringService: calcula la puntuación dada la evaluación.
- cmsWorker (al menos 1): ejecuta los programas enviados por los usuarios.
cms.txt · Última modificación: 2024/03/05 11:56 por Carlos Galindo