pi-hole / docker-pi-hole

Pi-hole in a docker container
https://pi-hole.net
Other
8.07k stars 1.11k forks source link

"Duplicate config variable in conditional 3 global" in 15-pihole-admin-redirect-docker.conf #1279

Closed thomasmerz closed 1 year ago

thomasmerz commented 1 year ago

This is a: BUG

Details

Have you seen this already? Everything seems working fine, but this feels like something might be wrong:

Duplicate config variable in conditional 3 global / $HTTP["url"] == "/" / $HTTP["host"] == "0.0.0.0": url.redirect
2023-01-17 18:05:03: configfile.c.1970) source: /etc/lighttpd/conf-enabled/15-pihole-admin-redirect-docker.conf line: 7 pos: 5 parser failed somehow near here: (EOL)
2023-01-17 18:05:03: configfile.c.1970) source: /etc/lighttpd/lighttpd.conf line: 51 pos: 15 parser failed somehow near here: (EOL)

There's no url.redirect in my /etc/lighttpd/conf-enabled/20-external.conf.

Related Issues

How to reproduce the issue

docker logs pihole >/dev/null or this (how I found it "by accident"):

๐Ÿ‡ซ๐Ÿ‡ฎ  โœ” /srv/docker-pi-hole [master|โœš 1โ€ฆ9]
18:21 # docker logs pihole |grep -i random-something-that-wont-find-anything
s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service cron: starting
s6-rc: info: service cron successfully started
s6-rc: info: service _uid-gid-changer: starting
s6-rc: info: service _uid-gid-changer successfully started
s6-rc: info: service _startup: starting
Duplicate config variable in conditional 3 global / $HTTP["url"] == "/" / $HTTP["host"] == "0.0.0.0": url.redirect
2023-01-17 18:18:28: configfile.c.1970) source: /etc/lighttpd/conf-enabled/15-pihole-admin-redirect-docker.conf line: 7 pos: 5 parser failed somehow near here: (EOL)
2023-01-17 18:18:28: configfile.c.1970) source: /etc/lighttpd/lighttpd.conf line: 51 pos: 15 parser failed somehow near here: (EOL)
s6-rc: info: service _startup successfully started
s6-rc: info: service pihole-FTL: starting
s6-rc: info: service pihole-FTL successfully started
s6-rc: info: service lighttpd: starting
s6-rc: info: service lighttpd successfully started
s6-rc: info: service _postFTL: starting
s6-rc: info: service _postFTL successfully started
s6-rc: info: service legacy-services: starting
s6-rc: info: service legacy-services successfully started
rdwebdesign commented 1 year ago

To understand how lighttpd is reading all config files, execute:

lighttpd -p -f /etc/lighttpd/lighttpd.conf

This command will parse all config files and output the result. Please post the result here.

thomasmerz commented 1 year ago

@rdwebdesign , here we go:

root@pihole-hel1-dc2:/# lighttpd -p -f /etc/lighttpd/lighttpd.conf
config {
    var.PID                        = 34779
    var.CWD                        = "/"
    mimetype.assign                = (
        ".1905.1"      => "application/vnd.ieee.1905",
        ".pcf.Z"       => "application/x-font-pcf",
        ".tar.bz2"     => "application/x-gtar-compressed",
        ".tar.gz"      => "application/x-gtar-compressed",
        ".a2l"         => "application/A2L",
        # 5
        ".aml"         => "application/AML",
        ".atf"         => "application/ATF",
        ".atfx"        => "application/ATFX",
        ".atxml"       => "application/ATXML",
        ".cdfx"        => "application/CDFX+XML",
        # 10
        ".cea"         => "application/CEA",
        ".dcd"         => "application/DCD",
        ".dii"         => "application/DII",
        ".dit"         => "application/DIT",
        ".lxf"         => "application/LXF",
        # 15
        ".mf4"         => "application/MF4",
        ".odx"         => "application/ODX",
        ".pdx"         => "application/PDX",
        ".ez"          => "application/andrew-inset",
        ".anx"         => "application/annodex",
        # 20
        ".atom"        => "application/atom+xml",
        ".atomcat"     => "application/atomcat+xml",
        ".atomdeleted" => "application/atomdeleted+xml",
        ".atomsrv"     => "application/atomserv+xml",
        ".atomsvc"     => "application/atomsvc+xml",
        # 25
        ".dwd"         => "application/atsc-dwd+xml",
        ".held"        => "application/atsc-held+xml",
        ".rsat"        => "application/atsc-rsat+xml",
        ".apxml"       => "application/auth-policy+xml",
        ".xdd"         => "application/bacnet-xdd+zip",
        # 30
        ".lin"         => "application/bbolin",
        ".xcs"         => "application/calendar+xml",
        ".cbor"        => "application/cbor",
        ".c3ex"        => "application/cccex",
        ".ccmp"        => "application/ccmp+xml",
        # 35
        ".ccxml"       => "application/ccxml+xml",
        ".cdmia"       => "application/cdmi-capability",
        ".cdmic"       => "application/cdmi-container",
        ".cdmid"       => "application/cdmi-domain",
        ".cdmio"       => "application/cdmi-object",
        # 40
        ".cdmiq"       => "application/cdmi-queue",
        ".cellml"      => "application/cellml+xml",
        ".cml"         => "application/cellml+xml",
        ".cmsc"        => "application/cms",
        ".cpl"         => "application/cpl+xml",
        # 45
        ".csrattrs"    => "application/csrattrs",
        ".cu"          => "application/cu-seeme",
        ".mpd"         => "application/dash+xml",
        ".mpdd"        => "application/dashdelta",
        ".davmount"    => "application/davmount+xml",
        # 50
        ".dcm"         => "application/dicom",
        ".xmls"        => "application/dskpp+xml",
        ".tsp"         => "application/dsptype",
        ".dssc"        => "application/dssc+der",
        ".xdssc"       => "application/dssc+xml",
        # 55
        ".dvc"         => "application/dvcs",
        ".es"          => "application/ecmascript",
        ".efi"         => "application/efi",
        ".emma"        => "application/emma+xml",
        ".emotionml"   => "application/emotionml+xml",
        # 60
        ".epub"        => "application/epub+zip",
        ".exi"         => "application/exi",
        ".finf"        => "application/fastinfoset",
        ".fdt"         => "application/fdt+xml",
        ".pfr"         => "application/font-tdpfr",
        # 65
        ".spl"         => "application/futuresplash",
        ".geojson"     => "application/geo+json",
        ".gpkg"        => "application/geopackage+sqlite3",
        ".glbin"       => "application/gltf-buffer",
        ".glbuf"       => "application/gltf-buffer",
        # 70
        ".gml"         => "application/gml+xml",
        ".gz"          => "application/gzip",
        ".hta"         => "application/hta",
        ".stk"         => "application/hyperstudio",
        ".ink"         => "application/inkml+xml",
        # 75
        ".inkml"       => "application/inkml+xml",
        ".ipfix"       => "application/ipfix",
        ".its"         => "application/its+xml",
        ".jar"         => "application/java-archive",
        ".ser"         => "application/java-serialized-object",
        # 80
        ".class"       => "application/java-vm",
        ".js"          => "application/javascript",
        ".mjs"         => "application/javascript",
        ".jrd"         => "application/jrd+json",
        ".json"        => "application/json",
        # 85
        ".json-patch"  => "application/json-patch+json",
        ".jsonld"      => "application/ld+json",
        ".lgr"         => "application/lgr+xml",
        ".wlnk"        => "application/link-format",
        ".lostxml"     => "application/lost+xml",
        # 90
        ".lostsyncxml" => "application/lostsync+xml",
        ".lpf"         => "application/lpf+zip",
        ".m3g"         => "application/m3g",
        ".hqx"         => "application/mac-binhex40",
        ".cpt"         => "application/mac-compactpro",
        # 95
        ".mads"        => "application/mads+xml",
        ".mrc"         => "application/marc",
        ".mrcx"        => "application/marcxml+xml",
        ".ma"          => "application/mathematica",
        ".mb"          => "application/mathematica",
        # 100
        ".mml"         => "application/mathml+xml",
        ".mbox"        => "application/mbox",
        ".meta4"       => "application/metalink4+xml",
        ".mets"        => "application/mets+xml",
        ".maei"        => "application/mmt-aei+xml",
        # 105
        ".musd"        => "application/mmt-usd+xml",
        ".mods"        => "application/mods+xml",
        ".m21"         => "application/mp21",
        ".mp21"        => "application/mp21",
        ".mdb"         => "application/msaccess",
        # 110
        ".doc"         => "application/msword",
        ".mxf"         => "application/mxf",
        ".nq"          => "application/n-quads",
        ".nt"          => "application/n-triples",
        ".orq"         => "application/ocsp-request",
        # 115
        ".ors"         => "application/ocsp-response",
        ".asn"         => "application/octet-stream",
        ".bin"         => "application/octet-stream",
        ".deploy"      => "application/octet-stream",
        ".msp"         => "application/octet-stream",
        # 120
        ".msu"         => "application/octet-stream",
        ".oda"         => "application/oda",
        ".opf"         => "application/oebps-package+xml",
        ".ogx"         => "application/ogg",
        ".one"         => "application/onenote",
        # 125
        ".onepkg"      => "application/onenote",
        ".onetmp"      => "application/onenote",
        ".onetoc2"     => "application/onenote",
        ".oxps"        => "application/oxps",
        ".relo"        => "application/p2p-overlay+xml",
        # 130
        ".pdf"         => "application/pdf",
        ".pem"         => "application/pem-certificate-chain",
        ".pgp"         => "application/pgp-encrypted",
        ".asc"         => "application/pgp-keys",
        ".key"         => "application/pgp-keys",
        # 135
        ".sig"         => "application/pgp-signature",
        ".prf"         => "application/pics-rules",
        ".p10"         => "application/pkcs10",
        ".p12"         => "application/pkcs12",
        ".pfx"         => "application/pkcs12",
        # 140
        ".p7c"         => "application/pkcs7-mime",
        ".p7m"         => "application/pkcs7-mime",
        ".p7z"         => "application/pkcs7-mime",
        ".p7s"         => "application/pkcs7-signature",
        ".p8"          => "application/pkcs8",
        # 145
        ".p8e"         => "application/pkcs8-encrypted",
        ".ac"          => "application/pkix-attr-cert",
        ".cer"         => "application/pkix-cert",
        ".crl"         => "application/pkix-crl",
        ".pkipath"     => "application/pkix-pkipath",
        # 150
        ".pki"         => "application/pkixcmp",
        ".ai"          => "application/postscript",
        ".eps"         => "application/postscript",
        ".eps2"        => "application/postscript",
        ".eps3"        => "application/postscript",
        # 155
        ".epsf"        => "application/postscript",
        ".epsi"        => "application/postscript",
        ".ps"          => "application/postscript",
        ".provx"       => "application/provenance+xml",
        ".cw"          => "application/prs.cww",
        # 160
        ".cww"         => "application/prs.cww",
        ".hpub"        => "application/prs.hpub+zip",
        ".rct"         => "application/prs.nprend",
        ".rnd"         => "application/prs.nprend",
        ".rdf-crypt"   => "application/prs.rdf-xml-crypt",
        # 165
        ".xsf"         => "application/prs.xsf+xml",
        ".pskcxml"     => "application/pskc+xml",
        ".rdf"         => "application/rdf+xml",
        ".rif"         => "application/reginfo+xml",
        ".rnc"         => "application/relax-ng-compact-syntax",
        # 170
        ".rl"          => "application/resource-lists+xml",
        ".rld"         => "application/resource-lists-diff+xml",
        ".rfcxml"      => "application/rfc+xml",
        ".rs"          => "application/rls-services+xml",
        ".rapd"        => "application/route-apd+xml",
        # 175
        ".sls"         => "application/route-s-tsid+xml",
        ".rusd"        => "application/route-usd+xml",
        ".gbr"         => "application/rpki-ghostbusters",
        ".mft"         => "application/rpki-manifest",
        ".roa"         => "application/rpki-roa",
        # 180
        ".rtf"         => "application/rtf",
        ".scim"        => "application/scim+json",
        ".scq"         => "application/scvp-cv-request",
        ".scs"         => "application/scvp-cv-response",
        ".spq"         => "application/scvp-vp-request",
        # 185
        ".spp"         => "application/scvp-vp-response",
        ".sdp"         => "application/sdp",
        ".senmlc"      => "application/senml+cbor",
        ".senml"       => "application/senml+json",
        ".senmlx"      => "application/senml+xml",
        # 190
        ".senml-etchc" => "application/senml-etch+cbor",
        ".senml-etchj" => "application/senml-etch+json",
        ".senmle"      => "application/senml-exi",
        ".sensmlc"     => "application/sensml+cbor",
        ".sensml"      => "application/sensml+json",
        # 195
        ".sensmlx"     => "application/sensml+xml",
        ".sensmle"     => "application/sensml-exi",
        ".soc"         => "application/sgml-open-catalog",
        ".shf"         => "application/shf+xml",
        ".sieve"       => "application/sieve",
        # 200
        ".siv"         => "application/sieve",
        ".cl"          => "application/simple-filter+xml",
        ".smi"         => "application/smil+xml",
        ".smil"        => "application/smil+xml",
        ".sml"         => "application/smil+xml",
        # 205
        ".rq"          => "application/sparql-query",
        ".srx"         => "application/sparql-results+xml",
        ".sql"         => "application/sql",
        ".gram"        => "application/srgs",
        ".grxml"       => "application/srgs+xml",
        # 210
        ".sru"         => "application/sru+xml",
        ".ssml"        => "application/ssml+xml",
        ".stix"        => "application/stix+json",
        ".swidtag"     => "application/swid+xml",
        ".tau"         => "application/tamp-apex-update",
        # 215
        ".auc"         => "application/tamp-apex-update-confirm",
        ".tcu"         => "application/tamp-community-update",
        ".cuc"         => "application/tamp-community-update-confirm",
        ".ter"         => "application/tamp-error",
        ".tsa"         => "application/tamp-sequence-adjust",
        # 220
        ".sac"         => "application/tamp-sequence-adjust-confirm",
        ".tur"         => "application/tamp-update",
        ".tuc"         => "application/tamp-update-confirm",
        ".jsontd"      => "application/td+json",
        ".odd"         => "application/tei+xml",
        # 225
        ".tei"         => "application/tei+xml",
        ".teiCorpus"   => "application/tei+xml",
        ".tfi"         => "application/thraud+xml",
        ".tsq"         => "application/timestamp-query",
        ".tsr"         => "application/timestamp-reply",
        # 230
        ".tsd"         => "application/timestamped-data",
        ".trig"        => "application/trig",
        ".ttml"        => "application/ttml+xml",
        ".gsheet"      => "application/urc-grpsheet+xml",
        ".rsheet"      => "application/urc-ressheet+xml",
        # 235
        ".td"          => "application/urc-targetdesc+xml",
        ".uis"         => "application/urc-uisocketdesc+xml",
        ".vxml"        => "application/voicexml+xml",
        ".vcj"         => "application/voucher-cms+json",
        ".wasm"        => "application/wasm",
        # 240
        ".wif"         => "application/watcherinfo+xml",
        ".wgt"         => "application/widget",
        ".wsdl"        => "application/wsdl+xml",
        ".wspolicy"    => "application/wspolicy+xml",
        ".xav"         => "application/xcap-att+xml",
        # 245
        ".xca"         => "application/xcap-caps+xml",
        ".xdf"         => "application/xcap-diff+xml",
        ".xel"         => "application/xcap-el+xml",
        ".xer"         => "application/xcap-error+xml",
        ".xns"         => "application/xcap-ns+xml",
        # 250
        ".xht"         => "application/xhtml+xml",
        ".xhtm"        => "application/xhtml+xml",
        ".xhtml"       => "application/xhtml+xml",
        ".xlf"         => "application/xliff+xml",
        ".xml"         => "application/xml",
        # 255
        ".dtd"         => "application/xml-dtd",
        ".mod"         => "application/xml-dtd",
        ".ent"         => "application/xml-external-parsed-entity",
        ".xop"         => "application/xop+xml",
        ".xsl"         => "application/xslt+xml",
        # 260
        ".xslt"        => "application/xslt+xml",
        ".xspf"        => "application/xspf+xml",
        ".mxml"        => "application/xv+xml",
        ".xhvml"       => "application/xv+xml",
        ".xvm"         => "application/xv+xml",
        # 265
        ".xvml"        => "application/xv+xml",
        ".yang"        => "application/yang",
        ".yin"         => "application/yin+xml",
        ".zip"         => "application/zip",
        ".zst"         => "application/zstd",
        # 270
        ".1km"         => "application/vnd.1000minds.decision-model+xml",
        ".pwn"         => "application/vnd.3M.Post-it-Notes",
        ".plb"         => "application/vnd.3gpp.pic-bw-large",
        ".psb"         => "application/vnd.3gpp.pic-bw-small",
        ".pvb"         => "application/vnd.3gpp.pic-bw-var",
        # 275
        ".sms"         => "application/vnd.3gpp2.sms",
        ".tcap"        => "application/vnd.3gpp2.tcap",
        ".imgcal"      => "application/vnd.3lightssoftware.imagescal",
        ".gph"         => "application/vnd.FloGraphIt",
        ".zmm"         => "application/vnd.HandHeld-Entertainment+xml",
        # 280
        ".kne"         => "application/vnd.Kinar",
        ".knp"         => "application/vnd.Kinar",
        ".sdf"         => "application/vnd.Kinar",
        ".mwf"         => "application/vnd.MFER",
        ".daf"         => "application/vnd.Mobius.DAF",
        # 285
        ".dis"         => "application/vnd.Mobius.DIS",
        ".mbk"         => "application/vnd.Mobius.MBK",
        ".mqy"         => "application/vnd.Mobius.MQY",
        ".msl"         => "application/vnd.Mobius.MSL",
        ".plc"         => "application/vnd.Mobius.PLC",
        # 290
        ".txf"         => "application/vnd.Mobius.TXF",
        ".qwd"         => "application/vnd.Quark.QuarkXPress",
        ".qwt"         => "application/vnd.Quark.QuarkXPress",
        ".qxb"         => "application/vnd.Quark.QuarkXPress",
        ".qxd"         => "application/vnd.Quark.QuarkXPress",
        # 295
        ".qxl"         => "application/vnd.Quark.QuarkXPress",
        ".qxt"         => "application/vnd.Quark.QuarkXPress",
        ".twd"         => "application/vnd.SimTech-MindMapper",
        ".twds"        => "application/vnd.SimTech-MindMapper",
        ".aso"         => "application/vnd.accpac.simply.aso",
        # 300
        ".imp"         => "application/vnd.accpac.simply.imp",
        ".acu"         => "application/vnd.acucobol",
        ".acutc"       => "application/vnd.acucorp",
        ".atc"         => "application/vnd.acucorp",
        ".swf"         => "application/vnd.adobe.flash.movie",
        # 305
        ".fcdt"        => "application/vnd.adobe.formscentral.fcdt",
        ".fxp"         => "application/vnd.adobe.fxp",
        ".fxpl"        => "application/vnd.adobe.fxp",
        ".xdp"         => "application/vnd.adobe.xdp+xml",
        ".xfdf"        => "application/vnd.adobe.xfdf",
        # 310
        ".afp"         => "application/vnd.afpc.modca",
        ".list3820"    => "application/vnd.afpc.modca",
        ".listafp"     => "application/vnd.afpc.modca",
        ".pseg3820"    => "application/vnd.afpc.modca",
        ".ovl"         => "application/vnd.afpc.modca-overlay",
        # 315
        ".psg"         => "application/vnd.afpc.modca-pagesegment",
        ".ahead"       => "application/vnd.ahead.space",
        ".azf"         => "application/vnd.airzip.filesecure.azf",
        ".azs"         => "application/vnd.airzip.filesecure.azs",
        ".azw3"        => "application/vnd.amazon.mobi8-ebook",
        # 320
        ".acc"         => "application/vnd.americandynamics.acc",
        ".ami"         => "application/vnd.amiga.ami",
        ".ota"         => "application/vnd.android.ota",
        ".apk"         => "application/vnd.android.package-archive",
        ".apkg"        => "application/vnd.anki",
        # 325
        ".cii"         => "application/vnd.anser-web-certificate-issue-initiation",
        ".fti"         => "application/vnd.anser-web-funds-transfer-initiation",
        ".dist"        => "application/vnd.apple.installer+xml",
        ".distz"       => "application/vnd.apple.installer+xml",
        ".mpkg"        => "application/vnd.apple.installer+xml",
        # 330
        ".pkg"         => "application/vnd.apple.installer+xml",
        ".keynote"     => "application/vnd.apple.keynote",
        ".m3u8"        => "application/vnd.apple.mpegurl",
        ".numbers"     => "application/vnd.apple.numbers",
        ".pages"       => "application/vnd.apple.pages",
        # 335
        ".swi"         => "application/vnd.aristanetworks.swi",
        ".artisan"     => "application/vnd.artisan+json",
        ".iota"        => "application/vnd.astraea-software.iota",
        ".aep"         => "application/vnd.audiograph",
        ".package"     => "application/vnd.autopackage",
        # 340
        ".bmml"        => "application/vnd.balsamiq.bmml+xml",
        ".bmpr"        => "application/vnd.balsamiq.bmpr",
        ".ac2"         => "application/vnd.banana-accounting",
        ".mpm"         => "application/vnd.blueice.multipass",
        ".ep"          => "application/vnd.bluetooth.ep.oob",
        # 345
        ".le"          => "application/vnd.bluetooth.le.oob",
        ".bmi"         => "application/vnd.bmi",
        ".rep"         => "application/vnd.businessobjects",
        ".tlclient"    => "application/vnd.cendio.thinlinc.clientconf",
        ".cdxml"       => "application/vnd.chemdraw+xml",
        # 350
        ".pgn"         => "application/vnd.chess-pgn",
        ".mmd"         => "application/vnd.chipnuts.karaoke-mmd",
        ".cdy"         => "application/vnd.cinderella",
        ".csl"         => "application/vnd.citationstyles.style+xml",
        ".cla"         => "application/vnd.claymore",
        # 355
        ".rp9"         => "application/vnd.cloanto.rp9",
        ".c4d"         => "application/vnd.clonk.c4group",
        ".c4f"         => "application/vnd.clonk.c4group",
        ".c4g"         => "application/vnd.clonk.c4group",
        ".c4p"         => "application/vnd.clonk.c4group",
        # 360
        ".c4u"         => "application/vnd.clonk.c4group",
        ".c11amc"      => "application/vnd.cluetrust.cartomobile-config",
        ".c11amz"      => "application/vnd.cluetrust.cartomobile-config-pkg",
        ".coffee"      => "application/vnd.coffeescript",
        ".xodt"        => "application/vnd.collabio.xodocuments.document",
        # 365
        ".xott"        => "application/vnd.collabio.xodocuments.document-template",
        ".xodp"        => "application/vnd.collabio.xodocuments.presentation",
        ".xotp"        => "application/vnd.collabio.xodocuments.presentation-template",
        ".xods"        => "application/vnd.collabio.xodocuments.spreadsheet",
        ".xots"        => "application/vnd.collabio.xodocuments.spreadsheet-template",
        # 370
        ".cbz"         => "application/vnd.comicbook+zip",
        ".cbr"         => "application/vnd.comicbook-rar",
        ".ic0"         => "application/vnd.commerce-battelle",
        ".ic1"         => "application/vnd.commerce-battelle",
        ".ic2"         => "application/vnd.commerce-battelle",
        # 375
        ".ic3"         => "application/vnd.commerce-battelle",
        ".ic4"         => "application/vnd.commerce-battelle",
        ".ic5"         => "application/vnd.commerce-battelle",
        ".ic6"         => "application/vnd.commerce-battelle",
        ".ic7"         => "application/vnd.commerce-battelle",
        # 380
        ".ic8"         => "application/vnd.commerce-battelle",
        ".icd"         => "application/vnd.commerce-battelle",
        ".icf"         => "application/vnd.commerce-battelle",
        ".csp"         => "application/vnd.commonspace",
        ".cst"         => "application/vnd.commonspace",
        # 385
        ".cdbcmsg"     => "application/vnd.contact.cmsg",
        ".ign"         => "application/vnd.coreos.ignition+json",
        ".ignition"    => "application/vnd.coreos.ignition+json",
        ".cmc"         => "application/vnd.cosmocaller",
        ".clkx"        => "application/vnd.crick.clicker",
        # 390
        ".clkk"        => "application/vnd.crick.clicker.keyboard",
        ".clkp"        => "application/vnd.crick.clicker.palette",
        ".clkt"        => "application/vnd.crick.clicker.template",
        ".clkw"        => "application/vnd.crick.clicker.wordbank",
        ".wbs"         => "application/vnd.criticaltools.wbs+xml",
        # 395
        ".ssvc"        => "application/vnd.crypto-shade-file",
        ".pml"         => "application/vnd.ctc-posml",
        ".ppd"         => "application/vnd.cups-ppd",
        ".dart"        => "application/vnd.dart",
        ".rdz"         => "application/vnd.data-vision.rdz",
        # 400
        ".dbf"         => "application/vnd.dbf",
        ".ddeb"        => "application/vnd.debian.binary-package",
        ".deb"         => "application/vnd.debian.binary-package",
        ".udeb"        => "application/vnd.debian.binary-package",
        ".uvd"         => "application/vnd.dece.data",
        # 405
        ".uvf"         => "application/vnd.dece.data",
        ".uvvd"        => "application/vnd.dece.data",
        ".uvvf"        => "application/vnd.dece.data",
        ".uvt"         => "application/vnd.dece.ttml+xml",
        ".uvvt"        => "application/vnd.dece.ttml+xml",
        # 410
        ".uvvx"        => "application/vnd.dece.unspecified",
        ".uvx"         => "application/vnd.dece.unspecified",
        ".uvvz"        => "application/vnd.dece.zip",
        ".uvz"         => "application/vnd.dece.zip",
        ".dsm"         => "application/vnd.desmume.movie",
        # 415
        ".dna"         => "application/vnd.dna",
        ".docjson"     => "application/vnd.document+json",
        ".scld"        => "application/vnd.doremir.scorecloud-binary-document",
        ".dpg"         => "application/vnd.dpgraph",
        ".dpgraph"     => "application/vnd.dpgraph",
        # 420
        ".mwc"         => "application/vnd.dpgraph",
        ".dfac"        => "application/vnd.dreamfactory",
        ".fla"         => "application/vnd.dtg.local.flash",
        ".ait"         => "application/vnd.dvb.ait",
        ".svc"         => "application/vnd.dvb.service",
        # 425
        ".geo"         => "application/vnd.dynageo",
        ".dzr"         => "application/vnd.dzr",
        ".mag"         => "application/vnd.ecowin.chart",
        ".nml"         => "application/vnd.enliven",
        ".esf"         => "application/vnd.epson.esf",
        # 430
        ".msf"         => "application/vnd.epson.msf",
        ".qam"         => "application/vnd.epson.quickanime",
        ".slt"         => "application/vnd.epson.salt",
        ".ssf"         => "application/vnd.epson.ssf",
        ".qca"         => "application/vnd.ericsson.quickcall",
        # 435
        ".qcall"       => "application/vnd.ericsson.quickcall",
        ".espass"      => "application/vnd.espass-espass+zip",
        ".es3"         => "application/vnd.eszigno3+xml",
        ".et3"         => "application/vnd.eszigno3+xml",
        ".asice"       => "application/vnd.etsi.asic-e+zip",
        # 440
        ".sce"         => "application/vnd.etsi.asic-e+zip",
        ".asics"       => "application/vnd.etsi.asic-s+zip",
        ".tst"         => "application/vnd.etsi.timestamp-token",
        ".ecigprofile" => "application/vnd.evolv.ecig.profile",
        ".ecig"        => "application/vnd.evolv.ecig.settings",
        # 445
        ".ecigtheme"   => "application/vnd.evolv.ecig.theme",
        ".mpw"         => "application/vnd.exstream-empower+zip",
        ".pub"         => "application/vnd.exstream-package",
        ".ez2"         => "application/vnd.ezpix-album",
        ".ez3"         => "application/vnd.ezpix-package",
        # 450
        ".dim"         => "application/vnd.fastcopy-disk-image",
        ".fdf"         => "application/vnd.fdf",
        ".msd"         => "application/vnd.fdsn.mseed",
        ".mseed"       => "application/vnd.fdsn.mseed",
        ".dataless"    => "application/vnd.fdsn.seed",
        # 455
        ".seed"        => "application/vnd.fdsn.seed",
        ".flb"         => "application/vnd.ficlab.flb+zip",
        ".zfc"         => "application/vnd.filmit.zfc",
        ".ftc"         => "application/vnd.fluxtime.clip",
        ".sfd"         => "application/vnd.font-fontforge-sfd",
        # 460
        ".fm"          => "application/vnd.framemaker",
        ".fsc"         => "application/vnd.fsc.weblaunch",
        ".oas"         => "application/vnd.fujitsu.oasys",
        ".oa2"         => "application/vnd.fujitsu.oasys2",
        ".oa3"         => "application/vnd.fujitsu.oasys3",
        # 465
        ".fg5"         => "application/vnd.fujitsu.oasysgp",
        ".bh2"         => "application/vnd.fujitsu.oasysprs",
        ".ddd"         => "application/vnd.fujixerox.ddd",
        ".xdw"         => "application/vnd.fujixerox.docuworks",
        ".xbd"         => "application/vnd.fujixerox.docuworks.binder",
        # 470
        ".xct"         => "application/vnd.fujixerox.docuworks.container",
        ".fzs"         => "application/vnd.fuzzysheet",
        ".txd"         => "application/vnd.genomatix.tuxedo",
        ".ggb"         => "application/vnd.geogebra.file",
        ".ggt"         => "application/vnd.geogebra.tool",
        # 475
        ".gex"         => "application/vnd.geometry-explorer",
        ".gre"         => "application/vnd.geometry-explorer",
        ".gxt"         => "application/vnd.geonext",
        ".g2w"         => "application/vnd.geoplan",
        ".g3w"         => "application/vnd.geospace",
        # 480
        ".kml"         => "application/vnd.google-earth.kml+xml",
        ".kmz"         => "application/vnd.google-earth.kmz",
        ".gqf"         => "application/vnd.grafeq",
        ".gqs"         => "application/vnd.grafeq",
        ".gac"         => "application/vnd.groove-account",
        # 485
        ".ghf"         => "application/vnd.groove-help",
        ".gim"         => "application/vnd.groove-identity-message",
        ".grv"         => "application/vnd.groove-injector",
        ".gtm"         => "application/vnd.groove-tool-message",
        ".tpl"         => "application/vnd.groove-tool-template",
        # 490
        ".vcg"         => "application/vnd.groove-vcard",
        ".hal"         => "application/vnd.hal+xml",
        ".bpd"         => "application/vnd.hbci",
        ".hbc"         => "application/vnd.hbci",
        ".hbci"        => "application/vnd.hbci",
        # 495
        ".kom"         => "application/vnd.hbci",
        ".pkd"         => "application/vnd.hbci",
        ".upa"         => "application/vnd.hbci",
        ".hdt"         => "application/vnd.hdt",
        ".les"         => "application/vnd.hhe.lesson-player",
        # 500
        ".hpgl"        => "application/vnd.hp-HPGL",
        ".pcl"         => "application/vnd.hp-PCL",
        ".hpi"         => "application/vnd.hp-hpid",
        ".hpid"        => "application/vnd.hp-hpid",
        ".hps"         => "application/vnd.hp-hps",
        # 505
        ".jlt"         => "application/vnd.hp-jlyt",
        ".sfd-hdstx"   => "application/vnd.hydrostatix.sof-data",
        ".mpy"         => "application/vnd.ibm.MiniPay",
        ".emm"         => "application/vnd.ibm.electronic-media",
        ".irm"         => "application/vnd.ibm.rights-management",
        # 510
        ".sc"          => "application/vnd.ibm.secure-container",
        ".icc"         => "application/vnd.iccprofile",
        ".icm"         => "application/vnd.iccprofile",
        ".igl"         => "application/vnd.igloader",
        ".imf"         => "application/vnd.imagemeter.folder+zip",
        # 515
        ".imi"         => "application/vnd.imagemeter.image+zip",
        ".ivp"         => "application/vnd.immervision-ivp",
        ".ivu"         => "application/vnd.immervision-ivu",
        ".imscc"       => "application/vnd.ims.imsccv1p1",
        ".igm"         => "application/vnd.insors.igm",
        # 520
        ".xpw"         => "application/vnd.intercon.formnet",
        ".xpx"         => "application/vnd.intercon.formnet",
        ".i2g"         => "application/vnd.intergeo",
        ".qbo"         => "application/vnd.intu.qbo",
        ".qfx"         => "application/vnd.intu.qfx",
        # 525
        ".rcprofile"   => "application/vnd.ipunplugged.rcprofile",
        ".irp"         => "application/vnd.irepository.package+xml",
        ".xpr"         => "application/vnd.is-xpr",
        ".fcs"         => "application/vnd.isac.fcs",
        ".jam"         => "application/vnd.jam",
        # 530
        ".rms"         => "application/vnd.jcp.javame.midlet-rms",
        ".jisp"        => "application/vnd.jisp",
        ".joda"        => "application/vnd.joost.joda-archive",
        ".ktr"         => "application/vnd.kahootz",
        ".ktz"         => "application/vnd.kahootz",
        # 535
        ".karbon"      => "application/vnd.kde.karbon",
        ".chrt"        => "application/vnd.kde.kchart",
        ".kfo"         => "application/vnd.kde.kformula",
        ".flw"         => "application/vnd.kde.kivio",
        ".kon"         => "application/vnd.kde.kontour",
        # 540
        ".kpr"         => "application/vnd.kde.kpresenter",
        ".kpt"         => "application/vnd.kde.kpresenter",
        ".ksp"         => "application/vnd.kde.kspread",
        ".kwd"         => "application/vnd.kde.kword",
        ".kwt"         => "application/vnd.kde.kword",
        # 545
        ".htke"        => "application/vnd.kenameaapp",
        ".kia"         => "application/vnd.kidspiration",
        ".skd"         => "application/vnd.koan",
        ".skm"         => "application/vnd.koan",
        ".skp"         => "application/vnd.koan",
        # 550
        ".skt"         => "application/vnd.koan",
        ".sse"         => "application/vnd.kodak-descriptor",
        ".lasjson"     => "application/vnd.las.las+json",
        ".lasxml"      => "application/vnd.las.las+xml",
        ".lbd"         => "application/vnd.llamagraphics.life-balance.desktop",
        # 555
        ".lbe"         => "application/vnd.llamagraphics.life-balance.exchange+xml",
        ".lca"         => "application/vnd.logipipe.circuit+zip",
        ".lcs"         => "application/vnd.logipipe.circuit+zip",
        ".loom"        => "application/vnd.loom",
        ".123"         => "application/vnd.lotus-1-2-3",
        # 560
        ".wk1"         => "application/vnd.lotus-1-2-3",
        ".wk3"         => "application/vnd.lotus-1-2-3",
        ".wk4"         => "application/vnd.lotus-1-2-3",
        ".apr"         => "application/vnd.lotus-approach",
        ".vew"         => "application/vnd.lotus-approach",
        # 565
        ".pre"         => "application/vnd.lotus-freelance",
        ".prz"         => "application/vnd.lotus-freelance",
        ".ndl"         => "application/vnd.lotus-notes",
        ".ns2"         => "application/vnd.lotus-notes",
        ".ns3"         => "application/vnd.lotus-notes",
        # 570
        ".ns4"         => "application/vnd.lotus-notes",
        ".nsf"         => "application/vnd.lotus-notes",
        ".nsg"         => "application/vnd.lotus-notes",
        ".nsh"         => "application/vnd.lotus-notes",
        ".ntf"         => "application/vnd.lotus-notes",
        # 575
        ".or2"         => "application/vnd.lotus-organizer",
        ".or3"         => "application/vnd.lotus-organizer",
        ".org"         => "application/vnd.lotus-organizer",
        ".scm"         => "application/vnd.lotus-screencam",
        ".lwp"         => "application/vnd.lotus-wordpro",
        # 580
        ".sam"         => "application/vnd.lotus-wordpro",
        ".portpkg"     => "application/vnd.macports.portpkg",
        ".mvt"         => "application/vnd.mapbox-vector-tile",
        ".mdc"         => "application/vnd.marlin.drm.mdcf",
        ".mmdb"        => "application/vnd.maxmind.maxmind-db",
        # 585
        ".mcd"         => "application/vnd.mcd",
        ".mc1"         => "application/vnd.medcalcdata",
        ".cdkey"       => "application/vnd.mediastation.cdkey",
        ".mfm"         => "application/vnd.mfmp",
        ".flo"         => "application/vnd.micrografx.flo",
        # 590
        ".igx"         => "application/vnd.micrografx.igx",
        ".mif"         => "application/vnd.mif",
        ".mpn"         => "application/vnd.mophun.application",
        ".mpc"         => "application/vnd.mophun.certificate",
        ".xul"         => "application/vnd.mozilla.xul+xml",
        # 595
        ".3mf"         => "application/vnd.ms-3mfdocument",
        ".cil"         => "application/vnd.ms-artgalry",
        ".asf"         => "application/vnd.ms-asf",
        ".cab"         => "application/vnd.ms-cab-compressed",
        ".xla"         => "application/vnd.ms-excel",
        # 600
        ".xlc"         => "application/vnd.ms-excel",
        ".xlm"         => "application/vnd.ms-excel",
        ".xls"         => "application/vnd.ms-excel",
        ".xlt"         => "application/vnd.ms-excel",
        ".xlw"         => "application/vnd.ms-excel",
        # 605
        ".xlam"        => "application/vnd.ms-excel.addin.macroEnabled.12",
        ".xlsb"        => "application/vnd.ms-excel.sheet.binary.macroEnabled.12",
        ".xlsm"        => "application/vnd.ms-excel.sheet.macroEnabled.12",
        ".xltm"        => "application/vnd.ms-excel.template.macroEnabled.12",
        ".eot"         => "application/vnd.ms-fontobject",
        # 610
        ".chm"         => "application/vnd.ms-htmlhelp",
        ".ims"         => "application/vnd.ms-ims",
        ".lrm"         => "application/vnd.ms-lrm",
        ".thmx"        => "application/vnd.ms-officetheme",
        ".cat"         => "application/vnd.ms-pki.seccat",
        # 615
        ".pps"         => "application/vnd.ms-powerpoint",
        ".ppt"         => "application/vnd.ms-powerpoint",
        ".ppam"        => "application/vnd.ms-powerpoint.addin.macroEnabled.12",
        ".pptm"        => "application/vnd.ms-powerpoint.presentation.macroEnabled.12",
        ".sldm"        => "application/vnd.ms-powerpoint.slide.macroEnabled.12",
        # 620
        ".ppsm"        => "application/vnd.ms-powerpoint.slideshow.macroEnabled.12",
        ".potm"        => "application/vnd.ms-powerpoint.template.macroEnabled.12",
        ".mpp"         => "application/vnd.ms-project",
        ".mpt"         => "application/vnd.ms-project",
        ".tnef"        => "application/vnd.ms-tnef",
        # 625
        ".tnf"         => "application/vnd.ms-tnef",
        ".docm"        => "application/vnd.ms-word.document.macroEnabled.12",
        ".dotm"        => "application/vnd.ms-word.template.macroEnabled.12",
        ".wcm"         => "application/vnd.ms-works",
        ".wdb"         => "application/vnd.ms-works",
        # 630
        ".wks"         => "application/vnd.ms-works",
        ".wps"         => "application/vnd.ms-works",
        ".wpl"         => "application/vnd.ms-wpl",
        ".xps"         => "application/vnd.ms-xpsdocument",
        ".msa"         => "application/vnd.msa-disk-image",
        # 635
        ".mseq"        => "application/vnd.mseq",
        ".crtr"        => "application/vnd.multiad.creator",
        ".cif"         => "application/vnd.multiad.creator.cif",
        ".mus"         => "application/vnd.musician",
        ".msty"        => "application/vnd.muvee.style",
        # 640
        ".taglet"      => "application/vnd.mynfc",
        ".bkm"         => "application/vnd.nervana",
        ".entity"      => "application/vnd.nervana",
        ".kcm"         => "application/vnd.nervana",
        ".request"     => "application/vnd.nervana",
        # 645
        ".nlu"         => "application/vnd.neurolanguage.nlu",
        ".nimn"        => "application/vnd.nimn",
        ".nds"         => "application/vnd.nintendo.nitro.rom",
        ".sfc"         => "application/vnd.nintendo.snes.rom",
        ".smc"         => "application/vnd.nintendo.snes.rom",
        # 650
        ".nitf"        => "application/vnd.nitf",
        ".nnd"         => "application/vnd.noblenet-directory",
        ".nns"         => "application/vnd.noblenet-sealer",
        ".nnw"         => "application/vnd.noblenet-web",
        ".ngdat"       => "application/vnd.nokia.n-gage.data",
        # 655
        ".rpst"        => "application/vnd.nokia.radio-preset",
        ".rpss"        => "application/vnd.nokia.radio-presets",
        ".edm"         => "application/vnd.novadigm.EDM",
        ".edx"         => "application/vnd.novadigm.EDX",
        ".ext"         => "application/vnd.novadigm.EXT",
        # 660
        ".odc"         => "application/vnd.oasis.opendocument.chart",
        ".otc"         => "application/vnd.oasis.opendocument.chart-template",
        ".odb"         => "application/vnd.oasis.opendocument.database",
        ".odf"         => "application/vnd.oasis.opendocument.formula",
        ".odg"         => "application/vnd.oasis.opendocument.graphics",
        # 665
        ".otg"         => "application/vnd.oasis.opendocument.graphics-template",
        ".odi"         => "application/vnd.oasis.opendocument.image",
        ".oti"         => "application/vnd.oasis.opendocument.image-template",
        ".odp"         => "application/vnd.oasis.opendocument.presentation",
        ".otp"         => "application/vnd.oasis.opendocument.presentation-template",
        # 670
        ".ods"         => "application/vnd.oasis.opendocument.spreadsheet",
        ".ots"         => "application/vnd.oasis.opendocument.spreadsheet-template",
        ".odt"         => "application/vnd.oasis.opendocument.text",
        ".odm"         => "application/vnd.oasis.opendocument.text-master",
        ".ott"         => "application/vnd.oasis.opendocument.text-template",
        # 675
        ".oth"         => "application/vnd.oasis.opendocument.text-web",
        ".xo"          => "application/vnd.olpc-sugar",
        ".dd2"         => "application/vnd.oma.dd2+xml",
        ".tam"         => "application/vnd.onepager",
        ".tamp"        => "application/vnd.onepagertamp",
        # 680
        ".tamx"        => "application/vnd.onepagertamx",
        ".tat"         => "application/vnd.onepagertat",
        ".tatp"        => "application/vnd.onepagertatp",
        ".tatx"        => "application/vnd.onepagertatx",
        ".obgx"        => "application/vnd.openblox.game+xml",
        # 685
        ".obg"         => "application/vnd.openblox.game-binary",
        ".oeb"         => "application/vnd.openeye.oeb",
        ".oxt"         => "application/vnd.openofficeorg.extension",
        ".osm"         => "application/vnd.openstreetmap.data+xml",
        ".pptx"        => "application/vnd.openxmlformats-officedocument.presentationml.presentation",
        # 690
        ".sldx"        => "application/vnd.openxmlformats-officedocument.presentationml.slide",
        ".ppsx"        => "application/vnd.openxmlformats-officedocument.presentationml.slideshow",
        ".potx"        => "application/vnd.openxmlformats-officedocument.presentationml.template",
        ".xlsx"        => "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        ".xltx"        => "application/vnd.openxmlformats-officedocument.spreadsheetml.template",
        # 695
        ".docx"        => "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
        ".dotx"        => "application/vnd.openxmlformats-officedocument.wordprocessingml.template",
        ".ndc"         => "application/vnd.osa.netdeploy",
        ".mgp"         => "application/vnd.osgeo.mapguide.package",
        ".dp"          => "application/vnd.osgi.dp",
        # 700
        ".esa"         => "application/vnd.osgi.subsystem",
        ".oxlicg"      => "application/vnd.oxli.countgraph",
        ".oprc"        => "application/vnd.palm",
        ".pdb"         => "application/vnd.palm",
        ".pqa"         => "application/vnd.palm",
        # 705
        ".prc"         => "application/vnd.palm",
        ".plp"         => "application/vnd.panoply",
        ".dive"        => "application/vnd.patentdive",
        ".paw"         => "application/vnd.pawaafile",
        ".str"         => "application/vnd.pg.format",
        # 710
        ".ei6"         => "application/vnd.pg.osasli",
        ".pil"         => "application/vnd.piaccess.application-license",
        ".efif"        => "application/vnd.picsel",
        ".wg"          => "application/vnd.pmi.widget",
        ".plf"         => "application/vnd.pocketlearn",
        # 715
        ".pbd"         => "application/vnd.powerbuilder6",
        ".preminet"    => "application/vnd.preminet",
        ".box"         => "application/vnd.previewsystems.box",
        ".vbox"        => "application/vnd.previewsystems.box",
        ".mgz"         => "application/vnd.proteus.magazine",
        # 720
        ".psfs"        => "application/vnd.psfs",
        ".qps"         => "application/vnd.publishare-delta-tree",
        ".ptid"        => "application/vnd.pvi.ptid1",
        ".bar"         => "application/vnd.qualcomm.brew-app-res",
        ".quiz"        => "application/vnd.quobject-quoxdocument",
        # 725
        ".quox"        => "application/vnd.quobject-quoxdocument",
        ".tree"        => "application/vnd.rainstor.data",
        ".rar"         => "application/vnd.rar",
        ".bed"         => "application/vnd.realvnc.bed",
        ".mxl"         => "application/vnd.recordare.musicxml",
        # 730
        ".cryptonote"  => "application/vnd.rig.cryptonote",
        ".cod"         => "application/vnd.rim.cod",
        ".link66"      => "application/vnd.route66.link66+xml",
        ".st"          => "application/vnd.sailingtracker.track",
        ".SAR"         => "application/vnd.sar",
        # 735
        ".scd"         => "application/vnd.scribus",
        ".sla"         => "application/vnd.scribus",
        ".slaz"        => "application/vnd.scribus",
        ".s3df"        => "application/vnd.sealed.3df",
        ".scsf"        => "application/vnd.sealed.csf",
        # 740
        ".s1w"         => "application/vnd.sealed.doc",
        ".sdo"         => "application/vnd.sealed.doc",
        ".sdoc"        => "application/vnd.sealed.doc",
        ".sem"         => "application/vnd.sealed.eml",
        ".seml"        => "application/vnd.sealed.eml",
        # 745
        ".smh"         => "application/vnd.sealed.mht",
        ".smht"        => "application/vnd.sealed.mht",
        ".s1p"         => "application/vnd.sealed.ppt",
        ".sppt"        => "application/vnd.sealed.ppt",
        ".stif"        => "application/vnd.sealed.tiff",
        # 750
        ".s1e"         => "application/vnd.sealed.xls",
        ".sxl"         => "application/vnd.sealed.xls",
        ".sxls"        => "application/vnd.sealed.xls",
        ".s1h"         => "application/vnd.sealedmedia.softseal.html",
        ".stml"        => "application/vnd.sealedmedia.softseal.html",
        # 755
        ".s1a"         => "application/vnd.sealedmedia.softseal.pdf",
        ".spd"         => "application/vnd.sealedmedia.softseal.pdf",
        ".spdf"        => "application/vnd.sealedmedia.softseal.pdf",
        ".see"         => "application/vnd.seemail",
        ".sema"        => "application/vnd.sema",
        # 760
        ".semd"        => "application/vnd.semd",
        ".semf"        => "application/vnd.semf",
        ".ssv"         => "application/vnd.shade-save-file",
        ".ifm"         => "application/vnd.shana.informed.formdata",
        ".itp"         => "application/vnd.shana.informed.formtemplate",
        # 765
        ".iif"         => "application/vnd.shana.informed.interchange",
        ".ipk"         => "application/vnd.shana.informed.package",
        ".shp"         => "application/vnd.shp",
        ".shx"         => "application/vnd.shx",
        ".sr"          => "application/vnd.sigrok.session",
        # 770
        ".mmf"         => "application/vnd.smaf",
        ".notebook"    => "application/vnd.smart.notebook",
        ".teacher"     => "application/vnd.smart.teacher",
        ".pt"          => "application/vnd.snesdev-page-table",
        ".ptrom"       => "application/vnd.snesdev-page-table",
        # 775
        ".fo"          => "application/vnd.software602.filler.form+xml",
        ".zfo"         => "application/vnd.software602.filler.form-xml-zip",
        ".sdkd"        => "application/vnd.solent.sdkm+xml",
        ".sdkm"        => "application/vnd.solent.sdkm+xml",
        ".dxp"         => "application/vnd.spotfire.dxp",
        # 780
        ".sfs"         => "application/vnd.spotfire.sfs",
        ".sqlite"      => "application/vnd.sqlite3",
        ".sqlite3"     => "application/vnd.sqlite3",
        ".sdc"         => "application/vnd.stardivision.calc",
        ".sds"         => "application/vnd.stardivision.chart",
        # 785
        ".sda"         => "application/vnd.stardivision.draw",
        ".sdd"         => "application/vnd.stardivision.impress",
        ".sdw"         => "application/vnd.stardivision.writer",
        ".sgl"         => "application/vnd.stardivision.writer-global",
        ".smzip"       => "application/vnd.stepmania.package",
        # 790
        ".sm"          => "application/vnd.stepmania.stepchart",
        ".wadl"        => "application/vnd.sun.wadl+xml",
        ".sxc"         => "application/vnd.sun.xml.calc",
        ".stc"         => "application/vnd.sun.xml.calc.template",
        ".sxd"         => "application/vnd.sun.xml.draw",
        # 795
        ".std"         => "application/vnd.sun.xml.draw.template",
        ".sxi"         => "application/vnd.sun.xml.impress",
        ".sti"         => "application/vnd.sun.xml.impress.template",
        ".sxm"         => "application/vnd.sun.xml.math",
        ".sxw"         => "application/vnd.sun.xml.writer",
        # 800
        ".sxg"         => "application/vnd.sun.xml.writer.global",
        ".stw"         => "application/vnd.sun.xml.writer.template",
        ".sus"         => "application/vnd.sus-calendar",
        ".susp"        => "application/vnd.sus-calendar",
        ".sis"         => "application/vnd.symbian.install",
        # 805
        ".xsm"         => "application/vnd.syncml+xml",
        ".bdm"         => "application/vnd.syncml.dm+wbxml",
        ".xdm"         => "application/vnd.syncml.dm+xml",
        ".ddf"         => "application/vnd.syncml.dmddf+xml",
        ".tao"         => "application/vnd.tao.intent-module-archive",
        # 810
        ".cap"         => "application/vnd.tcpdump.pcap",
        ".dmp"         => "application/vnd.tcpdump.pcap",
        ".pcap"        => "application/vnd.tcpdump.pcap",
        ".qvd"         => "application/vnd.theqvd",
        ".ppttc"       => "application/vnd.think-cell.ppttc+json",
        # 815
        ".vfr"         => "application/vnd.tml",
        ".viaframe"    => "application/vnd.tml",
        ".tmo"         => "application/vnd.tmobile-livetv",
        ".tpt"         => "application/vnd.trid.tpt",
        ".mxs"         => "application/vnd.triscape.mxs",
        # 820
        ".tra"         => "application/vnd.trueapp",
        ".frm"         => "application/vnd.ufdl",
        ".ufd"         => "application/vnd.ufdl",
        ".ufdl"        => "application/vnd.ufdl",
        ".utz"         => "application/vnd.uiq.theme",
        # 825
        ".umj"         => "application/vnd.umajin",
        ".unityweb"    => "application/vnd.unity",
        ".uo"          => "application/vnd.uoml+xml",
        ".uoml"        => "application/vnd.uoml+xml",
        ".urim"        => "application/vnd.uri-map",
        # 830
        ".urimap"      => "application/vnd.uri-map",
        ".vmt"         => "application/vnd.valve.source.material",
        ".vcx"         => "application/vnd.vcx",
        ".model-inter" => "application/vnd.vd-study",
        ".mxi"         => "application/vnd.vd-study",
        # 835
        ".study-inter" => "application/vnd.vd-study",
        ".vwx"         => "application/vnd.vectorworks",
        ".istc"        => "application/vnd.veryant.thin",
        ".isws"        => "application/vnd.veryant.thin",
        ".VES"         => "application/vnd.ves.encrypted",
        # 840
        ".vsc"         => "application/vnd.vidsoft.vidconference",
        ".vsd"         => "application/vnd.visio",
        ".vss"         => "application/vnd.visio",
        ".vst"         => "application/vnd.visio",
        ".vsw"         => "application/vnd.visio",
        # 845
        ".vis"         => "application/vnd.visionary",
        ".vsf"         => "application/vnd.vsf",
        ".sic"         => "application/vnd.wap.sic",
        ".slc"         => "application/vnd.wap.slc",
        ".wbxml"       => "application/vnd.wap.wbxml",
        # 850
        ".wmlc"        => "application/vnd.wap.wmlc",
        ".wmlsc"       => "application/vnd.wap.wmlscriptc",
        ".wtb"         => "application/vnd.webturbo",
        ".p2p"         => "application/vnd.wfa.p2p",
        ".wsc"         => "application/vnd.wfa.wsc",
        # 855
        ".wmc"         => "application/vnd.wmc",
        ".nb"          => "application/vnd.wolfram.mathematica",
        ".m"           => "application/vnd.wolfram.mathematica.package",
        ".nbp"         => "application/vnd.wolfram.player",
        ".wpd"         => "application/vnd.wordperfect",
        # 860
        ".wp5"         => "application/vnd.wordperfect5.1",
        ".wqd"         => "application/vnd.wqd",
        ".stf"         => "application/vnd.wt.stf",
        ".wv"          => "application/vnd.wv.csp+wbxml",
        ".xar"         => "application/vnd.xara",
        # 865
        ".xfd"         => "application/vnd.xfdl",
        ".xfdl"        => "application/vnd.xfdl",
        ".cpkg"        => "application/vnd.xmpie.cpkg",
        ".dpkg"        => "application/vnd.xmpie.dpkg",
        ".ppkg"        => "application/vnd.xmpie.ppkg",
        # 870
        ".xlim"        => "application/vnd.xmpie.xlim",
        ".hvd"         => "application/vnd.yamaha.hv-dic",
        ".hvs"         => "application/vnd.yamaha.hv-script",
        ".hvp"         => "application/vnd.yamaha.hv-voice",
        ".osf"         => "application/vnd.yamaha.openscoreformat",
        # 875
        ".saf"         => "application/vnd.yamaha.smaf-audio",
        ".spf"         => "application/vnd.yamaha.smaf-phrase",
        ".yme"         => "application/vnd.yaoweme",
        ".cmp"         => "application/vnd.yellowriver-custom-menu",
        ".zir"         => "application/vnd.zul",
        # 880
        ".zirz"        => "application/vnd.zul",
        ".zaz"         => "application/vnd.zzazz.deck+xml",
        ".wk"          => "application/x-123",
        ".7z"          => "application/x-7z-compressed",
        ".abw"         => "application/x-abiword",
        # 885
        ".dmg"         => "application/x-apple-diskimage",
        ".bcpio"       => "application/x-bcpio",
        ".torrent"     => "application/x-bittorrent",
        ".bz2"         => "application/x-bzip",
        ".cda"         => "application/x-cdf",
        # 890
        ".cdf"         => "application/x-cdf",
        ".vcd"         => "application/x-cdlink",
        ".mph"         => "application/x-comsol",
        ".cpio"        => "application/x-cpio",
        ".dcr"         => "application/x-director",
        # 895
        ".dir"         => "application/x-director",
        ".dxr"         => "application/x-director",
        ".wad"         => "application/x-doom",
        ".dvi"         => "application/x-dvi",
        ".gsf"         => "application/x-font",
        # 900
        ".pfa"         => "application/x-font",
        ".pfb"         => "application/x-font",
        ".pcf"         => "application/x-font-pcf",
        ".mm"          => "application/x-freemind",
        ".gan"         => "application/x-ganttproject",
        # 905
        ".gnumeric"    => "application/x-gnumeric",
        ".sgf"         => "application/x-go-sgf",
        ".gcf"         => "application/x-graphing-calculator",
        ".gtar"        => "application/x-gtar",
        ".taz"         => "application/x-gtar-compressed",
        # 910
        ".tbz"         => "application/x-gtar-compressed",
        ".tgz"         => "application/x-gtar-compressed",
        ".hdf"         => "application/x-hdf",
        ".hwp"         => "application/x-hwp",
        ".ica"         => "application/x-ica",
        # 915
        ".info"        => "application/x-info",
        ".ins"         => "application/x-internet-signup",
        ".isp"         => "application/x-internet-signup",
        ".iii"         => "application/x-iphone",
        ".iso"         => "application/x-iso9660-image",
        # 920
        ".jnlp"        => "application/x-java-jnlp-file",
        ".jmz"         => "application/x-jmol",
        ".kil"         => "application/x-killustrator",
        ".latex"       => "application/x-latex",
        ".lha"         => "application/x-lha",
        # 925
        ".lyx"         => "application/x-lyx",
        ".lzh"         => "application/x-lzh",
        ".lzx"         => "application/x-lzx",
        ".book"        => "application/x-maker",
        ".fb"          => "application/x-maker",
        # 930
        ".fbdoc"       => "application/x-maker",
        ".frame"       => "application/x-maker",
        ".maker"       => "application/x-maker",
        ".application" => "application/x-ms-application",
        ".wmd"         => "application/x-ms-wmd",
        # 935
        ".wmz"         => "application/x-ms-wmz",
        ".bat"         => "application/x-msdos-program",
        ".com"         => "application/x-msdos-program",
        ".dll"         => "application/x-msdos-program",
        ".exe"         => "application/x-msdos-program",
        # 940
        ".msi"         => "application/x-msi",
        ".nc"          => "application/x-netcdf",
        ".pac"         => "application/x-ns-proxy-autoconfig",
        ".nwc"         => "application/x-nwc",
        ".o"           => "application/x-object",
        # 945
        ".oza"         => "application/x-oz-application",
        ".p7r"         => "application/x-pkcs7-certreqresp",
        ".pyc"         => "application/x-python-code",
        ".pyo"         => "application/x-python-code",
        ".qgs"         => "application/x-qgis",
        # 950
        ".qtl"         => "application/x-quicktimeplayer",
        ".rdp"         => "application/x-rdp",
        ".rpm"         => "application/x-redhat-package-manager",
        ".rss"         => "application/x-rss+xml",
        ".rb"          => "application/x-ruby",
        # 955
        ".sci"         => "application/x-scilab",
        ".xcos"        => "application/x-scilab-xcos",
        ".shar"        => "application/x-shar",
        ".scr"         => "application/x-silverlight",
        ".sit"         => "application/x-stuffit",
        # 960
        ".sitx"        => "application/x-stuffit",
        ".sv4cpio"     => "application/x-sv4cpio",
        ".sv4crc"      => "application/x-sv4crc",
        ".tar"         => "application/x-tar",
        ".gf"          => "application/x-tex-gf",
        # 965
        ".pk"          => "application/x-tex-pk",
        ".texi"        => "application/x-texinfo",
        ".texinfo"     => "application/x-texinfo",
        ".man"         => "application/x-troff-man",
        ".me"          => "application/x-troff-me",
        # 970
        ".ms"          => "application/x-troff-ms",
        ".ustar"       => "application/x-ustar",
        ".src"         => "application/x-wais-source",
        ".wz"          => "application/x-wingz",
        ".crt"         => "application/x-x509-ca-cert",
        # 975
        ".xcf"         => "application/x-xcf",
        ".fig"         => "application/x-xfig",
        ".xpi"         => "application/x-xpinstall",
        ".xz"          => "application/x-xz",
        ".726"         => "audio/32kadpcm",
        # 980
        ".amr"         => "audio/AMR",
        ".awb"         => "audio/AMR-WB",
        ".aal"         => "audio/ATRAC-ADVANCED-LOSSLESS",
        ".atx"         => "audio/ATRAC-X",
        ".aa3"         => "audio/ATRAC3",
        # 985
        ".at3"         => "audio/ATRAC3",
        ".omg"         => "audio/ATRAC3",
        ".evc"         => "audio/EVRC",
        ".qcp"         => "audio/EVRC-QCP",
        ".evb"         => "audio/EVRCB",
        # 990
        ".enw"         => "audio/EVRCNW",
        ".evw"         => "audio/EVRCWB",
        ".l16"         => "audio/L16",
        ".smv"         => "audio/SMV",
        ".aac"         => "audio/aac",
        # 995
        ".adts"        => "audio/aac",
        ".ass"         => "audio/aac",
        ".ac3"         => "audio/ac3",
        ".axa"         => "audio/annodex",
        ".acn"         => "audio/asc",
        # 1000
        ".au"          => "audio/basic",
        ".snd"         => "audio/basic",
        ".csd"         => "audio/csound",
        ".orc"         => "audio/csound",
        ".sco"         => "audio/csound",
        # 1005
        ".dls"         => "audio/dls",
        ".flac"        => "audio/flac",
        ".lbc"         => "audio/iLBC",
        ".mhas"        => "audio/mhas",
        ".mxmf"        => "audio/mobile-xmf",
        # 1010
        ".m4a"         => "audio/mpeg",
        ".mp1"         => "audio/mpeg",
        ".mp2"         => "audio/mpeg",
        ".mp3"         => "audio/mpeg",
        ".mpega"       => "audio/mpeg",
        # 1015
        ".mpga"        => "audio/mpeg",
        ".m3u"         => "audio/mpegurl",
        ".oga"         => "audio/ogg",
        ".ogg"         => "audio/ogg",
        ".opus"        => "audio/ogg",
        # 1020
        ".spx"         => "audio/ogg",
        ".psid"        => "audio/prs.sid",
        ".sid"         => "audio/prs.sid",
        ".sofa"        => "audio/sofa",
        ".mid"         => "audio/sp-midi",
        # 1025
        ".loas"        => "audio/usac",
        ".xhe"         => "audio/usac",
        ".koz"         => "audio/vnd.audiokoz",
        ".uva"         => "audio/vnd.dece.audio",
        ".uvva"        => "audio/vnd.dece.audio",
        # 1030
        ".eol"         => "audio/vnd.digital-winds",
        ".mlp"         => "audio/vnd.dolby.mlp",
        ".dts"         => "audio/vnd.dts",
        ".dtshd"       => "audio/vnd.dts.hd",
        ".plj"         => "audio/vnd.everad.plj",
        # 1035
        ".lvp"         => "audio/vnd.lucent.voice",
        ".pya"         => "audio/vnd.ms-playready.media.pya",
        ".vbk"         => "audio/vnd.nortel.vbk",
        ".ecelp4800"   => "audio/vnd.nuera.ecelp4800",
        ".ecelp7470"   => "audio/vnd.nuera.ecelp7470",
        # 1040
        ".ecelp9600"   => "audio/vnd.nuera.ecelp9600",
        ".multitrack"  => "audio/vnd.presonus.multitrack",
        ".rip"         => "audio/vnd.rip",
        ".s1m"         => "audio/vnd.sealedmedia.softseal.mpeg",
        ".smp"         => "audio/vnd.sealedmedia.softseal.mpeg",
        # 1045
        ".smp3"        => "audio/vnd.sealedmedia.softseal.mpeg",
        ".aif"         => "audio/x-aiff",
        ".aifc"        => "audio/x-aiff",
        ".aiff"        => "audio/x-aiff",
        ".wax"         => "audio/x-ms-wax",
        # 1050
        ".wma"         => "audio/x-ms-wma",
        ".ra"          => "audio/x-realaudio",
        ".ram"         => "audio/x-realaudio",
        ".rm"          => "audio/x-realaudio",
        ".pls"         => "audio/x-scpls",
        # 1055
        ".sd2"         => "audio/x-sd2",
        ".wav"         => "audio/x-wav",
        ".alc"         => "chemical/x-alchemy",
        ".cac"         => "chemical/x-cache",
        ".cache"       => "chemical/x-cache",
        # 1060
        ".csf"         => "chemical/x-cache-csf",
        ".cascii"      => "chemical/x-cactvs-binary",
        ".cbin"        => "chemical/x-cactvs-binary",
        ".ctab"        => "chemical/x-cactvs-binary",
        ".cdx"         => "chemical/x-cdx",
        # 1065
        ".c3d"         => "chemical/x-chem3d",
        ".cmdf"        => "chemical/x-cmdf",
        ".cpa"         => "chemical/x-compass",
        ".bsd"         => "chemical/x-crossfire",
        ".csm"         => "chemical/x-csml",
        # 1070
        ".csml"        => "chemical/x-csml",
        ".ctx"         => "chemical/x-ctx",
        ".cef"         => "chemical/x-cxf",
        ".cxf"         => "chemical/x-cxf",
        ".emb"         => "chemical/x-embl-dl-nucleotide",
        # 1075
        ".embl"        => "chemical/x-embl-dl-nucleotide",
        ".spc"         => "chemical/x-galactic-spc",
        ".gam"         => "chemical/x-gamess-input",
        ".gamin"       => "chemical/x-gamess-input",
        ".inp"         => "chemical/x-gamess-input",
        # 1080
        ".fch"         => "chemical/x-gaussian-checkpoint",
        ".fchk"        => "chemical/x-gaussian-checkpoint",
        ".cub"         => "chemical/x-gaussian-cube",
        ".gau"         => "chemical/x-gaussian-input",
        ".gjc"         => "chemical/x-gaussian-input",
        # 1085
        ".gjf"         => "chemical/x-gaussian-input",
        ".gal"         => "chemical/x-gaussian-log",
        ".gcg"         => "chemical/x-gcg8-sequence",
        ".gen"         => "chemical/x-genbank",
        ".hin"         => "chemical/x-hin",
        # 1090
        ".ist"         => "chemical/x-isostar",
        ".istr"        => "chemical/x-isostar",
        ".dx"          => "chemical/x-jcamp-dx",
        ".jdx"         => "chemical/x-jcamp-dx",
        ".kin"         => "chemical/x-kinemage",
        # 1095
        ".mcm"         => "chemical/x-macmolecule",
        ".mmod"        => "chemical/x-macromodel-input",
        ".mol"         => "chemical/x-mdl-molfile",
        ".rd"          => "chemical/x-mdl-rdfile",
        ".rxn"         => "chemical/x-mdl-rxnfile",
        # 1100
        ".sd"          => "chemical/x-mdl-sdfile",
        ".tgf"         => "chemical/x-mdl-tgf",
        ".mcif"        => "chemical/x-mmcif",
        ".mol2"        => "chemical/x-mol2",
        ".b"           => "chemical/x-molconn-Z",
        # 1105
        ".gpt"         => "chemical/x-mopac-graph",
        ".mop"         => "chemical/x-mopac-input",
        ".mopcrt"      => "chemical/x-mopac-input",
        ".zmt"         => "chemical/x-mopac-input",
        ".moo"         => "chemical/x-mopac-out",
        # 1110
        ".mvb"         => "chemical/x-mopac-vib",
        ".prt"         => "chemical/x-ncbi-asn1-ascii",
        ".val"         => "chemical/x-ncbi-asn1-binary",
        ".ros"         => "chemical/x-rosdal",
        ".sw"          => "chemical/x-swissprot",
        # 1115
        ".vms"         => "chemical/x-vamas-iso14976",
        ".vmd"         => "chemical/x-vmd",
        ".xtel"        => "chemical/x-xtel",
        ".xyz"         => "chemical/x-xyz",
        ".ttc"         => "font/collection",
        # 1120
        ".otf"         => "font/otf",
        ".ttf"         => "font/ttf",
        ".woff"        => "font/woff",
        ".woff2"       => "font/woff2",
        ".exr"         => "image/aces",
        # 1125
        ".avci"        => "image/avci",
        ".avcs"        => "image/avcs",
        ".bmp"         => "image/bmp",
        ".cgm"         => "image/cgm",
        ".drle"        => "image/dicom-rle",
        # 1130
        ".emf"         => "image/emf",
        ".fit"         => "image/fits",
        ".fits"        => "image/fits",
        ".fts"         => "image/fits",
        ".gif"         => "image/gif",
        # 1135
        ".heic"        => "image/heic",
        ".heics"       => "image/heic-sequence",
        ".heif"        => "image/heif",
        ".heifs"       => "image/heif-sequence",
        ".hej2"        => "image/hej2k",
        # 1140
        ".hsj2"        => "image/hsj2",
        ".ief"         => "image/ief",
        ".jls"         => "image/jls",
        ".jp2"         => "image/jp2",
        ".jpg2"        => "image/jp2",
        # 1145
        ".jfif"        => "image/jpeg",
        ".jpe"         => "image/jpeg",
        ".jpeg"        => "image/jpeg",
        ".jpg"         => "image/jpeg",
        ".jph"         => "image/jph",
        # 1150
        ".jhc"         => "image/jphc",
        ".jphc"        => "image/jphc",
        ".jpgm"        => "image/jpm",
        ".jpm"         => "image/jpm",
        ".jpf"         => "image/jpx",
        # 1155
        ".jpx"         => "image/jpx",
        ".jxr"         => "image/jxr",
        ".jxra"        => "image/jxrA",
        ".jxrs"        => "image/jxrS",
        ".jxs"         => "image/jxs",
        # 1160
        ".jxsc"        => "image/jxsc",
        ".jxsi"        => "image/jxsi",
        ".jxss"        => "image/jxss",
        ".ktx"         => "image/ktx",
        ".ktx2"        => "image/ktx2",
        # 1165
        ".png"         => "image/png",
        ".btf"         => "image/prs.btif",
        ".btif"        => "image/prs.btif",
        ".pti"         => "image/prs.pti",
        ".svg"         => "image/svg+xml",
        # 1170
        ".svgz"        => "image/svg+xml",
        ".t38"         => "image/t38",
        ".tif"         => "image/tiff",
        ".tiff"        => "image/tiff",
        ".tfx"         => "image/tiff-fx",
        # 1175
        ".wmf"         => "image/wmf",
        ".psd"         => "image/vnd.adobe.photoshop",
        ".azv"         => "image/vnd.airzip.accelerator.azv",
        ".uvg"         => "image/vnd.dece.graphic",
        ".uvi"         => "image/vnd.dece.graphic",
        # 1180
        ".uvvg"        => "image/vnd.dece.graphic",
        ".uvvi"        => "image/vnd.dece.graphic",
        ".djv"         => "image/vnd.djvu",
        ".djvu"        => "image/vnd.djvu",
        ".dwg"         => "image/vnd.dwg",
        # 1185
        ".dxf"         => "image/vnd.dxf",
        ".fbs"         => "image/vnd.fastbidsheet",
        ".fpx"         => "image/vnd.fpx",
        ".fst"         => "image/vnd.fst",
        ".mmr"         => "image/vnd.fujixerox.edmics-mmr",
        # 1190
        ".rlc"         => "image/vnd.fujixerox.edmics-rlc",
        ".PGB"         => "image/vnd.globalgraphics.pgb",
        ".ico"         => "image/vnd.microsoft.icon",
        ".apng"        => "image/vnd.mozilla.apng",
        ".mdi"         => "image/vnd.ms-modi",
        # 1195
        ".b16"         => "image/vnd.pco.b16",
        ".hdr"         => "image/vnd.radiance",
        ".rgbe"        => "image/vnd.radiance",
        ".xyze"        => "image/vnd.radiance",
        ".s1n"         => "image/vnd.sealed.png",
        # 1200
        ".spn"         => "image/vnd.sealed.png",
        ".spng"        => "image/vnd.sealed.png",
        ".s1g"         => "image/vnd.sealedmedia.softseal.gif",
        ".sgi"         => "image/vnd.sealedmedia.softseal.gif",
        ".sgif"        => "image/vnd.sealedmedia.softseal.gif",
        # 1205
        ".s1j"         => "image/vnd.sealedmedia.softseal.jpg",
        ".sjp"         => "image/vnd.sealedmedia.softseal.jpg",
        ".sjpg"        => "image/vnd.sealedmedia.softseal.jpg",
        ".tap"         => "image/vnd.tencent.tap",
        ".vtf"         => "image/vnd.valve.source.texture",
        # 1210
        ".wbmp"        => "image/vnd.wap.wbmp",
        ".xif"         => "image/vnd.xiff",
        ".pcx"         => "image/vnd.zbrush.pcx",
        ".cr2"         => "image/x-canon-cr2",
        ".crw"         => "image/x-canon-crw",
        # 1215
        ".ras"         => "image/x-cmu-raster",
        ".cdr"         => "image/x-coreldraw",
        ".pat"         => "image/x-coreldrawpattern",
        ".cdt"         => "image/x-coreldrawtemplate",
        ".erf"         => "image/x-epson-erf",
        # 1220
        ".jng"         => "image/x-jng",
        ".nef"         => "image/x-nikon-nef",
        ".orf"         => "image/x-olympus-orf",
        ".pnm"         => "image/x-portable-anymap",
        ".pbm"         => "image/x-portable-bitmap",
        # 1225
        ".pgm"         => "image/x-portable-graymap",
        ".ppm"         => "image/x-portable-pixmap",
        ".rgb"         => "image/x-rgb",
        ".xbm"         => "image/x-xbitmap",
        ".xpm"         => "image/x-xpixmap",
        # 1230
        ".xwd"         => "image/x-xwindowdump",
        ".u8msg"       => "message/global",
        ".u8dsn"       => "message/global-delivery-status",
        ".u8mdn"       => "message/global-disposition-notification",
        ".u8hdr"       => "message/global-headers",
        # 1235
        ".art"         => "message/rfc822",
        ".eml"         => "message/rfc822",
        ".mail"        => "message/rfc822",
        ".gltf"        => "model/gltf+json",
        ".glb"         => "model/gltf-binary",
        # 1240
        ".iges"        => "model/iges",
        ".igs"         => "model/iges",
        ".mesh"        => "model/mesh",
        ".msh"         => "model/mesh",
        ".silo"        => "model/mesh",
        # 1245
        ".mtl"         => "model/mtl",
        ".obj"         => "model/obj",
        ".stl"         => "model/stl",
        ".vrml"        => "model/vrml",
        ".wrl"         => "model/vrml",
        # 1250
        ".x3db"        => "model/x3d+fastinfoset",
        ".x3dv"        => "model/x3d+vrml",
        ".x3dvz"       => "model/x3d+vrml",
        ".x3d"         => "model/x3d+xml",
        ".dae"         => "model/vnd.collada+xml",
        # 1255
        ".dwf"         => "model/vnd.dwf",
        ".dor"         => "model/vnd.gdl",
        ".gdl"         => "model/vnd.gdl",
        ".gsm"         => "model/vnd.gdl",
        ".ism"         => "model/vnd.gdl",
        # 1260
        ".lmp"         => "model/vnd.gdl",
        ".msm"         => "model/vnd.gdl",
        ".rsm"         => "model/vnd.gdl",
        ".win"         => "model/vnd.gdl",
        ".gtw"         => "model/vnd.gtw",
        # 1265
        ".moml"        => "model/vnd.moml+xml",
        ".mts"         => "model/vnd.mts",
        ".ogex"        => "model/vnd.opengex",
        ".usdz"        => "model/vnd.usdz+zip",
        ".bsp"         => "model/vnd.valve.source.compiled-map",
        # 1270
        ".vtu"         => "model/vnd.vtu",
        ".vpm"         => "multipart/voice-message",
        ".bmed"        => "multipart/vnd.bint.med-plus",
        ".appcache"    => "text/cache-manifest",
        ".manifest"    => "text/cache-manifest",
        # 1275
        ".ics"         => "text/calendar",
        ".ifb"         => "text/calendar",
        ".css"         => "text/css; charset=utf-8",
        ".csv"         => "text/csv; charset=utf-8",
        ".csvs"        => "text/csv-schema",
        # 1280
        ".soa"         => "text/dns",
        ".zone"        => "text/dns",
        ".323"         => "text/h323",
        ".htm"         => "text/html",
        ".html"        => "text/html",
        # 1285
        ".shtml"       => "text/html",
        ".uls"         => "text/iuls",
        ".cnd"         => "text/jcr-cnd",
        ".markdown"    => "text/markdown; charset=utf-8",
        ".md"          => "text/markdown; charset=utf-8",
        # 1290
        ".miz"         => "text/mizar",
        ".n3"          => "text/n3",
        ".brf"         => "text/plain; charset=utf-8",
        ".conf"        => "text/plain; charset=utf-8",
        ".log"         => "text/plain; charset=utf-8",
        # 1295
        ".pot"         => "text/plain; charset=utf-8",
        ".spec"        => "text/plain; charset=utf-8",
        ".srt"         => "text/plain; charset=utf-8",
        ".text"        => "text/plain; charset=utf-8",
        ".txt"         => "text/plain; charset=utf-8",
        # 1300
        ".provn"       => "text/provenance-notation",
        ".rst"         => "text/prs.fallenstein.rst",
        ".dsc"         => "text/prs.lines.tag",
        ".tag"         => "text/prs.lines.tag",
        ".rtx"         => "text/richtext",
        # 1305
        ".sct"         => "text/scriptlet",
        ".sgm"         => "text/sgml",
        ".sgml"        => "text/sgml",
        ".tsv"         => "text/tab-separated-values",
        ".tm"          => "text/texmacs",
        # 1310
        ".roff"        => "text/troff",
        ".t"           => "text/troff",
        ".tr"          => "text/troff",
        ".ttl"         => "text/turtle",
        ".uri"         => "text/uri-list",
        # 1315
        ".uris"        => "text/uri-list",
        ".vcard"       => "text/vcard",
        ".vcf"         => "text/vcard",
        ".vtt"         => "text/vtt",
        ".dms"         => "text/vnd.DMClientScript",
        # 1320
        ".a"           => "text/vnd.a",
        ".abc"         => "text/vnd.abc",
        ".ascii"       => "text/vnd.ascii-art",
        ".curl"        => "text/vnd.curl",
        ".copyright"   => "text/vnd.debian.copyright",
        # 1325
        ".jtd"         => "text/vnd.esmertec.theme-descriptor",
        ".flt"         => "text/vnd.ficlab.flt",
        ".fly"         => "text/vnd.fly",
        ".flx"         => "text/vnd.fmi.flexstor",
        ".dot"         => "text/vnd.graphviz",
        # 1330
        ".gv"          => "text/vnd.graphviz",
        ".hgl"         => "text/vnd.hgl",
        ".3dm"         => "text/vnd.in3d.3dml",
        ".3dml"        => "text/vnd.in3d.3dml",
        ".spo"         => "text/vnd.in3d.spot",
        # 1335
        ".spot"        => "text/vnd.in3d.spot",
        ".mpf"         => "text/vnd.ms-mediapackage",
        ".ccc"         => "text/vnd.net2phone.commcenter.command",
        ".mc2"         => "text/vnd.senx.warpscript",
        ".sos"         => "text/vnd.sosi",
        # 1340
        ".jad"         => "text/vnd.sun.j2me.app-descriptor",
        ".ts"          => "text/vnd.trolltech.linguist",
        ".si"          => "text/vnd.wap.si",
        ".sl"          => "text/vnd.wap.sl",
        ".wml"         => "text/vnd.wap.wml",
        # 1345
        ".wmls"        => "text/vnd.wap.wmlscript",
        ".bib"         => "text/x-bibtex; charset=utf-8",
        ".boo"         => "text/x-boo; charset=utf-8",
        ".h++"         => "text/x-c++hdr; charset=utf-8",
        ".hh"          => "text/x-c++hdr; charset=utf-8",
        # 1350
        ".hpp"         => "text/x-c++hdr; charset=utf-8",
        ".hxx"         => "text/x-c++hdr; charset=utf-8",
        ".c++"         => "text/x-c++src; charset=utf-8",
        ".cc"          => "text/x-c++src; charset=utf-8",
        ".cpp"         => "text/x-c++src; charset=utf-8",
        # 1355
        ".cxx"         => "text/x-c++src; charset=utf-8",
        ".h"           => "text/x-chdr; charset=utf-8",
        ".htc"         => "text/x-component",
        ".csh"         => "text/x-csh; charset=utf-8",
        ".c"           => "text/x-csrc; charset=utf-8",
        # 1360
        ".diff"        => "text/x-diff; charset=utf-8",
        ".patch"       => "text/x-diff; charset=utf-8",
        ".d"           => "text/x-dsrc; charset=utf-8",
        ".hs"          => "text/x-haskell; charset=utf-8",
        ".java"        => "text/x-java; charset=utf-8",
        # 1365
        ".ly"          => "text/x-lilypond; charset=utf-8",
        ".lhs"         => "text/x-literate-haskell; charset=utf-8",
        ".moc"         => "text/x-moc; charset=utf-8",
        ".p"           => "text/x-pascal; charset=utf-8",
        ".pas"         => "text/x-pascal; charset=utf-8",
        # 1370
        ".gcd"         => "text/x-pcs-gcd",
        ".pl"          => "text/x-perl; charset=utf-8",
        ".pm"          => "text/x-perl; charset=utf-8",
        ".py"          => "text/x-python; charset=utf-8",
        ".scala"       => "text/x-scala; charset=utf-8",
        # 1375
        ".etx"         => "text/x-setext",
        ".sfv"         => "text/x-sfv",
        ".sh"          => "text/x-sh; charset=utf-8",
        ".tcl"         => "text/x-tcl; charset=utf-8",
        ".tk"          => "text/x-tcl; charset=utf-8",
        # 1380
        ".cls"         => "text/x-tex; charset=utf-8",
        ".ltx"         => "text/x-tex; charset=utf-8",
        ".sty"         => "text/x-tex; charset=utf-8",
        ".tex"         => "text/x-tex; charset=utf-8",
        ".vcs"         => "text/x-vcalendar",
        # 1385
        ".axv"         => "video/annodex",
        ".dl"          => "video/dl",
        ".dif"         => "video/dv",
        ".dv"          => "video/dv",
        ".fli"         => "video/fli",
        # 1390
        ".gl"          => "video/gl",
        ".m4s"         => "video/iso.segment",
        ".mj2"         => "video/mj2",
        ".mjp2"        => "video/mj2",
        ".m4v"         => "video/mp4",
        # 1395
        ".mp4"         => "video/mp4",
        ".mpg4"        => "video/mp4",
        ".m1v"         => "video/mpeg",
        ".m2v"         => "video/mpeg",
        ".mpe"         => "video/mpeg",
        # 1400
        ".mpeg"        => "video/mpeg",
        ".mpg"         => "video/mpeg",
        ".ogv"         => "video/ogg",
        ".mov"         => "video/quicktime",
        ".qt"          => "video/quicktime",
        # 1405
        ".webm"        => "video/webm",
        ".uvh"         => "video/vnd.dece.hd",
        ".uvvh"        => "video/vnd.dece.hd",
        ".uvm"         => "video/vnd.dece.mobile",
        ".uvvm"        => "video/vnd.dece.mobile",
        # 1410
        ".uvu"         => "video/vnd.dece.mp4",
        ".uvvu"        => "video/vnd.dece.mp4",
        ".uvp"         => "video/vnd.dece.pd",
        ".uvvp"        => "video/vnd.dece.pd",
        ".uvs"         => "video/vnd.dece.sd",
        # 1415
        ".uvvs"        => "video/vnd.dece.sd",
        ".uvv"         => "video/vnd.dece.video",
        ".uvvv"        => "video/vnd.dece.video",
        ".dvb"         => "video/vnd.dvb.file",
        ".fvt"         => "video/vnd.fvt",
        # 1420
        ".m4u"         => "video/vnd.mpegurl",
        ".mxu"         => "video/vnd.mpegurl",
        ".pyv"         => "video/vnd.ms-playready.media.pyv",
        ".nim"         => "video/vnd.nokia.interleaved-multimedia",
        ".bik"         => "video/vnd.radgamettools.bink",
        # 1425
        ".bk2"         => "video/vnd.radgamettools.bink",
        ".smk"         => "video/vnd.radgamettools.smacker",
        ".s11"         => "video/vnd.sealed.mpeg1",
        ".smpg"        => "video/vnd.sealed.mpeg1",
        ".s14"         => "video/vnd.sealed.mpeg4",
        # 1430
        ".ssw"         => "video/vnd.sealed.swf",
        ".sswf"        => "video/vnd.sealed.swf",
        ".s1q"         => "video/vnd.sealedmedia.softseal.mov",
        ".smo"         => "video/vnd.sealedmedia.softseal.mov",
        ".smov"        => "video/vnd.sealedmedia.softseal.mov",
        # 1435
        ".viv"         => "video/vnd.vivo",
        ".yt"          => "video/vnd.youtube.yt",
        ".flv"         => "video/x-flv",
        ".lsf"         => "video/x-la-asf",
        ".lsx"         => "video/x-la-asf",
        # 1440
        ".mkv"         => "video/x-matroska",
        ".mpv"         => "video/x-matroska",
        ".mng"         => "video/x-mng",
        ".wm"          => "video/x-ms-wm",
        ".wmv"         => "video/x-ms-wmv",
        # 1445
        ".wmx"         => "video/x-ms-wmx",
        ".wvx"         => "video/x-ms-wvx",
        ".avi"         => "video/x-msvideo",
        ".movie"       => "video/x-sgi-movie",
        ".ice"         => "x-conference/x-cooltalk",
        # 1450
        ".sisx"        => "x-epoc/x-sisx-app",
        ".vrm"         => "x-world/x-vrml",
        "README"       => "text/plain; charset=utf-8",
        "Makefile"     => "text/x-makefile; charset=utf-8",
        ""             => "application/octet-stream",
        # 1455
    )
    server.document-root           = "/var/www/html"
    server.upload-dirs             = ("/var/cache/lighttpd/uploads")
    server.errorlog                = "/var/log/lighttpd/error-pihole.log"
    server.pid-file                = "/run/lighttpd.pid"
    server.username                = "www-data"
    server.groupname               = "www-data"
    server.port                    = 80
    server.feature-flags           = (
        "server.h2proto"                   => "enable",
        "server.h2c"                       => "enable",
        "server.graceful-shutdown-timeout" => 5,
        # 3
    )
    server.http-parseopts          = (
        "header-strict"            => "enable",
        "host-strict"              => "enable",
        "host-normalize"           => "enable",
        "url-normalize-unreserved" => "enable",
        "url-normalize-required"   => "enable",
        # 5
        "url-ctrls-reject"         => "enable",
        "url-path-2f-decode"       => "enable",
        "url-path-dotseg-remove"   => "enable",
        # 8
    )
    index-file.names               = ("index.php", "index.html", "index.lighttpd.html")
    url.access-deny                = ("~", ".inc")
    static-file.exclude-extensions = (".php", ".pl", ".fcgi")
    server.modules                 = (
        "mod_indexfile",
        "mod_access",
        "mod_alias",
        "mod_redirect",
        "mod_setenv",
        "mod_fastcgi",
        "mod_openssl",
        "mod_dirlisting",
        "mod_staticfile",
        # 9
    )

    $SERVER["socket"] == "[::]:80" {
        # block 1

    } # end of $SERVER["socket"] == "[::]:80"

    $HTTP["url"] == "/" {
        # block 2

        $HTTP["host"] == "" {
            # block 3
            url.redirect = (
                "" => "/admin/",
            )

        } # end of $HTTP["host"] == ""

        $HTTP["host"] == "0.0.0.0" {
            # block 4
            url.redirect = (
                "" => "/admin/",
            )

        } # end of $HTTP["host"] == "0.0.0.0"
    } # end of $HTTP["url"] == "/"

    $HTTP["url"] =~ "^/admin/" {
        # block 5
        server.document-root        = "/var/www/html"
        server.stream-response-body = 1
        accesslog.filename          = "/var/log/lighttpd/access-pihole.log"
        accesslog.format            = "%{%s}t|%h|%V|%r|%s|%b"
        fastcgi.server              = (
            ".php" => (
                "localhost" => (
                    "socket"                => "/tmp/pihole-php-fastcgi.socket",
                    "bin-path"              => "/usr/bin/php-cgi",
                    "min-procs"             => 0,
                    "max-procs"             => 1,
                    "bin-environment"       => (
                        "TZ"                    => "Europe/Berlin",
                        "PIHOLE_DOCKER_TAG"     => "",
                        "PHP_ERROR_LOG"         => "/var/log/lighttpd/error-pihole.log",
                        "CORS_HOSTS"            => "",
                        "VIRTUAL_HOST"          => "0.0.0.0",
                        # 5
                        "PHP_FCGI_CHILDREN"     => "4",
                        "PHP_FCGI_MAX_REQUESTS" => "10000",
                        # 7
                    ),
                    # 5
                    "bin-copy-environment"  => ("PATH", "SHELL", "USER"),
                    "broken-scriptfilename" => "enable",
                    # 7
                ),
            ),
        )
        setenv.add-response-header  = (
            "X-Pi-hole"                         => "The Pi-hole Web interface is working!",
            "X-Frame-Options"                   => "DENY",
            "X-XSS-Protection"                  => "0",
            "X-Content-Type-Options"            => "nosniff",
            "Content-Security-Policy"           => "default-src 'self' 'unsafe-inline';",
            # 5
            "X-Permitted-Cross-Domain-Policies" => "none",
            "Referrer-Policy"                   => "same-origin",
            # 7
        )

        $HTTP["url"] =~ "^/admin/\." {
            # block 6
            url.access-deny = ("")

        } # end of $HTTP["url"] =~ "^/admin/\."

        $HTTP["url"] =~ "/(teleporter|api_token)\.php$" {
            # block 7

            $HTTP["referer"] =~ "/admin/settings\.php" {
                # block 8
                setenv.set-response-header = (
                    "X-Frame-Options" => "SAMEORIGIN",
                )

            } # end of $HTTP["referer"] =~ "/admin/settings\.php"
        } # end of $HTTP["url"] =~ "/(teleporter|api_token)\.php$"
    } # end of $HTTP["url"] =~ "^/admin/"
    else $HTTP["url"] == "/admin" {
        # block 9
        url.redirect = (
            "" => "/admin/",
        )

    } # end of $HTTP["url"] == "/admin"

    $HTTP["host"] == "pi.hole" {
        # block 10

        $HTTP["url"] == "/" {
            # block 11
            url.redirect = (
                "" => "/admin/",
            )

        } # end of $HTTP["url"] == "/"
    } # end of $HTTP["host"] == "pi.hole"

    $SERVER["socket"] == ":443" {
        # block 12
        ssl.engine               = "enable"
        ssl.pemfile              = "/etc/letsencrypt/fullchain.pem"
        ssl.privkey              = "/etc/letsencrypt/key.pem"
        ssl.openssl.ssl-conf-cmd = (
            "MinProtocol" => "TLSv1.3",
            "Options"     => "-ServerPreference",
            # 2
        )

    } # end of $SERVER["socket"] == ":443"
}
root@pihole-hel1-dc2:/#
rdwebdesign commented 1 year ago

Apparently both Block 3 and Block 4 are triggered for IP access.

This is causing a conflict, because both blocks are setting url.redirect.

Where did you set these blocks?

rdwebdesign commented 1 year ago

What is the output of lighttpd -tt -f /etc/lighttpd/lighttpd.conf?

thomasmerz commented 1 year ago

That's all output ๐Ÿคท๐Ÿผโ€โ™‚๏ธ

2023-01-17 18:55:25: configfile.c.1142) WARNING: unknown config-key: accesslog.filename (ignored)
2023-01-17 18:55:25: configfile.c.1142) WARNING: unknown config-key: accesslog.format (ignored)
thomasmerz commented 1 year ago

These blocks are set here:

root@pihole-hel1-dc2:/etc# grep "url.redirect" -i lighttpd/ -R
lighttpd/conf-enabled/15-pihole-admin.conf:    url.redirect = ("" => "/admin/")
lighttpd/conf-enabled/15-pihole-admin.conf:        url.redirect = ("" => "/admin/")
lighttpd/conf-enabled/20-external.conf:#        url.redirect = (".*" => "https://%0$0")
lighttpd/conf-enabled/20-external.conf:##    url.redirect = ( "^/(.*)" => "https://%1:33443/$1" )
lighttpd/conf-enabled/15-pihole-admin-redirect-docker.conf:         url.redirect = ("" => "/admin/")
lighttpd/conf-enabled/15-pihole-admin-redirect-docker.conf:         url.redirect = ("" => "/admin/")
lighttpd/conf-available/10-no-www.conf:  url.redirect = ( "^/(.*)" => "http://%1/$1" )
lighttpd/conf-available/15-pihole-admin.conf:    url.redirect = ("" => "/admin/")
lighttpd/conf-available/15-pihole-admin.conf:        url.redirect = ("" => "/admin/")
root@pihole-hel1-dc2:/etc#

In my 20-file this is only a comment. This comment should not cause any problem!?

rdwebdesign commented 1 year ago

In my 20-file this is only a comment. This comment should not cause any problem!?

Probably not, but you could try to remove the comment and test.

rdwebdesign commented 1 year ago

The issue about unknown config-key: accesslog.filename is solved on development branch (not released yet).

thomasmerz commented 1 year ago

In my 20-file this is only a comment. This comment should not cause any problem!?

Probably not, but you could try to remove the comment and test.

Without the comments it's still thereโ€ฆ

PromoFaux commented 1 year ago

@thomasmerz Could you provide the contents of 20-external.conf as-is please?

thomasmerz commented 1 year ago

Complete file with all comments and uncensored:

# ---
# inspired/taken from:
# https://discourse.pi-hole.net/t/enabling-https-for-your-pi-hole-web-interface/5771
# fixed after 2022.04.01 by:
# https://github.com/pi-hole/docker-pi-hole/issues/1046#issuecomment-1125443544
# ---

#load openssl
server.modules += ( "mod_openssl" )

$SERVER["socket"] == ":443" {
 ssl.engine  = "enable"
 ssl.pemfile = "/etc/letsencrypt/fullchain.pem"
 ssl.privkey = "/etc/letsencrypt/key.pem"
 ssl.openssl.ssl-conf-cmd = ("MinProtocol" => "TLSv1.3", "Options" => "-ServerPreference")
}

# Redirect HTTP to HTTPS
#$HTTP["scheme"] == "http" {
#        $HTTP["host"] =~ ".*" {
#        url.redirect = (".*" => "https://%0$0")
#        }
#}
# ---
# REDIRECTING MIGHT BREAK GITHUB-UPPTIME-MONITORING
# IF CERT IS NOT FROM THIS HOST!
# USE IP IN URL INSTEAD OF HOSTNAME "SOLVES" THIS,
# BECAUSE REDIRECTION ONLY OCCURS FOR HOSTNAMEโ€ฆ
# ---
# rewrite protocol + port
# https://stackoverflow.com/q/18476860
##$HTTP["scheme"] == "http" {
##  $HTTP["host"] =~ "([^:/]+)" {
##    url.redirect = ( "^/(.*)" => "https://%1:33443/$1" )
##  }
##}

# 2023-01-13
# https://pi-hole.net/blog/2023/01/15/pi-hole-ftl-v5-20-1-web-v5-18-1-and-core-v5-15-released/#page-content

#$HTTP["url"] == "/" {
##    $HTTP["host"] == "my.custom.domain" {
##         url.redirect = ("" => "/admin/")
#        $HTTP["host"] =~ ".*" {
#        url.redirect = (".*" => "https://%0$0/admin")
#    }
#}
rdwebdesign commented 1 year ago

Are you using other custom files? Did you change the original config files?

labodj commented 1 year ago

I am experiencing the same bug using 2023.01.2, let me know if you need logs or other testing.

rdwebdesign commented 1 year ago

@labodj

How are you updating the container? Using Portainer web interface or something similar?

Are you removing all old environment variables before start the new container?

labodj commented 1 year ago

@rdwebdesign yes I'm using portainer 2.16.2, docker engine 20.10.22 on Manjaro on Raspberry pi 4 4GB, I just tried to stop the container, remove it selecting "Automatically remove non-persistent volumes" And recreate it selecting "Re-pull image and redeploy"

This bug still persists

thomasmerz commented 1 year ago

Are you using other custom files? Did you change the original config files?

This is my docker-compose.yml:

version: "3"
services:
 pihole:
   hostname: 'pihole-nbg1-dc3'
   container_name: pihole
   image: pihole/pihole:latest
   ports:
     - "53:53/tcp"
     - "53:53/udp"
     - "12380:80/tcp"
     - "12443:443/tcp"
   environment:
     TZ: 'Europe/Berlin'
   volumes:
     - './etc-pihole/:/etc/pihole/'
     - './etc-dnsmasq.d/:/etc/dnsmasq.d/'
     - './etc-lighttpd-external.conf:/etc/lighttpd/conf-enabled/20-external.conf'
     - './etc-letsencrypt:/etc/letsencrypt/'
   cap_add:
     - CAP_SYS_NICE
   restart: unless-stopped

There is only this single file. And I didn't touch the original files.

thomasmerz commented 1 year ago

I'm updating by docker-compose pull/stop/up -d on a daily schedule.

rdwebdesign commented 1 year ago

Can you please execute one more test?

labodj commented 1 year ago

Can you please execute one more test?

  • In Portainer "Container list", click on the pi-hole container;
  • Click on "Duplicate/Edit" button. Make sure the image is pihole/pihole:2023.01.2;
  • scroll down to "Advanced container settings";
  • on "Env" tab, remove all unnecessary variables, specially PHP_ENV_CONFIG. Leave only what you really need.
  • remove everything from "Labels" tab too.
  • scroll up a little and click on "Deploy the container" button.

My ENV variables:

QUERY_LOGGING=true
DNS_FQDN_REQUIRED=true
REV_SERVER_CIDR=192.168.21.0/24
IPv6=false
FTLCONF_LOCAL_IPV4=192.168.21.20
REV_SERVER_TARGET=192.168.21.1
TEMPERATUREUNIT=c
FTLCONF_RATE_LIMIT=0/0
DNSSEC=true
DHCP_ACTIVE=false
REV_SERVER_DOMAIN=labo-lan
WEB_PORT=8084
DNS_BOGUS_PRIV=true
WEBTHEME=default-darker
PIHOLE_DNS_=127.0.0.1#5335;192.168.21.1
WEBPASSWORD=redacted
REV_SERVER=true
TZ=Europe/Rome
DNSMASQ_LISTENING=all
PATH=/opt/pihole:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
phpver=php
PHP_ERROR_LOG=/var/log/lighttpd/error-pihole.log
S6_KEEP_ENV=1
S6_BEHAVIOUR_IF_STAGE2_FAILS=2
S6_CMD_WAIT_FOR_SERVICES_MAXTIME=0
VIRTUAL_HOST=
FTL_CMD=no-daemon
DNSMASQ_USER=pihole

Labels: Screenshot_20230118-203954~2.png

It seems pretty basic to me, which one can be deleted?

labodj commented 1 year ago

My docker-compose:

version: "3.9"

# More info at https://github.com/pi-hole/docker-pi-hole/ and https://docs.pi-hole.net/
services:
  pihole:
    container_name: pihole
    image: pihole/pihole:2023.01.2
    labels:
      - "com.centurylinklabs.watchtower.enable=false" # Disable watchtower
    restart: unless-stopped
    network_mode: host
    # For DHCP it is recommended to remove these ports and instead add: network_mode: "host"
    #ports:
    #  - "53:53/tcp" # DNS TCP
    #  - "53:53/udp" # DNS UDP
    #  - "67:67/udp" # DHCP
    #  - "547:547/udp" # DHCPv6
    #  - "8084:8084/tcp" # http Interface
    volumes:
      # Data
      - /home/labo/docker/pihole/etc-pihole:/etc/pihole
      - /home/labo/docker/pihole/etc-dnsmasq.d:/etc/dnsmasq.d
      # Correct time
      - /etc/localtime:/etc/localtime:ro
      #- /etc/timezone:/etc/timezone:ro
    environment:
      TZ: "Europe/Rome"
      WEBPASSWORD: "redacted"
      #FTLCONF_REPLY_ADDR4: "192.168.21.20"
      FTLCONF_LOCAL_IPV4: "192.168.21.20"

      #PIHOLE_DNS_: "127.0.0.1#5335;192.168.21.1;127.0.0.1#5053;1.1.1.1;" # unbound, router (unbound), dnscrypt, cloudflare
      #PIHOLE_DNS_: "127.0.0.1#5335" # unbound
      PIHOLE_DNS_: "127.0.0.1#5335;192.168.21.1" #unbound, router (unbound)

      DNSSEC: "true"
      DNS_BOGUS_PRIV: "true"
      DNS_FQDN_REQUIRED: "true"
      REV_SERVER: "true"
      REV_SERVER_DOMAIN: "labo-lan"
      REV_SERVER_TARGET: "192.168.21.1"
      REV_SERVER_CIDR: "192.168.21.0/24"
      DHCP_ACTIVE: "false"
      IPv6: "false"
      TEMPERATUREUNIT: "c"
      QUERY_LOGGING: "true"
      WEBTHEME: "default-darker"
      #INTERFACE: 'eth0'
      DNSMASQ_LISTENING: "all" # Per wireguard
      WEB_PORT: "8084"
      #FTL Configs https://docs.pi-hole.net/ftldns/configfile/
      FTLCONF_RATE_LIMIT: "0/0"
    #cap_add:
    #  - NET_ADMIN # Required if you are using Pi-hole as your DHCP server, else not needed
    logging:
      options:
        max-size: "10m"
        max-file: "5"

The only other config changed is that I added a custom Dnsmasq config

99-labo.conf:

edns-packet-max=1232
strict-order
rdwebdesign commented 1 year ago

I thought you were starting the container "manually", filling the web interface fields by hand.

If you are using a compose file to start the container, the previous container should be destroyed.

rdwebdesign commented 1 year ago

@thomasmerz

I just noticed, the error message is showing /etc/lighttpd/conf-enabled/15-pihole-admin-redirect-docker.conf.

This is not a Pi-hole official config file. Pi-hole uses /etc/lighttpd/conf-enabled/15-pihole-admin.conf.

Are you using a third party image? If you are using the official image, please provide ALL lighttpd config files you are using. To be sure, what is the output of ls -la /etc/lighttpd/conf-enabled?

thomasmerz commented 1 year ago
root@pihole-merz-nimbus:~# ls -la /etc/lighttpd/conf-enabled
total 32
drwxr-xr-x 1 root   root   242 Jan 17 18:20 .
drwxr-xr-x 1 pihole root    78 Jan 16 09:47 ..
lrwxrwxrwx 1 root   root    32 Jan 16 09:48 05-setenv.conf -> ../conf-available/05-setenv.conf
lrwxrwxrwx 1 root   root    33 Jan 16 09:48 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
-rw-r--r-- 1 root   root   205 Jan 16 09:47 15-pihole-admin-redirect-docker.conf
-rw-r--r-- 1 root   root  4264 Jan 17 18:20 15-pihole-admin.conf
-rw-r--r-- 1   1000 users 1070 May 13  2022 20-external.conf
lrwxrwxrwx 1 root   root    38 Jan 15 03:04 99-unconfigured.conf -> ../conf-available/99-unconfigured.conf

Before you have to ask for more contentsโ€ฆ ๐Ÿ˜‰

root@pihole-merz-nimbus:/etc/lighttpd/conf-enabled# grep -v \# * 
05-setenv.conf:
05-setenv.conf:server.modules                += ( "mod_setenv" )
05-setenv.conf:
05-setenv.conf:
10-fastcgi.conf:
10-fastcgi.conf:server.modules += ( "mod_fastcgi" )
15-pihole-admin-redirect-docker.conf:$HTTP["url"] == "/" {
15-pihole-admin-redirect-docker.conf:    $HTTP["host"] == env.VIRTUAL_HOST {
15-pihole-admin-redirect-docker.conf:         url.redirect = ("" => "/admin/")
15-pihole-admin-redirect-docker.conf:    }
15-pihole-admin-redirect-docker.conf:    $HTTP["host"] == env.FTLCONF_LOCAL_IPV4 {
15-pihole-admin-redirect-docker.conf:         url.redirect = ("" => "/admin/")
15-pihole-admin-redirect-docker.conf:    }
15-pihole-admin-redirect-docker.conf:}
15-pihole-admin.conf:
15-pihole-admin.conf:
15-pihole-admin.conf:server.errorlog := "/var/log/lighttpd/error-pihole.log"
15-pihole-admin.conf:
15-pihole-admin.conf:$HTTP["url"] =~ "^/admin/" {
15-pihole-admin.conf:    server.document-root = "/var/www/html"
15-pihole-admin.conf:    server.stream-response-body = 1
15-pihole-admin.conf:    accesslog.filename = "/var/log/lighttpd/access-pihole.log"
15-pihole-admin.conf:    accesslog.format = "%{%s}t|%h|%V|%r|%s|%b"
15-pihole-admin.conf:
15-pihole-admin.conf:    fastcgi.server = (
15-pihole-admin.conf:        ".php" => (
15-pihole-admin.conf:            "localhost" => (
15-pihole-admin.conf:                "socket" => "/tmp/pihole-php-fastcgi.socket",
15-pihole-admin.conf:                "bin-path" => "/usr/bin/php-cgi",
15-pihole-admin.conf:                "min-procs" => 0,
15-pihole-admin.conf:                "max-procs" => 1,
15-pihole-admin.conf:                "bin-environment" => (
15-pihole-admin.conf:                    "TZ" => "Europe/Berlin",
15-pihole-admin.conf:                    "PIHOLE_DOCKER_TAG" => "",
15-pihole-admin.conf:                    "PHP_ERROR_LOG" => "/var/log/lighttpd/error-pihole.log",
15-pihole-admin.conf:                    "CORS_HOSTS" => "",
15-pihole-admin.conf:                    "VIRTUAL_HOST" => "0.0.0.0",
15-pihole-admin.conf:                    "PHP_FCGI_CHILDREN" => "4",
15-pihole-admin.conf:                    "PHP_FCGI_MAX_REQUESTS" => "10000",
15-pihole-admin.conf:                ),
15-pihole-admin.conf:                "bin-copy-environment" => (
15-pihole-admin.conf:                    "PATH", "SHELL", "USER"
15-pihole-admin.conf:                ),
15-pihole-admin.conf:                "broken-scriptfilename" => "enable",
15-pihole-admin.conf:            )
15-pihole-admin.conf:        )
15-pihole-admin.conf:    )
15-pihole-admin.conf:
15-pihole-admin.conf:    setenv.add-response-header = (
15-pihole-admin.conf:        "X-Pi-hole" => "The Pi-hole Web interface is working!",
15-pihole-admin.conf:        "X-Frame-Options" => "DENY",
15-pihole-admin.conf:        "X-XSS-Protection" => "0",
15-pihole-admin.conf:        "X-Content-Type-Options" => "nosniff",
15-pihole-admin.conf:        "Content-Security-Policy" => "default-src 'self' 'unsafe-inline';",
15-pihole-admin.conf:        "X-Permitted-Cross-Domain-Policies" => "none",
15-pihole-admin.conf:        "Referrer-Policy" => "same-origin"
15-pihole-admin.conf:    )
15-pihole-admin.conf:
15-pihole-admin.conf:    $HTTP["url"] =~ "^/admin/\." {
15-pihole-admin.conf:        url.access-deny = ("")
15-pihole-admin.conf:    }
15-pihole-admin.conf:
15-pihole-admin.conf:    $HTTP["url"] =~ "/(teleporter|api_token)\.php$" {
15-pihole-admin.conf:        $HTTP["referer"] =~ "/admin/settings\.php" {
15-pihole-admin.conf:            setenv.set-response-header = ( "X-Frame-Options" => "SAMEORIGIN" )
15-pihole-admin.conf:        }
15-pihole-admin.conf:    }
15-pihole-admin.conf:}
15-pihole-admin.conf:else $HTTP["url"] == "/admin" {
15-pihole-admin.conf:    url.redirect = ("" => "/admin/")
15-pihole-admin.conf:}
15-pihole-admin.conf:
15-pihole-admin.conf:$HTTP["host"] == "pi.hole" {
15-pihole-admin.conf:    $HTTP["url"] == "/" {
15-pihole-admin.conf:        url.redirect = ("" => "/admin/")
15-pihole-admin.conf:    }
15-pihole-admin.conf:}
15-pihole-admin.conf:
20-external.conf:
20-external.conf:server.modules += ( "mod_openssl" )
20-external.conf:
20-external.conf:$SERVER["socket"] == ":443" {
20-external.conf:  ssl.engine  = "enable"
20-external.conf:  ssl.pemfile = "/etc/letsencrypt/fullchain.pem"
20-external.conf:  ssl.privkey = "/etc/letsencrypt/key.pem"
20-external.conf:  ssl.openssl.ssl-conf-cmd = ("MinProtocol" => "TLSv1.3", "Options" => "-ServerPreference")
20-external.conf:}
20-external.conf:
20-external.conf:
99-unconfigured.conf:index-file.names := ( "index.php", "index.html", "index.lighttpd.html" )
root@pihole-merz-nimbus:/etc/lighttpd/conf-enabled#

Have a look what I've found: https://github.com/pi-hole/docker-pi-hole/commit/4c240a43d2a362b9d3ec80084958eeb9dd860ad2#diff-c9f8357fb9d4ad989385114677772d5b69738c3941fd1161b8e58a8f8e81d3d3

rdwebdesign commented 1 year ago

Sorry... this is the new file. I forgot about it.

EDIT: I can't replicate your error. Tested again in a new container.

rdwebdesign commented 1 year ago

Please, remove the file and try again.

thomasmerz commented 1 year ago

Yes! After deleting: no more message(s) ๐Ÿ‘๐Ÿผ

Butโ€ฆ after updating from 2023.01 to 2023.01.2 it's "back"โ€ฆ Just for clarificationโ€ฆ

2023-01-18T20:56:46.286684649Z Duplicate config variable in conditional 3 global / $HTTP["url"] == "/" / $HTTP["host"] == "0.0.0.0": url.redirect
2023-01-18T20:56:46.287495171Z 2023-01-18 21:56:46: configfile.c.1970) source: /etc/lighttpd/conf-enabled/15-pihole-admin-redirect-docker.conf line: 7 pos: 5 parser failed somehow near here: (EOL)
2023-01-18T20:56:46.287823694Z 2023-01-18 21:56:46: configfile.c.1970) source: /etc/lighttpd/lighttpd.conf line: 51 pos: 15 parser failed somehow near here: (EOL)
root@pihole-hel1-dc2:/etc/lighttpd/conf-enabled# ls -la
total 28
drwxr-xr-x 1 root   root 4096 Jan 18 21:56 .
drwxr-xr-x 1 pihole root 4096 Jan 18 19:16 ..
lrwxrwxrwx 1 root   root   32 Jan 18 19:16 05-setenv.conf -> ../conf-available/05-setenv.conf
lrwxrwxrwx 1 root   root   33 Jan 18 19:16 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
-rw-r--r-- 1 root   root  205 Jan 18 19:16 15-pihole-admin-redirect-docker.conf
-rw-r--r-- 1 root   root 4264 Jan 18 21:56 15-pihole-admin.conf
-rw-r--r-- 1 root   root 1070 May 15  2022 20-external.conf
lrwxrwxrwx 1 root   root   38 Jan 15 03:04 99-unconfigured.conf -> ../conf-available/99-unconfigured.conf
root@pihole-hel1-dc2:/etc/lighttpd/conf-enabled# cat /pihole.docker.tag 
2023.01.2
rdwebdesign commented 1 year ago

I'm running 2023.01.2 without problems.

Comparing the output of lighttpd -tt -f /etc/lighttpd/lighttpd.conf in a fresh container and the one you previously posted, I found only SSL related config.

In other words: the only difference is 20-external.conf.

PromoFaux commented 1 year ago

@labodj When you say:

I am experiencing the same bug using 2023.01.2, let me know if you need logs or other testing.

Which bit exactly do you mean - I think you might be talking at cross purposes here. This thread is for an issue that @thomasmerz is having with loading an additional config file... this, as far as I can tell from your compose file, is not what you are facing. It is difficult to diagnose two separate issues in the same thread...


Back to @thomasmerz - are you sure the file is mounting correctly?

I have just copied your compose file exactly and started it with docker compose up. The only errors I get are expected because I don't have any certificates in my etc-letsencrypt directory

pihole  | s6-rc: info: service s6rc-oneshot-runner: starting
pihole  | s6-rc: info: service s6rc-oneshot-runner successfully started
pihole  | s6-rc: info: service fix-attrs: starting
pihole  | s6-rc: info: service fix-attrs successfully started
pihole  | s6-rc: info: service legacy-cont-init: starting
pihole  | s6-rc: info: service legacy-cont-init successfully started
pihole  | s6-rc: info: service cron: starting
pihole  | s6-rc: info: service cron successfully started
pihole  | s6-rc: info: service _uid-gid-changer: starting
pihole  | s6-rc: info: service _uid-gid-changer successfully started
pihole  | s6-rc: info: service _startup: starting
pihole  |   [i] Starting docker specific checks & setup for docker pihole/pihole
pihole  |   [i] Setting capabilities on pihole-FTL where possible
pihole  |   [i] Applying the following caps to pihole-FTL:
pihole  |         * CAP_CHOWN
pihole  |         * CAP_NET_BIND_SERVICE
pihole  |         * CAP_NET_RAW
pihole  |         * CAP_SYS_NICE
pihole  |   [i] Ensuring basic configuration by re-running select functions from basic-install.sh
pihole  | 
pihole  |   [i] Installing configs from /etc/.pihole...
pihole  |   [i] Existing dnsmasq.conf found... it is not a Pi-hole file, leaving alone!
  [โœ“] Installed /etc/dnsmasq.d/01-pihole.conf
  [โœ“] Installed /etc/dnsmasq.d/06-rfc6761.conf
pihole  | 
pihole  |   [i] Installing latest logrotate script...
pihole  |       [i] Existing logrotate file found. No changes made.
pihole  |   [i] Pre existing WEBPASSWORD found
pihole  |   [i] Added ENV to php:
pihole  |                     "TZ" => "Europe/Berlin",
pihole  |                     "PIHOLE_DOCKER_TAG" => "",
pihole  |                     "PHP_ERROR_LOG" => "/var/log/lighttpd/error-pihole.log",
pihole  |                     "CORS_HOSTS" => "",
pihole  |                     "VIRTUAL_HOST" => "0.0.0.0",
pihole  |   [i] Using IPv4 and IPv6
pihole  |   [i] Preexisting ad list /etc/pihole/adlists.list detected (exiting setup_blocklists early)
pihole  |   [i] Existing DNS servers detected in setupVars.conf. Leaving them alone
pihole  |   [i] Applying pihole-FTL.conf setting LOCAL_IPV4=0.0.0.0
pihole  |   [i] FTL binding to default interface: eth0
pihole  |   [i] Enabling Query Logging
pihole  |   [i] Testing lighttpd config: Syntax OK
pihole  |   [i] All config checks passed, cleared for startup ...
pihole  |   [i] Docker start setup complete
pihole  | 
pihole  |   [i] pihole-FTL (no-daemon) will be started as pihole
pihole  | 
pihole  | s6-rc: info: service _startup successfully started
pihole  | s6-rc: info: service pihole-FTL: starting
pihole  | s6-rc: info: service pihole-FTL successfully started
pihole  | s6-rc: info: service lighttpd: starting
pihole  | s6-rc: info: service lighttpd successfully started
pihole  | s6-rc: info: service _postFTL: starting
pihole  | s6-rc: info: service _postFTL successfully started
pihole  |   Checking if custom gravity.db is set in /etc/pihole/pihole-FTL.conf
pihole  | s6-rc: info: service legacy-services: starting
pihole  | s6-rc: info: service legacy-services successfully started
pihole  |   [i] Neutrino emissions detected...
  [โœ“] Pulling blocklist source list into range
pihole  | 
  [โœ“] Preparing new gravity database
pihole  |   [i] Using libz compression
pihole  | 
pihole  |   [i] Target: https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts
pihole  |   [i] Status: Pending...2023-01-18 22:41:54: fdevent.c.1150) fdevent_load_file() /etc/letsencrypt/fullchain.pem: No such file or directory
pihole  | 2023-01-18 22:41:54: server.c.1244) Initialization of plugins failed. Going down.
pihole  | Stopping lighttpd
pihole  | lighttpd: no process found
  [โœ“] Status: Retrieval successful
pihole  |   [i] Analyzed 168834 domains, 15 domains invalid!
pihole  |       Sample of invalid domains:
pihole  |       - 0.0.0.0
pihole  |       - broadcasthost
pihole  |       - fe
pihole  |       - ff
pihole  |   [i] List stayed unchanged
pihole  | 
  [โœ“] Creating new gravity databases
  [โœ“] Storing downloaded domains in new gravity database
  [โœ“] Building tree
  [โœ“] Swapping databases
pihole  |   [โœ“] The old database remains available.
pihole  |   [i] Number of gravity domains: 168819 (168819 unique domains)
pihole  |   [i] Number of exact blacklisted domains: 0
pihole  |   [i] Number of regex blacklist filters: 0
pihole  |   [i] Number of exact whitelisted domains: 0
pihole  |   [i] Number of regex whitelist filters: 0
pihole  | 2023-01-18 22:41:55: fdevent.c.1150) fdevent_load_file() /etc/letsencrypt/fullchain.pem: No such file or directory
pihole  | 2023-01-18 22:41:55: server.c.1244) Initialization of plugins failed. Going down.
pihole  |   [i] Cleaning up stray matter...Stopping lighttpd
  [โœ“] Cleaning up stray matter
pihole  | lighttpd: no process found
pihole  | 
pihole  |   [โœ“] FTL is listening on port 53
pihole  |      [โœ“] UDP (IPv4)
pihole  |      [โœ“] TCP (IPv4)
pihole  |      [โœ“] UDP (IPv6)
pihole  |      [โœ“] TCP (IPv6)
pihole  | 
pihole  |   [โœ“] Pi-hole blocking is enabled
pihole  | 
pihole  | 2023-01-18 22:41:56: fdevent.c.1150) fdevent_load_file() /etc/letsencrypt/fullchain.pem: No such file or directory
pihole  | 2023-01-18 22:41:56: server.c.1244) Initialization of plugins failed. Going down.
pihole  | Stopping lighttpd
pihole  | lighttpd: no process found
pihole  |   Pi-hole version is v5.15 (Latest: v5.15)
pihole  |   AdminLTE version is v5.18.1 (Latest: v5.18.1)
pihole  |   FTL version is v5.20.1 (Latest: v5.20.1)
pihole  |   Container tag is: 2023.1
pihole  | 
pihole  | 2023-01-18 22:41:57: fdevent.c.1150) fdevent_load_file() /etc/letsencrypt/fullchain.pem: No such file or directory
pihole  | 2023-01-18 22:41:57: server.c.1244) Initialization of plugins failed. Going down.
pihole  | Stopping lighttpd
pihole  | lighttpd: no process found

HOWEVER... I can reproduce the error if I attempt to mount the file without it existing on my host machine. Note in the file listing on the left that docker compose has created it as a directory.....

image

https://stackoverflow.com/a/42260979

PromoFaux commented 1 year ago

It's the VIRTUAL_HOST environment variable. If you haven't got it set (which neither of you have) it will fail. It's a bug on this side. For now you can set VIRTUAL_HOST to something - but I will push a fix shortly.

PromoFaux commented 1 year ago

@thomasmerz , @labodj can you both try the :dev tag and let me know if that resolves the problem please?

labodj commented 1 year ago

Member

No error with latest dev build

s6-rc: info: service s6rc-oneshot-runner: starting
s6-rc: info: service s6rc-oneshot-runner successfully started
s6-rc: info: service fix-attrs: starting
s6-rc: info: service fix-attrs successfully started
s6-rc: info: service legacy-cont-init: starting
s6-rc: info: service legacy-cont-init successfully started
s6-rc: info: service cron: starting
s6-rc: info: service cron successfully started
s6-rc: info: service _uid-gid-changer: starting
s6-rc: info: service _uid-gid-changer successfully started
s6-rc: info: service _startup: starting
  [i] Starting docker specific checks & setup for docker pihole/pihole
  [i] Setting capabilities on pihole-FTL where possible
  [i] Applying the following caps to pihole-FTL:
        * CAP_CHOWN
        * CAP_NET_BIND_SERVICE
        * CAP_NET_RAW
  [i] Ensuring basic configuration by re-running select functions from basic-install.sh
  [i] Installing configs from /etc/.pihole...
  [i] Existing dnsmasq.conf found... it is not a Pi-hole file, leaving alone!
  [i] Installing /etc/dnsmasq.d/01-pihole.conf...
  [โœ“] Installed /etc/dnsmasq.d/01-pihole.conf
  [i] Installing /etc/.pihole/advanced/06-rfc6761.conf...
  [โœ“] Installed /etc/dnsmasq.d/06-rfc6761.conf
  [i] Installing latest logrotate script...
    [i] Existing logrotate file found. No changes made.
  [i] Custom WEB_PORT set to 8084
  [i] Without proper router DNAT forwarding to 192.168.21.20:8084, you may not get any blocked websites on ads
  [i] Assigning password defined by Environment Variable
  [โœ“] New password set
  [i] Setting Web Theme based on WEBTHEME variable, using value default-darker
  [โœ“] Set temperature unit to C
  [i] Added ENV to php:
                    "TZ" => "Europe/Rome",
                    "PIHOLE_DOCKER_TAG" => "",
                    "PHP_ERROR_LOG" => "/var/log/lighttpd/error-pihole.log",
                    "CORS_HOSTS" => "",
                    "VIRTUAL_HOST" => "rasp1",
  [i] Using IPv4
  [i] Preexisting ad list /etc/pihole/adlists.list detected (exiting setup_blocklists early)
  [i] Setting DNS servers based on PIHOLE_DNS_ variable
  [i] Applying pihole-FTL.conf setting LOCAL_IPV4=192.168.21.20
  [i] Applying pihole-FTL.conf setting RATE_LIMIT=0/0
  [i] FTL binding to default interface: eth0
  [i] Enabling Query Logging
  [i] Testing lighttpd config: Syntax OK
  [i] All config checks passed, cleared for startup ...
  [i] Docker start setup complete
  [i] pihole-FTL (no-daemon) will be started as pihole
s6-rc: info: service _startup successfully started
s6-rc: info: service pihole-FTL: starting
s6-rc: info: service pihole-FTL successfully started
s6-rc: info: service lighttpd: starting
s6-rc: info: service lighttpd successfully started
s6-rc: info: service _postFTL: starting
s6-rc: info: service _postFTL successfully started
s6-rc: info: service legacy-services: starting
  Checking if custom gravity.db is set in /etc/pihole/pihole-FTL.conf
s6-rc: info: service legacy-services successfully started
  [i] Neutrino emissions detected...

  [โœ“] Pulling blocklist source list into range
  [i] Preparing new gravity database...
  [โœ“] Preparing new gravity database
  [i] Using libz compression
  [i] Target: https://dbl.oisd.nl/
  [i] Status: Pending...
  [โœ“] Status: Retrieval successful
  [i] Analyzed 957894 domains
  [i] List has been updated
  [i] Creating new gravity databases...
  [โœ“] Creating new gravity databases
  [i] Storing downloaded domains in new gravity database...
  [โœ“] Storing downloaded domains in new gravity database
  [i] Building tree...
  [โœ“] Building tree
  [i] Swapping databases...
  [โœ“] Swapping databases
  [โœ“] The old database remains available.
  [i] Number of gravity domains: 957894 (957894 unique domains)
  [i] Number of exact blacklisted domains: 0
  [i] Number of regex blacklist filters: 0
  [i] Number of exact whitelisted domains: 0
  [i] Number of regex whitelist filters: 0
  [i] Cleaning up stray matter...
  [โœ“] Cleaning up stray matter
  [โœ“] FTL is listening on port 53
     [โœ“] UDP (IPv4)
     [โœ“] TCP (IPv4)
     [โœ“] UDP (IPv6)
     [โœ“] TCP (IPv6)
  [โœ“] Pi-hole blocking is enabled
  Pi-hole version is v5.15 (Latest: v5.15)
  AdminLTE version is v5.18.1 (Latest: v5.18.1)
  FTL version is v5.20.1 (Latest: v5.20.1)
  Container tag is: dev
thomasmerz commented 1 year ago

No error with Docker Tag 2023.01.3 ๐Ÿ‘๐Ÿผ Will close this issue. Thanks a lot @PromoFaux