Privacy Tools Guide

Use Jitsi Meet or Nextcloud Talk for end-to-end encrypted psychotherapy sessions instead of Zoom or Google Meet, which only provide transport encryption and allow server access to unencrypted content. Self-host these platforms on your own infrastructure or use privacy-focused providers that explicitly don’t record sessions without explicit patient consent. Enable E2EE encryption, disable automatic recording, minimize metadata collection, and implement access controls limiting patient visibility to only their own session history. This guide covers practical setups for HIPAA-compliant telehealth infrastructure with full encryption control.

Understanding the Encryption Requirements

Psychotherapy sessions require protection at multiple layers. End-to-end encryption (E2EE) ensures that only the participants can decrypt and view the video streams—not the service provider, not intermediaries, not anyone with server access. This differs from transport-layer encryption (TLS), which protects data only while moving between clients and servers, leaving server operators with access to decrypted content.

For psychological telehealth, you need:

Self-Hosted Video Infrastructure

The most privacy-respecting approach runs your own video server. Jitsi Meet provides an open-source foundation that supports E2EE through the Matrix protocol. Setting up a basic Jitsi deployment requires a VPS with at least 2 CPU cores and 4GB RAM.

Installing Jitsi Meet on a Private Server

# Update system and install required packages
sudo apt update && sudo apt install -y nginx certbot python3-certbot-nginx

# Add Jitsi repository
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
sudo sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi.list"
sudo apt update

# Install Jitsi Meet
sudo apt install -y jitsi-meet

During installation, you’ll configure TLS certificates via Let’s Encrypt. The installer prompts for your domain name—choose something neutral that doesn’t identify the service as healthcare-related.

Enabling End-to-End Encryption

Jitsi Meet supports E2EE through the octo protocol and Matrix bridging. To enable it:

// In /etc/jitsi/videobridge/config
JVB_OPTS="--apis=rest,colibri"

In the web client configuration at /etc/jitsi/meet/[your-domain]-config.js, enable the E2EE option:

// Enable end-to-end encryption
e2ee: {
    enabled: true,
    labels: {
        // Custom UI labels for patient clarity
        lock: 'Enable Encryption',
        unlock: 'Disable Encryption'
    }
},

This encrypts media streams directly on client devices using WebRTC’s Insertable Streams API. Both participants must use compatible browsers—Chrome, Firefox, and Edge support this natively.

Matrix-Based Secure Communication

Matrix is an open protocol for real-time communication with E2EE built into the specification. For psychologists requiring secure messaging alongside video, a Matrix homeserver provides both.

Setting Up a Matrix Homeserver

Synapse is the reference Matrix server implementation:

# Install dependencies
sudo apt install -y python3-pip python3-setuptools python3-venv libffi-dev

# Clone and install Synapse
cd /opt
git clone https://github.com/matrix-org/synapse.git
cd synapse
python3 -m venv env
source env/bin/activate
pip install --upgrade pip
pip install -e .

Configure the server in /etc/matrix-synapse/homeserver.yaml:

server_name: your-psychology-practice.com
report_stats: false
enable_registration: false

# TLS configuration
tls_certificate_path: "/etc/letsencrypt/live/your-domain/fullchain.pem"
tls_private_key_path: "/etc/letsencrypt/live/your-domain/privkey.pem"

For video calls within Matrix, Element (the reference client) supports Jitsi integration. Configure Element to use your private Jitsi instance:

// In Element web client configuration
"jitsi": {
    "preferredDomain": "meet.your-domain.com",
    "serverURL": "https://meet.your-domain.com"
}

Client-Side Security Configurations

Server configuration matters less than client-side practices. Even with E2EE enabled, the endpoint devices must be secured.

Browser Hardening for Video Sessions

Install privacy-focused browser extensions to block tracking scripts that may load during video calls:

// uBlock Origin filter for telehealth contexts
! Block telemetry in common telehealth platforms
||telehealth-platform.com/api/telemetry*
||video-collect.example.com^

! Prevent canvas fingerprinting during sessions
canvas-blocker-telehealth.com##+js(canvas-defuser)

Configure Firefox for enhanced privacy:

# About:config adjustments
privacy.trackingprotection.enabled = true
media.peerconnection.enabled = false
webgl.disabled = true

Disabling WebRTC completely prevents IP leaks but eliminates peer-to-peer video. For most use cases, keeping WebRTC enabled with the E2EE option provides adequate protection while allowing video functionality.

Network-Level Privacy

Your internet connection reveals metadata about telehealth sessions. A VPN masks your IP address from the video server, though it introduces the VPN provider as a new trust boundary.

Configuring a Kill Switch for Telehealth

If using a VPN for telehealth sessions, configure a network kill switch to prevent unencrypted traffic if the VPN drops:

# Linux iptables rules for VPN kill switch
# Replace VPN_INTERFACE with your actual VPN interface (e.g., tun0)
sudo iptables -A OUTPUT -o VPN_INTERFACE -j ACCEPT
sudo iptables -A OUTPUT -j DROP

# Save rules persistently
sudo apt install -y iptables-persistent
sudo netfilter-persistent save

This ensures that if the VPN disconnects, no traffic—including telehealth video—leaves your network until the VPN reconnects.

Practical Patient Instructions

For psychologist-patient sessions, guide patients through basic privacy setup:

  1. Use a dedicated device for therapy sessions when possible
  2. Enable device encryption (FileVault on macOS, BitLocker on Windows)
  3. Close unnecessary applications to reduce background data collection
  4. Use a private browser window for the telehealth session
  5. Connect from a secure location—avoid public WiFi without VPN protection

Send patients a pre-session checklist in your intake documents. Most privacy failures occur at the client side, not the server.

Compliance Considerations

While this guide focuses on technical privacy implementation, remember that HIPAA compliance requires:

Self-hosted solutions give you control but transfer compliance responsibility entirely to your infrastructure. Document your technical setup and conduct regular security audits if handling sensitive patient information.

Built by theluckystrike — More at zovo.one