Prerequisites

What you need before deploying the server.

Requirements

Before deploying a Drip server, you need:

1. Domain Name

A domain you control with DNS access. You'll need to create:

A Record - Point your tunnel domain to your server IP:

tunnel.example.com → YOUR_SERVER_IP

Wildcard A Record - Point all subdomains to the same IP:

*.tunnel.example.com → YOUR_SERVER_IP

2. SSL Certificate

A wildcard SSL certificate is recommended. You can get one free from Let's Encrypt:

bash
sudo certbot certonly --manual --preferred-challenges dns \
  -d "*.tunnel.example.com" -d "tunnel.example.com"

This requires adding a DNS TXT record for verification.

Certificate locations after installation:

  • Certificate: /etc/letsencrypt/live/tunnel.example.com/fullchain.pem
  • Private key: /etc/letsencrypt/live/tunnel.example.com/privkey.pem

3. Server Requirements

  • OS: Linux (Ubuntu 20.04+ recommended)
  • Memory: 512MB minimum, 1GB+ recommended
  • CPU: 1 core minimum

Memory usage:

  • Base: ~50MB
  • Per 100 tunnels: ~1MB additional

4. Firewall Configuration

Open required ports:

bash
# HTTPS for HTTP/HTTPS tunnels
sudo ufw allow 443/tcp

# TCP tunnel port range
sudo ufw allow 20000:20100/tcp

Or with iptables:

bash
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 20000:20100 -j ACCEPT

5. Generate Authentication Token

Create a secure random token:

bash
openssl rand -hex 32

Save this token - you'll need it for both server and client configuration.