Skip to content

Getting Started

Daniel Bastos edited this page Nov 10, 2023 · 1 revision

Bolo - Get Started

Este documento descreve o setup, comandos e outras informações relevantes sobre o projeto.

Setup do Projeto

Requisitos

  • Go (testado com versão 1.20)
  • Docker (opcional, mas recomendado)

Dependências

O projeto utiliza várias bibliotecas Go. Algumas das principais dependências incluem:

  • github.com/go-bolo/bolo
  • github.com/gookit/event
  • github.com/labstack/echo/v4
  • github.com/spf13/cobra

E muitas outras dependências indiretas.

Configuração

Existem dois arquivos de configuração de ambiente:

  • Desenvolvimento: development.env

    • Configurações padrão para desenvolvimento local.
    • Exemplo de configuração:
      • DEFAULT_LOCALE=pt-br
      • LOG_LV=verbose
      • DB_ENGINE="mysql"
      • GO_ENV="development" ... (e outras configurações)
  • Produção: production.env

    • Configurações padrão para ambiente de produção. Ajuste conforme necessário.

Docker

Um Dockerfile está incluído para construir e executar a aplicação em um container Docker.

Construção da imagem:

docker build -t nome_da_imagem .

Execução do container:

docker run -p 8080:8080 nome_da_imagem

O Dockerfile define vários estágios, incluindo base, dev, test e release. Ajuste conforme necessário.

Comandos

Iniciar o Servidor

Para iniciar o servidor HTTP, execute o seguinte comando:

go run main.go start-server

Adicionando Novas Funcionalidades

  1. Plugins: Se você deseja adicionar novas funcionalidades, considere criar um novo plugin. Plugins são módulos independentes que podem ser registrados no aplicativo principal. Por exemplo, o projeto atual tem plugins project e signUp registrados.

    Para criar um novo plugin:

    • Crie uma nova pasta para o seu plugin.
    • Dentro dessa pasta, defina a estrutura e lógica do seu plugin.
    • Registre o plugin no aplicativo usando app.RegisterPlugin.
  2. Iniciar o Aplicativo: O aplicativo é iniciado usando a função NewApp definida em NewApp.go. Se você precisar adicionar configurações ou comportamentos adicionais na inicialização do aplicativo, considere modificar esta função.

Migrações de Banco de Dados

O projeto utiliza a biblioteca golang-migrate para gerenciar migrações de banco de dados.

Comandos de Migração:

  1. Iniciar Migração e Criar o Banco de Dados:

    go run main.go migrate
  2. Executar Migrações: Este comando aplica todas as migrações pendentes.

    go run main.go migrate-up
  3. Reverter Migrações: Este comando reverte a última migração aplicada.

    go run main.go migrate-down

Notas:

  • A URI do banco de dados é obtida da variável de ambiente DB_URI.
  • As migrações estão localizadas no diretório migrations/db.

Espero que este README ajude a entender e trabalhar com o projeto. Se você tiver dúvidas ou feedback, sinta-se à vontade para contribuir.