initial import
This commit is contained in:
93
rootfs/app/db_init.sql
Normal file
93
rootfs/app/db_init.sql
Normal file
@@ -0,0 +1,93 @@
|
||||
PRAGMA foreign_keys = 1;
|
||||
|
||||
CREATE TABLE domains (
|
||||
id INTEGER PRIMARY KEY,
|
||||
name VARCHAR(255) NOT NULL COLLATE NOCASE,
|
||||
master VARCHAR(128) DEFAULT NULL,
|
||||
last_check INTEGER DEFAULT NULL,
|
||||
type VARCHAR(8) NOT NULL,
|
||||
notified_serial INTEGER DEFAULT NULL,
|
||||
account VARCHAR(40) DEFAULT NULL,
|
||||
options VARCHAR(65535) DEFAULT NULL,
|
||||
catalog VARCHAR(255) DEFAULT NULL
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX name_index ON domains(name);
|
||||
CREATE INDEX catalog_idx ON domains(catalog);
|
||||
|
||||
|
||||
CREATE TABLE records (
|
||||
id INTEGER PRIMARY KEY,
|
||||
domain_id INTEGER DEFAULT NULL,
|
||||
name VARCHAR(255) DEFAULT NULL,
|
||||
type VARCHAR(10) DEFAULT NULL,
|
||||
content VARCHAR(65535) DEFAULT NULL,
|
||||
ttl INTEGER DEFAULT NULL,
|
||||
prio INTEGER DEFAULT NULL,
|
||||
disabled BOOLEAN DEFAULT 0,
|
||||
ordername VARCHAR(255),
|
||||
auth BOOL DEFAULT 1,
|
||||
FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX records_lookup_idx ON records(name, type);
|
||||
CREATE INDEX records_lookup_id_idx ON records(domain_id, name, type);
|
||||
CREATE INDEX records_order_idx ON records(domain_id, ordername);
|
||||
|
||||
|
||||
CREATE TABLE supermasters (
|
||||
ip VARCHAR(64) NOT NULL,
|
||||
nameserver VARCHAR(255) NOT NULL COLLATE NOCASE,
|
||||
account VARCHAR(40) NOT NULL
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX ip_nameserver_pk ON supermasters(ip, nameserver);
|
||||
|
||||
|
||||
CREATE TABLE comments (
|
||||
id INTEGER PRIMARY KEY,
|
||||
domain_id INTEGER NOT NULL,
|
||||
name VARCHAR(255) NOT NULL,
|
||||
type VARCHAR(10) NOT NULL,
|
||||
modified_at INT NOT NULL,
|
||||
account VARCHAR(40) DEFAULT NULL,
|
||||
comment VARCHAR(65535) NOT NULL,
|
||||
FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX comments_idx ON comments(domain_id, name, type);
|
||||
CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);
|
||||
|
||||
|
||||
CREATE TABLE domainmetadata (
|
||||
id INTEGER PRIMARY KEY,
|
||||
domain_id INT NOT NULL,
|
||||
kind VARCHAR(32) COLLATE NOCASE,
|
||||
content TEXT,
|
||||
FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX domainmetaidindex ON domainmetadata(domain_id);
|
||||
|
||||
|
||||
CREATE TABLE cryptokeys (
|
||||
id INTEGER PRIMARY KEY,
|
||||
domain_id INT NOT NULL,
|
||||
flags INT NOT NULL,
|
||||
active BOOL,
|
||||
published BOOL DEFAULT 1,
|
||||
content TEXT,
|
||||
FOREIGN KEY(domain_id) REFERENCES domains(id) ON DELETE CASCADE ON UPDATE CASCADE
|
||||
);
|
||||
|
||||
CREATE INDEX domainidindex ON cryptokeys(domain_id);
|
||||
|
||||
|
||||
CREATE TABLE tsigkeys (
|
||||
id INTEGER PRIMARY KEY,
|
||||
name VARCHAR(255) COLLATE NOCASE,
|
||||
algorithm VARCHAR(50) COLLATE NOCASE,
|
||||
secret VARCHAR(255)
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);
|
||||
40
rootfs/app/entrypoint.sh
Executable file
40
rootfs/app/entrypoint.sh
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/bin/sh
|
||||
|
||||
API_KEY=${API_KEY:-}
|
||||
DB_PATH=/db/pdns.sqlite
|
||||
|
||||
|
||||
|
||||
if [ -n "${API_KEY}" ]; then
|
||||
API_KEY="api-key=${API_KEY}"
|
||||
fi
|
||||
|
||||
# api configuration
|
||||
cat >> /etc/pdns/pdns.conf.d/api.conf << EOF
|
||||
api=yes
|
||||
${API_KEY}
|
||||
EOF
|
||||
|
||||
# database setup
|
||||
cat >> /etc/pdns/pdns.conf.d/sqlite.conf << EOF
|
||||
launch=gsqlite3
|
||||
gsqlite3-database=${DB_PATH}
|
||||
EOF
|
||||
DB_DIR=$(dirname "${DB_PATH}")
|
||||
mkdir -p "${DB_DIR}"
|
||||
|
||||
if [ ! -f "${DB_PATH}" ] ; then
|
||||
sqlite3 "${DB_PATH}" < /app/db_init.sql
|
||||
fi
|
||||
chown -R pdns:pdns "${DB_DIR}"
|
||||
chmod 700 "${DB_DIR}"
|
||||
chmod 600 "${DB_PATH}"
|
||||
|
||||
# RFC2136 dns updates
|
||||
cat >> /etc/pdns/pdns.conf.d/RFC2136.conf << EOF
|
||||
dnsupdate=yes
|
||||
allow-dnsupdate-from=0.0.0.0/0,::/0
|
||||
EOF
|
||||
|
||||
# start powerdns
|
||||
/usr/sbin/pdns_server
|
||||
Reference in New Issue
Block a user