HumHub logo

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.