Skip to content

Deploying Socialhome

Introduction

Socialhome is a federated personal profile platform that combines the functionality of a social network, blog, and personal website. It connects to the federated social web through ActivityPub and the diaspora* protocol, allowing you to interact with users on Mastodon, diaspora*, and other federated platforms.

At its core, Socialhome lets you build a rich personal profile that you fully control, then share content and engage with a decentralized network of users across the fediverse.

Key features of Socialhome include:

  • Personal Profiles: Rich, customizable profiles that serve as your web presence
  • Federation Support: Connect via ActivityPub and diaspora* protocols
  • Content Publishing: Create and share posts, articles, and media
  • Streams and Feeds: Follow content from across the fediverse
  • Markdown Editor: Rich content creation with markdown support
  • Image Galleries: Visual content organization and display
  • Tags and Discovery: Hashtag-based content discovery
  • Privacy Controls: Granular visibility settings for content
  • API Access: RESTful API for integrations
  • Matrix Integration: Connect to Matrix chat rooms
  • Open Source: AGPLv3 license with active development

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

Why Deploy Socialhome on Klutch.sh

Deploying Socialhome on Klutch.sh provides several advantages:

Simplified Deployment: Klutch.sh handles container builds and deployment.

Your Digital Home: Own your social presence and data.

HTTPS by Default: Secure federation with automatic SSL certificates.

Persistent Storage: Your profiles and content survive restarts.

Custom Domains: Professional identity with your own domain.

Always Available: 24/7 presence in the fediverse.

Prerequisites

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

  • A Klutch.sh account
  • A GitHub account with a repository for your configuration
  • A PostgreSQL database
  • A Redis instance
  • A custom domain for federation
  • Basic familiarity with Docker and Django

Deploying Socialhome on Klutch.sh

    Create a GitHub Repository

    Create a new GitHub repository for your Socialhome deployment.

    Create Your Dockerfile

    Create a Dockerfile:

    FROM python:3.11-slim
    WORKDIR /app
    RUN apt-get update && apt-get install -y \
    git \
    gcc \
    libpq-dev \
    libjpeg-dev \
    zlib1g-dev \
    && rm -rf /var/lib/apt/lists/*
    RUN pip install socialhome
    ENV DJANGO_SETTINGS_MODULE=config.settings.production
    ENV SOCIALHOME_DOMAIN=${SOCIALHOME_DOMAIN}
    ENV DATABASE_URL=${DATABASE_URL}
    ENV REDIS_URL=${REDIS_URL}
    ENV SECRET_KEY=${SECRET_KEY}
    ENV SOCIALHOME_HTTPS=True
    EXPOSE 8000
    CMD ["gunicorn", "--bind", "0.0.0.0:8000", "config.wsgi:application"]

    Push Your Repository to GitHub

    Commit and push your Dockerfile.

    Set Up PostgreSQL Database

    Create a PostgreSQL database for Socialhome.

    Set Up Redis

    Configure a Redis instance for caching and background tasks.

    Create a New Project on Klutch.sh

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

    Create a New App

    Create a new app and connect your GitHub repository.

    Configure Environment Variables

    Add the following environment variables:

    VariableValue
    SOCIALHOME_DOMAINYour domain (e.g., socialhome.example.com)
    DATABASE_URLPostgreSQL connection string
    REDIS_URLRedis connection string
    SECRET_KEYDjango secret key
    SOCIALHOME_HTTPSTrue

    Configure HTTP Settings

    Set the traffic type to HTTP and configure the internal port to 8000.

    Attach Persistent Storage

    Add persistent volumes:

    Mount PathRecommended SizePurpose
    /app/media10 GB+User uploads and media
    /app/static1 GBStatic files

    Deploy Your Application

    Click Deploy to start the build process.

    Run Migrations

    After deployment, run database migrations.

    Create Admin Account

    Create a superuser for administration.

    Access Socialhome

    Navigate to your domain and set up your profile.

Federation Setup

To federate with other platforms:

  1. Ensure your domain resolves correctly
  2. SSL must be properly configured (handled by Klutch.sh)
  3. WebFinger and other federation endpoints are automatically available
  4. Start following users on other federated platforms

Building Your Profile

After deployment:

  1. Complete your profile with bio, avatar, and links
  2. Configure privacy settings for your content
  3. Start publishing posts and articles
  4. Follow hashtags and users across the fediverse

Additional Resources

Conclusion

Deploying Socialhome on Klutch.sh gives you a federated personal profile that connects to the broader fediverse. Own your social presence, control your data, and engage with a decentralized community across multiple platforms.

With Socialhome, your digital identity is truly yours—hosted on your terms and connected to the open social web.