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.productionENV 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:
| Variable | Value |
|---|---|
SOCIALHOME_DOMAIN | Your domain (e.g., socialhome.example.com) |
DATABASE_URL | PostgreSQL connection string |
REDIS_URL | Redis connection string |
SECRET_KEY | Django secret key |
SOCIALHOME_HTTPS | True |
Configure HTTP Settings
Set the traffic type to HTTP and configure the internal port to 8000.
Attach Persistent Storage
Add persistent volumes:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/app/media | 10 GB+ | User uploads and media |
/app/static | 1 GB | Static 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:
- Ensure your domain resolves correctly
- SSL must be properly configured (handled by Klutch.sh)
- WebFinger and other federation endpoints are automatically available
- Start following users on other federated platforms
Building Your Profile
After deployment:
- Complete your profile with bio, avatar, and links
- Configure privacy settings for your content
- Start publishing posts and articles
- Follow hashtags and users across the fediverse
Additional Resources
- Socialhome GitHub Repository
- Socialhome Official Website
- Socialhome Documentation
- Klutch.sh Persistent Volumes
- Klutch.sh Deployments
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.