README.md

RSMD

R + Shiny + Mongo + Docker

[![GitHub CI](https://github.com/Fazendaaa/RSMD/workflows/ci/badge.svg)](https://github.com/Fazendaaa/RSMD/.github/workflows/ci.yml) [![GitHub CD](https://github.com/Fazendaaa/RSMD/workflows/cd/badge.svg)](https://github.com/Fazendaaa/RSMD/.github/workflows/cd.yml) [![made-with-r](https://img.shields.io/badge/Made%20with-R-1f425f.svg?style=flat-square)](https://www.r-project.org/) [![made-with-mongo](https://img.shields.io/badge/Made%20with-MongoDB-brightgreen?style=flat-square)](https://www.mongodb.com/) [![made-with-docker](https://img.shields.io/badge/Made%20with-Docker-important?style=flat-square)](https://www.docker.com/) [![made-with-vscode](https://img.shields.io/badge/made%20with-vscode-blueviolet?style=flat-square)](https://code.visualstudio.com/) [![GPL license](https://img.shields.io/badge/License-GPL-blue.svg?style=flat-square)](https://github.com/Fazendaaa/RSMD/LICENSE.html) [![GitHub release](https://img.shields.io/github/release/Fazendaaa/RSMD.svg?style=flat-square)](https://github.com/Fazendaaa/RSMD/releases/)

Ideia

Mesmo sendo um projeto que utiliza R e Mongo, você não precisa deles instalados na sua máquina -- eu não precisei para desenvolver nem rodar --, nem em outra máquina para acesso remoto ou coisa do tipo. A ideia é mostrar como desenvolver um projeto usando esta stack que consiga rodar em qualquer sistema operacional, seja ele Linux, Windows ou Mac sem mesmo ter as ferramentas instaladas, como eu descrevo mais aqui.

Versões

Feitas

A fazer

Rodar

Caso tenha caído de gaiato no navio, por favor dê uma olhada no arquivo Makefile antes de tudo e caso não sabia o que ele faz, basicamente ele irá configurar a sua máquina para este projeto. Basicamente só abrir um terminal e digitar o seguinte comando:

make

AVISO: caso vá rodar qualquer comando com docker-compose, por favor procure instalar o mkcert antes e rodar o seguinte comando antes:

curl https://gist.githubusercontent.com/Fazendaaa/289b72a80e2087577ee0fecee06e4417/raw/3b661272a8e18f978f1ecb5dd1453da1ff5801c6/gistfile1.txt | sh

Ele irá configurar sua máquina para que ela suporte os artefatos necessários para fazer com que a aplicação tenha um TLS local

Sem o código e sem BD

Caso seja um "negacionista" e não uma "testemunha de Docker" que nem eu, tudo bem. Uma imagem foi disponibilizada para rodar apenas um comando:

docker run --publish 80:80 -it fazenda/rsmd R -e "shiny::runApp('.', host = '0.0.0.0', port = 80)"

Abra seu navegador e digite localhost nele.

homepage

Esta versão se encontra sem BD mais por motivos de "segurança" de que você rodando ela na sua máquina não estará enviando seus dados para nenhum BD externo nem nada do tipo. Apenas aquele que configurar ativamente ou rodar nas sua máquina.

Com o código e com BD

Baixe ou clone este repositório. Entre na pasta e rode o seguinte comando:

docker-compose up

Abrir seu navegador e digitar rsmd.docker.localhost nele.

database

Caso resolva brincar e fazer alterações no código, se lembre de rodar com as próximas vezes com a flag --build para o docker-compose não utilizar o cache gerado pela última execução

docker-compose up --build

obs: este processo pode levar algum tempo, se lembre que se trata de uma demo, um projeto deste nunca iria para produção de tal maneira. A ideia é mostrar pouco código e muito """resultado""", otimizações são necessárias e fora do escopo para uma demo

Sem o código e com BD

Caso queira mostrar para alguém o projeto rodando com o BD apenas mandando o arquivo docker-compose.yml, basta alterar o seguinte trexo:

...
    shiny:
        # build: . -- só remover esta linha
        image: fazenda/rsmd # e só adionar esta
        container_name: shiny
        restart: always
...

Com isto, um simples docker-compose up no mesmo diretório que estiver o novo arquivo fará a magia >,<

Banco de Dados

Como o próprio docker-compose.yml mostra, este pacote não possui um banco de dados persiste, mas para fazer tal apenas adicione as seguintes linhas ao seu mesmo arquivo:

...
        container_name: mongo
        restart: always
        environment:
            - MONGO_INITDB_ROOT_USERNAME=root
            - MONGO_INITDB_ROOT_PASSWORD=example
        volumes: # adicionar estas duas linhas substituindo a primeira parte do caminho pelo
            - /o/lugar/na/minha/maquina/para/salvar:/data/db  # caminho desejado, recomendo caminhos absolutos
...

Celular

Você consegue usar no seu celular também:

celular

Progressive Web Apps

Smartphone

PWA

Computador

MacOS

CI/CD

TODO

Autor

Licença

Utilizando a GNU V2

Referências



Fazendaaa/RSMD documentation built on March 14, 2023, 6:19 p.m.