diff --git a/README.md b/README.md index a93d0e1..291ee46 100644 --- a/README.md +++ b/README.md @@ -1,52 +1,164 @@ # localdev -Code and configuration to create a network-local development environment. It uses tailscale and can be used to have shared isolated infrastructure that can be used to support individuals and teams. +Code et configuration pour créer un environnement de développement réseau local. Il utilise Tailscale et peut être utilisé pour mettre en place une infrastructure isolée partagée qui peut soutenir aussi bien des individus que des équipes. -***Note***: When developing against this network-local development environment using the configured nameserver and PLC instance, you will not be able to mix pyroclastic.cloud identities and external identities unless you take steps to resolve against ***both*** the local PLC instance (`https://plc.internal.ts.net`) as well as `https://plc.directory`. +***Remarque***: Lorsque vous développez dans cet environnement de développement réseau local en utilisant le serveur de noms et l'instance PLC configurés, vous ne pourrez pas mélanger les identités pyroclastic.cloud et les identités externes, sauf si vous prenez des mesures pour résoudre les noms à la fois via ***l'instance PLC locale*** (`https://plc.internal.ts.net`) et via `https://plc.directory`. -## Requirements +## Qu'est-ce que c'est? -* Docker Compose -* Tailscale - * DNS enabled - * HTTPS enabled - * The name of your tailnet (i.e. `sneaky-fox.ts.net`) +Ce projet vous permet de créer un environnement de développement complet pour les services Bluesky/AT Protocol sur votre réseau local. Cela inclut: +- Un service PLC (Personal Labeling Certificate) - gère les identités +- Un service PDS (Personal Data Server) - stocke et gère les données utilisateur +- Un service DNS - pour la résolution locale des noms +- Un administrateur DID - pour gérer les identifiants décentralisés +- Une interface de messagerie de développement -## Operation +## Prérequis -1. Clone this repository +* Docker Compose - pour exécuter des conteneurs (installer avec `sudo apt-get install docker-compose` sur Ubuntu/Debian ou suivre les instructions sur [le site officiel de Docker](https://docs.docker.com/compose/install/)) +* Tailscale - pour créer un réseau privé virtuel + * DNS activé - pour la résolution de noms + * HTTPS activé - pour les connexions sécurisées + * Le nom de votre tailnet (p. ex. `sneaky-fox.ts.net`) - vous le trouverez dans les paramètres Tailscale -2. Configure and start the PLC service. See plc/README.md +Pour installer Tailscale (si vous ne l'avez pas déjà) : +```bash +# Pour Ubuntu/Debian +curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.gpg | sudo apt-key add - +curl -fsSL https://pkgs.tailscale.com/stable/ubuntu/focal.list | sudo tee /etc/apt/sources.list.d/tailscale.list +sudo apt-get update +sudo apt-get install tailscale -3. Configure and start the PDS service. See pds/README.md - -4. Configure and start the DNS service. See dns/README.md - -5. Configure split-DNS in Tailscale. - - 1. Visit https://tailscale.com/ - 2. Go to the Machines tab and get the internal IP address of `didadmin` - 2. Go to the DNS configuration page - 3. Add a nameserver and select "Custom" - 4. Enter the IP address of the `didadmin`, select "Restrict to domain (Split DNS)", and set the domain to "pyroclastic.cloud" - -## Usage - -The following services are now available: - -* PLC - https://plc.internal.ts.net -* PDS - https://pds.internal.ts.net -* DNS - didadmin.internal.ts.net:53 -* didadmin - https://didadmin.internal.ts.net -* maildev - http://pds.internal.ts.net:1080 +# Puis connectez-vous +sudo tailscale up +``` -When configuration applications for local/local-network development, use the following configuration: +## Mise en place + +1. Clonez ce dépôt + ```bash + git clone https://github.com/votre-nom/localdev.git + cd localdev + ``` + +2. Configurez et démarrez le service PLC. + ```bash + # Allez dans le répertoire PLC + cd plc + # Copiez le fichier d'exemple et personnalisez-le selon vos besoins + cp docker-compose.example.yml docker-compose.yml + # Démarrer le service + docker-compose up -d + ``` + Pour plus de détails, consultez plc/README.md + +3. Configurez et démarrez le service PDS. + ```bash + # Allez dans le répertoire PDS + cd ../pds + # Copiez et personnalisez les fichiers d'exemple + cp docker-compose.example.yml docker-compose.yml + cp env.example .env + # Démarrer le service + docker-compose up -d + ``` + Pour plus de détails, consultez pds/README.md + +4. Configurez et démarrez le service DNS. + ```bash + # Allez dans le répertoire DNS + cd ../dns + # Copiez et personnalisez les fichiers d'exemple + cp docker-compose.example.yml docker-compose.yml + cp Corefile.example Corefile + # Démarrer le service + docker-compose up -d + ``` + Pour plus de détails, consultez dns/README.md + +5. Configurez le Split-DNS dans Tailscale. + + 1. Visitez [https://tailscale.com/](https://tailscale.com/) et connectez-vous à votre compte + 2. Allez dans l'onglet "Machines" et notez l'adresse IP interne de la machine `didadmin` (généralement au format 100.x.y.z) + 3. Allez dans la page de configuration DNS (onglet "DNS") + 4. Ajoutez un serveur de noms et sélectionnez "Personnalisé" ("Custom") + 5. Entrez l'adresse IP de `didadmin`, cochez "Restreindre au domaine (Split DNS)" ("Restrict to domain (Split DNS)"), et définissez le domaine sur "pyroclastic.cloud" + 6. Enregistrez les modifications + +## Utilisation + +Une fois la configuration terminée, les services suivants sont désormais disponibles sur votre réseau local: + +* PLC (Serveur de certificats) - [https://plc.internal.ts.net](https://plc.internal.ts.net) + * Ce service gère les identités et certificats pour le protocole AT +* PDS (Serveur de données personnel) - [https://pds.internal.ts.net](https://pds.internal.ts.net) + * Ce service stocke et gère vos données utilisateur Bluesky/AT Protocol +* DNS (Serveur de noms) - didadmin.internal.ts.net:53 + * Service de résolution de noms pour votre environnement local +* didadmin (Administration des identifiants) - [https://didadmin.internal.ts.net](https://didadmin.internal.ts.net) + * Interface d'administration pour les identifiants décentralisés (DID) +* maildev (Service de mail pour développement) - [http://pds.internal.ts.net:1080](http://pds.internal.ts.net:1080) + * Interface web pour intercepter et visualiser les emails envoyés par le système + +### Comment configurer vos applications + +Lorsque vous configurez des applications pour le développement local ou sur réseau local, utilisez la configuration suivante: ``` +# Serveur DNS à utiliser (adresse Tailscale DNS) NAMESERVERS=100.100.100.100 +# URL du serveur PLC local PLC_HOSTNAME=https://plc.internal.ts.net ``` +### Création d'un compte utilisateur + +Pour créer un compte utilisateur dans votre environnement local: +1. Accédez à [https://pds.internal.ts.net](https://pds.internal.ts.net) +2. Suivez le processus d'inscription +3. Vous pouvez utiliser n'importe quelle adresse email, les emails sont capturés par maildev et visibles à [http://pds.internal.ts.net:1080](http://pds.internal.ts.net:1080) + ## Maintenance -Tailscale SSL certificates need to be periodically regenerated. Run the respective `docker compose exec tailscale /bin/sh -c "tailscale cert ..."` command to generate new certs and restart (stop and start) the nginx proxy for it to use the new cert. +### Renouvellement des certificats SSL + +Les certificats SSL de Tailscale doivent être régénérés périodiquement. Voici comment faire: + +1. Pour le service PLC: + ```bash + cd plc + docker compose exec tailscale /bin/sh -c "tailscale cert plc.internal.ts.net" + docker compose stop nginx + docker compose start nginx + ``` + +2. Pour le service PDS: + ```bash + cd pds + docker compose exec tailscale /bin/sh -c "tailscale cert pds.internal.ts.net" + docker compose stop nginx + docker compose start nginx + ``` + +3. Pour le service didadmin: + ```bash + cd dns + docker compose exec tailscale /bin/sh -c "tailscale cert didadmin.internal.ts.net" + docker compose stop nginx + docker compose start nginx + ``` + +### Mise à jour des services + +Pour mettre à jour les services vers les dernières versions: +1. Arrêtez les services: `docker compose down` +2. Tirez les dernières images: `docker compose pull` +3. Redémarrez les services: `docker compose up -d` + +### Dépannage + +Si vous rencontrez des problèmes: +1. Vérifiez les logs: `docker compose logs -f` +2. Assurez-vous que Tailscale est correctement configuré et fonctionne +3. Vérifiez que les ports nécessaires ne sont pas bloqués par un pare-feu +4. Redémarrez un service spécifique: `docker compose restart `