pr0n is copyright Steinar H. Gunderson . Everything (that includes the Perl code, the configuration snippets, the database schema, the CSS, the templates, any HTML or JavaScript and any documentation, but _not_ any of the images on pr0n.sesse.net etc.) is licensed under the GNU General Public License, version 2. For the full license text, see the COPYING file. Documentation? Forget it; if you can't set it up, use something else. You can have a typical Varnish snippet, though: backend pr0n { .host = "127.0.0.1"; .port = "5015"; } sub vcl_recv { if (req.http.host ~ "^pr0n\.sesse\.net(:[0-9]+)?$") { set req.backend_hint = pr0n; if (req.method == "PUT") { return (pipe); } } } sub vcl_deliver { if (resp.http.x-varnish-host && resp.http.x-pr0n-purge) { set resp.http.escaped-regex = regsuball(resp.http.x-pr0n-purge, "\\", "\\\\"); ban ( "obj.http.x-varnish-host == " + resp.http.x-varnish-host + " && obj.http.x-varnish-url ~ " + resp.http.escaped-regex ); unset resp.http.escaped-regex; } unset resp.http.x-varnish-host; unset resp.http.x-varnish-url; unset resp.http.x-pr0n-purge; } sub vcl_backend_response { if (bereq.http.host ~ "^pr0n\.sesse\.net(:[0-9]+)?$") { set beresp.ttl = 1w; set beresp.http.x-varnish-host = bereq.http.host; set beresp.http.x-varnish-url = bereq.url; if (beresp.http.content-type ~ "^(text/html|text/plain|text/xml|text/css|application/x-javascript|application/javascript)") { set beresp.do_gzip = true; } } else { unset beresp.http.x-varnish-host; } } To redeploy after changes: sudo service pr0n reload && sudo varnishadm 'ban obj.http.x-varnish-host ~ "."'