Skip to content

Deploying Talkyard

Introduction

Talkyard is an open-source forum and community platform that combines the best of discussion forums, Q&A sites, and blog comments. It’s designed to foster meaningful conversations and build engaged communities.

Key highlights of Talkyard:

  • Multiple Formats: Forum discussions, Q&A, and ideas/proposals
  • Embedded Comments: Add Talkyard comments to your blog or website
  • Moderation Tools: Comprehensive moderation and anti-spam features
  • Categories and Tags: Organize discussions effectively
  • User Reputation: Trust levels and karma system
  • Real-Time Updates: Live notifications and updates
  • SSO Integration: Integrate with your existing authentication
  • API Access: REST API for integrations
  • Email Notifications: Customizable email digests
  • Mobile Responsive: Works great on all devices

This guide walks through deploying Talkyard on Klutch.sh using Docker.

Why Deploy Talkyard on Klutch.sh

Deploying Talkyard on Klutch.sh provides several advantages:

Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds Talkyard without complex orchestration.

Persistent Storage: Attach persistent volumes for user content and uploads.

HTTPS by Default: Secure community interactions with automatic SSL certificates.

GitHub Integration: Connect your configuration repository for automatic redeployments.

Prerequisites

Before deploying Talkyard on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your Talkyard configuration
  • Basic familiarity with Docker and containerization concepts
  • PostgreSQL database
  • Redis instance

Deploying Talkyard on Klutch.sh

    Create Your Repository

    Create a new GitHub repository with a Dockerfile for Talkyard:

    FROM talkyard/talkyard-app:latest
    ENV PLAY_SECRET_KEY=${PLAY_SECRET_KEY}
    ENV POSTGRES_HOST=${POSTGRES_HOST}
    ENV POSTGRES_DATABASE=${POSTGRES_DATABASE}
    ENV POSTGRES_USER=${POSTGRES_USER}
    ENV POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
    ENV REDIS_HOST=${REDIS_HOST}
    EXPOSE 9000
    VOLUME ["/opt/talkyard/uploads"]

    Push to GitHub

    Initialize and push your repository to GitHub with your Dockerfile.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project.

    Create a New App

    Within your project, create a new app and connect your GitHub repository.

    Configure HTTP Traffic

    In the deployment settings:

    • Select HTTP as the traffic type
    • Set the internal port to 9000

    Set Environment Variables

    Configure the following environment variables:

    VariableValue
    PLAY_SECRET_KEYGenerate with openssl rand -hex 32
    POSTGRES_HOSTYour PostgreSQL hostname
    POSTGRES_DATABASEYour database name
    POSTGRES_USERYour database username
    POSTGRES_PASSWORDYour database password
    REDIS_HOSTYour Redis hostname

    Attach Persistent Volumes

    Add the following volumes:

    Mount PathRecommended SizePurpose
    /opt/talkyard/uploads50 GBUser uploads and attachments

    Deploy Your Application

    Click Deploy to start the build process.

    Access Talkyard

    Once deployment completes, access your Talkyard forum at your app URL.

Configuration

Initial Setup

Configure your forum:

  1. Access your Talkyard instance
  2. Create the admin account
  3. Configure site settings
  4. Customize appearance

Creating Categories

Organize your forum:

  1. Navigate to Admin > Categories
  2. Create categories for different topics
  3. Set permissions for each category
  4. Add descriptions and icons

Embedded Comments

Add Talkyard comments to your site:

  1. Navigate to Admin > Settings > Embedded Comments
  2. Configure your blog/website domain
  3. Add the embed code to your pages
<script async defer src="https://your-forum.klutch.sh/talkyard-comments.min.js"></script>
<div class="talkyard-comments" data-discussion-id="..."></div>

SSO Integration

Enable single sign-on:

  1. Navigate to Admin > Settings > Login
  2. Configure your OAuth/OIDC provider
  3. Enable SSO for seamless authentication

Additional Resources

Conclusion

Deploying Talkyard on Klutch.sh gives you a versatile community platform with automatic builds, persistent storage, and secure HTTPS access. Build engaging communities with forums, Q&A, and embedded blog comments.