1. The problem I’m having:
I want to use a url http://pihole.home.box
instead of having to type my local ip address out http://192.168.50.14:35783
. As I understand the only requirements to accomplish this is pihole and caddy, however I can not get it to work. I would then extend this to all self-hosted apps.
I quickly found this note on using Pi-Hole instead of lighttpd however I am not sure where or how I am supposed to install that (should I install it inside the Caddy docker container? Is that even possible?).
What I want help with:
- Sanity check of “Is this setup possible”
- Sanity check for given the docker-compose below should the Caddyfile be at
/DATA/AppData/caddy/caddyfile/Caddyfile
- And then, most importantly Is there some wiki guide I missed on how to achieve the basic setup?
- Using pi-hole and caddy in two different images to setup the name forwarding.
2. Error messages and/or full log output:
{"level":"info","ts":1707596639.344459,"msg":"using provided configuration","config_file":"/etc/caddy/Caddyfile","config_adapter":"caddyfile"}
{"level":"info","ts":1707596639.3463495,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//localhost:2019","//[::1]:2019","//127.0.0.1:2019"]}
{"level":"warn","ts":1707596639.3464491,"logger":"http.auto_https","msg":"server is listening only on the HTTP port, so no automatic HTTPS will be applied to this server","server_name":"srv0","http_port":80}
{"level":"info","ts":1707596639.3466084,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0xc0004a0200"}
{"level":"info","ts":1707596639.3467095,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}
{"level":"info","ts":1707596639.346872,"msg":"autosaved config (load with --resume flag)","file":"/config/caddy/autosave.json"}
{"level":"info","ts":1707596639.3469145,"msg":"serving initial configuration"}
{"level":"warn","ts":1707596639.352472,"logger":"tls","msg":"storage cleaning happened too recently; skipping for now","storage":"FileStorage:/data/caddy","instance":"b54d6bf4-4de5-4eec-ac85-3e75b52b3620","try_again":1707683039.3524709,"try_again_in":86399.999999666}
{"level":"info","ts":1707596639.352601,"logger":"tls","msg":"finished cleaning storage units"}
3. Caddy version:
caddy:2.7.6
4. How I installed and ran Caddy:
It was installed with CasaOS. The relevant docker file is from here docker file
a. System environment:
Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-94-generic x86_64)
b. Command:
Docker is starting it with
caddy run --config /etc/caddy/Caddyfile --adapter caddyfile
c. Service/unit/compose file:
docker-compose.yml
name: caddy
services:
app:
image: caddy:2.7.6
restart: unless-stopped
ports:
- target: 80
published: 80
protocol: tcp
- target: 443
published: 443
protocol: tcp
- target: 2019
published: 2019
protocol: tcp
volumes:
- type: bind
source: /DATA/AppData/$AppID/data
target: /data
- type: bind
source: /DATA/AppData/$AppID/config
target: /config
- type: bind
source: /DATA/AppData/$AppID/caddyfile
target: /etc/caddy/caddyfile
x-casaos:
architectures:
- amd64
- arm
- arm64
main: app
description:
en_us: Caddy - The Ultimate Server with Automatic HTTPS. Need to run tools/install_caddy.sh before installing the template.
tagline:
en_us: Caddy - The Ultimate Server With Automatic Https. Need To Run Tools/install_caddy.sh Before Installing The Template.
developer: ''
author: WisdomSky
icon: https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/caddy.png
thumbnail: https://raw.githubusercontent.com/pi-hosted/pi-hosted/master/images/caddy.png
title:
en_us: Caddy
category: Coolstore
port_map: '80'
(also given this docker file my Caddyfile should be at /DATA/AppData/caddy/caddyfile/Caddyfile
right?)
d. My complete Caddy config:
The setup I tried had this.
{
auto_https off
debug
}
pihole.home.box:80 {
reverse_proxy http://192.168.50.14:35783
}
4. What I tried.
I tried a bunch of things the the thing that seemed most correct.
Added an entry in pi-holes DNS record that points
pihole.home.box
→ 192.168.50.14
.
Then added the Caddy config above.
When I got to 192.168.50.14
I get the “Caddy works!” page, with the DNS record when navigating to pihole.home.box
to it shows me the “Caddy works!” page. However given the config above it should have gone to the pihole port.