Skip to content

Commit c1aad68

Browse files
add pitch bug correction
1 parent 212e04d commit c1aad68

File tree

7 files changed

+98
-45
lines changed

7 files changed

+98
-45
lines changed

Dockerfile

+10-4
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ ENV LC_ALL ru_RU.UTF-8
8181
ENV MUSL_LOCPATH /usr/share/i18n/locales/musl
8282

8383
RUN set -eux; \
84-
true "PowerDNS and PowerAdmin requirements"; \
8584
apk add --no-cache \
8685
boost-libs \
8786
geoip \
@@ -111,8 +110,7 @@ RUN set -eux; \
111110
php81-mbstring \
112111
php81-xml \
113112
\
114-
composer musl musl-utils musl-locales tzdata \
115-
#bind-tools; \
113+
composer musl musl-utils musl-locales tzdata patch; \
116114
rm -f /var/cache/apk/*
117115

118116
RUN set -eux; \
@@ -132,7 +130,6 @@ COPY php81 /etc/php81
132130
COPY poweradmin /var/www/html/poweradmin/inc
133131
COPY sql /sql
134132

135-
136133
RUN set -eux; \
137134
addgroup -S powerdns 2>/dev/null; \
138135
adduser -S -D -h /var/lib/powerdns -s /sbin/nologin -G powerdns -g powerdns powerdns 2>/dev/null; \
@@ -146,6 +143,15 @@ RUN set -eux; \
146143
chown -R nginx:nginx /var/www/html; \
147144
chown -R powerdns:powerdns /run/powerdns
148145

146+
#bug source correction
147+
RUN set -eux;\
148+
# ERROR 1074 (42000) Column length too big (max = 21844); use BLOB or TEXT instead
149+
sed -i "s!VARCHAR(64000) DEFAULT NULL!TEXT(64000) DEFAULT NULL!g" /sql/pdns_schema.sql; \
150+
# BUGs Undefined constant id,error
151+
patch /var/www/html/poweradmin/dnssec_add_key.php /var/www/html/poweradmin/inc/dnssec_add_key.diff; \
152+
patch /var/www/html/poweradmin/dnssec_edit_key.php /var/www/html/poweradmin/inc/dnssec_edit_key.diff; \
153+
rm -r /var/www/html/poweradmin/inc/dnssec_add_key.diff /var/www/html/poweradmin/inc/dnssec_edit_key.diff
154+
149155
EXPOSE 53 8081 80
150156
EXPOSE 53/UDP
151157

docker-compose.yml

+5-3
Original file line numberDiff line numberDiff line change
@@ -47,10 +47,12 @@ services:
4747
- PDNS_ALLOW_RECURSION=127.0.0.1
4848
- PDNS_RECURSOR=no
4949

50-
50+
- POWERADMIN_HOSTMASTER=email.admmin.soa
51+
- POWERADMIN_IFACE_STYLE=spark
52+
#- POWERADMIN_IFACE_INDEX=list
5153
- POWERADMIN_IFACE_LANG=ru_RU
52-
- POWERADMIN_NS1=8.8.8.8
53-
- POWERADMIN_NS2=8.8.4.4
54+
- POWERADMIN_NS1=ns1.example.com
55+
- POWERADMIN_NS2=ns2.example.com
5456
depends_on:
5557
- mariadb
5658
ports:

entrypoint

+63-36
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ MYSQL_USER=${MYSQL_USER:-pdns}
99
MYSQL_PASSWORD=${MYSQL_PASSWORD:-pdns}
1010

1111
POWERADMIN_IFACE_LANG=${POWERADMIN_IFACE_LANG:-en_EN}
12+
POWERADMIN_IFACE_STYLE=${POWERADMIN_IFACE_STYLE:-ignite}
13+
POWERADMIN_IFACE_INDEX=${POWERADMIN_IFACE_INDEX:-cards}
1214
POWERADMIN_HOSTMASTER=${POWERADMIN_HOSTMASTER:-}
1315
POWERADMIN_NS1=${POWERADMIN_NS1:-}
1416
POWERADMIN_NS2=${POWERADMIN_NS2:-}
@@ -24,11 +26,25 @@ PDNS_ALLOW_RECURSION=${PDNS_ALLOW_RECURSION:-127.0.0.1}
2426
PDNS_RECURSOR=${PDNS_RECURSOR:-no}
2527

2628

27-
cp /usr/share/zoneinfo/${TZ} /etc/localtime; \
28-
ENV LANG ${POWERADMIN_IFACE_LANG}.UTF-8
29-
ENV LANGUAGE ${POWERADMIN_IFACE_LANG}.UTF-8
30-
ENV LC_ALL ${POWERADMIN_IFACE_LANG}.UTF-8
31-
ENV MUSL_LOCPATH /usr/share/i18n/locales/musl
29+
cp /usr/share/zoneinfo/${TZ} /etc/localtime
30+
31+
LANG=${POWERADMIN_IFACE_LANG}.UTF-8
32+
LANGUAGE=${POWERADMIN_IFACE_LANG}.UTF-8
33+
LC_ALL=${POWERADMIN_IFACE_LANG}.UTF-8
34+
MUSL_LOCPATH=/usr/share/i18n/locales/musl
35+
36+
export LANG
37+
export LANGUAGE
38+
export LC_ALL
39+
export MUSL_LOCPATH
40+
41+
#ERROR 1074 (42000) Column length too big (max = 21844); use BLOB or TEXT instead
42+
sed -i "s!VARCHAR(64000) DEFAULT NULL!TEXT(64000) DEFAULT NULL!g" /sql/pdns_schema.sql
43+
#BUG Ungefined constant
44+
sed -i "s!$this->redirect('dnssec.php', [id => $zone_id]);!$this->redirect('dnssec.php', ['id' => $zone_id]);!"
45+
46+
sed -i "s!latin1!utf8mb4!g" /sql/pdns_schema.sql
47+
sed -i "s!latin1!utf8mb4!g" /sql/poweradmin.sql
3248

3349
sed -i "s!MYSQL_HOST!${MYSQL_HOST}!" /etc/powerdns/conf.d/gmysql.conf
3450
sed -i "s!MYSQL_PORT!${MYSQL_PORT}!" /etc/powerdns/conf.d/gmysql.conf
@@ -44,6 +60,8 @@ sed -i "s!MYSQL_PASSWORD!${MYSQL_PASSWORD}!" /var/www/html/poweradmin/inc/config
4460

4561
sed -i "s!POWERADMIN_SESSION_KEY!${POWERADMIN_SESSION_KEY}!" /var/www/html/poweradmin/inc/config.inc.php
4662
sed -i "s!POWERADMIN_IFACE_LANG!${POWERADMIN_IFACE_LANG}!" /var/www/html/poweradmin/inc/config.inc.php
63+
sed -i "s!POWERADMIN_IFACE_STYLE!${POWERADMIN_IFACE_STYLE}!" /var/www/html/poweradmin/inc/config.inc.php
64+
sed -i "s!POWERADMIN_IFACE_INDEX!${POWERADMIN_IFACE_INDEX}!" /var/www/html/poweradmin/inc/config.inc.php
4765
sed -i "s!POWERADMIN_HOSTMASTER!${POWERADMIN_HOSTMASTER}!" /var/www/html/poweradmin/inc/config.inc.php
4866
sed -i "s!POWERADMIN_NS1!${POWERADMIN_NS1}!" /var/www/html/poweradmin/inc/config.inc.php
4967
sed -i "s!POWERADMIN_NS2!${POWERADMIN_NS2}!" /var/www/html/poweradmin/inc/config.inc.php
@@ -63,45 +81,54 @@ else
6381
mysql -h ${MYSQL_HOST} -u ${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} < /sql/poweradmin.sql
6482
fi
6583

84+
echo "check powerdns database table"
6685
CHECK_TABLE=`mysql -h ${MYSQL_HOST} -u ${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} -e "CHECK TABLE domains;" | grep "doesn't exist" | awk {'print $3'}`
67-
if [ ${CHECK_TABLE} == "Error" ]; then
86+
if [ "${CHECK_TABLE}" == "Error" ]; then
87+
echo "update tables powerdns schema"
6888
mysql -h ${MYSQL_HOST} -u ${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} < /sql/pdns_schema.sql
6989
fi
7090

91+
echo "check poweradmin database table"
7192
CHECK_TABLE=`mysql -h ${MYSQL_HOST} -u ${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} -e "CHECK TABLE users;" | grep "doesn't exist" | awk {'print $3'}`
72-
if [ ${CHECK_TABLE} == "Error" ]; then
93+
if [ "${CHECK_TABLE}" == "Error" ]; then
94+
echo "update tables poweradmin schema"
7395
mysql -h ${MYSQL_HOST} -u ${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} < /sql/poweradmin.sql
7496
fi
75-
rm -rf /sql
97+
#mysql -h ${MYSQL_HOST} -u ${MYSQL_USER} -p${MYSQL_PASSWORD} ${MYSQL_DATABASE} < /sql/cascade.sql
98+
#rm -rf /sql
7699

100+
#
101+
# bcrypt 12 (admin/admin)
102+
#
77103
# INSERT INTO users ( id, username, `password`, fullname, email, description, perm_templ, active, use_ldap )
78-
# VALUES ( 1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', '[email protected]', 'Administrator with full rights.', 1, 1, 0 );
104+
# VALUES ( 1, 'admin', '21232f297a57a5a743894a0e4a801fc3', 'Administrator', '[email protected]', 'Administrator with full rights.', 1, 1, 0 );
79105
# INSERT INTO perm_templ ( id, name, descr ) VALUES ( 1, 'Administrator', 'Administrator template with full rights.' );
80-
81-
82-
# Setup web access
83-
if [ ! -f /etc/powerdns/conf.d/webserver.conf ] && [ -n "$POWERDNS_WEBSERVER_ALLOW_FROM" ]; then
84-
# Check if we got a password
85-
if [ -z "$POWERDNS_WEBSERVER_PASSWORD" ]; then
86-
POWERDNS_WEBSERVER_PASSWORD=$(pwgen 16 1)
87-
fdc_notice "PowerDNS webserver password: $POWERDNS_WEBSERVER_PASSWORD"
88-
fi
89-
# Check if we got a API key
90-
if [ -z "$POWERDNS_API_KEY" ]; then
91-
POWERDNS_API_KEY=$(pwgen 16 1)
92-
fdc_notice "PowerDNS webserver API key: $POWERDNS_API_KEY"
93-
fi
94-
95-
cat <<EOF > /etc/powerdns/conf.d/webserver.conf
96-
webserver = yes
97-
webserver-address = 0.0.0.0
98-
webserver-allow-from = $POWERDNS_WEBSERVER_ALLOW_FROM
99-
webserver-loglevel = normal
100-
webserver-password = $POWERDNS_WEBSERVER_PASSWORD
101-
webserver-port=8081
102-
api = yes
103-
api-key = $POWERDNS_API_KEY
104-
EOF
105-
fi
106-
106+
#
107+
108+
#
109+
# # Setup web access
110+
# if [ ! -f /etc/powerdns/conf.d/webserver.conf ] && [ -n "$POWERDNS_WEBSERVER_ALLOW_FROM" ]; then
111+
# # Check if we got a password
112+
# if [ -z "$POWERDNS_WEBSERVER_PASSWORD" ]; then
113+
# POWERDNS_WEBSERVER_PASSWORD=$(pwgen 16 1)
114+
# fdc_notice "PowerDNS webserver password: $POWERDNS_WEBSERVER_PASSWORD"
115+
# fi
116+
# # Check if we got a API key
117+
# if [ -z "$POWERDNS_API_KEY" ]; then
118+
# POWERDNS_API_KEY=$(pwgen 16 1)
119+
# fdc_notice "PowerDNS webserver API key: $POWERDNS_API_KEY"
120+
# fi
121+
#
122+
# cat <<EOF > /etc/powerdns/conf.d/webserver.conf
123+
# webserver = yes
124+
# webserver-address = 0.0.0.0
125+
# webserver-allow-from = $POWERDNS_WEBSERVER_ALLOW_FROM
126+
# webserver-loglevel = normal
127+
# webserver-password = $POWERDNS_WEBSERVER_PASSWORD
128+
# webserver-port=8081
129+
# api = yes
130+
# api-key = $POWERDNS_API_KEY
131+
# EOF
132+
# fi
133+
#
107134
exec "$@"

nfo/dnssec.png

75.1 KB
Loading

poweradmin/config.inc.php

+4-2
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
$session_key = 'POWERADMIN_SESSION_KEY';
99

1010
$iface_lang = 'POWERADMIN_IFACE_LANG';
11-
$iface_style = 'ignite';
11+
$iface_style = 'POWERADMIN_IFACE_STYLE';
12+
$iface_index = 'POWERADMIN_IFACE_INDEX';
1213

1314
$dns_hostmaster = 'POWERADMIN_HOSTMASTER';
1415
$dns_ns1 = 'POWERADMIN_NS1';
@@ -20,4 +21,5 @@
2021
$pdnssec_debug = false;
2122
$pdnssec_command = '/usr/bin/pdnsutil';
2223

23-
$ignore_install_dir = true;
24+
$ignore_install_dir = false;
25+
#$display_stats = true;

poweradmin/dnssec_add_key.diff

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
92c92
2+
< $this->redirect('dnssec.php', [id => $zone_id]);
3+
---
4+
> $this->redirect('dnssec.php', ['id' => $zone_id]);
5+
94c94
6+
< $this->setMessage('dnssec_add_key', error, _('Failed to add new DNSSEC key.'));
7+
---
8+
> $this->setMessage('dnssec_add_key', 'error', _('Failed to add new DNSSEC key.'));

poweradmin/dnssec_edit_key.diff

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
84c84
2+
< $this->redirect('dnssec.php', [id => $zone_id]);
3+
---
4+
> $this->redirect('dnssec.php', ['id' => $zone_id]);
5+
89c89
6+
< $this->redirect('dnssec.php', [id => $zone_id]);
7+
---
8+
> $this->redirect('dnssec.php', ['id' => $zone_id]);

0 commit comments

Comments
 (0)