diff --git a/caddy_v2/readme.md b/caddy_v2/readme.md
index 3381591..5167e00 100644
--- a/caddy_v2/readme.md
+++ b/caddy_v2/readme.md
@@ -93,9 +93,9 @@ ping-able by their hostnames.
### - Create docker-compose.yml and .env file
-Basic simple docker compose.
-Official caddy image is used. Ports 80 and 443 are pusblished/mapped
-on to docker host as Caddy is the one in charge of any traffic coming there.
+Basic simple docker compose, using the official caddy image.
+Ports 80 and 443 are pusblished/mapped on to docker host as Caddy
+is the one in charge of any traffic coming there.
`docker-compose.yml`
```yml
@@ -123,8 +123,10 @@ networks:
`.env`
```php
-MY_DOMAIN=example.com
+# GENERAL
+TZ=Europe/Bratislava
DOCKER_MY_NETWORK=caddy_net
+MY_DOMAIN=example.com
```
You obviously want to change `example.com` to your domain.
@@ -134,10 +136,6 @@ You obviously want to change `example.com` to your domain.
`Caddyfile`
```
-{
- # acme_ca https://acme-staging-v02.api.letsencrypt.org/directory
-}
-
a.{$MY_DOMAIN} {
reverse_proxy whoami:80
}
@@ -160,7 +158,6 @@ So every docker container you spin should have hostname definied and be on
`caddy_net`, or some other named custom network, as the default bridge docker network
[does not provide](https://docs.docker.com/network/bridge/)
automatic DNS resolution between containers.
-Commented out is the staging url for let's encrypt, used for testing.
Setup some docker containers
@@ -226,19 +223,19 @@ So just [edit](https://support.rackspace.com/how-to/modify-your-hosts-file/)
adding whatever is the local IP of the docker host and the hostname:
```
-192.168.1.222 a.{$MY_DOMAIN}
-192.168.1.222 b.{$MY_DOMAIN}
+192.168.1.222 a.example.com
+192.168.1.222 b.example.com
```
You can test what are the replies for DNS requests with the command
`nslookup a.example.com`, works in linux and windows.
If it is just quick testing one can use Opera browser
-and enable the build in VPN.
+and enable its build in VPN.
-This edit of a host file affects only that one machine on the network.
+This edit of a host file works only on that one machine.
To solve it for all devices theres need to to run dns server on the network,
-or running a tier higher firewall/router.
+or running a higher tier firewall/router.
* [Here's](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/dnsmasq)
a guide-by-example for dnsmasq.
* [Here's](https://github.com/DoTheEvo/selfhosted-apps-docker/tree/master/opnsense)
@@ -253,7 +250,7 @@ or running a tier higher firewall/router.
Run all the containers.
-Give it time to get certificates, checking `docker logs caddy` as it goes,
+Give Caddy time to get certificates, checking `docker logs caddy` as it goes,
then visit the urls. It should lead to the services with https working.
If something is fucky use `docker logs caddy` to see what is happening.
@@ -262,7 +259,8 @@ Or investigate inside `docker exec -it caddy /bin/sh`.
For example trying to ping hosts that are suppose to be reachable,
`ping nginx` should work.
-There's also other possible issues, like bad port forwarding towards docker host.
+There's also other possible issues, like bad port forwarding towards docker host,
+or ISP not providing you with publicly reachable IP.
*extra info:*
`docker exec -w /etc/caddy caddy caddy reload` reloads config
@@ -306,56 +304,6 @@ violet.{$MY_DOMAIN} {
}
```
-### Reverse proxy without domain and https
-
-You can always just use localhost, which will translates in to docker hosts IP address.
-
-```
-localhost:55414 {
- reverse_proxy urbackup:55414
-}
-
-:9090 {
- reverse_proxy prometheus:9090
-}
-```
-
-Prometheus entry uses short-hand notation.
-TLS is automatically disabled in localhost use.
-
-But for this to work Caddy's compose file needs to have those ports **published** too.
-
-`docker-compose.yml`
-```yml
-services:
-
- caddy:
- image: caddy
- container_name: caddy
- hostname: caddy
- restart: unless-stopped
- ports:
- - "80:80"
- - "443:443"
- - "55414:55414"
- - "9090:9090"
- environment:
- - MY_DOMAIN
- volumes:
- - ./Caddyfile:/etc/caddy/Caddyfile:ro
- - ./data:/data
- - ./config:/config
-
-networks:
- default:
- name: $DOCKER_MY_NETWORK
- external: true
-```
-
-With this setup, and assuming docker host at: `192.168.1.222`,
-writing `192.168.1.222:55414` in to browser will go to to urbackup,
-and `192.168.1.222:9090` gets to prometheus.
-
### Named matchers and IP filtering
Caddy has [matchers](https://caddyserver.com/docs/caddyfile/matchers)
@@ -480,8 +428,8 @@ nextcloud.{$MY_DOMAIN} {
### Headers and gzip
-This example is with bitwarden_rs password manager, which comes with its reverse proxy
-[recommendations](https://github.com/dani-garcia/bitwarden_rs/wiki/Proxy-examples).
+This example is with vaultwarden password manager, which comes with its reverse proxy
+[recommendations](https://github.com/dani-garcia/vaultwarden/wiki/Proxy-examples).
`encode gzip` enables compression.
This lowers the bandwith use and speeds up loading of the sites.
@@ -494,11 +442,11 @@ By default, Caddy passes through Host header and adds X-Forwarded-For
for the client IP. This means that 90% of the time a simple config
is all that is needed but sometimes some extra headers might be desired.
-Here we see bitwarden make use of some extra headers.
+Here we see vaultwarden make use of some extra headers.
We can also see its use of websocket protocol for notifications at port 3012.
```
-bitwarden.{$MY_DOMAIN} {
+vault.{$MY_DOMAIN} {
encode gzip
header {
@@ -513,10 +461,10 @@ bitwarden.{$MY_DOMAIN} {
}
# Notifications redirected to the websockets server
- reverse_proxy /notifications/hub bitwarden:3012
+ reverse_proxy /notifications/hub vaultwarden:3012
# Proxy the Root directory to Rocket
- reverse_proxy bitwarden:80
+ reverse_proxy vaultwarden:80
}
```