Source code of my website
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

✨ : add hosting knot and PR sections

+96
content/posts/drafts/tangled/atcr-app-password.png

This is a binary file and will not be displayed.

content/posts/drafts/tangled/atcr-knot-image.png

This is a binary file and will not be displayed.

+96
content/posts/drafts/tangled/index.md
··· 110 110 111 111 ![Mon repo une fois le code pushé](tangled-repo-pushed.png) 112 112 113 + ## Héberger son propre _knot_ 114 + 115 + Le _knot_ est le serveur qui héberge les données de Git. 116 + 117 + Pour héberger un _knot_, il faut un serveur et un domaine DNS auquel le _knot_ sera accessible. 118 + Le _knot_ doit également être accessible en HTTPS, un certificat SSL valide est donc aussi nécessaire. 119 + 120 + Plusieurs méthodes d'installation sont proposées par Tangled : sur une VM _via_ [Nix](https://tangled.org/tangled.org/core/blob/master/nix/modules/knot.nix), _via_ une installation manuelle (à base de scripts), ou _via_ une image Docker. 121 + 122 + Par simplicité, j'ai donc décidé de créer une VM sur Scaleway, et d'y installer mon _knot_ avec docker-compose. 123 + 124 + Aucune specification minimale n'est indiquée pour l'installation, j'ai donc pris une machine minuscule (1vCPU et 1G de RAM). Le but est surtout que le service tourne, je ne m'attends pas particulièrement à ce qu'il soit performant. 125 + 126 + Après avoir installé Docker et docker-compose (je vous passe ces étapes), je récupère le fichier `docker-compose.yml` de Tangled. 127 + 128 + Il est relativement simple, il contient un container pour le _knot_, et un container pour _Caddy_, avec l'exposition en HTTPS. 129 + 130 + 131 + L'image du _knot_ est disponible sur le registry _ATCR_ (lui aussi lié à AT Proto). 132 + 133 + Lors de mes tests, cette image était un peu datée, donc j'ai dû en reconstruire une fraîche. 134 + 135 + J'ai récupéré le repository https://tangled.org/tangled.org/knot-docker sur ma machine, 136 + lancé un 137 + 138 + ```shell 139 + docker image build -t rg.fr-par.scw.cloud/tangled/knot:latest . 140 + 141 + docker image push rg.fr-par.scw.cloud/tangled/knot:latest 142 + ``` 143 + 144 + Une fois l'image buildée et pushée, je peux lancer le docker compose sur mon serveur : 145 + 146 + ```shell 147 + $ docker-compose up -d 148 + 149 + ✔ Image caddy:alpine Pulled 4.4s 150 + ✔ Image atcr.io/tangled.org/knot:latest Pulled 9.3s 151 + ✔ Network tangled_default Created 0.3s 152 + ✔ Container tangled-knot-1 Started 2.0s 153 + ✔ Container tangled-frontend-1 Started 1.7s 154 + ``` 155 + 156 + Une fois que tout est démarré, si j'accède à l'URL de mon _knot_ : 157 + ![img.png](knot-http.png) 158 + 159 + De retour dans l'interface de Tangled, je peux maintenant ajouter mon _knot_ : 160 + 161 + ![img.png](tangled-add-knot.png) 162 + 163 + ![img.png](tangled-knot-added.png) 164 + 165 + Une fois que mon knot est ajouté dans Tangled, lorsque je veux créer un repository, mon knot est proposé dans le formulaire. 166 + 167 + ![img.png](tangled-create-repo-with-knot.png) 168 + 169 + Lorsque le repo est créé, il apparaît alors sur mon _knot_, dans un répertoire portant pour nom son "did" AT Protocol : 170 + 171 + ```shell 172 + tangled@tangled-knot:/home/tangled/repositories# ls 173 + did:plc:uam62c7dmtnxgca3jlad63kg 174 + ``` 175 + 176 + ## Ouvrir une pull request 177 + 178 + Ouvrir une PR sur Tangled est assez similaire à d'autres outils. 179 + 180 + Pour ce faire, il faut se rendre sur le repo souhaité, et cliquer sur le bouton "New". 181 + 182 + Le formulaire propose alors de poser un `git diff` manuellement, ou d'extraire un diff de la comparaison d'un fork. 183 + 184 + Il est aussi possible d'ajouter un titre et une description, qui sont optionnelles (Tangled extrait les informations du premier commit pour alimenter ces champs). 185 + 186 + ![img.png](tangled-pr-form.png) 187 + 188 + ![img.png](tangled-pr.png) 189 + 190 + Une fois la PR créé, il est possible de push de nouveaux commits, de poser des commentaires, bref, c'est l'environnement habituel. 191 + 192 + Les PR sont stockées sous la forme de records AT Protocol, dans le PDS de l'utilisateur qui ouvre la PR. L'URI du record est visible dans l'interface de Tangled. 193 + 194 + ![img.png](tangled-pr-at-uri.png) 195 + 196 + On peut alors directement voir le record AT Protocol, avec ses différents champs. 197 + On y retrouve les informations sur la PR (titre et description), les _rounds_ correspondent aux push successifs, et référencent le blob qui contient le patch de la PR. 198 + 199 + ![img.png](tangled-pr-at-record.png) 200 + 201 + ## Les issues et les labels 202 + 203 + 204 + ## Liens et références 205 + 206 + * [Knot self-hosting guide](https://docs.tangled.org/knot-self-hosting-guide#knot-self-hosting-guide) 207 + * [Module Nix](https://tangled.org/tangled.org/core/blob/master/nix/modules/knot.nix) 208 + * [Image Docker](https://tangled.org/tangled.org/knot-docker)
content/posts/drafts/tangled/knot-http.png

This is a binary file and will not be displayed.

content/posts/drafts/tangled/tangled-add-knot.png

This is a binary file and will not be displayed.

content/posts/drafts/tangled/tangled-create-repo-with-knot.png

This is a binary file and will not be displayed.

content/posts/drafts/tangled/tangled-knot-added.png

This is a binary file and will not be displayed.

content/posts/drafts/tangled/tangled-pr-at-record.png

This is a binary file and will not be displayed.

content/posts/drafts/tangled/tangled-pr-at-uri.png

This is a binary file and will not be displayed.

content/posts/drafts/tangled/tangled-pr-form.png

This is a binary file and will not be displayed.

content/posts/drafts/tangled/tangled-pr.png

This is a binary file and will not be displayed.