mirror of
https://github.com/daeuniverse/dae.git
synced 2025-07-04 23:40:30 +07:00
docs: update docs
This commit is contained in:
@ -58,6 +58,7 @@ If you set up dae as a router or other intermediate device and bind it to LAN in
|
|||||||
|
|
||||||
```shell
|
```shell
|
||||||
export lan_ifname=docker0
|
export lan_ifname=docker0
|
||||||
|
|
||||||
sudo tee /etc/sysctl.d/60-dae-$lan_ifname.conf << EOF
|
sudo tee /etc/sysctl.d/60-dae-$lan_ifname.conf << EOF
|
||||||
net.ipv4.conf.$lan_ifname.forwarding = 1
|
net.ipv4.conf.$lan_ifname.forwarding = 1
|
||||||
net.ipv6.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.
|
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
|
```shell
|
||||||
clang >= 10
|
# yay -S dae
|
||||||
llvm >= 10
|
pacman -S --needed git base-devel
|
||||||
golang >= 1.18
|
git clone https://aur.archlinux.org/dae.git
|
||||||
make
|
|
||||||
```
|
|
||||||
|
|
||||||
**Build**
|
|
||||||
|
|
||||||
```shell
|
|
||||||
git clone https://github.com/daeuniverse/dae.git
|
|
||||||
cd dae
|
cd dae
|
||||||
git submodule update --init
|
makepkg -si
|
||||||
# Minimal dependency build:
|
|
||||||
make GOFLAGS="-buildvcs=false" CC=clang
|
|
||||||
# Or normal build:
|
|
||||||
# make
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### Run
|
After installation, use systemctl to control it.
|
||||||
|
|
||||||
**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
|
```shell
|
||||||
mkdir -p /usr/local/share/dae/
|
# start dae
|
||||||
pushd /usr/local/share/dae/
|
sudo systemctl start 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
|
# auto start dae at boot
|
||||||
popd
|
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
|
```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
|
```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).
|
53
docs/getting-started/build-by-yourself.md
Normal file
53
docs/getting-started/build-by-yourself.md
Normal 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).
|
@ -35,15 +35,20 @@ You should configure dae as follows:
|
|||||||
upstream {
|
upstream {
|
||||||
adguardhome: 'udp://127.0.0.1:53'
|
adguardhome: 'udp://127.0.0.1:53'
|
||||||
}
|
}
|
||||||
request {
|
routing {
|
||||||
fallback: adguardhome
|
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).
|
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).
|
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
|
## 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:
|
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 {
|
upstream {
|
||||||
adguardhome: 'udp://192.168.30.3:53'
|
adguardhome: 'udp://192.168.30.3:53'
|
||||||
}
|
}
|
||||||
request {
|
routing {
|
||||||
fallback: adguardhome
|
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).
|
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).
|
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).
|
||||||
|
Reference in New Issue
Block a user