Sign inSign up

dijkstrasolutions/stork-server

By dijkstrasolutions

•Updated 6 months ago

ISC Stork Server designed to use Postgres DB. DB needs to exist.

Image
Networking
Web servers
0

1.0K

dijkstrasolutions/stork-server repository overview

⁠Use this for full deployment of ISC Kea DHCP4, Agents needed for Stork and Stork itself

⁠Compose samples

⁠All in one (compose.all.yml)

services:
  # DHCP/Agents host
  kea-dhcp4:
    image: dijkstrasolutions/kea-dhcp4:${KEA_DHCP4_TAG:-latest}
    container_name: kea-dhcp
    profiles: ["dhcp-node"]
    network_mode: host
    cap_add: [ NET_ADMIN ]
    volumes:
      - /opt/kea/config:/kea/etc/kea
      - /opt/kea/logs:/var/log
      - kea-run:/var/run/kea
    command: ["/usr/sbin/kea-dhcp4", "-c", "/kea/etc/kea/kea-dhcp4.conf"]
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "pgrep", "-f", "kea-dhcp4"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 5s

  kea-ctrl-stork:
    image: dijkstrasolutions/kea-ctrl-stork-agents:${KEA_AGENTS_TAG:-latest}
    container_name: kea-ctrl-stork
    profiles: ["dhcp-node"]
    environment:
      ENABLE_CTRL_AGENT: "true"
      ENABLE_STORK_AGENT: "true"
    volumes:
      - /opt/kea/config:/kea/etc/kea:ro
      - /opt/kea/logs:/var/log/kea
      - /opt/stork:/etc/stork
      - /opt/stork/server-agent/hooks:/usr/lib/stork-agent/hooks
      - /opt/stork/logs:/var/log/stork-agent
      - /opt/stork/agent:/var/lib/stork-agent
      - kea-run:/var/run/kea
    ports:
      - "8000:8000"
      - "8081:8081"
    restart: unless-stopped
    depends_on:
      - kea-dhcp4
    healthcheck:
      test: ["CMD", "pgrep", "-f", "stork-agent"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 5s

  # Stork Server host
  stork-server:
    image: dijkstrasolutions/stork-server:${STORK_SERVER_TAG:-latest}
    container_name: stork-server
    profiles: ["stork-server"]
    environment:
      STORK_DATABASE_HOST: ${STORK_DB_HOST}
      STORK_DATABASE_PORT: ${STORK_DB_PORT:-5432}
      STORK_DATABASE_NAME: ${STORK_DB_NAME:-stork}
      STORK_DATABASE_USER_NAME: ${STORK_DB_USER}
      STORK_DATABASE_PASSWORD: ${STORK_DB_PASSWORD}
      STORK_REST_PORT: 80
    volumes:
      - /opt/stork/server/hooks:/usr/lib/stork-server/hooks
      - /opt/stork:/etc/stork
    ports:
      - "80:80"
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "curl", "-sf", "http://localhost"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 5s

volumes:
  kea-run:

cat > kea.env <<'EOF'
# Tags
KEA_DHCP4_TAG=latest
KEA_AGENTS_TAG=latest
STORK_SERVER_TAG=2.2.1

# Stork DB (used on the Stork Server host)
STORK_DB_HOST=192.168.100.230
STORK_DB_PORT=5432
STORK_DB_NAME=stork
STORK_DB_USER=kea
STORK_DB_PASSWORD=change_me
EOF


COMPOSE_PROFILES=dhcp-node docker compose -f compose.all.yml --env-file kea.env up -d

COMPOSE_PROFILES=stork-server docker compose -f compose.all.yml --env-file kea.env up -d

Note that a DB is needed here, you can add that service to the compose file or run that first. You will also need to init that DB too once its running. Follow those instructions from ISC.

This should deploy everything for you except the DB as mentioned it modifies the listening to port 80 vs port 8080 which is typical if not specified.

Tag summary

Content type

Image

Digest

sha256:530911aa6…

Size

119.9 MB

Last updated

6 months ago

docker pull dijkstrasolutions/stork-server