Skip to main content
Version: 1.2.8

Setup

A continuación se describen los requisitos y pasos para instalar sudocu para ambientes de producción y desarrollo

  1. Instalación
    1. Requisitos
    2. Instalación demo
    3. Instalación de desarrollo
    4. Instalación de producción con Docker Swarm
  2. Integración con SIU Araí

Requisitos previos#

  • docker

  • docker-compose

  • git

  • jq

    Pasos para instalar Docker: https://docs.docker.com/install/

    Pasos para instalar docker-compose: https://docs.docker.com/compose/install/

    Instalación de git y jq en Debian/Ubuntu.

    $ sudo apt install git jq

    Se puede chequear las dependencias con el comando './sudocu.sh check':

    $ ./sudocu.sh check
    docker instalado. Version: Docker version 19.03.1, build 74b1e89
    docker-compose instalado. Version: docker-compose version 1.24.1, build 4667896b
    jq instalado. Version: jq-1.5-1-a5b5cbe

Instalación demo#

Los pasos a seguir son los siguientes:

  1. Clonar el proyecto:

    $ git clone https://gitlab.ungs.edu.ar/sudocu/sudocu/sudocu.git
    $ cd sudocu/
  2. Configurar el entorno en modo Producción (primera pregunta). Es necesario especificar si se utilizara SSL y la url desde donde se accederá:

    $ ./sudocu.sh config
    ------------------------------
    Configuración de variables de entorno
    ------------------------------
    Instalación de Producción? (s/n): s
    Instalación segura? (s/n): n
    Ingresar Url (sudocu.local): sudocu.local
    Importando variables...
    Se crea el archivo '.env'
    Se crea el archivo de configuración config/traefik.toml.
    Generando config de sudocu-gestion...
    Generando config de sudocu-login...
    Generando config de sudocu-mpd...
    Generando config de sudocu-mpc...
    Generando config de api-server...

    El comando './sudocu.sh config' genera el archivo '.env' de los cuales se genera cada archivo de configuración, propio de cada subproyecto.

    $ cat .env
    # Configuracion de variables
    SUDOCU_DOMAIN=.ungs.edu.ar
    SUDOCU_VERSION=
    SUDOCU_ENVIRONMENT=production
    SUDOCU_URL=sudocu.local
    SSL=false
    ...
  3. Levantar todo el entorno con el comando './sudocu.sh start':

    $ ./sudocu.sh start
    Creando contenedores...
    Creating network "sudocu_backend" with driver "bridge"
    Creating network "sudocu_frontend" with driver "bridge"
    Creating sudocu_reverse-proxy_1 ... done
    Creating sudocu_db_1 ... done
    Creating sudocu_cache_1 ... done
    Creating sudocu_api-server_1 ... done
    Creating sudocu_login_1 ... done
    Creating sudocu_gestion_1 ... done
    Creating sudocu_mpd_1 ... done
    Creating sudocu_mpc_1 ... done
    Creating sudocu_pdf_1 ... done
    Levantando contenedores...
    Starting sudocu_reverse-proxy_1 ... done
    Starting sudocu_db_1 ... done
    Starting sudocu_cache_1 ... done
    Starting sudocu_api-server_1 ... done
    Starting sudocu_login_1 ... done
    Starting sudocu_gestion_1 ... done
    Starting sudocu_mpd_1 ... done
    Starting sudocu_mpc_1 ... done
    Starting sudocu_pdf_1 ... done
  4. Agregar la URL indicada (en el ejemplo 'sudocu.local') al archivo /etc/hosts.

  5. Probar acceder desde un browser a http://sudocu.local

  6. Para loguearse, el usuario y password por defecto es admin@sudocu.edu.ar - admin1234

  7. Para ayuda de los comandos disponibles se puede utilizar './sudocu.sh help':

    $ ./sudocu.sh help
    SUDOCU
    Uso: ./sudocu.sh [argumento]
    Argumentos:
    build [<image>] Crea las imagenes.
    check Chequea la instalación de dependencias.
    config Crea todos los archivos de configuración.
    db backup Realiza un backup de la base de datos 'sudocu'.
    help Se muestra esta ayuda.
    pull [<branch>] Descarga todos los proyectos (branch default: 'master').
    restart [<container>] Reinicia los contenedores.
    rm [<container>] Elimina los contenedores.
    start [<container>] Inicia los contenedores.
    stop [<container>] Detiene los contenedores.
    version Muestra la versión de sudocu y de todos sus componentes.

Instalación de desarrollo#

Los pasos son similares a la instalación de producción pero especificando el entorno de desarrollo:

$ git clone https://gitlab.ungs.edu.ar/sudocu/sudocu/sudocu.git
$ cd sudocu/
$ git checkout develop
$ ./sudocu.sh pull develop # Descarga todos los subproyectos en la rama 'develop'
# Se recomienda el uso de `mu-repo` para gestionar los repositorios (http://fabioz.github.io/mu-repo/install/).
$ mu register --recursive
$ mu st
$ ./sudocu.sh build # Genera las imagenes de desarrollo localmente
$ ./sudocu.sh config # Genera las variables de entorno y crea los archivos de configuración para cada subproyecto
------------------------------
Configuración de variables de entorno
------------------------------
Instalación de Producción? (s/n): n
Instalación segura? (s/n): n
Ingresar Url (sudocu.local): sudocu.local
Importando variables...
Se crea el archivo '.env'
Se crea el archivo de configuración config/traefik.toml.
Generando config de sudocu-gestion...
Generando config de sudocu-login...
Generando config de sudocu-mpd...
Generando config de sudocu-mpc...
Generando config de api-server...
$ ./sudocu.sh start
Creando contenedores...
Creating network "sudocu_backend" with driver "bridge"
Creating network "sudocu_frontend" with driver "bridge"
Creating sudocu_db_1 ... done
Creating sudocu_cache_1 ... done
Creating sudocu_api-server_1 ... done
Creating sudocu_login_1 ... done
Creating sudocu_gestion_1 ... done
Creating sudocu_mpd_1 ... done
Creating sudocu_mpc_1 ... done
Creating sudocu_pdf_1 ... done
Creating sudocu_reverse-proxy_1 ... done
Levantando contenedores...
Starting sudocu_reverse-proxy_1 ... done
Starting sudocu_db_1 ... done
Starting sudocu_cache_1 ... done
Starting sudocu_api-server_1 ... done
Starting sudocu_login_1 ... done
Starting sudocu_gestion_1 ... done
Starting sudocu_mpd_1 ... done
Starting sudocu_mpc_1 ... done
Starting sudocu_pdf_1 ... done

Para loguearse, el usuario y password por defecto es admin@sudocu.edu.ar - admin1234

Instalación de producción con Docker Swarm#

  1. Clonar el proyecto

    $ git clone https://gitlab.ungs.edu.ar/sudocu/sudocu/sudocu.git
    $ cd sudocu/
  2. En caso de no tenerlo, levantar Traefik con SSL.

    $ cd swarm/traefik
    $ cp traefik.env.template traefik.env
    # Editar el archivo traefik.env
    # ...
    # Crear la red y copiar archivo de configuración
    $ docker network create --driver overlay traefik-net
    $ cp traefik.template.toml traefik.toml
    # Editar el archivo traefik.toml
    # ...
    # Deploy de traefik
    $ . ./traefik.env && docker stack deploy -c docker-compose.yml traefik
    # Corroborar acceso desde DOMINIO/traefik. Usuario admin, password admin1234
  3. Levantar sudocu

    # En el directorio raíz
    $ ./sudocu.sh swarm config --url sudocu.local sudocu
    # Si hace falta, editar la configuración en config/sudocu
    $ ./sudocu.sh swarm init sudocu
  • Se puede configurar si se utiliza una base de datos externa, traefik y la versión.

    # Opciones de ./sudocu.sh swarm config
    # --db (si|no)
    # --traefik-network <traefik-network>
    # --url <url>
    # --version <version>
    # ----------------
    # Ejemplo completo
    $ ./sudocu.sh swarm config \
    --db no \
    --version develop \
    --url sudocu.local \
    --traefik-network traefik-public \
    sudocu
    # Se puede cambiar la ubicación donde se persisten los datos
    $ docker volume create \
    --opt device=data/files \
    --opt o=bind \
    --opt type=none \
    sudocu_files
    $ docker volume create \
    --opt device=data/log \
    --opt o=bind \
    --opt type=none \
    sudocu_log

    Para loguearse por primera vez, el usuario y password por defecto es admin@sudocu.edu.ar - admin1234