# Fermer un service sur Internet

> Le garder joignable par ses voisins, et par personne d'autre.

Tout ce qui n'a pas besoin d'être public ne devrait pas l'être : une base de données, un
cache, une API interne. Fermer ne les coupe pas de leurs voisins.

## Ce que ça change

| | Avant (ouvert) | Après (fermé) |
| --- | --- | --- |
| Les voisins du projet | Joignent par l'alias | Joignent par l'alias, **inchangé** |
| Internet | Joint l'adresse publique | Ne joint plus rien |
| Le port réservé | Gardé | Gardé |

## Comment

<Steps>
  <Step title="Ouvre les Réglages du service">
    Le panneau du service, onglet **Réglages**, bloc **Réseau**.
  </Step>
  <Step title="Bascule l'interrupteur">
    L'interface prévient : le conteneur va être refait, donc le service redémarre.
  </Step>
  <Step title="Attends la fin">
    L'interruption dure le temps d'un redémarrage. Le bloc affiche ensuite l'adresse
    interne seule.
  </Step>
</Steps>

<Warning>
Un `restart` ne suffit pas pour ça, et c'est contre-intuitif : les ports publiés sont
figés à la création du conteneur. L'interrupteur fait donc un **arrêt puis un démarrage**,
ce qui refait le conteneur. C'est pour ça qu'il y a une coupure.
</Warning>

## Vérifier plutôt que croire

Depuis ton poste, la vieille adresse ne doit plus répondre :

```bash
curl --max-time 5 http://51.210.44.12:30010
```

Et depuis un voisin du projet, l'alias doit toujours répondre. La
[console](/espace-client/console) d'un service voisin est l'endroit le plus court pour le
vérifier.

## Rouvrir

Le même interrupteur, dans l'autre sens. Si aucun port n'est plus réservé, on en prend un
sur l'IP partagée du nœud — l'adresse publique peut donc changer.
