nix-cluster/docs/create-a-website.md

123 lines
3.9 KiB
Markdown

# Comment créer un site internet avec garage
## Création du site web
Pour servir les sites statiques la filouterie utilise [garage](https://garagehq.deuxfleurs.fr/) derrière [Tricot](https://git.deuxfleurs.fr/Deuxfleurs/tricot/). Voici les étapes à suivre pour se créer un site statique et y uploader des fichiers.
Tout d'abord connectez vous en SSH sur une des machines du cluster.
Ensuite pour faciliter les prochaines étapes faites un alias shell pour accéder à garage :
```
alias garage="docker exec -it <container_name> /garage"
```
Sachant que pour avoir le `<container_name>` utilisez la commande `docker ps` normalement il est sous la forme "server-62a435e6-dae0-e901-5c65-98e97c9d8c0e".
Maintenant que l'alias est fait vous pouvez créer un bucket avec le nom du site à créer. Ex :
```
garage bucket create test.chokbar.bzh
```
Si tout a fonctionné vous devriez avoir le texte suivant qui s'affiche :
```
[zuma@riri:~]$ garage bucket create test.chokbar.bzh
2025-11-22T21:18:18.979177Z INFO garage_net::netapp: Connected to 10.0.2.1:3901, negotiating handshake...
2025-11-22T21:18:19.024546Z INFO garage_net::netapp: Connection established to f1ef11406ffab64e
==== BUCKET INFORMATION ====
Bucket: a944b080f4fdd8a7132b57bf12103b88ac914897008bd2040d7a59973cd6e3bd
Created: 2025-11-22 21:18:19.049 +00:00
Size: 0 B (0 B)
Objects: 0
Website access: false
Global alias: test.chokbar.bzh
==== KEYS FOR THIS BUCKET ====
Permissions Access key Local aliases
```
Attention il y'a une propriété à ajouter pour transformer ce bucket en site statique, afin d'éviter que n'importe qui puisse accéder à tous nos bucket gratos. Il faut passer le bucket en mode site web :
```
garage bucket website --allow test.chokbar.bzh
```
Okay maintenant plus qu'à envoyer des trucs dessus ! Mais heu comment on fait ?
Il faut ajouter une clé pour pouvoir accéder à votre bucket !
Si vous n'en possédez pas vous pouvez en créer une comme ceci :
```
garage key create test-key
```
Cela devrait vous renvoyez ceci :
```
[zuma@riri:~]$ garage key create test-key
2025-11-22T21:22:12.412322Z INFO garage_net::netapp: Connected to 10.0.2.1:3901, negotiating handshake...
2025-11-22T21:22:12.457657Z INFO garage_net::netapp: Connection established to f1ef11406ffab64e
==== ACCESS KEY INFORMATION ====
Key ID: GKf760bfb32e04251efc08d8bd
Key name: test-key
Secret key: dbd1d7d0c6a57b3c4fb00a4b298d5edf37fe5b36b9b3ab9bd518ad1507274da7
Created: 2025-11-22 21:22:12.458 +00:00
Validity: valid
Expiration: never
Can create buckets: false
==== BUCKETS FOR THIS KEY ====
Permissions ID Global aliases Local aliases
```
Notez bien le `Key ID` et le `Secret key` c'est ce qui vous permet d'administrer vos bucket ensuite !
Une fois que la clé est créée plus qu'à l'ajouter au bucket :
```
garage bucket allow --read --write --owner test.chokbar.bzh --key test-key
```
C'est tout configuré, plus qu'à uploader.
Vous pouvez quand même checker l'état du bucket avec :
```
garage bucket info test.chokbar.bzh
```
Maintenant si vous voulez uploader des fichiers vous pouvez utiliser n'importe quel outil qui fonctionne avec s3 ([liste ici](https://garagehq.deuxfleurs.fr/documentation/connect/cli/)). En sachant que l'endpoint est `https://garage.chokbar.bzh`.
## Bonus : utiliser minio-client
Si vous utilisez minio-client vous pouvez configurer un serveur en faisant :
```
mc alias set \
garage \
https://garage.chokbar.bzh \
<access key> \
<secret key> \
--api S3v4
```
Et ensuite pour les commandes :
```
# La liste des buckets auxquels vous avez accès
mc ls garage/
# Copier un fichier index.html
mc cp ./index.html garage/test.chokbar.bzh/index.html
# Mirror un dossier local vers un dossier distant (genre blog hugo)
mc mirror --overwrite ./public garage/monblog.chokbar.bzh
```
Merci à toüs·tes