- Add Hook interface (filter + execute contract) in server/hooks/hook.h
- Add HookRunner in server/hooks/hook_runner.h: spawns a detached thread
per matching hook, with try/catch protection against crashes
- Add DnsUpdaterHook in server/hooks/dns_updater_hook.{h,cpp}:
triggers on server name changes, logs in to Technitium, deletes the
old A record (ignores 404), and adds the new A record
Config via env vars: TECHNITIUM_HOST/PORT/USER/PASS/ZONE, DNS_TTL
- Add Database::get_nics_for_server() to resolve a server's IPv4 address
- Wire HookRunner into InventoryServer; cmd_edit_server now fires hooks
with before/after Server snapshots
- Update CMakeLists.txt to include dns_updater_hook.cpp
- Document env vars in Dockerfile
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
15 lines
556 B
Text
15 lines
556 B
Text
FROM ubuntu:24.04 AS builder
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
cmake make g++ && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
WORKDIR /src
|
|
COPY . .
|
|
RUN rm -rf build && cmake -S . -B build -DCMAKE_BUILD_TYPE=Release && \
|
|
cmake --build build --parallel
|
|
|
|
FROM ubuntu:24.04
|
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
|
dmidecode iproute2 util-linux pciutils libstdc++6 && \
|
|
rm -rf /var/lib/apt/lists/*
|
|
COPY --from=builder /src/build/inventory-cli /usr/local/bin/
|
|
ENTRYPOINT ["inventory-cli"]
|