volumes:
bootimus_data:
driver: local
postgres_data:
driver: local
services:
postgres:
image: postgres:18
container_name: bootimus-db
restart: unless-stopped
environment:
- TZ=${TZ}
- POSTGRES_USER=${BOOTIMUS_DB_USER}
- POSTGRES_PASSWORD=${BOOTIMUS_DB_PASSWORD}
- POSTGRES_DB=${BOOTIMUS_DB_NAME}
volumes:
- postgres_data:/var/lib/postgresql
healthcheck:
test: ["CMD-SHELL", "pg_isready -U ${BOOTIMUS_DB_USER} -d ${BOOTIMUS_DB_NAME}"]
interval: 30s
timeout: 5s
retries: 5
start_period: 20s
bootimus:
image: garybowers/bootimus:latest
container_name: bootimus
restart: unless-stopped
cap_add:
- NET_BIND_SERVICE
environment:
- TZ=${TZ}
- BOOTIMUS_DATA_DIR=/data
- BOOTIMUS_DB_HOST=bootimus-db
- BOOTIMUS_DB_PORT=5432
- BOOTIMUS_DB_USER=${BOOTIMUS_DB_USER}
- BOOTIMUS_DB_PASSWORD=${BOOTIMUS_DB_PASSWORD}
- BOOTIMUS_DB_NAME=${BOOTIMUS_DB_NAME}
- BOOTIMUS_DB_SSLMODE=disable
- BOOTIMUS_SERVER_ADDR=${BOOTIMUS_SERVER_ADDR}
- BOOTIMUS_TFTP_PORT=69
- BOOTIMUS_HTTP_PORT=8080
- BOOTIMUS_ADMIN_PORT=8081
# Required for Windows ISO installs
- BOOTIMUS_WINDOWS_SMB_ENABLED=true
ports:
- 69:69/udp # TFTP - initial PXE/iPXE boot files
- 8080:8080/tcp # PXE HTTP service - menu.ipxe, kernels, initrd, Windows PE files
- 8081:8081/tcp # Bootimus admin UI
- 445:445/tcp # SMB direct hosting - required for Windows setup files
- 139:139/tcp # NetBIOS SMB fallback
- 137:137/udp # NetBIOS name service
- 138:138/udp # NetBIOS datagram service
# Not needed when MikroTik provides DHCP option 66/67:
# - 67:67/udp # DHCP server
# - 4011:4011/udp # ProxyDHCP / PXE DHCP helper, only if Bootimus handles PXE DHCP
volumes:
- bootimus_data:/data
healthcheck:
test: ["CMD-SHELL", "timeout 5 bash -c '</dev/tcp/127.0.0.1/8081'"]
interval: 30s
timeout: 10s
retries: 5
start_period: 60s
Problem:
Current Workaround:
DHCP servers gives out: ipxe.efi
Tested with Lenovo P15 Gen 2 and Proxmox VM
My docker compose :