-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Caution
O uso ou desenvolvimento NÃO oficial é desaconselhado devido às frequentes alterações de código, o que pode resultar em comportamentos imprevistos ou falhas críticas, tanto quanto mudança dos nomes, licenças e identificadores.
Arkhon é uma plataforma dedicada à criação de plantas baixas digitais, com um foco específico em arquitetura. O projeto arkhon-api constitui o Back-end da nossa plataforma, sendo conduzido por uma API escrita em Golang. Este componente desempenha um papel fundamental na infraestrutura técnica da Arkhon, facilitando a gestão eficiente dos dados e operações essenciais. O projeto foi concebido pela equipe Swibly, visando oferecer soluções tecnológicas acessíveis e eficazes para o campo da arquitetura digital.
Existem várias maneiras de rodar imagens Docker.
Podemos pegar diretamente do DockerHUB...
docker pull devkcud/arkhon-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/arkhon-api:latest
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 |
❌ |
Docker | 26.1.0 |
✔️ (Local) |
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 Arkhon. Eles automatizam tarefas tediosas e podem realizar outras adicionais.
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.
- Primeiramente, devemos clonar o repositório utilizando
git
:
git clone https://github.com/swibly/arkhon-api
cd arkhon-api
- Após estarmos dentro do projeto, devemos fazer algumas configurações prévias
Copie o arquivo .env.example
para .env
...
cp .env.example .env
...a configuração NÃO É OBRIGATÓRIA, a API é configurada para utilizar um banco local rodando em Docker por padrão e um secret JWT muito simples.
Padrão:
POSTGRES_HOST=localhost
POSTGRES_DB=arkhon-db
POSTGRES_USER=arkhon-db_owner
POSTGRES_PASSWORD=arkhon
POSTGRES_SSLMODE=disable
JWT_SECRET=jwtsecret
Veja a seção de configuração para mais informações.
- Proximo passo é construir o binário:
go build -race -o build/api -v ./cmd/api/main.go
# ou
make build
- Antes de rodar o projeto, tenha certeza de que o banco está rodando. Você pode subir um banco simples utilizando Docker:
docker compose up -d
# ou
make up
Para derrubar basta
docker compose down
oumake down
.
- Então, rode a API:
./build/api
# ou
make run
Tip
Você pode rodar make
que irá automaticamente construir o projeto (make build
) e executar o projeto (make run
).
Por fim, faça requisições na porta (por padrão): 0.0.0.0:8080
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
# ...