mirror of
https://github.com/netbox-community/netbox-docker.git
synced 2025-12-10 13:52:38 +00:00
Netbox plugins can now be mounted into the container and will be loaded automatically from the mounted path. A configuration file to enabled the plugin in has to be mounted additionally. To install a plugin from outside the container you need to use the same Python version as is used in the container. At the moment that is Python 3.11. Assuming you are in the netbox-docker directory and using the default configuration, just run this command, to install the netbox-initializers plugin: pip install --target=plugins netbox-initializers
89 lines
2.2 KiB
YAML
89 lines
2.2 KiB
YAML
version: '3.4'
|
|
services:
|
|
netbox: &netbox
|
|
image: docker.io/netboxcommunity/netbox:${VERSION-v3.6-2.7.0}
|
|
depends_on:
|
|
- postgres
|
|
- redis
|
|
- redis-cache
|
|
env_file: env/netbox.env
|
|
user: 'unit:root'
|
|
healthcheck:
|
|
start_period: 60s
|
|
timeout: 3s
|
|
interval: 15s
|
|
test: "curl -f http://localhost:8080/api/ || exit 1"
|
|
volumes:
|
|
- ./configuration:/etc/netbox/config:z,ro
|
|
- ./plugins:/opt/netbox/plugins:z,ro
|
|
- netbox-media-files:/opt/netbox/netbox/media:rw
|
|
- netbox-reports-files:/opt/netbox/netbox/reports:rw
|
|
- netbox-scripts-files:/opt/netbox/netbox/scripts:rw
|
|
netbox-worker:
|
|
<<: *netbox
|
|
depends_on:
|
|
netbox:
|
|
condition: service_healthy
|
|
command:
|
|
- /opt/netbox/venv/bin/python
|
|
- /opt/netbox/netbox/manage.py
|
|
- rqworker
|
|
healthcheck:
|
|
start_period: 20s
|
|
timeout: 3s
|
|
interval: 15s
|
|
test: "ps -aux | grep -v grep | grep -q rqworker || exit 1"
|
|
netbox-housekeeping:
|
|
<<: *netbox
|
|
depends_on:
|
|
netbox:
|
|
condition: service_healthy
|
|
command:
|
|
- /opt/netbox/housekeeping.sh
|
|
healthcheck:
|
|
start_period: 20s
|
|
timeout: 3s
|
|
interval: 15s
|
|
test: "ps -aux | grep -v grep | grep -q housekeeping || exit 1"
|
|
|
|
# postgres
|
|
postgres:
|
|
image: docker.io/postgres:15-alpine
|
|
env_file: env/postgres.env
|
|
volumes:
|
|
- netbox-postgres-data:/var/lib/postgresql/data
|
|
|
|
# redis
|
|
redis:
|
|
image: docker.io/redis:7-alpine
|
|
command:
|
|
- sh
|
|
- -c # this is to evaluate the $REDIS_PASSWORD from the env
|
|
- redis-server --appendonly yes --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
|
|
env_file: env/redis.env
|
|
volumes:
|
|
- netbox-redis-data:/data
|
|
redis-cache:
|
|
image: docker.io/redis:7-alpine
|
|
command:
|
|
- sh
|
|
- -c # this is to evaluate the $REDIS_PASSWORD from the env
|
|
- redis-server --requirepass $$REDIS_PASSWORD ## $$ because of docker-compose
|
|
env_file: env/redis-cache.env
|
|
volumes:
|
|
- netbox-redis-cache-data:/data
|
|
|
|
volumes:
|
|
netbox-media-files:
|
|
driver: local
|
|
netbox-postgres-data:
|
|
driver: local
|
|
netbox-redis-cache-data:
|
|
driver: local
|
|
netbox-redis-data:
|
|
driver: local
|
|
netbox-reports-files:
|
|
driver: local
|
|
netbox-scripts-files:
|
|
driver: local
|