-
Notifications
You must be signed in to change notification settings - Fork 0
Home
A Swibly é uma empresa dedicada a criar soluções inovadoras por meio da tecnologia. Fundada com o propósito de transformar desafios complexos em oportunidades, a Swibly se destaca no mercado por sua abordagem centrada no cliente e foco constante em inovação.
Antes de continuarmos, você deve se atentar e verificar se as seguintes ferramentas estão instaladas:
| Ferramenta | Versão (mínima/testada) | Opcional |
|---|---|---|
| Go | 1.22 |
✔️ (Local) |
| Docker | 26.1.0 |
✔️ (Docker) |
| Make/Makefile | 4.4.1 |
✔️ (Local) |
Tip
Utilize sempre os comandos make (ou tente, pelo menos), pois os scripts são oficialmente suportados pela equipe da Swibly. Eles automatizam tarefas tediosas e podem realizar outras adicionais.
Existem várias maneiras de rodar imagens Docker.
Podemos pegar diretamente do DockerHUB...
docker pull devkcud/swibly-api:latest...por fim, rodar a API:
docker run \
--env POSTGRES_HOST=some-place \
--env POSTGRES_DB=some-db \
--env POSTGRES_USER=some-user \
--env POSTGRES_PASSWORD=some-pass \
--env POSTGRES_SSLMODE=maybe-disable-maybe-require \
--env JWT_SECRET=shhhh-its-a-secret \
-p 8080:8080 \
devkcud/swibly-api:latestWarning
O uso da API em ambientes Windows, MacOS/OSX ou outros não baseados em GNU/Linux não é oficialmente suportado e pode não funcionar corretamente.
Esta seção está em desenvolvimento e será atualizada. Caso ainda queria rodar a API localmente siga os seguintes passos e comandos:
Utilizando o Makefile (REQUER Docker):
cp .env.example .env
vim .env # configuração opcional
make up # opcional caso tenha um banco ja existente
make
-
make up:docker compose up -d -
make:go build -race -o build/api -v ./cmd/api/main.go
A API possuí, atualmente, 4 arquivos de configuração escritos em yaml.
São eles:
Esses arquivos de configuração são projetados para ser facilmente modificáveis. Para introduzir variáveis de ambiente (locais ou system-wide) na configuração, basta usar $NOME_DA_VARIAVEL. Por exemplo, no arquivo security.yaml:
# ...
jwt_secret: $JWT_SECRET
# ...