Giter VIP home page Giter VIP logo

avapolos's Introduction

AVAPolos 0.2

Repositório da solução AVAPolos versão 0.2

Notas para testadores.

A operação recomendada é a utilização de 2 máquinas como instalação IES e POLO e uma máquina somente para compilação, pois o processo de compilação é mais rápido depois da primeira utilização.

A compilação pode ser agilizada utilizando a opção --template como último argumento do script compilar.sh:

bash compilar.sh --template

O template "moodle-dev" é mais leve para testes somente com o Moodle.

Após a primeira compilação.

Se não foram feitas mudanças na solução, as opções --no-update e --no-build-data podem ajudar muito na velocidade de compilação:

bash compilar.sh --no-update --no-build-data

Comandos úteis

Para enviar arquivos pela rede:

scp [ARQUIVO] [USUÁRIO DA MAQUINA REMOTA]@[IP DA MAQUINA REMOTA]:~/

Instalação

Para instalar a solução, basta executar os seguintes comandos:

Para uma versão estável: git clone https://github.com/C3FURG/AVAPolos avapolos

Para uma versão de testes: git clone https://github.com/razuos/AVAPolos avapolos

cd avapolos/build && bash compilar.sh

Se a reinicialização da máquina for requisitada, reinicie e execute os seguintes comandos num terminal.

cd avapolos/build && bash compilar.sh

Após o término da compilação, instale a solução com o seguinte comando.

sudo ·/NOMEDOINSTALADOR

Clonagem

Para clonar um servidor IES, basta executar os seguintes comandos:

sudo avapolos --export-all

Para instalá-lo:

sudo ./NOMEDOINSTALADOR-CLONE

avapolos's People

Contributors

ericpereira avatar rvoliveirafurg avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

avapolos's Issues

Update "controle.avapolos"

  • Sort functions and configurations into separate pages.

  • Authentication:

    • Login page and functionalities.
    • Add "db_controle" to basic.yml.
    • Configure "db_controle" while compiling.
  • Functions:

    • Backups:
      • Add upload
    • Cloning (export-all)
      • Add feature.
      • Add download link to cloned installer.
  • Configurations:

    • Networking:
      • Wheter to provide DHCP or not.
      • Wheter to provide DNS or not.
      • Manual IP.
    • Sync:
      • Remote install's address.

Programmable online sync.

Programmable online synchronization.

The online sync process needs to be automated, programmable and reliable.

Transmission

  • Study the required functionalities for secure and reliable packet transmission.
  • Find out-of-the-box solutions if there are any.
  • Implement the transmission functionality.

Automation

  • Implement auto importing functionality.

Programming

  • Implement the panel using the same interface for programming backups, cron-style.

Ship vendored code.

Vendored code is actually downloaded by the compiler, this is not necessary after the changes made by resolving issue #26.

  • Ship vendored code with controle.avapolos
  • Ship vendored code with inicio.avapolos
  • Ship vendored code with downloads.avapolos

Access restriction.

Students can't access the University's instance.
Professors can't access the Polo's instance.

Optimize data compiler.

Some big files are redownloaded every time.

wget supports the -N option, that enables time stamping.

  • Use -N option while downloading installers while compiling http://downloads.avapolos.

"Report Problem" button.

Reportar problemas no painel de controle.

O reporte de problemas pode ser feito do POLO para IES, e da IES para os Developers ou outro destinatário.

POLO -> IES -> CRIADORES OU ADMs
  • Criação do formulário e página de reporte.
  • Funcionalidade de enviar logs por ZIP.
  • Enviar os logs para a IES
  • Enviar os logs para os Developers ou um contato específico.

Programmable backups.

https://codepen.io/inital_a/pen/MKoKya

O campo "manual expression" é atualizado com a cron string selecionada pelo usuário. Precisamos enviá-la para o backend assim que o submit for clicado.

  • Implementar o formulário com o seletor do codepen.
  • Implementar uma opção de fazer backup para uma share NFS ao lado do botão de download.
  • Implementar uma opção de manter os backups de X tempo atrás ( dias, meses, anos).

External Access

  • Add noip.yml.
  • Add a script to enable noip service.
  • Add the command to the service daemon.
  • Integrate the GUI with the service.
  • Change the traefik URLs according to the new address.
  • Change menu's URLs according to the new address.
  • Change Moodle's URL according to the new address.
  • Change wiki's URL according to the new address.
  • Fix access_mode.sh.
  • Add possibility to force a domain name without noip.
  • Fix maintenance web page container

Testing.

Test everything implemented so far.

Beautify Moodle

Customização do Moodle

A única customização que falta fazer é inserir as logos do AVAPolos no Moodle:

  • Identificar tabelas que contém os dados pertinentes às logos.
mdl_config_plugins:

plugin     | name             | value
---------------------------------------
core_admin | logo             | .png
core_admin | logocompact      | .png
  • Encontrar uma forma de subir as logos e referenciá-las na base de dados.

Monitoring

  • Monitor failing services on "controle.avapolos"

Upgrade security

Upgrade security

Sort out the database and service passwords. Maybe generate one for each service on data compiling and store them somewhere safe?
/opt/avapolos/data/secrets

  • Specify what services and or databases need a generated password.

On data compiling time, secrets file should be generated and sourced by the compiler:

  • Create a secrets file on the data directory at compile time.
  • Lock down the file using 600 permission
  • Generate a hex number of size 16 for each password using opessl rand -hex 16 (50 nonillion years to break!)
  • Update the compiling scripts of each service.
  • Update the docker-compose.yml of each service.
  • Update the connect-db-master and connect-db-sync commands.

Update logging.

Logging needs an update.

Some changes need to be made to both optimize and provide good usability to the logging functionality.

  • Implement max line count for each log file.
  • Sort out the logger settings

Ensure usability for developers:

  • LOGGER_LVL
  • LOGFILE_PATH
  • TIMESTAMP_SCHEME
  • LOGFILE_MAXLINECOUNT

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.