Quick start

In order to run Sandhole, you'll need:

  • A server with at least one public address. This tutorial assumes that you're using Linux.
  • Control over a domain name (for example, sandhole.com.br) and its subdomains (*.sandhole.com.br).

1. Configure your DNS

Make sure to point the A and AAAA records to your server's IP address(es).

This step varies depending on your choice of DNS provider. For example, on DigitalOcean, this is what the configuration might look like:

A table showing DNS records for "sandhole.com.br" and "*.sandhole.com.br" pointing to IPv4 and IPv6 addresses.

2. Get the executable

Download a copy of the latest release:

# x64
wget --output-document sandhole https://github.com/EpicEric/sandhole/releases/latest/download/sandhole-linux-amd64
#
# -- OR --
#
# AArch64
wget --output-document sandhole https://github.com/EpicEric/sandhole/releases/latest/download/sandhole-linux-arm64

If you prefer, you may also use Docker Compose or compile the binary yourself.

3. Run Sandhole

You can now run Sandhole! Just make sure that it points to your domain:

./sandhole --domain sandhole.com.br

By default, this will expose ports 80 (for HTTP), 443 (for HTTPS), and 2222 (for SSH). If it all succeeds, you should see the following:

[2024-11-03T13:10:51Z INFO  sandhole] Starting Sandhole...
[2024-11-03T13:10:51Z INFO  sandhole] Key file not found. Creating...
[2024-11-03T13:10:51Z INFO  sandhole] Listening for HTTP connections on port 80.
[2024-11-03T13:10:51Z INFO  sandhole] Listening for HTTPS connections on port 443.
[2024-11-03T13:10:51Z INFO  sandhole] Listening for SSH connections on port 2222.
[2024-11-03T13:10:51Z INFO  sandhole] Sandhole is now running.

Now you're ready to dig sandholes like a crab! 🦀