Improve developper experience
Some checks are pending
ci/woodpecker/pr/woodpecker Pipeline is pending approval

- Add docker compose
- Fix a few typo in README
- Add steps to run project locally
- Add a sample bottin config
This commit is contained in:
Fabien Le Frapper 2025-03-20 23:24:03 +01:00
parent 34c2ddc29e
commit 48df2123cf
3 changed files with 61 additions and 2 deletions

View file

@ -8,10 +8,10 @@ Guichet is a simple LDAP web interface for the following tasks:
- administration of the LDAP directory
- inviting new users to create accounts
Guichet works well with the [Bottin](https://bottin.eu) LDAP server.
Guichet works well with the [Bottin](https://git.deuxfleurs.fr/deuxfleurs/bottin) LDAP server.
Currently, Guichet's templates are only in French as it has been created for
the [Deuxfleurs](https://deuxfleurs.fr) collective.
We would gladly merge a pull request with an English transaltion !
We would gladly merge a pull request with an English translation !
A Docker image is provided on the [Docker hub](https://hub.docker.com/r/lxpz/guichet_amd64).
An example for running Guichet on a Nomad cluster can be found in `guichet.hcl.example`.
@ -129,3 +129,25 @@ Here is an example of Bottin ACLs that may be used to support Guichet invitation
Consult [this directory](https://git.deuxfleurs.fr/Deuxfleurs/infrastructure/src/branch/main/app/directory/config)
to view the full configuration in use on Deuxfleurs.
## Contribute
Guichet needs a few components to work :
- A Bottin server
- that needs a consul server
A basic consul / bottin stack is available through the docker compose file
```
docker compose up -d
```
You can then run Guichet locally
```sh
# First, copy a sample config file
copy config.json.example config.json
# Run the go development server
go run .
```
It will be available on http://localhost:9991

13
bottin.config.json Normal file
View file

@ -0,0 +1,13 @@
{
"suffix": "dc=bottin,dc=eu",
"bind": "127.0.0.1:1389",
"consul_host": "consul:8500",
"acl": [
"ANONYMOUS::bind:*,ou=users,dc=bottin,dc=eu:",
"ANONYMOUS::bind:cn=admin,dc=bottin,dc=eu:",
"*,dc=bottin,dc=eu::read:*:* !userpassword",
"*::read modify:SELF:*",
"cn=admin,dc=bottin,dc=eu::read add modify delete:*:*",
"*:cn=admin,ou=groups,dc=bottin,dc=eu:read add modify delete:*:*"
]
}

24
docker-compose.yml Normal file
View file

@ -0,0 +1,24 @@
services:
bottin:
image: lxpz/bottin_amd64
platform: linux/amd64
entrypoint: /bottin -config /config.json
depends_on:
consul:
condition: service_healthy
restart: true
ports:
- 389:389
volumes:
- ./bottin.config.json:/config.json
consul:
image: consul:1.15
command: agent -server -ui -node=server-1 -bootstrap-expect=1 -client=0.0.0.0
healthcheck:
test: curl --fail http://localhost:8500/ui || exit 1
interval: 10s
retries: 5
start_period: 10s
timeout: 10s
ports:
- "8500:8500"