Home
Projects
Resources
Alternatives
Blog
Sign In
Cunicu Versions
Save
A zeroconf peer-to-peer mesh VPN using Wireguard® and Interactive Connectivity Establishment (ICE)
Overview
Versions
Reviews
Resources
v0.4.4
9 months ago
Changelog
3303c4c fix: Fix broken go-import tag for gont/v2 package
v0.3.3
10 months ago
Changelog
77b2530 Disable broken CI tests
4204c05 Fix broken GitHub badge
6f93403 Fix license notice on website
v0.3.2
10 months ago
Changelog
b01b619 Add section for installing cunicu via Nix flakes
c7b80e6 Fix GitHub actions naming
962d7d1 Fix default ICE timer values
76d19e4 Fix log test
4f72931 Fix loop aliasing
bf91683 Fix unused parameter warning
241f1d0 Harmonize capitalization of HTTP headers
ff9a261 More improvements to logging
9f1161a More logging improvements
4f3d82f Perform graceful shutdown of GRPC signaling connection
abf7ce8 Remove all codacy references
3db43c4 Remove codacy config
ac17b71 Smaller logging improvements
4cdbc89 epdisc: Do not attempt to create an ICE connection until we have both local and remote candidates
ce97e7d epdisc: Fix peer state machine
16edced epdisc: Simplify UDPMux setup
96d25c7 epdisc: update NAT rules on change of listen-port
778ac47 fix(deps): update github.com/gopacket/gopacket digest to 4472aec
e96cce9 fix(deps): update golang.org/x/exp digest to 97b1e66
e74310f fix(deps): update golang.zx2c4.com/wireguard digest to 1f25eac
b7a9eab fix(deps): update module github.com/miekg/dns to v1.1.55
99bf91d fix(deps): update module github.com/pion/stun to v0.6.1
1311b50 fix(deps): update module google.golang.org/grpc to v1.56.1
e67a2d0 ice: Remove unused interface type
43e0365 nat: Make NFConn member private
95602c5 website: Add mesh animation to banner
76853f5 website: Remove reference to Docusaurus from home page
e0afaaf wg: Make bindPacketConn a private type
v0.3.1
10 months ago
Changelog
5c92c51 Add renovate.json
d4c41f2 Add support for more terminal colors
e26e46f Allow insecure config file permissions on windows
c01e105 Change GitHub actions triggers
614e2d4 Disable Codacy analysis
e26bece Disable depguard linter
9e572c3 Fix build of website
6fe3993 Fix config test for Windows
8e4961e Fix import order
7bea850 Fix indention in cunicu status sub-command
b80bf78 Fix licenses and copyright for static website assets
491e0cf Fix linter warning
c8e5858 Fix logging tests
a5d41a2 Fix script to update vendorHash in Nix flake
b9fbc86 Fix segfault in status sub-command
31deb81 Fix test for non-existing file path on Windows
54b9024 Fix wrong interface type in status sub-command
ea019df Handle filenames starting with a Windows drive letter correctly
a818943 Harmonize PeerState and ConnectionState usage
29a5bbd Implement custom logfmt-like encoder for zap
c407b0a Implement log filter expressions to replace verbosity level
71af463 Install correct Ginkgo version
425a573 Make detection of read-only /etc/hosts more robust
154ef39 Make sure file is closed before the test terminates
88dd798 Misc logging improvements
8cac3ec Move nix packaging to nix folder and add missing license / copyright notices
da8cc7c Reduce log verbosity
3350eeb Remove EONERC / RWTH logo due to unclear licensing conditions
ca996c5 Remove duplicated test for non-existing config file paths
28b6203 Remove old codacy linter comments
06db99c Skip tests which are broken on Windows
88e3715 Update koanf to v2
6e0352c Update protobuf code with newer protoc-gen-go version
213f668 Update renovate bot config
e502c32 Use Windows APIs to get DNS client config
8a35274 Use filepath instead of path package in order to use correct path seperation character on Windows
44e2c06 chore(deps): update actions/checkout action to v3
c63b2fb chore(deps): update docker/setup-qemu-action action to v2
29e7b2f chore(deps): update goreleaser/goreleaser-action action to v4
e24ee5d dist-nix: initial flake
48e2558 fix(deps): update dependency @cmfcmf/docusaurus-search-local to v1
de8ba96 fix(deps): update dependency @mdx-js/react to v2
61b473c fix(deps): update dependency hast-util-is-element to v2
d231786 fix(deps): update dependency prism-react-renderer to v2
a428781 fix(deps): update dependency rehype-katex to v6
9d0f4e4 fix(deps): update dependency remark-math to v5
3cd8615 fix(deps): update github.com/gopacket/gopacket digest to 9e29b47
a1059d5 fix(deps): update github.com/pion/zapion digest to 3bb052e
d865eae fix(deps): update module github.com/imdario/mergo to v0.3.16
1d0fdd3 fix(deps): update module github.com/onsi/ginkgo/v2 to v2.10.0
2155f62 fix(deps): update module github.com/onsi/ginkgo/v2 to v2.9.7
7b797a7 fix(deps): update module github.com/onsi/gomega to v1.27.8
ab0992b fix(deps): update module github.com/pion/ice/v2 to v2.3.7
e493c56 fix(deps): update module github.com/pion/ice/v2 to v2.3.8
2058e50 fix(deps): update module golang.org/x/crypto to v0.10.0
39bf12b fix(deps): update module golang.org/x/sync to v0.3.0
3a7418b fix(deps): update module golang.org/x/sys to v0.9.0
1a27178 fix(deps): update module google.golang.org/grpc to v1.56.0
2816345 hsync: Disable /etc/hosts synchronization if file is not writable
v0.2.5
1 year ago
Changelog
102d260 autocfg: improve code comments
3cabad8 autocfg: only add new AllowedIPs for new peers if they have not been added via peer discovery
0b2a2f2 autocfg: prepare DetectMTU() to be aware of firewall mark
316d244 build(deps): bump loader-utils from 2.0.2 to 2.0.4 in /website
a8f67be ci: use golangci-lint for linting
d95374c cleanups
d0fcce0 cmd: do not show usage on error
3dbe1d9 cmd: use the same validArgs function for multiple sub-commands
4e4faff compatability fixes for macOS
db43312 config: allow filtering relays by protocol and security
1bce3b9 config: do not fail if we cant stat the current working directory
f4d0e0f config: throw error if configuration file is world-readable
c915d90 core: update peer settings only if required
d206e96 daemon: do not attempt to create existing devices
9e4ef29 daemon: simplify feature registration
ba20ab7 device: add Flags() getter
65a4303 device: add debug logging statements
3644945 device: fix MTU getter for BSDs
24c0c39 device: fix use of invalid member variable
df17d64 device: fix windows and freebsd builds
89142cf device: harmonize variable names
df18641 device: improve compatability with BSDs
7391bfc device: use run() wrapper everywhere
c913f9a disable freebsd builds as we dont have a FreeBSD CI runner
5852243 do not use FQDN for hostname
538400f epdisc: add NAT_TYPE_NONE
d118301 epdisc: be less verbose with logging
f674cdf epdisc: fix package comment
396827b epdisc: fix return values of Pion ICE muxes
0bcffd6 epdisc: fix wrong serialization of candidates related address
f39a300 epdisc: include relay protocol into protobuf candidate serialization
a5326a4 epdisc: perform retries on agent creation with exponential backoff
a9d68a8 epdisc: refactor Interface member of Peer struct
3dbe051 epdisc: refactor protoepdisc -> epdiscproto
3c05664 epdisc: reset state to closed if agent creation fails
57978d2 fi staticcheck warnings
d6977f4 fix a bunch of unit tests
1b9e621 fix calculation of reachability status
06ffcfe fix codacy issues
d2b82e0 fix codacy issues
7bf5411 fix codacy issues
cce8cac fix indention
b117f42 fix various small ToDos throughout the codebase
b947a8f ice: restructure file
f3bcd59 k8s: add missing error check
81a3fe9 log: improve logging context for peers
bd09d97 log: use standard atomic package
0d3ec32 make hostname configurable via command line parameter
03de3b2 minor code refactoring
0e75b6e more codacy fixes
589b8c4 nat: fix libnftl comments
b3c901b pdisc: make sure that the private key is set
2ea97f6 pdisc: properly update name and hosts of existing peers
40ebe94 pdisc: verify that peer description matches sender
2150548 proto: remove unused import
bcf3173 proto: show more ICE stats in status sub-command
0d3f0c4 refactor: UpdateEndpoint() -> SetEndpoint()
e2c3053 remove obsolete TODO
e307dad rtsync: optimize initial sync and cross-platform support
6b677bc scripts: highlight API response
38d162c tidy-up go.mod
1010a19 tweak comments
a3d8300 update Go dependencies
8633330 update dependencies
965a217 use pion/zapion module instead of our own Pion impl
00eb6f9 util: rename CmpEndpoint() to CmpUDPAddr()
a895354 util: support more platforms for HasAdminPrivileges()
d0f0474 util: use effective user id on BSDs
363510d wg: add support for detecting FreeBSD kernel support
8560637 wg: allow AllowedIP values without CIDR suffix
f9bbbf1 wg: remove unused wg.DeviceList
v0.2.4
1 year ago
Changelog
d6f9ed0 ci: fix build of website
8c7189a ci: fix working directory
3619cb9 ci: re-enable 32-bit builds
deab91d remove auto-generated code and docs
c931fb8 update Go dependencies
8618764 use patched version of pion/ice to fix compatability with BSDs
8070c8e website: upgrade Yarn dependencies
v0.2.3
1 year ago
Changelog
f271e25 adapt autocfg and pdisc features to new configuration
66361b4 add some code to set interface DNS servers
12b3273 add some logic to detect MTU for tunnel interfaces
4e91e76 aur: create directory for installing manpages
bd4d409 autocfg: remove unused handler
6672ebf autocfg: show warning if no private key was set
e5d9b3b build for more architectures
06299f9 cfgsync: move DNS configuration from core to cfgsync and add support for Systemd's resolvectl
98bee66 cfgsync: set DNS search domain
eb57b4c cfgsync: start rewrite
3221fad ci: add missing GitHub token for Homebrew Taps
e835c9a ci: build for go 1.19.2
ee0c987 ci: fix packaging of man pages
2930458 ci: increase timeout
6a0e19f ci: remove obsolete comment
3bdbb54 ci: use dedicated PAT token for Homebrew Taps
46ad72e cmd: adapt address sub-command to new prefix based address generation
264604f cmd: add --mask option to addresses sub-command
4fc288e cmd: add cunicu banner to the daemon output and usage info
65149e4 cmd: improve argument completion
f2de945 cmd: initial version of invite sub-command
e5ad6b9 cmd: move reload sub-command to config.go
458354f cmd: show peer name in status sub-command
9a42107 cmd: use correct default output path for docs sub-command
f665c82 config: add RPC command to reload config
631197e config: add koanf provider for wg/wg-quick configuration files
230e4fc config: add more settings for configuring basic interface settings
6b971b7 config: add new hostname setting and initialize it with system hostname by default
f171081 config: add new settings to documentation and example config file
99623b3 config: add reload, watch and change detection logic
1eba500 config: added DiffConfig() to detect changes in configuration
8d96dea config: big rewrite and switch from viper to koanf
568594a config: do not fail if WireGuard config directory does not exist
b0fffe6 config: fix serialization of stringable types
9a052ef config: make host sync domain configurable
e0b52f8 config: move completions to main package
da521c8 config: only use ICE URLs for ICE candidate types which require them
11ff735 config: refactored confmap koanf provider
2ea6fd1 config: remove private_key setting for now
5488849 config: rename --url argument to --ice-url
43f7d4d config: simplify config structure
cca720d config: verify certificate for relay.cunicu.li
941e58b core: be less verbose in logs
83be452 crypto: add KeyPassphrase type to do automatic key derivation on unmarshaling
0248253 crypto: fix Key.IPAddress() for IPv4 prefixes
8960370 crypto: replace KDF PBKDF2 with Argon2id
20cca26 daemon: add OnInterface handlers
039c7a4 daemon: fix creation of interfaces passed via command line
b7dba86 daemon: keep more member fields private
b10c7f3 daemon: move more code from core.Interface to daemon.Interface
92a7ad2 daemon: use per-interface features
87ba710 defaults: use new relay service
2be01be device: add MTU detection logic
ef9633c device: add gateway argument to AddRoute()
f343b8f device: add routing table lookup
f9c9ca5 device: fix signature of AddRoute() for other OS targets
63c6fe5 device: pass net.IPNet by value rather than by reference
458ce8f epdisc: recreate config on each restart
fec86a9 fix spelling of cunicu
c6cbae1 fix unit tests after config rewrite
e74a8ac hooks: adapt to new per-interface features
2c4367d hsync: adapt to per-interface feature
f9d6702 hsync: add extra_hosts option
e88fe2a hsync: cleanup /etc/hosts on shutdown
123d7d9 ice: move ice package back to top level package dir
04b3e17 improve tests
88b15d3 install goreleaser via make install-deps
711fd37 k8s: move codegen script to scripts directory
d01c226 log: shorten logger names
db6294b make auto-generated address prefixes configurable
efb1828 minor refactorings
f6ee9a3 minor tweaks
5801aaa pdisc: do not send peer description if key is not set
ffc1454 pdisc: fix exchange of peer names
4ee2ca5 pdisc: fix invalid allowed ips serialization
2817534 pdisc: merge black and whitelist into a single map
817a79a properly format network prefix in log
4c6a739 proto: refactor GetStatus method
81bac85 re-enable 32-bit builds
76d42e8 relay: add new subcommand to distribute STUN/TURN server credentials via gRPC
06430c4 relay: fix generation of password
6abf007 remove link-local wording
2159eff remove obsolete code
2df4c75 rpc: do not always unwait daemon
9e7183e rtsync: add support for non-link-local routes
ad7c0bd scripts: adapt get_cunicu script to work with archives
131e399 scripts: add newline at eof
9100d1e scripts: check that GitHub token is set
ac65280 scripts: fix signing of drat releases
c1e1bf9 scripts: fix typo in sign_release
7133d7b scripts: fix version check
d77bf9d selfupdate: move most code into selfupdate package and add missing tests
f189c4f terminal: add QRCode()
70e437d terminal: refactor Color() to Mods() and add support for 8-bit colors
ed20e7b tests: --config-path is longer a command line argument
7ddd299 tests: adapt tests to feature refactoring
0d46012 tests: fix restart test
c9339fc util: add ContainsSlice and add missing unit tests
6c073d0 util: add missing unit tests
a13fcb5 util: fix human formatting of bytes
eef7ac1 util: move IsATTY() to terminal package
694ffd4 util: move const to util package
ef6fe44 util: pass values rather than references to CmpNet()
908d046 util: rename slice functions
bc55374 website: add ExampleConfig component
2b05203 website: added first blog post
d868d5a website: adjust colors and disable dark mode
9a03e60 website: fix edit link
8f0e495 website: update project description
b3358fe wg: add missing unit tests for comparing WireGuard peers & devices
e0c0991 wg: add unit tests for testing device configuration handling
54788ec wg: output peer names to ini files
v0.2.2
1 year ago
Changelog
7070cd6 Merge branch 'new-config' of github.com:stv0g/cunicu into new-config
181f352 ci: fix packaging of man pages
288d4b3 scripts: add newline at eof
bc2abbb scripts: check that GitHub token is set
v0.2.1
1 year ago
Changelog
18179ea ci: add missing GitHub token for Homebrew Taps
0b19297 ci: increase timeout
59e068d ci: remove obsolete comment
c3f5058 scripts: fix signing of drat releases
7657110 scripts: fix version check
v0.2.0
1 year ago
Changelog
d913cb1 adapt autocfg and pdisc features to new configuration
0c1eec9 add some code to set interface DNS servers
7dbc7cb add some logic to detect MTU for tunnel interfaces
a99a67f autocfg: remove unused handler
92b4a50 autocfg: show warning if no private key was set
da25518 build for more architectures
7c032b4 cfgsync: move DNS configuration from core to cfgsync and add support for Systemd's resolvectl
7427cb4 cfgsync: set DNS search domain
da5ec23 cfgsync: start rewrite
1c64d7f ci: build for go 1.19.2
c95c609 ci: use dedicated PAT token for Homebrew Taps
fb83a36 cmd: adapt address sub-command to new prefix based address generation
34a0304 cmd: add --mask option to addresses sub-command
cdbf439 cmd: add cunicu banner to the daemon output and usage info
b520e05 cmd: initial version of invite sub-command
a1f0d62 cmd: move reload sub-command to config.go
733dbbc cmd: show peer name in status sub-command
211313a cmd: use correct default output path for docs sub-command
7a145ad config: add RPC command to reload config
4ffc64f config: add koanf provider for wg/wg-quick configuration files
6481c78 config: add more settings for configuring basic interface settings
89f7810 config: add new hostname setting and initialize it with system hostname by default
07eb9dc config: add new settings to documentation and example config file
f778578 config: add reload, watch and change detection logic
6adc793 config: added DiffConfig() to detect changes in configuration
8920a9e config: big rewrite and switch from viper to koanf
aaade6b config: do not fail if WireGuard config directory does not exist
963ecd3 config: fix serialization of stringable types
735776d config: make host sync domain configurable
be24b84 config: move completions to main package
db4a6da config: only use ICE URLs for ICE candidate types which require them
977b13c config: refactored confmap koanf provider
1a5d397 config: remove private_key setting for now
4c4d189 config: rename --url argument to --ice-url
2e32625 config: simplify config structure
692bb3d config: verify certificate for relay.cunicu.li
2cdb2aa core: be less verbose in logs
4b62e19 crypto: add KeyPassphrase type to do automatic key derivation on unmarshaling
269367e crypto: fix Key.IPAddress() for IPv4 prefixes
9eb9f89 crypto: replace KDF PBKDF2 with Argon2id
9a87bd6 daemon: add OnInterface handlers
49a157f daemon: fix creation of interfaces passed via command line
1fec91d daemon: keep more member fields private
ab3dd32 daemon: move more code from core.Interface to daemon.Interface
6fd9919 daemon: use per-interface features
255a5fb defaults: use new relay service
181f7ad device: add MTU detection logic
1253ef4 device: add gateway argument to AddRoute()
2c5aca1 device: add routing table lookup
f3e8d3e device: fix signature of AddRoute() for other OS targets
b1bd2af device: pass net.IPNet by value rather than by reference
bb91563 epdisc: recreate config on each restart
5864d24 fix spelling of cunicu
df3a2ac fix unit tests after config rewrite
5c14d2a hooks: adapt to new per-interface features
150c96b hsync: adapt to per-interface feature
fd409b8 hsync: add extra_hosts option
1fcc7e4 hsync: cleanup /etc/hosts on shutdown
77784d3 ice: move ice package back to top level package dir
b26d71a improve tests
dd7040b install goreleaser via make install-deps
6319abe k8s: move codegen script to scripts directory
7f95488 log: shorten logger names
4172c5c make auto-generated address prefixes configurable
8ebc18b minor refactorings
e7a118d minor tweaks
b99a3e0 pdisc: do not send peer description if key is not set
593f7e3 pdisc: fix exchange of peer names
1fea711 pdisc: fix invalid allowed ips serialization
9547e5b pdisc: merge black and whitelist into a single map
b669f8e properly format network prefix in log
c576ce0 proto: refactor GetStatus method
a146da6 re-enable 32-bit builds
27642c0 relay: add new subcommand to distribute STUN/TURN server credentials via gRPC
c9c03ec relay: fix generation of password
b2240c5 remove link-local wording
3076c36 remove obsolete code
692132c rpc: do not always unwait daemon
0b508d8 rtsync: add support for non-link-local routes
4931790 scripts: adapt get_cunicu script to work with archives
3011d2c scripts: fix typo in sign_release
04f5d0d selfupdate: move most code into selfupdate package and add missing tests
720a71f terminal: add QRCode()
fcac81a terminal: refactor Color() to Mods() and add support for 8-bit colors
5f346c4 tests: --config-path is longer a command line argument
ad936c8 tests: adapt tests to feature refactoring
685dd10 tests: fix restart test
8d627f1 util: add ContainsSlice and add missing unit tests
c3f6f62 util: add missing unit tests
1cb3e58 util: fix human formatting of bytes
6e86044 util: move IsATTY() to terminal package
39d92b8 util: move const to util package
6e5ef94 util: pass values rather than references to CmpNet()
89e7be6 util: rename slice functions
997841c website: add ExampleConfig component
2b05203 website: added first blog post
d868d5a website: adjust colors and disable dark mode
9a03e60 website: fix edit link
8f0e495 website: update project description
cc66136 wg: add missing unit tests for comparing WireGuard peers & devices
e585832 wg: add unit tests for testing device configuration handling
e336adc wg: output peer names to ini files
« Previous
Next »
Home
Projects
Resources
Alternatives
Blog
Sign In
Sign In to OSA
I agree with
Terms of Service
and
Privacy Policy
Sign In with Github