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:
- End-to-end encrypted video and audio
- No recording without explicit consent and control
- Minimal metadata collection
- Self-hosted or semi-self-hosted options for maximum control
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:
- Use a dedicated device for therapy sessions when possible
- Enable device encryption (FileVault on macOS, BitLocker on Windows)
- Close unnecessary applications to reduce background data collection
- Use a private browser window for the telehealth session
- 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:
- Business Associate Agreements (BAA) with any service providers
- Audit logging of access to patient data
- Patient consent for telehealth with documented privacy practices
- Secure backup and retention policies
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.
Related Articles
- Telehealth Privacy Rights What Therapist Doctor Video Calls
- Best Mouse Pad For Wrist Support During Long Coding Sessions
- Cryptpad Encrypted Collaboration Suite Self Hosting Setup Gu
- Encrypted DNS over HTTPS on Linux
- How to set up encrypted emergency access your family can
Built by theluckystrike — More at zovo.one