Skip to content

Commit 2810aca

Browse files
committed
minor: optimize readme content and docker compose service config
1 parent 4c89407 commit 2810aca

2 files changed

Lines changed: 99 additions & 9 deletions

File tree

README.md

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,40 @@
11
# CDNS
22

3-
An open-source lightweight DNS server that switches to ACME DNS challenge.
3+
An open-source lightweight DNS server that switches to ACME DNS challenge.
4+
5+
# Usage
6+
7+
## Run Container
8+
9+
If you have already run the Smallstep CA container locally, just run a CDNS container using the following command:
10+
11+
```shell
12+
docker run -d --name cdns \
13+
--restart always \
14+
--env CDNS_ENV=production \
15+
--env CDNS_LOGGING_LEVEL=INFO \
16+
--env CDNS_DNS_LISTEN=0.0.0.0:53 \
17+
--env CDNS_DNS_PROTOCOL=both \
18+
--env CDNS_HTTP_TLS_MODE=acme \
19+
--env CDNS_HTTP_DOMAIN=dns.svc.dev \
20+
--env CDNS_HTTP_LISTEN=0.0.0.0:443 \
21+
--env CDNS_PROVIDERS_ACME_EMAIL=george@betterde.com \
22+
--env CDNS_PROVIDERS_ACME_SERVER=https://ca.svc.dev/acme/acme/directory \
23+
--env CDNS_PROVIDERS_ACME_STORAGE=/etc/cdns/certs \
24+
betterde/cdns:latest serve
25+
```
26+
27+
## Docker Compose
28+
29+
In this example, I use Smallstep CA as the ACME Challenge Provider, To learn more about Smallstep CA, visit their [official website](https://smallstep.com/).
30+
31+
```shell
32+
wget -O docker-compose.yaml https://raw.githubusercontent.com/betterde/cdns/master/docker-compose.yaml
33+
docker compose up -d step
34+
docker exec -it -u root step-ca bash -c "step certificate install -all /home/step/certs/root_ca.crt"
35+
docker compose up -d
36+
```
37+
38+
# License
39+
40+
This library is licensed under MIT Full license text is available in [LICENSE](LICENSE).

docker-compose.yaml

Lines changed: 61 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,44 @@
11
services:
2+
step:
3+
image: smallstep/step-ca:latest
4+
labels:
5+
- traefik.enable=false
6+
restart: always
7+
volumes:
8+
- step-ca:/home/step
9+
- step-certs:/etc/ssl/certs
10+
hostname: step
11+
networks:
12+
services:
13+
ipv4_address: 10.0.8.253
14+
command: [ "/bin/sh", "-c", "exec /usr/local/bin/step-ca --resolver 10.0.8.252:53 --password-file /home/step/secrets/password /home/step/config/ca.json" ]
15+
extra_hosts:
16+
- ca.svc.dev:127.0.0.1
17+
environment:
18+
- TZ=Asia/Shanghai
19+
- DOCKER_STEPCA_INIT_NAME=Smallstep
20+
- DOCKER_STEPCA_INIT_ACME=true
21+
- DOCKER_STEPCA_INIT_ADDRESS=0.0.0.0:443
22+
- DOCKER_STEPCA_INIT_PASSWORD=
23+
- DOCKER_STEPCA_INIT_DNS_NAMES=ca.svc.tld,acme-v02.api.letsencrypt.org,step-ca
24+
- DOCKER_STEPCA_INIT_ADMIN_SUBJECT=admin@example.com
25+
- DOCKER_STEPCA_INIT_REMOTE_MANAGEMENT=true
26+
container_name: step
227
cdns:
328
image: betterde/cdns:latest
429
restart: always
30+
volumes:
31+
- cdns-certs:/certs
32+
- step-certs:/etc/ssl/certs:ro
533
hostname: cdns
34+
networks:
35+
services:
36+
- ipv4_address: 10.0.8.252
37+
depends_on:
38+
step:
39+
condition: service_healthy
40+
extra_hosts:
41+
- ca.svc.dev:10.0.8.253
642
environment:
743
# General configuration
844
- CDNS_ENV=production
@@ -14,17 +50,34 @@ services:
1450

1551
# API configuration
1652
- CDNS_HTTP_TLS_MODE=acme
17-
- CDNS_HTTP_DOMAIN=cdns.svc.dev
53+
- CDNS_HTTP_DOMAIN=cdns.svc.tld
1854
- CDNS_HTTP_LISTEN=0.0.0.0:443
19-
- CDNS_HTTP_USERNAME=traefik
20-
- CDNS_HTTP_PASSWORD=
2155

2256
# TLS ACME provider
23-
- CDNS_PROVIDERS_ACME_EMAIL=george@betterde.com
24-
- CDNS_PROVIDERS_ACME_SERVER=https://ca.domain.tld/acme/acme/dictory
57+
- CDNS_PROVIDERS_ACME_EMAIL=admin@example.com
58+
- CDNS_PROVIDERS_ACME_SERVER=https://step-ca/acme/acme/dictory
2559
- CDNS_PROVIDERS_ACME_STORAGE=/certs/acme.json
2660

2761
# TLS File provider
28-
- CDNS_PROVIDERS_FILE_TLSKEY=/certs/domain.tld.key
29-
- CDNS_PROVIDERS_FILE_TLSCERT=/certs/domain.tld.crt
30-
container_name: cdns
62+
#- CDNS_PROVIDERS_FILE_TLSKEY=/certs/domain.tld.key
63+
#- CDNS_PROVIDERS_FILE_TLSCERT=/certs/domain.tld.crt
64+
container_name: cdns
65+
66+
volumes:
67+
step-ca:
68+
name: step-ca
69+
step-certs:
70+
name: step-certs
71+
cdns-certs:
72+
name: cdns-certs
73+
74+
networks:
75+
services:
76+
name: services
77+
ipam:
78+
config:
79+
- subnet: 10.0.8.0/24
80+
gateway: 10.0.8.254
81+
aux_addresses:
82+
step: 10.0.8.253
83+
cdns: 10.0.8.252

0 commit comments

Comments
 (0)