Prérequis
Cette page liste ce dont les deux voies auto-hébergées ont besoin : le matériel, ce qu'Octopize vous fournit, ce que vous préparez et les flux réseau à ouvrir. Ce qui est propre à une voie, comme Docker sur le serveur ou les composants du cluster pour Kubernetes, figure sur la page d'installation de cette voie.
Matériel
La même capacité est nécessaire, qu'Avatar s'exécute sur un seul serveur Docker ou sur les nœuds d'un cluster Kubernetes :
| Ressource | Minimum | Recommandé |
|---|---|---|
| CPU | 4 cœurs, x86_64, 2,30 GHz | Davantage, pour des jobs plus rapides |
| Mémoire | 32 Go | 64 Go |
| Disque | 100 Go | Davantage pour les gros jeux de données |
| Réseau | 100 Mo/s | Davantage pour les gros jeux de données |
Fourni par Octopize
- Des identifiants de registre pour
quay.io, qui héberge les images privées d'Avatar. Vous les recevez à la signature du contrat. - Des identifiants de télémétrie (un nom de bucket S3, un identifiant de clé d'accès et un secret), si vous activez la télémétrie d'usage.
- Des identifiants SMTP, si vous choisissez d'envoyer les emails via le service de messagerie d'Octopize (AWS SES) plutôt que via votre propre serveur.
Préparé par vous
- Un nom de domaine pointant vers le serveur ou le load balancer, par exemple
avatar.company.com. Toutes les URL publiques (client web, API, stockage, SSO) en sont dérivées. - Un certificat TLS pour ce domaine, avec sa clé privée, au format PEM. La page d'installation
Docker explique comment convertir un fichier
.pfxou générer un certificat auto-signé pour un déploiement de test. - Un serveur SMTP par lequel Avatar peut envoyer des emails : hôte, port, identifiants si nécessaire, et mode TLS (STARTTLS ou TLS implicite). L'email est obligatoire : les utilisateurs reçoivent par email leurs liens de création de compte et de réinitialisation du mot de passe. Les adresses IP brutes ne sont pas acceptées comme hôte SMTP.
Flux réseau
Entrants
| Port | Depuis | Utilisé pour |
|---|---|---|
| 443 | Navigateurs et clients des utilisateurs | Le client web, l'API, l'authentification unique (SSO), et le téléversement et téléchargement des jeux de données (endpoint S3) |
Sortants
| Destination | Port | Quand | Utilisé pour |
|---|---|---|---|
quay.io | 443 | Installation et mises à jour | Images Avatar (avatar-service-api, avatar-web), le chart Helm et l'image de l'outil de déploiement |
docker.io | 443 | Installation et mises à jour | Images annexes (PostgreSQL, Nginx, SeaweedFS) |
ghcr.io | 443 | Installation et mises à jour | Images Authentik |
pypi.org | 443 | Installation et mises à jour | Le paquet octopize-deploy-tool (voie Docker uniquement) |
| Votre serveur SMTP | 25, 465 ou 587 | Toujours | Emails de création de compte, de réinitialisation du mot de passe et de notification |
sentry.io | 443 | Optionnel | Remontée d'erreurs |
license.octopize.io | 443 | Optionnel | Table de compatibilité des clients (téléchargement uniquement) |
| L'endpoint S3 de télémétrie | 443 | Optionnel | Télémétrie d'usage, lorsqu'elle est activée |
| Vos bases de données source et cible | Leurs propres ports (5432, 3306, 1521, 1433, 8123…) | Optionnel, Kubernetes uniquement | Exécutions sur base de données, depuis le pod du connecteur de bases de données |
Les flux d'installation et de mise à jour peuvent être fermés une fois le déploiement en service. Les flux optionnels peuvent être entièrement désactivés, voir Déploiements en environnement isolé.
Images de conteneurs
Le back end est écrit en Python (dask, polars, pyarrow, pandas, numpy), et le client web
en Next.js avec TypeScript. Tailles au moment de la rédaction :
| Image | Registre | Taille | Remarques |
|---|---|---|---|
avatar-service-api | quay.io | 3,00 Go | Privée |
avatar-web | quay.io | 0,30 Go | Privée |
authentik | ghcr.io | 1,00 Go | |
postgres | docker.io | 0,40 Go | |
seaweedfs | docker.io | 0,20 Go | |
nginx | docker.io | 0,20 Go | Voie Docker uniquement |
avatar-connector | quay.io | Privée. Optionnelle, Kubernetes uniquement : le connecteur de bases de données |
Prévoyez environ 6 Go d'espace disque par version d'Avatar, et supprimez les anciennes images après les mises à jour.
Déploiements en environnement isolé
Avatar fonctionne sans accès à Internet. Avant l'installation :
- Recopiez les images de conteneurs dans un registre accessible depuis le déploiement, ou chargez-les sur le serveur.
- Transférez l'installeur : le paquet
octopize-deploy-toolou son image pour Docker, ou l'archive du chart Helm (helm pull … --untar) pour Kubernetes. - Disposez du certificat TLS en local.
- Assurez-vous qu'un serveur SMTP interne est joignable.
Désactivez ensuite les flux sortants optionnels :
| Flux | Docker | Kubernetes |
|---|---|---|
| Remontée d'erreurs (Sentry) | IS_SENTRY_ENABLED: false | api.config.sentry.enabled: false |
| Table de compatibilité des clients | COMPATIBILITY_MAPPING_URL: "disabled" | api.config.compatibilityMappingUrl: "disabled" |
| Télémétrie d'usage | Laissez vides les valeurs de télémétrie | Laissez vides les valeurs telemetry.s3 |
Sous Docker, définissez-les dans votre fichier de configuration. Sous Kubernetes, voir aussi faire pointer le chart vers un miroir.
Pour recopier les images Authentik, consultez la documentation Authentik sur les environnements isolés.