All checks were successful
Build and Push Docker Images / build (push) Successful in 6s
NetBox Docker Image avec Plugins
Image Docker NetBox personnalisée avec plugins pré-installés, construite automatiquement via Gitea Actions.
Plugins inclus
Par défaut, les plugins suivants sont installés :
| Plugin | Description | Version (pour NetBox 4.4.x) |
|---|---|---|
netbox-branching |
Branching et change management (NetBox Labs) | 0.7.x |
netbox-bgp |
Gestion des sessions BGP, peers, communities | 0.17.x |
netbox-secrets |
Gestion sécurisée des secrets et mots de passe | latest |
netbox-topology-views |
Visualisation de topologie réseau | latest |
Utilisation
Pull depuis le registry
# Dernière version
docker pull gitea.arnodo.fr/damien/netbox:latest
# Version spécifique
docker pull gitea.arnodo.fr/damien/netbox:v4.4
Avec Docker Compose
Créer un docker-compose.override.yml pour utiliser l'image personnalisée :
services:
netbox:
image: gitea.arnodo.fr/damien/netbox:v4.4
pull_policy: always
netbox-worker:
image: gitea.arnodo.fr/damien/netbox:v4.4
pull_policy: always
netbox-housekeeping:
image: gitea.arnodo.fr/damien/netbox:v4.4
pull_policy: always
⚠️ Configuration requise pour netbox-branching
Le plugin netbox-branching nécessite une configuration spéciale de la base de données. Tu dois modifier ta configuration NetBox pour wrapper DATABASES avec DynamicSchemaDict.
Dans ton configuration.py ou via variables d'environnement :
from netbox_branching.utilities import DynamicSchemaDict
DATABASES = DynamicSchemaDict({
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'netbox',
'USER': 'netbox',
'PASSWORD': 'password',
'HOST': 'postgres',
'PORT': '',
}
})
DATABASE_ROUTERS = [
'netbox_branching.database.BranchAwareRouter',
]
Permissions PostgreSQL requises
L'utilisateur PostgreSQL doit avoir la permission de créer des schemas :
GRANT CREATE ON DATABASE netbox TO netbox;
Voir la documentation officielle netbox-branching pour plus de détails.
Gestion des versions
La version de NetBox est définie dans le fichier NETBOX_VERSION. Pour changer de version :
- Modifier le fichier
NETBOX_VERSIONavec la version souhaitée (ex:v4.4) - Mettre à jour les versions des plugins dans
plugin_requirements.txtsi nécessaire - Commit et push
- Le CI va automatiquement :
- Builder l'image avec cette version de NetBox
- Tagger l'image avec
latestET avec la version (ex:v4.4)
Compatibilité plugins / NetBox
| NetBox | netbox-branching | netbox-bgp |
|---|---|---|
| 4.4.x | 0.7.x | 0.17.x |
| 4.5.x | 0.8.x+ | 0.18.x+ |
Personnalisation des plugins
Ajouter un plugin
- Éditer
plugin_requirements.txtet ajouter le package PyPI - Éditer
plugins.pyet ajouter le plugin à la listePLUGINS - Configurer le plugin dans
PLUGINS_CONFIGsi nécessaire - Commit et push - l'image sera rebuild automatiquement
Structure des fichiers
images/netbox/
├── Dockerfile # Image principale
├── NETBOX_VERSION # Version de NetBox à utiliser
├── plugin_requirements.txt # Liste des plugins PyPI (avec versions)
├── plugins.py # Configuration des plugins
└── README.md # Cette documentation
Plugins - Liens et documentation
- netbox-branching : https://github.com/netboxlabs/netbox-branching
- netbox-bgp : https://github.com/netbox-community/netbox-bgp
- netbox-secrets : https://github.com/Onemind-Services-LLC/netbox-secrets
- netbox-topology-views : https://github.com/netbox-community/netbox-topology-views
Notes
- L'image utilise
uv pippour l'installation des plugins (méthode officielle NetBox Docker) - Les assets statiques sont collectés au premier démarrage (pas au build)
- Compatible avec NetBox >= 4.0 (netbox-branching requiert NetBox 4.1+)
- Le fichier
NETBOX_VERSIONcontrôle la version de base et le tag de l'image - Les versions des plugins sont fixées pour garantir la compatibilité