seedex-agent
This page describes how the seedex-agent repository is laid out and how to build and lint it.
Requirements
- Go 1.22, to build the Link API.
- shfmt 3.13 and shellcheck 0.11, for the lint.
- A server running Ubuntu 24.04 or later, to install a build.
Project structure
sdx: The command: dispatch, status, help, and firewall.lib/common.sh: Shared helpers: firewall, systemd, and logging.lib/vpn.sh,lib/proxy.sh, andlib/link.sh: One library per service.vpn.shloads the protocol modules fromlib/vpn/and dispatches to them.lib/vpn/awg.shandlib/vpn/wg.sh: VPN protocol modules. Each definesvpn_<proto>_<action>functions; both delegate tolib/wireguard.sh, the shared WireGuard-family code, andawg.shadds the obfuscation parameters and the PPA install.link/main.go: The Link API:GET /v1/configsandPOST /v1/run.install.sh: The script that users run. It downloads the release when it isn't run from a checkout.version: The version.
Build
Run the following command:
make buildThe command builds seedex-link for amd64 and arm64 into build/, together with the release tarball and checksums.txt.
To install the build on a server, copy sdx, version, lib, install.sh, and build to the server and run bash install.sh files there. The files mode updates the scripts and the binary of an existing installation.
Lint
make lint runs shfmt and shellcheck over the shell files, and gofmt and go vet over the Go code.
Contributing
Bug reports, suggestions, and pull requests are welcome. The guidelines live with the code in CONTRIBUTING.md: what to include in a bug report, the code style, how to test a change, and the commit format. Fixes to the text of this site go to seedex-docs, which is maintained in English and Russian.
