Skip to content

Deploying Known

Introduction

Known is an open-source social publishing platform that embraces IndieWeb principles, letting you publish content on your own domain while staying connected to traditional social networks. Whether you’re sharing status updates, long-form posts, photos, or check-ins, Known gives you ownership of your content with the ability to syndicate to social networks.

Built with PHP, Known supports the POSSE (Publish on your Own Site, Syndicate Elsewhere) workflow, meaning your content lives on your server while automatically cross-posting to Twitter, Facebook, and other platforms. The platform also supports Webmentions, allowing decentralized conversations across the web.

Key highlights of Known:

  • Content Ownership: All your content lives on your server, not on third-party platforms
  • Multiple Content Types: Posts, status updates, photos, check-ins, events, and more
  • Social Syndication: Cross-post to Twitter, Facebook, and other networks
  • Webmentions: Decentralized comments and interactions across websites
  • IndieAuth: Modern authentication using your own domain
  • Plugin System: Extend functionality with plugins
  • Responsive Design: Works beautifully on all devices
  • Multi-User Support: Run a community publishing platform
  • Media Management: Built-in handling for images and files
  • API Access: Full API for third-party integrations

This guide walks through deploying Known on Klutch.sh using Docker, configuring social integrations, and setting up your personal publishing platform.

Why Deploy Known on Klutch.sh

Deploying Known on Klutch.sh provides several advantages:

Simplified Deployment: Klutch.sh automatically builds Known from your Dockerfile without managing PHP infrastructure.

Persistent Storage: Attach volumes for your database and uploaded media.

HTTPS by Default: Automatic SSL certificates, essential for IndieAuth and Webmentions.

Custom Domain: Use your personal domain for true content ownership.

Always Available: Your personal publishing platform is online 24/7.

Prerequisites

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

  • A Klutch.sh account
  • A GitHub account with a repository for your configuration
  • Basic familiarity with Docker
  • A MySQL or MariaDB database
  • (Optional) A custom domain for your site

Preparing Your Repository

To deploy Known on Klutch.sh, create a GitHub repository containing your Dockerfile.

Repository Structure

known-deploy/
├── Dockerfile
└── .dockerignore

Creating the Dockerfile

FROM known/known:latest
# Environment variables configured via Klutch.sh dashboard
# KNOWN_DB_HOST - Database host
# KNOWN_DB_USER - Database user
# KNOWN_DB_PASSWORD - Database password
# KNOWN_DB_NAME - Database name
# Upload directory
RUN mkdir -p /var/www/html/Uploads && \
chown -R www-data:www-data /var/www/html/Uploads
EXPOSE 80

Environment Variables Reference

VariableRequiredDescription
KNOWN_DB_HOSTYesMySQL/MariaDB host
KNOWN_DB_USERYesDatabase username
KNOWN_DB_PASSWORDYesDatabase password
KNOWN_DB_NAMEYesDatabase name
KNOWN_SITE_URLNoFull URL of your site
KNOWN_SMTP_HOSTNoSMTP server for email
KNOWN_SMTP_USERNoSMTP username
KNOWN_SMTP_PASSWORDNoSMTP password

Creating the .dockerignore File

.git
.github
*.md
LICENSE
.gitignore
*.log
.DS_Store
.env

Deploying Known on Klutch.sh

    Set Up MySQL Database

    Known requires MySQL or MariaDB:

    • Use a managed database service
    • Deploy MariaDB on Klutch.sh

    Note your database credentials.

    Push Your Repository to GitHub

    Terminal window
    git init
    git add Dockerfile .dockerignore
    git commit -m "Initial Known deployment configuration"
    git remote add origin https://github.com/yourusername/known-deploy.git
    git push -u origin main

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project. Give it a descriptive name like “known” or “my-site”.

    Create a New App

    Within your project, create a new app. Connect your GitHub account and select your Known repository.

    Configure HTTP Traffic

    In the deployment settings:

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

    Set Environment Variables

    VariableValue
    KNOWN_DB_HOSTYour database host
    KNOWN_DB_USERYour database username
    KNOWN_DB_PASSWORDYour database password
    KNOWN_DB_NAMEknown
    KNOWN_SITE_URLhttps://your-app-name.klutch.sh

    Attach Persistent Volumes

    Mount PathRecommended SizePurpose
    /var/www/html/Uploads5 GBUploaded media files

    Deploy Your Application

    Click Deploy to start the build process.

    Access Known

    Once deployment completes, access Known at https://your-app-name.klutch.sh.

Initial Setup

Creating Your Account

On first access:

  1. Follow the setup wizard
  2. Enter your site name and details
  3. Create your admin account
  4. Configure basic settings

Site Configuration

After initial setup:

  1. Go to Site Configuration
  2. Set your site title and description
  3. Configure timezone and language
  4. Enable or disable user registration

Content Types

Publishing Posts

Create various content:

  • Status Updates: Short thoughts and updates
  • Blog Posts: Long-form articles with rich formatting
  • Photos: Image posts with captions
  • Check-ins: Location-based posts
  • Events: Calendar events and RSVPs
  • Bookmarks: Save and share links

Creating Content

  1. Click the + button
  2. Select your content type
  3. Write your content
  4. Choose syndication targets
  5. Publish

Social Syndication

Connecting Social Accounts

Set up POSSE (Publish on your Own Site, Syndicate Elsewhere):

  1. Go to Settings > Social Syndication
  2. Connect your social accounts (Twitter, Facebook, etc.)
  3. Authorize Known to post on your behalf

Syndication Options

When publishing:

  1. Toggle syndication targets
  2. Content automatically posts to selected networks
  3. Replies on social networks can flow back via Webmentions

IndieWeb Features

Webmentions

Enable decentralized conversations:

  1. Webmentions are enabled by default
  2. When others link to your content, you’re notified
  3. Responses appear as comments on your posts

IndieAuth

Use your domain for authentication:

  1. Your Known site acts as an IndieAuth provider
  2. Log into other IndieWeb services with your URL
  3. Configure authorization endpoints in settings

Microformats

Known automatically adds microformats2 markup:

  • h-entry for posts
  • h-card for author information
  • Enables proper parsing by IndieWeb tools

Plugin System

Installing Plugins

Extend Known functionality:

  1. Go to Administration > Plugins
  2. Enable built-in plugins
  3. Upload additional plugins
  • Markdown: Write posts in Markdown format
  • Photo Gallery: Enhanced photo management
  • Statistics: View site analytics
  • Bridgy: Better social syndication

Multi-User Configuration

Enabling Registration

For community sites:

  1. Go to Site Configuration
  2. Enable user registration
  3. Set registration requirements
  4. Configure user permissions

User Roles

  • Admin: Full site control
  • Member: Can publish content
  • Limited: Restricted publishing

Production Best Practices

Custom Domain

For true content ownership:

  1. Configure custom domain in Klutch.sh
  2. Update KNOWN_SITE_URL environment variable
  3. Update DNS records

Backups

Protect your content:

  • Back up the MySQL database regularly
  • Back up the Uploads volume for media files
  • Export content periodically through Known’s export feature

Security

  • Keep Known updated for security patches
  • Use strong admin passwords
  • Enable HTTPS (automatic with Klutch.sh)

Troubleshooting Common Issues

Database Connection Errors

Solutions:

  • Verify database credentials
  • Ensure database server is accessible
  • Check database exists and user has permissions

Media Upload Failures

Solutions:

  • Verify Uploads volume is mounted
  • Check file permissions
  • Ensure upload size limits are adequate

Syndication Not Working

Solutions:

  • Re-authorize social accounts
  • Check API credentials haven’t expired
  • Verify social network APIs are accessible

Additional Resources

Conclusion

Deploying Known on Klutch.sh gives you a powerful, self-hosted social publishing platform with automatic builds, persistent storage, and secure HTTPS access. The combination of Known’s IndieWeb-friendly features and Klutch.sh’s deployment simplicity means you can own your content while staying connected to the broader social web.

Whether building a personal blog, a photo journal, or a community platform, Known on Klutch.sh provides the foundation for independent publishing with modern social features.