HumHub
Open-source private social network and collaboration platform
Alternative to: Facebook Workplace, Yammer, Nextdoor
HumHub is a self-hosted social network and collaboration platform for organizations, clubs, and communities. It combines customizable member profiles with Spaces for group discussions and shareable content such as posts, wikis, photos, and events, extendable with around 80 optional modules. It can serve as a private intranet, knowledge base, or community network, and is reportedly used by more than 4,500 organizations worldwide.
HumHub Docker Compose example
Self-host HumHub on your own server, homelab, or VPS starting from this Docker Compose example.
It runs HumHub in Docker containers using the official humhub/humhub:stable, mariadb:latest images, with persistent volumes and automatic restarts preconfigured.
Review the environment variables and adjust them to your setup, save the file as compose.yml (or docker-compose.yml), and start the stack with docker compose up -d.
services:
humhub:
image: humhub/humhub:stable
restart: unless-stopped
depends_on:
db:
condition: service_healthy
volumes:
- data:/data
environment:
# Enable verbose debug output. Keep this off in production.
HUMHUB_DEBUG: "false"
# Address the bundled Caddy web server listens on. ":80" serves plain HTTP on
# port 80 for any hostname with no automatic TLS — the correct setting when a
# separate reverse proxy terminates HTTPS in front of HumHub.
SERVER_NAME: ":80"
# PDO DSN for the database (MariaDB "db" service, schema "humhub").
HUMHUB_CONFIG__COMPONENTS__DB__DSN: "mysql:host=db;dbname=humhub"
# Database user HumHub connects as.
HUMHUB_CONFIG__COMPONENTS__DB__USERNAME: "root"
# Password for the database user. Change this.
HUMHUB_CONFIG__COMPONENTS__DB__PASSWORD: "changeme"
db:
image: mariadb:latest
restart: unless-stopped
command:
- --character-set-server=utf8mb4
- --collation-server=utf8mb4_unicode_ci
user: root
volumes:
- db_data:/var/lib/mysql
environment:
# Root password for MariaDB. Must match the HumHub DB password above.
MYSQL_ROOT_PASSWORD: "changeme"
# Database created automatically on first startup for HumHub to use.
MYSQL_DATABASE: "humhub"
expose:
- "3306"
healthcheck:
test: ["CMD", "/usr/local/bin/healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized"]
interval: 10s
timeout: 5s
retries: 5
volumes:
data:
db_data:
Values set to changeme are required — replace them with your own
values before starting HumHub.
Prefer a managed setup? WinterFlow installs, configures, and updates HumHub for you using this same Docker Compose configuration.