Nextcloud Talk Communication
Private video calls, chat, and file sharing with Nextcloud Talk.
Overview
Nextcloud is an open-source, self-hosted productivity platform that began as a fork of ownCloud in 2016, designed to give organizations complete control over their data while providing enterprise-grade collaboration features. At its core, Nextcloud serves as a private cloud solution offering file synchronization, sharing, and collaborative editing capabilities, positioning itself as a privacy-focused alternative to Google Workspace or Microsoft 365. The Talk application transforms Nextcloud into a comprehensive communication hub, enabling encrypted video calls, instant messaging, and screen sharing directly within your private cloud infrastructure.
This communication-focused stack combines Nextcloud with MariaDB for robust data persistence, Redis for high-performance caching and session management, Collabora Online for real-time document collaboration during meetings, and Coturn as a TURN server for NAT traversal in video calls. The architecture ensures that video calls can establish connections even through firewalls and NATs, while the High Performance Backend (HPB) component handles signaling efficiently for larger conference calls. MariaDB provides the reliability needed for user management and chat history, while Redis accelerates the real-time messaging and presence features that make Talk responsive.
This stack is ideal for privacy-conscious organizations, educational institutions, and remote teams who need professional video conferencing without relying on external services like Zoom or Teams. The combination delivers enterprise-grade communication features while maintaining complete data sovereignty, making it particularly valuable for healthcare organizations, legal firms, government agencies, and European companies subject to GDPR requirements who cannot risk data leaving their infrastructure.
Key Features
- End-to-end encrypted video calls and instant messaging through Nextcloud Talk
- Real-time collaborative document editing with Collabora Online integration during calls
- TURN server support via Coturn for reliable video connections through firewalls and NATs
- High Performance Backend signaling for improved call quality and reduced server load
- Screen sharing and presentation capabilities within video conferences
- File sharing directly in chat conversations with Nextcloud's advanced permission controls
- MariaDB's Galera clustering support for high-availability communication infrastructure
- Redis pub/sub messaging for real-time chat delivery and user presence indicators
Common Use Cases
- 1Remote teams requiring secure video conferencing without third-party service dependencies
- 2Healthcare organizations needing HIPAA-compliant communication platforms with document sharing
- 3Educational institutions providing students with private video learning environments
- 4Legal firms conducting confidential client consultations with document collaboration
- 5European companies ensuring GDPR compliance by keeping all communication data on-premises
- 6Government agencies requiring air-gapped communication systems with full audit trails
- 7Family or community groups wanting WhatsApp/Telegram alternatives with file storage integration
Prerequisites
- Minimum 4GB RAM recommended for smooth video calling with document collaboration
- Open ports 3478 (TCP/UDP) for TURN server and 8080-8081 for web interfaces
- SSL certificate setup for production use to enable WebRTC video calling
- Basic understanding of Nextcloud app installation and Talk configuration
- Network configuration knowledge for TURN server setup in complex network environments
- Docker host with sufficient storage for video call recordings and shared files
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 mariadb: 3 image: mariadb:10.114 environment: 5 - MYSQL_DATABASE=nextcloud6 - MYSQL_USER=nextcloud7 - MYSQL_PASSWORD=${MYSQL_PASSWORD}8 - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}9 volumes: 10 - mariadb_data:/var/lib/mysql11 networks: 12 - nextcloud_net1314 redis: 15 image: redis:7-alpine16 volumes: 17 - redis_data:/data18 networks: 19 - nextcloud_net2021 nextcloud: 22 image: nextcloud:latest23 ports: 24 - "8080:80"25 environment: 26 - MYSQL_HOST=mariadb27 - MYSQL_DATABASE=nextcloud28 - MYSQL_USER=nextcloud29 - MYSQL_PASSWORD=${MYSQL_PASSWORD}30 - REDIS_HOST=redis31 - NEXTCLOUD_ADMIN_USER=${NC_ADMIN_USER}32 - NEXTCLOUD_ADMIN_PASSWORD=${NC_ADMIN_PASSWORD}33 volumes: 34 - nextcloud_data:/var/www/html35 depends_on: 36 - mariadb37 - redis38 networks: 39 - nextcloud_net4041 collabora: 42 image: collabora/code:latest43 ports: 44 - "9980:9980"45 environment: 46 - domain=localhost47 - extra_params=--o:ssl.enable=false48 cap_add: 49 - MKNOD50 networks: 51 - nextcloud_net5253 coturn: 54 image: coturn/coturn:latest55 ports: 56 - "3478:3478"57 - "3478:3478/udp"58 environment: 59 - TURN_REALM=localhost60 - TURN_SECRET=${TURN_SECRET}61 networks: 62 - nextcloud_net6364 hpb: 65 image: nextcloud/aio-talk:latest66 ports: 67 - "8081:8081"68 environment: 69 - NC_DOMAIN=localhost:808070 depends_on: 71 - nextcloud72 networks: 73 - nextcloud_net7475volumes: 76 mariadb_data: 77 redis_data: 78 nextcloud_data: 7980networks: 81 nextcloud_net: .env Template
.env
1# Nextcloud Talk2MYSQL_PASSWORD=secure_mysql_password3MYSQL_ROOT_PASSWORD=secure_root_password4NC_ADMIN_USER=admin5NC_ADMIN_PASSWORD=secure_admin_password6TURN_SECRET=secure_turn_secret78# Nextcloud at http://localhost:80809# Install Talk app from app storeUsage Notes
- 1Nextcloud at http://localhost:8080
- 2Install Talk app from admin panel
- 3Collabora for document editing
- 4Configure TURN in Talk settings
- 5HPB for signaling performance
Individual Services(6 services)
Copy individual services to mix and match with your existing compose files.
mariadb
mariadb:
image: mariadb:10.11
environment:
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
volumes:
- mariadb_data:/var/lib/mysql
networks:
- nextcloud_net
redis
redis:
image: redis:7-alpine
volumes:
- redis_data:/data
networks:
- nextcloud_net
nextcloud
nextcloud:
image: nextcloud:latest
ports:
- "8080:80"
environment:
- MYSQL_HOST=mariadb
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- REDIS_HOST=redis
- NEXTCLOUD_ADMIN_USER=${NC_ADMIN_USER}
- NEXTCLOUD_ADMIN_PASSWORD=${NC_ADMIN_PASSWORD}
volumes:
- nextcloud_data:/var/www/html
depends_on:
- mariadb
- redis
networks:
- nextcloud_net
collabora
collabora:
image: collabora/code:latest
ports:
- "9980:9980"
environment:
- domain=localhost
- extra_params=--o:ssl.enable=false
cap_add:
- MKNOD
networks:
- nextcloud_net
coturn
coturn:
image: coturn/coturn:latest
ports:
- "3478:3478"
- 3478:3478/udp
environment:
- TURN_REALM=localhost
- TURN_SECRET=${TURN_SECRET}
networks:
- nextcloud_net
hpb
hpb:
image: nextcloud/aio-talk:latest
ports:
- "8081:8081"
environment:
- NC_DOMAIN=localhost:8080
depends_on:
- nextcloud
networks:
- nextcloud_net
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 mariadb:5 image: mariadb:10.116 environment:7 - MYSQL_DATABASE=nextcloud8 - MYSQL_USER=nextcloud9 - MYSQL_PASSWORD=${MYSQL_PASSWORD}10 - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}11 volumes:12 - mariadb_data:/var/lib/mysql13 networks:14 - nextcloud_net1516 redis:17 image: redis:7-alpine18 volumes:19 - redis_data:/data20 networks:21 - nextcloud_net2223 nextcloud:24 image: nextcloud:latest25 ports:26 - "8080:80"27 environment:28 - MYSQL_HOST=mariadb29 - MYSQL_DATABASE=nextcloud30 - MYSQL_USER=nextcloud31 - MYSQL_PASSWORD=${MYSQL_PASSWORD}32 - REDIS_HOST=redis33 - NEXTCLOUD_ADMIN_USER=${NC_ADMIN_USER}34 - NEXTCLOUD_ADMIN_PASSWORD=${NC_ADMIN_PASSWORD}35 volumes:36 - nextcloud_data:/var/www/html37 depends_on:38 - mariadb39 - redis40 networks:41 - nextcloud_net4243 collabora:44 image: collabora/code:latest45 ports:46 - "9980:9980"47 environment:48 - domain=localhost49 - extra_params=--o:ssl.enable=false50 cap_add:51 - MKNOD52 networks:53 - nextcloud_net5455 coturn:56 image: coturn/coturn:latest57 ports:58 - "3478:3478"59 - "3478:3478/udp"60 environment:61 - TURN_REALM=localhost62 - TURN_SECRET=${TURN_SECRET}63 networks:64 - nextcloud_net6566 hpb:67 image: nextcloud/aio-talk:latest68 ports:69 - "8081:8081"70 environment:71 - NC_DOMAIN=localhost:808072 depends_on:73 - nextcloud74 networks:75 - nextcloud_net7677volumes:78 mariadb_data:79 redis_data:80 nextcloud_data:8182networks:83 nextcloud_net:84EOF8586# 2. Create the .env file87cat > .env << 'EOF'88# Nextcloud Talk89MYSQL_PASSWORD=secure_mysql_password90MYSQL_ROOT_PASSWORD=secure_root_password91NC_ADMIN_USER=admin92NC_ADMIN_PASSWORD=secure_admin_password93TURN_SECRET=secure_turn_secret9495# Nextcloud at http://localhost:808096# Install Talk app from app store97EOF9899# 3. Start the services100docker compose up -d101102# 4. View logs103docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/nextcloud-talk-complete/run | bashTroubleshooting
- Video calls fail to connect: Verify Coturn TURN server is accessible and TURN_SECRET matches Nextcloud Talk settings
- Collabora documents won't load: Ensure collabora container domain setting matches your Nextcloud URL exactly
- Chat messages delayed: Check Redis connectivity and increase Redis memory limit if hitting maxmemory
- HPB signaling errors: Confirm NC_DOMAIN environment variable matches your actual Nextcloud domain and port
- MariaDB connection refused: Verify MYSQL_PASSWORD environment variables match between nextcloud and mariadb services
- Screen sharing not working: Enable camera and microphone permissions in browser and ensure HTTPS is configured for WebRTC
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Components
nextcloudmariadbrediscollaboracoturn
Tags
#nextcloud#talk#video#chat#collaboration
Category
Message Queues & BrokersAd Space
Shortcuts: C CopyF FavoriteD Download