feat: Permettre de configurer api et web par .env

L'ajout à viper de replacer et préfixe `BOTTIN` permet de déployer et
configurer l'application avec seulement docker-compose, en évitant
d'avoir à nécessairement uploader un fichier de config.

Ajoute aussi des explications dans `README.md` sur changements de
procédure
This commit is contained in:
Victor Lacasse-Beaudoin 2024-02-14 14:05:04 -05:00
parent 263d312b36
commit f7437d1719
3 changed files with 19 additions and 0 deletions

View file

@ -23,15 +23,22 @@ Remplir .env avec les infos qui seront utilisées pour déployer le container
(Remplacer `bottin` par quelque chose de plus sécuritaire) (Remplacer `bottin` par quelque chose de plus sécuritaire)
```sh ```sh
BOTTIN_API_KEY=bottin
BOTTIN_POSTGRES_DATABASE=bottin BOTTIN_POSTGRES_DATABASE=bottin
BOTTIN_POSTGRES_PASSWORD=bottin BOTTIN_POSTGRES_PASSWORD=bottin
BOTTIN_POSTGRES_USER=bottin BOTTIN_POSTGRES_USER=bottin
BOTTIN_WEB_PASSWORD=bottin
BOTTIN_WEB_USER=bottin
``` ```
Déployer avec docker-compose Déployer avec docker-compose
`$ docker-compose up -d` `$ docker-compose up -d`
### Optionnel: configuration par fichiers YAML
*seulement nécessaire si les fichiers `.env` et `docker-compose.yaml` ne contiennent pas toute l'information nécessaire*
Pour modifier la configuration du serveur API Pour modifier la configuration du serveur API
`$ docker-compose exec -it api vi /etc/bottin/api.yaml` `$ docker-compose exec -it api vi /etc/bottin/api.yaml`

View file

@ -3,6 +3,7 @@ package cmd
import ( import (
"fmt" "fmt"
"os" "os"
"strings"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/spf13/viper" "github.com/spf13/viper"
@ -47,6 +48,8 @@ func initConfig() {
viper.SetConfigName(".bottin") viper.SetConfigName(".bottin")
} }
viper.SetEnvPrefix("BOTTIN")
viper.SetEnvKeyReplacer(strings.NewReplacer(".", "_"))
viper.AutomaticEnv() // read in environment variables that match viper.AutomaticEnv() // read in environment variables that match
// If a config file is found, read it in. // If a config file is found, read it in.

View file

@ -15,6 +15,11 @@ services:
- db - db
build: . build: .
image: 'git.agecem.com/agecem/bottin:latest' image: 'git.agecem.com/agecem/bottin:latest'
environment:
BOTTIN_DB_DATABASE: "${BOTTIN_POSTGRES_DATABASE}"
BOTTIN_DB_PASSWORD: "${BOTTIN_POSTGRES_PASSWORD}"
BOTTIN_DB_USER: "${BOTTIN_POSTGRES_USER}"
BOTTIN_API_KEY: "${BOTTIN_API_KEY}"
ports: ports:
- '1312:1312' - '1312:1312'
volumes: volumes:
@ -27,6 +32,10 @@ services:
- api - api
build: . build: .
image: 'git.agecem.com/agecem/bottin:latest' image: 'git.agecem.com/agecem/bottin:latest'
environment:
BOTTIN_WEB_API_KEY: "${BOTTIN_API_KEY}"
BOTTIN_WEB_PASSWORD: "${BOTTIN_WEB_PASSWORD}"
BOTTIN_WEB_USER: "${BOTTIN_WEB_USER}"
ports: ports:
- '2312:2312' - '2312:2312'
volumes: volumes: