A lightweight GraphQL API wrapper for dae — the high-performance eBPF-based proxy solution.
- 🚀 GraphQL API — Modern, type-safe API for managing dae
- 🔄 Hot Reload — Switch configs without restarting
- 📦 Subscription Management — Import and manage proxy subscriptions
- 🐳 Docker Ready — Easy deployment with Docker/Docker Compose
- 🔌 Extensible — Perfect backend for building custom dashboards
| Dependency | Version | Required |
|---|---|---|
| Go | >= 1.22 | ✅ |
| Clang | >= 15 | ✅ |
| LLVM | >= 15 | ✅ |
| Git | Latest | ✅ |
| Docker | Latest | Optional |
git clone https://github.com/daeuniverse/dae-wing
cd dae-wing
git submodule update --init --recursiveAPI Only Mode (for development):
make deps
go run . run -c ./ --api-onlyFull Mode (with dae proxy):
make deps
go run -exec sudo . runPull the prebuilt image:
docker pull ghcr.io/daeuniverse/dae-wingOr build from source:
# Using Docker Compose (recommended)
docker compose up -d
# Or using Docker CLI
docker build -t dae-wing .
docker run -d \
--privileged \
--network=host \
--pid=host \
--restart=always \
-v /sys:/sys \
-v /etc/dae-wing:/etc/dae-wing \
--name=dae-wing \
dae-wingdae-wing uses GraphQL for its API.
go build -o dae-wing
./dae-wing export schema > schema.graphqlUse GraphQL Playground for interactive API exploration:
- Open GraphQL Playground
- Set endpoint to
http://localhost:2023/graphql - Explore the schema and test queries
./dae-wing export outline > outline.json💡 Tip: Use dae-outline2config to convert outlines to dae config format.
Configs include global, dns, and routing sections from dae.
- Multiple Configs — Switch between different configurations
- Shared Resources — Nodes, subscriptions, and groups are shared across configs
- Hot Reload — Selecting a new config automatically reloads dae
A subscription contains:
- Source link (URL)
- Collection of resolved nodes
Nodes represent proxy profiles imported via links. They can exist:
- Independently (manually added)
- Within subscriptions (auto-imported)
⚠️ Nodes are deduplicated by link within the same collection.
Groups serve as routing outbounds with:
- A collection of subscriptions and nodes
- Node selection policy for connections
- Preserved nodes during subscription updates
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the AGPL-3.0 License.
Made with ❤️ by the dae universe team