# Install dsvpn with Homebrew, Nix, zypper

Dead Simple VPN. Version 0.1.5 via Homebrew; verified from local package data.

## Install

```sh
sudo av install brew:dsvpn
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install dsvpn
```

  Evidence: local Homebrew formula metadata

### Linux

- Nix (92%):

```sh
nix profile install nixpkgs#dsvpn
```

  Evidence: nixpkgs package indexes: pkgs/by-name/ds/dsvpn/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

- zypper (92%):

```sh
sudo zypper install dsvpn
```

  Evidence: openSUSE Tumbleweed package metadata: dsvpn from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst

## Package facts

- **Package key:** brew:dsvpn
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/dsvpn>
- **Version:** 0.1.5
- **Source summary:** Dead Simple VPN
- **Homepage:** <https://github.com/jedisct1/dsvpn>
- **Repository:** <https://github.com/jedisct1/dsvpn>
- **Upstream docs:** <https://github.com/jedisct1/dsvpn#readme>
- **License:** MIT
- **Source archive:** <https://github.com/jedisct1/dsvpn/archive/refs/tags/0.1.5.tar.gz>
- **Generated:** 2026-07-09T07:20:21+00:00

## Executables

- dsvpn (cli)
- dsvpn (alias)

## Install behavior

- Post-install hook: not defined
- Caveats: dsvpn requires root privileges so you will need to run `sudo $HOMEBREW_PREFIX/sbin/dsvpn`. You should be certain that you trust any software you grant root privileges.
- Bottle: available on arm64_linux, arm64_sequoia, arm64_sonoma, arm64_tahoe, sonoma, x86_64_linux

## Freshness

- Page generated: 2026-07-09
- Package-manager version: 0.1.5
- Local data: ok
- Upstream repository: https://github.com/jedisct1/dsvpn
- Upstream latest detected: 0.1.5 (current)
- info: No package-manager update timestamp was available.
## Project history and usage

DSVPN is 'Dead Simple VPN', a tiny TCP-based VPN by Frank Denis for the common case of connecting a client through an untrusted or restricted network to a server and then to the Internet. It is deliberately small, dependency-light, and configured by command-line arguments plus a shared key file rather than a fixed config directory.

### Project history

The GitHub repository was created in July 2019, and the first public release, 0.1.0, followed later that month. The README explains the author's motivation: needing a VPN that worked where only TCP ports such as 80 or 443 were open, while avoiding the setup complexity or protocol tradeoffs of OpenVPN, WireGuard over UDP, sshuttle, GloryTun, and related tools.

The project is explicit about its ceiling: it solves the author's simple use case, promises no guarantees, and does not plan broad feature expansion. That design stance is part of its history; DSVPN is intentionally a small readable C codebase rather than a general VPN platform.

### Adoption history

DSVPN is distributed through GitHub releases and Homebrew, with other package-manager metadata in the input showing availability in Nix and openSUSE-style zypper packaging. Homebrew packages release 0.1.5 from the GitHub tag.

The README records a small ecosystem around it: an iOS client, systemd service files, an Ansible role, OpenMPTCProuter support, and a Docker image. Those related projects are stronger evidence of practical use than raw package analytics, which are modest in Homebrew.

### How it is used

Usage starts by creating a 32-byte shared secret with `dd`, copying it to both ends, then running `dsvpn server` on the server and `dsvpn client` on the client. Optional arguments cover port, tunnel interface, tunnel IPs, external IP, and gateway IP, with `auto` defaults for the simple path.

The README emphasizes no configuration file and no post-configuration; the secret key has a user-chosen path, so there is no stable credential-file location for metadata purposes.

### Why package nerds care

DSVPN is package-nerd catnip because it is the anti-platform VPN package: a tiny command, small source tree, no external dependencies, no daemon ecosystem, and enough crypto seriousness to avoid feeling like a toy.

It also captures a recurring package-manager need: a tool users can install quickly on constrained servers or routers when the usual VPN stack is too much for the immediate network problem.

### Timeline

- 2019-07: The DSVPN GitHub repository is created.
- 2019-07: GitHub releases publish 0.1.0.
- 2019-08: Releases 0.1.1 through 0.1.3 follow quickly.
- 2019-12: Release 0.1.4 is published.
- 2025-12: Release 0.1.5 is published and packaged by Homebrew.

### Related projects

- dsvpn-ios is named by the README as an iOS client.
- Charm is named by the README as the standalone project for DSVPN's cryptographic primitives.
- WireGuard, GloryTun, VTUN-libsodium, OpenVPN, and sshuttle are named by the README as alternatives or comparisons.

### Sources

- <https://github.com/jedisct1/dsvpn>
- <https://api.github.com/repos/jedisct1/dsvpn>
- <https://api.github.com/repos/jedisct1/dsvpn/releases>
- <https://formulae.brew.sh/api/formula/dsvpn.json>


## Security Notes

narrow executable package without higher-risk signals.

- **Geiger risk:** green / low
- narrow executable package without higher-risk signals

## Source Database Details

- **Source Database:** Homebrew formula API
- **Tap:** homebrew/core
- **Full Name:** dsvpn
- **Version Scheme:** 0
- **Revision:** 0
- **Head Version:** HEAD
- **Bottle Stable Root URL:** <https://ghcr.io/v2/homebrew/core>
- **Deprecated:** no
- **Disabled:** no
- **Keg Only:** no
- **URL Keys:** head, stable

## Other Package-Manager Records

- Nix - dsvpn: normalized package name match | nixpkgs package indexes: pkgs/by-name/ds/dsvpn/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1
- zypper - dsvpn - 0.1.4-1.25: normalized package name match | openSUSE Tumbleweed package metadata: dsvpn from https://download.opensuse.org/tumbleweed/repo/oss/repodata/be8d3611d25469107f32075a1697e69ec57a2b850b42348a658cc671ad5ec2b50760d02c3e59524d50da9a11d5be799bdaffba2e166e8ca8858512e3c0bd665d-primary.xml.zst | A Dead Simple VPN | https://github.com/jedisct1/dsvpn


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Networking and protocol packages](https://www.automicvault.com/pkg/networking-protocol-tools/) - Matched network, protocol, or remote-service metadata.
- [Security and crypto packages](https://www.automicvault.com/pkg/security-crypto-tools/) - Matched security, identity, cryptography, password, signing, or certificate metadata.
- [tinc](https://www.automicvault.com/pkg/brew/tinc/) - Shares av.db curated category or tags: cli, encryption, networking, tunneling, vpn.
- [edgevpn](https://www.automicvault.com/pkg/brew/edgevpn/) - Shares av.db curated category or tags: cli, networking, vpn.
- [fastd](https://www.automicvault.com/pkg/brew/fastd/) - Shares av.db curated category or tags: cli, networking, tunneling, vpn.
- [macosvpn](https://www.automicvault.com/pkg/brew/macosvpn/) - Shares av.db curated category or tags: cli, networking, vpn.
- [onioncat](https://www.automicvault.com/pkg/brew/onioncat/) - Shares av.db curated category or tags: cli, networking, tunneling, vpn.
- [openvpn](https://www.automicvault.com/pkg/brew/openvpn/) - Shares av.db curated category or tags: cli, networking, tunneling, vpn.
- [sshuttle](https://www.automicvault.com/pkg/brew/sshuttle/) - Shares av.db curated category or tags: cli, networking, tunneling, vpn.
- [sstp-client](https://www.automicvault.com/pkg/brew/sstp-client/) - Shares av.db curated category or tags: cli, networking, vpn.

## Combined YAML source

View the package source record on GitHub. [combined/dsvpn.yml](https://github.com/automic-vault/db/blob/main/combined/dsvpn.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
