Skip to content

Instantly share code, notes, and snippets.

@vmaldosan
Last active May 6, 2021 21:28
Show Gist options
  • Save vmaldosan/10b8d7f7a46a519353ce6135f8cb13ed to your computer and use it in GitHub Desktop.
Save vmaldosan/10b8d7f7a46a519353ce6135f8cb13ed to your computer and use it in GitHub Desktop.
Notas sobre ODK

ODK Central en Windows

Requisitos

  • Docker Desktop instalado

Instalación

  1. Verifica en tu configuración de Git que la opción core.autocrlf tiene el valor input
  2. Clona Central desde https://github.com/getodk/central.git
  3. Ve a la carpeta central y ejecutar git submodule update -i
  4. Edita .env con los siguientes parámetros:
SSL_TYPE=selfsign
DOMAIN=localhost
SYSADMIN_EMAIL=<tu-email>
  1. Ejecuta docker-compose build. Al cabo de unos minutos, este comando debería finalizar con "Successfully built (...)"
  2. Ejecuta docker-compose up --no-start. El resultado debería ser algo así:
central-lf_postgres_1 is up-to-date
pyxform is up-to-date
enketo_redis_main is up-to-date
enketo_redis_cache is up-to-date
Recreating mail   ... done
Recreating enketo ... done
Recreating service ... done
Recreating nginx   ... done

Arrancar el servidor

  1. Ejecuta docker-compose up -d. Si todo salió como debía, verás el siguiente mensajeÑ
Starting secrets               ... done
Starting central-lf_postgres_1 ... done
Starting enketo_redis_cache    ... done
Starting pyxform               ... done
Starting enketo_redis_main     ... done
Starting enketo                ... done
Starting enketo                ... done
Starting service               ... done
Recreating nginx               ... done
  1. Verifica que el servidor está corriendo con el comando docker-compose ps. Todos los servicios deberían tener estado "Up". Si nginx muestra "Up (health: starting)", espera unos minutos hasta que cambie.
  2. Ejecuta docker-compose exec service odk-cmd --email tuemail@ejemplo.com user-create, reemplanzando tuemail@ejemplo.com por el email que quieras usar.
  3. docker-compose exec service odk-cmd --email tuemail@ejemplo.com user-promote

Actualizar Central

(TODO: https://docs.getodk.org/central-upgrade/#upgrading-central)

Comandos útiles

  • Resetear contraseña: docker-compose exec service odk-cmd --email tuemail@ejemplo.com user-set-password
  • Reiniciar servicios: docker-compose restart
  • Parar servicios: docker-compose stop
  • (Desde bash) Comprobar estado de un contenedor: docker inspect --format "{{json .State.Health }}" <nombre contenedor> | jq

Solución de errores

  • Al ejecutar docker-compose build, en el paso Building nginx:
Step 3/19 : RUN files/prebuild/write-version.sh
 ---> Running in b9a3442f63ba
/bin/sh: 1: files/prebuild/write-version.sh: not found
ERROR: Service 'nginx' failed to build : The command '/bin/sh -c files/prebuild/write-version.sh' returned a non-zero code: 127

SOLUCIÓN: Ir a la carpeta files/prebuild/ y borrar línea #!/bin/sh de build-frontend.sh y write-version.sh

  • Al ejecutar docker-compose build, en el paso Building nginx:
npm ERR! missing script: build
npm ERR!
npm ERR! Did you mean this?
npm ERR!     build

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-11-01T16_46_50_661Z-debug.log
: not foundild/build-frontend.sh: 2: files/prebuild/build-frontend.sh:
ERROR: Service 'nginx' failed to build : The command '/bin/sh -c files/prebuild/build-frontend.sh' returned a non-zero code: 127

SOLUCIÓN: esto ocurre al ejecutar ejecutar el comando anterior después de haber clonado el repositorio utilizando CRLF en lugar de LF.

ODK Central en WSL

Prerrequisitos

  1. Windows 10, versión 1903 o posterior
  2. WSL2
  3. Paquete de actualización del kernel de Linux

Pasos

  • Verificar que la distro de Linux está usando WSL2
wsl.exe -l -v
  • Si la versión mostrada es 1, ejecutar el siguiente comando:
wsl.exe --set-version (nombre de distro) 2

ODK Central en Ubuntu

git clone https://github.com/getodk/central && cd central
git submodule update -i
  • Editar .env:
SSL_TYPE=selfsign
DOMAIN=localhost
SYSADMIN_EMAIL=tuemail@ejemplo.com
docker-compose build
docker-compose up --no-start
docker-compose up -d
  • Cuando nginx esté arriba
docker-compose exec service odk-cmd --email tuemail@ejemplo.com user-create
docker-compose exec service odk-cmd --email tuemail@ejemplo.com user-promote
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment