-
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:latest
Warning
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
# ...