Commit Graph

206 Commits

Author SHA1 Message Date
Max
5f1093ac88
reserve 2 relay address slots for unlimited relays (#43) 2024-06-28 14:01:38 +00:00
Gerg-L
165bac6c90
remove with lib, use lib.getExe, use runCommand (#42) 2024-06-09 19:53:04 +00:00
Max
df73583638
0.10.0 -> 0.10.1 (#40) 2024-06-05 19:35:11 +00:00
Max
64c86d5555
fix: use opt.metricsPort.value (#39) 2024-06-05 18:45:19 +00:00
Max
7bba1f9f82
set empty default value for services option (#36) 2024-06-04 14:45:37 +00:00
Max
323081fe72
fix: also transfer peer name to config struct (#35) 2024-06-02 20:17:47 +00:00
Max
bde41b6a3e
Formatting (#31)
* add Nix formatter

* nix fmt

* check that Nix and Go code is formatted correctly

* refactor flake.nix

* add formatter to devShell
2024-06-02 21:45:11 +02:00
Max
192dbfad36
0.9.0 -> 0.10.0 (#34) 2024-06-02 18:13:13 +00:00
Max
ca6c623359
NixOS module (#26)
* init NixOS module

* nixos: open firewall ports

* nixos: add ExecStopPost and ExecReload features

* nixos: expose CLI to users
2024-06-02 20:01:16 +02:00
Max
f8393c418e
Generate config struct from NixOS options (#33)
* add clan.lol jsonschema library

* move devshell definition, add go-jsonschema package

* use generated schema for config file parsing

* include schema generation in build process
2024-06-02 17:03:02 +00:00
Max
0f1d4d6810
README: mention docs website (#32) 2024-06-01 20:27:10 +00:00
Max
d97924b908
Documentation (#21)
* add documentation infrastructure

* document service network

* document automatic addressing

* document dns

* document configuration from nixos options
2024-06-01 21:09:08 +02:00
raf
121b22faf7
nix: unshittify (#30) 2024-05-28 14:45:49 +00:00
Max
106ef293ad
use any peer as a relay (#29) 2024-05-25 00:31:45 +02:00
dependabot[bot]
b90995b3c9
build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0 (#28)
* build(deps): bump google.golang.org/protobuf from 1.32.0 to 1.33.0

Bumps google.golang.org/protobuf from 1.32.0 to 1.33.0.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* update vendorHash

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max <max@privatevoid.net>
2024-05-23 17:29:14 +00:00
dependabot[bot]
ced1f81c28
build(deps): bump golang.org/x/net from 0.21.0 to 0.23.0 (#27)
* build(deps): bump golang.org/x/net from 0.21.0 to 0.23.0

Bumps [golang.org/x/net](https://github.com/golang/net) from 0.21.0 to 0.23.0.
- [Commits](https://github.com/golang/net/compare/v0.21.0...v0.23.0)

---
updated-dependencies:
- dependency-name: golang.org/x/net
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

* update vendorHash

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Max <max@privatevoid.net>
2024-05-23 17:20:45 +00:00
Max
6da857d6df
use individual service network routes (#24) 2024-05-19 01:10:44 +02:00
Max
0c8f66c404
0.8.6 -> 0.9.0 (#20) 2024-05-14 15:19:32 +00:00
Max
b32d496d21
Service Network (#15)
* implement foundation for service network

* update vendorHash

* extract MkNetID

* look up peers by NetID

* implement proxy for remote services

* support remote services (client side)

* create Proxy abstraction

* implement TCPServiceProxy

* add a wrapper to make streams implement net.Conn

* support remote services (server side)

* implement services in config

* create proxies from multiaddrs

* register services defined in config

* add description field to proxy

* resolve service hostnames
2024-05-14 17:14:42 +02:00
Max
6e14d22ab7
build with CGO_ENABLED=0 (#18) 2024-05-12 15:21:20 +02:00
Max
88705394c0
IPv6 (dual stack) (#14)
* assign and route ipv6 addresses

* dns: support A and AAAA records

* rpc: include v6 routes in route show
2024-05-11 23:04:52 +02:00
Max
e5955f7d1e
dns: listen on dynamic ip:port, use different search domains for each interface (#13) 2024-05-05 00:18:56 +02:00
Max
2e6d5c401c
bump dependencies, 0.8.5 -> 0.8.6 (#11) 2024-05-03 01:08:44 +02:00
Max
38609e6040
only run CI on Linux (#2) 2024-05-02 22:46:05 +02:00
Max
00497d9ad9 add a basic devShell 2024-04-28 14:08:25 +02:00
Max
3eda34fb45 flake.lock: Add
Flake lock file updates:

• Added input 'flake-parts':
    'github:hercules-ci/flake-parts/9126214d0a59633752a136528f5f3b9aa8565b7d?narHash=sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm%2BGpZNw%3D' (2024-04-01)
• Added input 'flake-parts/nixpkgs-lib':
    follows 'nixpkgs'
• Added input 'nixpkgs':
    'github:NixOS/nixpkgs/7bb2ccd8cdc44c91edba16c48d2c8f331fb3d856?narHash=sha256-Drmja/f5MRHZCskS6mvzFqxEaZMeciScCTFxWVLqWEY%3D' (2024-04-25)
2024-04-28 14:00:11 +02:00
Max
d1af2895e4 init flake 2024-04-28 14:00:06 +02:00
Max
7938ce4a9b explain the fork, update examples to match current CLI design 2024-04-28 12:43:18 +02:00
Max
3f95731fb7 allocate multiple packets 2024-04-28 00:21:23 +02:00
Max
0fe98f90ab select peers by name or ID prefix 2024-04-28 00:21:23 +02:00
Max
0e857a45a0 print node names in route show 2024-04-28 00:21:23 +02:00
Max
1422c1fafd print node names in status 2024-04-28 00:21:23 +02:00
Max
f80acc8ef0 lock reuseable streams 2024-04-28 00:21:23 +02:00
Max
421422896a sendPacket in parallel 2024-04-28 00:21:23 +02:00
Max
491255be1c prevent connection loops 2024-04-28 00:21:23 +02:00
Max
724f94a288 add another bootstrap peer 2024-04-28 00:21:23 +02:00
Max
5d61ae5eb6 implement delegated HTTP routing, set user agent string 2024-04-28 00:21:08 +02:00
Max
8241313877 init: print simple config snippet for peer entry 2024-04-28 00:21:08 +02:00
Max
89de5fc5ba don't segfault when reading config fails 2024-04-28 00:21:08 +02:00
Max
77f2b4aa9f config and CLI overhaul
- remove unnecessary CLI args
- remove down command
2024-04-28 00:20:35 +02:00
Max
4a3de64fd3 implement route add, route del 2024-04-28 00:20:30 +02:00
Max
7c780d9d6b a bunch of stuff at once
- dynamic addressing
- DNS
- switch to cidranger for routing
- auto add routes to tun device
- pex: shut up
2024-04-28 00:19:31 +02:00
Max
1db87a19b6 ban yaml from existence 2024-04-28 00:19:31 +02:00
Max
22245dfff2 imagine 2024-04-28 00:19:31 +02:00
Max
3cc3516d83 remove manual routing support 2024-04-28 00:19:31 +02:00
Max
74b15a7e7b elaborate on why opening a packet stream failed 2024-04-28 00:19:31 +02:00
Max
930fb55675 enable optional prometheus metrics endpoint 2024-04-28 00:19:31 +02:00
Max
b7343e009b new bootstrap peers 2024-04-28 00:19:31 +02:00
Max
6df39331aa EnableAutoRelay -> EnableAutoRelayWithPeerSource 2024-04-28 00:19:28 +02:00
Max
049a1436f5 io/ioutil -> io 2024-04-28 00:19:26 +02:00