Skip to content

shackspace/shackdns

Repository files navigation

shackDNS

Warning: Work in progress!

Building

Deployment

shackDNS can be run as a docker container. Just run the following command:

docker build .

to build the container.

Manual / Development

Dependencies:

  • Mono 6
  • Nuget
  • Gnu Make

Build Process:

make

Deployment

The Makefile will create a new folder called bin which contains all required files for deployment. Just copy this folder where you need it.

make                       # build the project
cp -r bin/* $(INSTALL_DIR) # copy the resulting files to your install destination

Config File

# Points to a BIND9 configuration file
dns-db = ../dns/bind/pri/db.shack

# Points to a shackles configuration file
# See `shackles.db` in repo
shackles-db = shackles.db

# Points to a ICS DHCP leases file
leases-db = fake-leases.db

# Points to a JSON file describing the whole
# shack infrastructure
infra-db = godconfig.json

# Multiple URL bindings are allowed
binding = http://localhost:8080/
binding = http://*:8080/

# MQTT Configuration (optional):
mqtt-broker-host = mqtt.shack # 
mqtt-broker-port = 1883       #
mqtt-device-name = shackDNS   # Name of the MQTT device
mqtt-prefix      = shackdns   # the prefix for the mqtt messages

# This is your top level domain name, used for
# completing the links in the device overview.
top-level-domain = shack

shackles Database File

Contains three multi-whitespace-separated columns: The username displayed on the website, the type of the data field (only mac allowed atm) and the value (a mac address, separated by :). Comments can be written with #

Each entry will be added to the database, single users can have multiple entries in the database.

Example:

# Users      Type  Value
anon         mac   50:7b:9d:67:eb:90
anon         mac   50:7b:9d:67:13:37 # nice
anon         mac   50:7b:9d:67:eb:92

other_anon   mac   50:7b:9d:67:eb:93

TODO

  • Optionen:

    • intern damit ein Shackie nur im Haus sichtbar ist
  • Service-Konfiguration designen

    • Anforderungen

      • Eine Konfigurationsdatei für die komplette DNS-Konfig
      • Eintrag-Typ hinterlegen
        • Hardware / Machine
          • Phys. Rechner (Desktop)
          • Phys. Server
          • IoT-Device (ESP32, RPI, …)
          • Laptop / Privatrechner
          • Spezial (C64, …)
          • VM
          • Container
        • Service-Alias
          • Ist ein Alias auf eine physische Maschine
          • Braucht keine konkrete Angabe
      • Kontaktdaten
      • Wikiseite
      • IP-Adressen / CNames
      • Erwarter Zustand: Online/OnlineWhenOpen/Offline
    • Ausgabe der hierarchischen Konfiguration als Grafik

      • [Service] ist in [VM/Container/…] ist in [Server]
      • Datenformat muss hierarchisch schachtelbar sein
    • Statt IP kann auch MAC hinterlegt werden, diese wird dann aus einem statischen Pool bei der Generatation alloziert.

    • VMs/Container können auch eine eine virtuelle IP haben (diese ist an den Service gebunden, nicht an den Ort)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published