Host website alongside Pi-Hole interface

How to: Host another website alongside the Pi-Hole admin interface on your Raspbian installation.

1.Create a new folder for your web server in the same folder, the files for the Pi-Hole interface are stored:

mkdir /var/www/html/myserver

It's usually /var/www/html/, but you can look it up in your lighttpd config (stored at /etc/lighttpd/lighttpd.conf) where it is referred to as server.document-root.

2.Set ownership to user www-data:

chown www-data:www-data /var/www/html/myserver

3.Enable virtual hosts:

sudo lighty-enable-mod simple-vhost
sudo service lighttpd force-reload

4.Configure your lighttpd server. Edit /etc/lighttpd/external.conf using this scheme:

$HTTP["host"] == "<DOMAIN>" {
	<YOUR CONFIG>
}
Example
$HTTP["host"] == "my.server" {

    server.modules = (
        "mod_access",
        "mod_accesslog",
        "mod_auth",
        "mod_expire",
        "mod_compress",
        "mod_redirect",
        "mod_setenv",
        "mod_rewrite"
    )

    server.document-root = "/var/www/html/myserver/"
    server.error-handler-404 = "index.php"
    server.errorlog = "/var/log/lighttpd/error.log"
    server.username = "www-data"
    server.groupname = "www-data"
    server.port = 80

    index-file.names            = ( "index.php", "index.html", "index.lighttpd.html" )
    url.access-deny             = ( "~", ".inc", ".md", ".yml", ".ini" )
    static-file.exclude-extensions = ( ".php", ".pl", ".fcgi" )
    compress.cache-dir          = "/var/cache/lighttpd/compress/"
    compress.filetype           = ( "application/javascript", "text/css", "text/html", "text/plain" )

    mimetype.assign   = ( ".png"  => "image/png",
                        ".jpg"  => "image/jpeg",
                        ".jpeg" => "image/jpeg",
                        ".html" => "text/html",
                        ".css" => "text/css; charset=utf-8",
                        ".js" => "application/javascript",
                        ".json" => "application/json",
                        ".txt"  => "text/plain",
                        ".svg"  => "image/svg+xml" )
}

5.Check the syntax of your config:

lighttpd -t -f /etc/lighttpd/external.conf

It should return "Syntax OK".

6.Restart lighttpd:

sudo systemctl restart lighttpd

7.Add the domain to your PiHole:

Pi-Hole 5+:
Add the domain using the Local DNS Records section in the web interface.

Older Versions:
Edit "local.list" and add an entry following this scheme:

<Pi-Hole IP> <Domain>