project documentation

This commit is contained in:
c0repwn3r 2023-03-30 12:45:18 -04:00
parent 43636a51e9
commit d78e4f0d67
Signed by: core
GPG Key ID: FDBF740DADDCEECF
3 changed files with 49 additions and 10 deletions

2
Cargo.lock generated
View File

@ -2469,7 +2469,7 @@ dependencies = [
[[package]]
name = "tfclient"
version = "0.1.0"
version = "0.1.1"
dependencies = [
"base64 0.21.0",
"base64-serde",

View File

@ -2,9 +2,11 @@
trifid is an open-souce reimplementation of the [Defined Networking](https://defined.net) management protocol for [Nebula](https://github.com/slackhq/nebula) networks.
It includes a reimplementation of the [API Server](https://api.defined.net), the [Web UI](https://admin.defined.net), and `dnclient` - all fully compatible with the original implementation.
It includes a reimplementation of the [API Server](https://api.defined.net), the [Web UI](https://admin.defined.net), `dnclient`, `nebula-cert` and `dnapi` - all fully API-compatible with the original versions.
We also include a Rust library for interacting with keys and certificates in the Nebula PKI. Find it in `trifid-pki/`, or on crates.rs as `trifid-pki`
We also include a Rust library for interacting with keys and certificates in the Nebula PKI. Find it in `trifid-pki/`, or on crates.rs as `trifid-pki`.
Want to make your own Defined Networking client? Check out `dnapi-rs`! `dnapi-rs` is a Rust port of the official `dnapi` Go library, to allow for easy interactions with Defined Networking-compatible API servers. Find it in `dnapi-rs/`, or on crates.rs as `dnapi-rs`.
The API implementation is tested with the official dnclient implementaiton, and the dnclient implementation is tested with the official API server, to ensure complete feature parity between the two.
@ -20,15 +22,14 @@ trifid-api feature table:
| Automatic config update polling by dnclient | Not yet | Yes |
| Group-based firewalling | Not yet | Yes |
| SSO authentication | Not yet | Yes |
| Extensive API documentation | In the works | No |
| Open-source server | Yes | No |
| All functionality avaliable via API | Yes | No |
tfclient feature table:
| Feature | tfclient | dnclient |
|--------------------------------------------|----------|----------|
| Enroll in trifid-api/api.defined.net sites | Not yet | Yes |
| Automatic VPN profile setup | Not yet | Yes |
| CLI for using the full API | Not yet | No |
|----------------------------------------------|----------|----------|
| Enroll in trifid-api/api.defined.net sites | Yes | Yes |
| Automatic VPN profile setup | Yes | Yes |
| Poll the API server for config updates | Yes | Yes |
| Secure Ed25519 signing for API communication | Yes | Yes |

38
index.md Normal file
View File

@ -0,0 +1,38 @@
# trifid
trifid is an open-souce reimplementation of the [Defined Networking](https://defined.net) management protocol for [Nebula](https://github.com/slackhq/nebula) networks.
It includes a reimplementation of the [API Server](https://api.defined.net), the [Web UI](https://admin.defined.net), `dnclient`, `nebula-cert` and `dnapi` - all fully API-compatible with the original versions.
We also include a Rust library for interacting with keys and certificates in the Nebula PKI. Find it in `trifid-pki/`, or on crates.rs as `trifid-pki`.
Want to make your own Defined Networking client? Check out `dnapi-rs`! `dnapi-rs` is a Rust port of the official `dnapi` Go library, to allow for easy interactions with Defined Networking-compatible API servers. Find it in `dnapi-rs/`, or on crates.rs as `dnapi-rs`.
The API implementation is tested with the official dnclient implementaiton, and the dnclient implementation is tested with the official API server, to ensure complete feature parity between the two.
# Links
- [tfclient documentation](./docs/tfclient/index.md)
- [trifid-api documentation](./docs/trifid-api/index.md)
- [dnapi-rs documentation](https://docs.rs/dnapi-rs)
- [dnapi-rs on crates.io](https://crates.io/crates/dnapi-rs)
- [trifid-pki documentation](https://docs.rs/trifid-pki)
- [trifid-pki on crates.io](https://crates.io/crates/trifid-pki)
- [trifid git repository](https://git.e3t.cc/~core/trifid)
- [trifid announcements mailing list](https://lists.e3t.cc/~core/trifid-announce)
- [trifid patch mailing list](https://lists.e3t.cc/~core/trifid-devel)
- [trifid discussion mailing list](https://lists.e3t.cc/~core/trifid-discuss)
# Get in touch
Have a question about trifid? Check out the [discussion mailing list](https://lists.e3t.cc/~core/trifid-discuss)! `trifid-discuss` is a mailing list for end-user discussion and questions related to the trifid project.
Run a trifid-api server or otherwise just want to hear news about trifid? Subscribe to our [announcements list](https://lists.e3t.cc/~core/trifid-announce)! `trifid-announce` is a low-volume mailing list for announcements related to the trifid project.
# Contributing
trifid is open source at its heart and we are happy to take your contribution. Send in your patches to the [development mailing list](https://lists.e3t.cc/~core/trifid-devel) and we will get back to you as fast as we can and work on getting your changes merged. Need help sending patches to this list? Check out the handy guide at https://git-send-email.io - or just shoot an email to `trifid-discuss` and we would be happy to help.
# Report a bug
Found a bug in any of the components of trifid? Submit it to [our issue tracker](https://todo.e3t.cc/~core/trifid) to let us know!