docs: update docs

This commit is contained in:
mzz2017 2023-03-15 12:27:28 +08:00
parent f44938648c
commit 959f9ad6b7
3 changed files with 151 additions and 39 deletions

View File

@ -58,6 +58,7 @@ If you set up dae as a router or other intermediate device and bind it to LAN in
```shell
export lan_ifname=docker0
sudo tee /etc/sysctl.d/60-dae-$lan_ifname.conf << EOF
net.ipv4.conf.$lan_ifname.forwarding = 1
net.ipv6.conf.$lan_ifname.forwarding = 1
@ -68,57 +69,105 @@ sudo sysctl --system
Please modify `docker0` to your LAN interface.
## Usage
## Installation
### Build
### Archlinux/Manjaro
**Make Dependencies**
dae has been released on [AUR](https://aur.archlinux.org/packages/dae/).
```shell
clang >= 10
llvm >= 10
golang >= 1.18
make
```
**Build**
```shell
git clone https://github.com/daeuniverse/dae.git
# yay -S dae
pacman -S --needed git base-devel
git clone https://aur.archlinux.org/dae.git
cd dae
git submodule update --init
# Minimal dependency build:
make GOFLAGS="-buildvcs=false" CC=clang
# Or normal build:
# make
makepkg -si
```
### Run
**Runtime Dependencies**
For traffic splitting, dae relies on the following data sources, [geoip.dat](https://github.com/v2ray/geoip/releases/latest) and [geosite.dat](https://github.com/v2fly/domain-list-community/releases/latest).
After installation, use systemctl to control it.
```shell
mkdir -p /usr/local/share/dae/
pushd /usr/local/share/dae/
curl -L -o geoip.dat https://github.com/v2ray/geoip/releases/latest/download/geoip.dat
curl -L -o geosite.dat https://github.com/v2ray/domain-list-community/releases/latest/download/dlc.dat
popd
# start dae
sudo systemctl start dae
# auto start dae at boot
sudo systemctl enable dae
```
**Run**
### Docker
Pre-built image and related docs can be found at https://hub.docker.com/r/daeuniverse/dae.
Alternatively, you can use `docker compose`:
Download the example config file:
```shell
curl -L -o example.dae https://github.com/daeuniverse/dae/raw/main/example.dae
git clone --depth=1 https://github.com/daeuniverse/dae
docker compose up -d --build
```
See [example.dae](https://github.com/daeuniverse/dae/blob/main/example.dae).
After fine tuning, run dae:
### Others
Other users can build dae by scratch. See [Build Guide](build-by-yourself.md) for more help.
### Minimal Configuration
For minimal bootable config:
```shell
./dae run -c example.dae
global{}
routing{}
```
Alternatively, you may run dae as a daemon(systemd) service. Check out more details [HERE](./run-as-daemon.md).
However, this config leaves dae no-load state. If you want dae to be in working state, following is a best practice for small config:
```shell
global {
# Bind to LAN and/or WAN as you want. Replace the interface name to your own.
#lan_interface: docker0
wan_interface: wlp5s0
log_level: info
allow_insecure: false
}
subscription {
# Fill in your subscription links here.
}
dns {
upstream {
googledns: 'tcp+udp://dns.google:53'
}
request {
fallback: asis
}
response {
upstream(googledns) -> accept
!qname(geosite:cn) && ip(geoip:private) -> googledns
fallback: accept
}
}
group {
proxy {
#filter: name(keyword: HK, keyword: SG)
policy: min_moving_avg
}
}
routing {
pname(NetworkManager, systemd-resolved) -> direct
dip(224.0.0.0/3, 'ff00::/8') -> direct
### Write your rules below.
dip(geoip:private) -> direct
dip(geoip:cn) -> direct
domain(geosite:cn) -> direct
fallback: proxy
}
```
See more at [example.dae](https://github.com/daeuniverse/dae/blob/main/example.dae).
If you use PVE, refer to [#37](https://github.com/daeuniverse/dae/discussions/37).

View File

@ -0,0 +1,53 @@
# Build Guide
## Build
**Make Dependencies**
```shell
clang >= 10
llvm >= 10
golang >= 1.18
make
```
**Build**
```shell
git clone https://github.com/daeuniverse/dae.git
cd dae
git submodule update --init
# Minimal dependency build:
make GOFLAGS="-buildvcs=false" CC=clang
# Or normal build:
# make
```
## Run
**Runtime Dependencies**
For traffic splitting, dae relies on the following data sources, [geoip.dat](https://github.com/v2ray/geoip/releases/latest) and [geosite.dat](https://github.com/v2fly/domain-list-community/releases/latest).
```shell
mkdir -p /usr/local/share/dae/
pushd /usr/local/share/dae/
curl -L -o geoip.dat https://github.com/v2ray/geoip/releases/latest/download/geoip.dat
curl -L -o geosite.dat https://github.com/v2ray/domain-list-community/releases/latest/download/dlc.dat
popd
```
**Run**
Download the example config file:
```shell
curl -L -o example.dae https://github.com/daeuniverse/dae/raw/main/example.dae
```
See [example.dae](https://github.com/daeuniverse/dae/blob/main/example.dae).
After fine tuning, run dae:
```shell
./dae run -c example.dae
```
Alternatively, you may run dae as a daemon(systemd) service. Check out more details [HERE](./run-as-daemon.md).

View File

@ -35,15 +35,20 @@ You should configure dae as follows:
upstream {
adguardhome: 'udp://127.0.0.1:53'
}
request {
fallback: adguardhome
routing {
request {
fallback: adguardhome
}
}
}
```
4. If you bind to LAN, make sure your DHCP server will distribute dae as the DNS server (DNS request should be forwarded by dae for domain based traffic split).
5. If there is still a DNS issue and there are no warn/error logs, you have to change your listening port of external DNS (here is AdGuardHome) from 53 to non-53 port. See [#31](https://github.com/daeuniverse/dae/issues/31#issuecomment-1467358364).
6. If you use PVE, refer to [#37](https://github.com/daeuniverse/dae/discussions/37).
## External DNS on another machine in LAN
If you set up a external DNS on another machine in LAN, you may want to let the DNS queries to dns.google proxied. For example, if you have following configuration in AdguardHome:
@ -76,11 +81,16 @@ You should configure dae as follows:
upstream {
adguardhome: 'udp://192.168.30.3:53'
}
request {
fallback: adguardhome
routing {
request {
fallback: adguardhome
}
}
}
```
4. If you bind to LAN, make sure your DHCP server will distribute dae as the DNS server (DNS request should be forwarded by dae for domain based traffic split).
5. If there is still a DNS issue and there are no warn/error logs, you have to change your listening port of external DNS (here is AdGuardHome) from 53 to non-53 port. See [#31](https://github.com/daeuniverse/dae/issues/31#issuecomment-1467358364).
6. If you use PVE, refer to [#37](https://github.com/daeuniverse/dae/discussions/37).