Upgrade Netbox Docker 4.0.2 ke 5.1.1

Karena ini adalah proses upgrade major maka ada cara tertentu

Pastikan saat ini berda di directory netbox docker 4.0.2

cd /path/to/netbox-docker-4.0.2/

Dump database

docker compose exec postgres sh -c 'pg_dump -cU netbox netbox' > db_backup.sql

Matikan service

docker compose down

Mundur 1 directory

cd ..

Unduh netbox 5.1.1 (latest)

wget "https://github.com/netbox-community/netbox-docker/archive/refs/tags/5.1.1.tar.gz"

Extract

tar xzvf 5.1.1.tar.gz

Masuk ke directory Netbox 5.1.1 yang telah di ekstrak

cd netbox-docker-5.1.1/

Buat file override

nano docker-compose.override.yml

Masukkan baris berikut:

services:
  netbox:
    ports:
      - "172.17.8.1:8000:8080"
    restart: always
    volumes:
      - ./configuration:/etc/netbox/config:z,ro
      - ./data/netbox-media-files:/opt/netbox/netbox/media:rw
      - ./data/netbox-reports-files:/opt/netbox/netbox/reports:rw
      - ./data/netbox-scripts-files:/opt/netbox/netbox/scripts:rw

  netbox-worker:
    restart: always

  postgres:
    restart: always
    volumes:
      - ./data/netbox-postgres-data:/var/lib/postgresql

  redis:
    restart: always
    volumes:
      - ./data/netbox-redis-data:/data
      
  redis-cache:
    restart: always
    volumes:
      - ./data/netbox-redis-cache-data:/data

Buat directory khsusu prostgress dan atur permission nya

mkdir -p data/netbox-postgres-data
chown -R 70:70 ./data/netbox-postgres-data

Salin file dan database hasil dump

cp -r ../netbox-docker-4.0.2/volumes/netbox-media-files/ ./data/
cp -r ../netbox-docker-4.0.2/volumes/netbox-reports-files/ ./data/
cp -r ../netbox-docker-4.0.2/volumes/netbox-scripts-files/ ./data/
cp ../netbox-docker-4.0.2/db_backup.sql ./

Download image yang diperlukan

docker compose pull

Jalankan terlebih dahulu service/container postgres, redis, dan redis-cache

docker compose up -d postgres redis redis-cache

Restore database

cat db_backup.sql | docker compose exec -T postgres sh -c 'psql -U netbox -d netbox'

Tunggu beberapa saat, akan muncul output panjang

Jika sudah selesai, matikan kembali service/container postgres, redis, dan redis-cache

docker compose down postgres redis redis-cache

Hidupkan seluruh service/container

docker compose up -d

Tunggu beberapa saat, ini akan membutuhkan waktu karena akan ada proses migrasi

Abaikan terlebihdahulu jika terdapat error seperti berikut

[+] up 6/6
 ✔ Network netbox-docker-511_default           Created                                                         0.0s
 ✔ Container netbox-docker-511-postgres-1      Started                                                         0.4s
 ✔ Container netbox-docker-511-redis-cache-1   Started                                                         0.4s
 ✔ Container netbox-docker-511-redis-1         Started                                                         0.3s
 ✘ Container netbox-docker-511-netbox-1        Error dependency netbox failed to start                       122.5s
 ✔ Container netbox-docker-511-netbox-worker-1 Created                                                         0.1s
dependency failed to start: container netbox-docker-511-netbox-1 is unhealthy

Pantau log hingga proses migrasi selesai

docker compose logs -f

Proses selesai ditandai dengan log seperti berikut

netbox-1       | 🧬 loaded config '/etc/netbox/config/configuration.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/extra.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/logging.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/plugins.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/configuration.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/extra.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/logging.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/plugins.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/configuration.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/extra.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/logging.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/plugins.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/configuration.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/extra.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/logging.py'
netbox-1       | 🧬 loaded config '/etc/netbox/config/plugins.py'
netbox-1       | [INFO] Started worker-2
netbox-1       | [INFO] Started worker-1
netbox-1       | [INFO] Started worker-3
netbox-1       | [INFO] Started worker-4
netbox-1       | [2026-10-01 03:45:00 +0000] : - "GET /login/ HTTP/1.1" 200 1686.300
netbox-1       | [2026-10-01 03:45:17 +0000] : - "GET /login/ HTTP/1.1" 200 7.810
netbox-1       | [2026-10-01 03:45:32 +0000] : - "GET /login/ HTTP/1.1" 200 23.113

Matikan dan hidupkan kembali service

docker compose down
docker compose up -d

Jika berhasil hasilnya seperti berikut

[+] up 6/6
 ✔ Network netbox-docker-511_default           Created                                                         0.0s
 ✔ Container netbox-docker-511-postgres-1      Started                                                         0.3s
 ✔ Container netbox-docker-511-redis-cache-1   Started                                                         0.3s
 ✔ Container netbox-docker-511-redis-1         Started                                                         0.3s
 ✔ Container netbox-docker-511-netbox-1        Healthy                                                        28.0s
 ✔ Container netbox-docker-511-netbox-worker-1 Started                                                        28.1s

Agar tidak ada masalah ketika upload images berikan permission sperti berikut

docker compose exec -u 0 netbox chown -R netbox:root /opt/netbox/netbox/media /opt/netbox/netbox/reports /opt/netbox/netbox/scripts
docker compose exec -u 0 netbox chmod -R 775 /opt/netbox/netbox/media /opt/netbox/netbox/reports /opt/netbox/netbox/scripts