dae-wing

command module
v0.0.0-...-20225e3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 18, 2026 License: AGPL-3.0 Imports: 4 Imported by: 0

README ΒΆ

dae-wing

A lightweight GraphQL API wrapper for dae β€” the high-performance eBPF-based proxy solution.

License Go Version Release GitHub Stars


✨ Features

  • πŸš€ 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

πŸ“‹ Prerequisites

Dependency Version Required
Go >= 1.22 βœ…
Clang >= 15 βœ…
LLVM >= 15 βœ…
Git Latest βœ…
Docker Latest Optional

πŸš€ Quick Start

Clone the Repository
git clone https://github.com/daeuniverse/dae-wing
cd dae-wing
git submodule update --init --recursive
Run Locally

API Only Mode (for development):

make deps
go run . run -c ./ --api-only

Full Mode (with dae proxy):

make deps
go run -exec sudo . run
Run with Docker

Pull the prebuilt image:

docker pull ghcr.io/daeuniverse/dae-wing

Or 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-wing

πŸ“– API Documentation

dae-wing uses GraphQL for its API.

Export Schema
go build -o dae-wing
./dae-wing export schema > schema.graphql
GraphQL Playground

Use GraphQL Playground for interactive API exploration:

  1. Open GraphQL Playground
  2. Set endpoint to http://localhost:2023/graphql
  3. Explore the schema and test queries
Export Config Outline
./dae-wing export outline > outline.json

πŸ’‘ Tip: Use dae-outline2config to convert outlines to dae config format.

πŸ—οΈ Architecture

Config

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
Subscription

A subscription contains:

  • Source link (URL)
  • Collection of resolved nodes
Node

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.

Group

Groups serve as routing outbounds with:

  • A collection of subscriptions and nodes
  • Node selection policy for connections
  • Preserved nodes during subscription updates

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

πŸ“„ License

This project is licensed under the AGPL-3.0 License.


Made with ❀️ by the dae universe team

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL