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└── .dockerignoreCreating 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 directoryRUN mkdir -p /var/www/html/Uploads && \ chown -R www-data:www-data /var/www/html/Uploads
EXPOSE 80Environment Variables Reference
| Variable | Required | Description |
|---|---|---|
KNOWN_DB_HOST | Yes | MySQL/MariaDB host |
KNOWN_DB_USER | Yes | Database username |
KNOWN_DB_PASSWORD | Yes | Database password |
KNOWN_DB_NAME | Yes | Database name |
KNOWN_SITE_URL | No | Full URL of your site |
KNOWN_SMTP_HOST | No | SMTP server for email |
KNOWN_SMTP_USER | No | SMTP username |
KNOWN_SMTP_PASSWORD | No | SMTP password |
Creating the .dockerignore File
.git.github*.mdLICENSE.gitignore*.log.DS_Store.envDeploying Known on Klutch.sh
- Use a managed database service
- Deploy MariaDB on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 80
Set Up MySQL Database
Known requires MySQL or MariaDB:
Note your database credentials.
Push Your Repository to GitHub
git initgit add Dockerfile .dockerignoregit commit -m "Initial Known deployment configuration"git remote add origin https://github.com/yourusername/known-deploy.gitgit push -u origin mainCreate 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:
Set Environment Variables
| Variable | Value |
|---|---|
KNOWN_DB_HOST | Your database host |
KNOWN_DB_USER | Your database username |
KNOWN_DB_PASSWORD | Your database password |
KNOWN_DB_NAME | known |
KNOWN_SITE_URL | https://your-app-name.klutch.sh |
Attach Persistent Volumes
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/var/www/html/Uploads | 5 GB | Uploaded 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:
- Follow the setup wizard
- Enter your site name and details
- Create your admin account
- Configure basic settings
Site Configuration
After initial setup:
- Go to Site Configuration
- Set your site title and description
- Configure timezone and language
- 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
- Click the + button
- Select your content type
- Write your content
- Choose syndication targets
- Publish
Social Syndication
Connecting Social Accounts
Set up POSSE (Publish on your Own Site, Syndicate Elsewhere):
- Go to Settings > Social Syndication
- Connect your social accounts (Twitter, Facebook, etc.)
- Authorize Known to post on your behalf
Syndication Options
When publishing:
- Toggle syndication targets
- Content automatically posts to selected networks
- Replies on social networks can flow back via Webmentions
IndieWeb Features
Webmentions
Enable decentralized conversations:
- Webmentions are enabled by default
- When others link to your content, you’re notified
- Responses appear as comments on your posts
IndieAuth
Use your domain for authentication:
- Your Known site acts as an IndieAuth provider
- Log into other IndieWeb services with your URL
- 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:
- Go to Administration > Plugins
- Enable built-in plugins
- Upload additional plugins
Popular 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:
- Go to Site Configuration
- Enable user registration
- Set registration requirements
- 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:
- Configure custom domain in Klutch.sh
- Update
KNOWN_SITE_URLenvironment variable - 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
- Known Website
- Known Documentation
- Known GitHub Repository
- IndieWeb Community
- Known Docker Hub
- Klutch.sh Deployments
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.