4.7 KiB
Démarrer avec les sources
Dans ce tutoriel, nous verrons comment lancer un environnement de développement en local sur notre machine afin de travailler sur les sources de Bouncer.
Prérequis
Les éléments suivants doivent être installés sur votre machine:
Les ports suivants doivent être disponibles sur votre machine:
8080
8081
Étapes
-
Cloner le dépôt des sources du projet Bouncer
git clone https://forge.cadoles.com/Cadoles/bouncer
-
Se positionner dans le répertoire du projet
cd bouncer
-
Lancer le projet en mode "développement"
make watch
Si toutes les dépendances sont correctement installées et configurées sur votre machine, la console devrait afficher une série de messages pour ensuite s'arrêter sur quelque chose ressemblant à:
14:47:06: daemon: make run BOUNCER_CMD="--config config.yml server admin run"
2023-06-23 20:47:06.095 [INFO] <./internal/command/server/admin/run.go:42> RunCommand.func1 listening {"url": "http://127.0.0.1:8081"}
2023-06-23 20:47:06.095 [INFO] <./internal/admin/server.go:126> (*Server).run http server listening
14:47:06: daemon: make run-redis
bouncer-redis
docker run --rm -t \
--name bouncer-redis \
-v /home/wpetit/workspace/bouncer/data/redis:/data \
-p 6379:6379 \
redis:alpine3.17 \
redis-server --save 60 1 --loglevel warning
1:C 23 Jun 2023 20:47:06.754 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 23 Jun 2023 20:47:06.754 # Redis version=7.0.11, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 23 Jun 2023 20:47:06.754 # Configuration loaded
1:M 23 Jun 2023 20:47:06.759 # Warning: Could not create server TCP listening socket ::*:6379: unable to bind socket, errno: 97
1:M 23 Jun 2023 20:47:06.760 # Server initialized
1:M 23 Jun 2023 20:47:06.760 # WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect
À ce stade, le serveur bouncer-admin
écoute sur http://127.0.0.1:8081 et le serveur bouncer-proxy
sur http://127.0.0.1:8080.
Note
L'outil
modd
est utilisé pour surveiller les modifications sur les sources et relancer automatiquement la compilation et les services en cas de changement.
Commandes make
utiles
make watch
Surveiller les sources, compiler celles ci en cas de modifications et lancer les services bouncer-proxy
et bouncer-admin
.
make test
Exécuter les tests unitaires/d'intégration du projet.
make build
Compiler une version de développement du binaire bouncer
.
make docker-build
Construire une image Docker pour Bouncer.
Vous pouvez ensuite lancer l'image localement avec la commande:
docker run \
-it --rm \
reg.cadoles.com/cadoles/bouncer:<tag> \
-p 8080:8080 \
bouncer server proxy run
make grafterm
Afficher un tableau de bord grafterm
branché sur l'instance Prometheus locale.
make siege
Lancer une session de test siege
sur l'instance bouncer-proxy
locale.
Arborescence du projet
.
├── bin # Répertoire de destination des binaires Go de développement
├── cmd # Package principal (main) du binaire Bouncer
├── data # Répertoire des données de développement (Redis)
├── dist # Répertoire de destination des archives/paquets pour la publication
├── doc # Répertoire de documentation du projet
├── internal # Source Go du projet
│ ├── admin
│ ├── auth
│ ├── chi
│ ├── client
│ ├── command
│ ├── config
│ ├── format
│ ├── imports
│ ├── jwk
│ ├── proxy
│ ├── schema
│ ├── setup
│ └── store
├── layers # Fichiers annexes liés aux layers (templates HTML)
│ └── queue
├── misc # Fichiers annexes
│ ├── jenkins # Fichiers liés au pipeline d'intégration continue Jenkins
│ ├── logo # Logo du projet
│ └── packaging # Fichiers liés à l'empaquetage des binaires
└── tools # Outils utilisés en développement