Deploying WriteFreely
Introduction
WriteFreely is a minimalist, federated blogging platform built for writers. It strips away distractions to provide a clean writing environment while supporting ActivityPub for connection to the Fediverse. WriteFreely powers Write.as and can be self-hosted for complete control over your writing platform.
Key highlights of WriteFreely:
- Minimalist Design: Distraction-free writing interface focused on content
- Fediverse Integration: ActivityPub support lets followers from Mastodon and other platforms subscribe
- Multi-User Support: Host a community of writers on one instance
- Markdown Support: Write in Markdown with live preview
- Custom Domains: Each blog can have its own custom domain
- SEO Optimized: Clean, semantic HTML for search engine visibility
- No JavaScript Required: Works in browsers with JavaScript disabled
- Privacy Focused: No tracking, analytics optional
This guide walks through deploying WriteFreely on Klutch.sh using Docker.
Why Deploy WriteFreely on Klutch.sh
Deploying WriteFreely on Klutch.sh provides several advantages:
Federated Publishing: Connect your writing to the Fediverse for wider reach.
Writer Control: Own your platform and content completely.
HTTPS by Default: Required for ActivityPub federation, provided automatically.
Persistent Storage: Your posts and configuration persist with Klutch.sh volumes.
Prerequisites
Before deploying WriteFreely on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
Deploying WriteFreely on Klutch.sh
Create Your Repository
Create a new GitHub repository with a Dockerfile:
FROM writefreely/writefreely:latest
# Set environment variablesENV WF_ADMIN_USER=${WF_ADMIN_USER:-admin}ENV WF_SITE_NAME=${WF_SITE_NAME:-My WriteFreely}
# Create data directoryRUN mkdir -p /data
VOLUME ["/data"]
EXPOSE 8080
CMD ["writefreely"]Push to GitHub
Push your Dockerfile to your GitHub repository.
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
Set the traffic type to HTTP with port 8080.
Set Environment Variables
Configure the following environment variables:
| Variable | Value |
|---|---|
WF_ADMIN_USER | Your admin username |
WF_SITE_NAME | Your site name |
Attach Persistent Volume
Add a persistent volume mounted at /data for your SQLite database and configuration.
Deploy Your Application
Click Deploy to build and launch WriteFreely.
Complete Setup
Access your WriteFreely instance. On first run, follow the configuration wizard to set up your instance and create the admin account.
Enable Federation (Optional)
In the admin settings, enable ActivityPub federation to allow Fediverse followers to subscribe to blogs.
Additional Resources
- WriteFreely Official Website
- WriteFreely Documentation
- WriteFreely GitHub Repository
- Klutch.sh Persistent Volumes
Conclusion
WriteFreely on Klutch.sh provides a beautiful, minimalist blogging platform that connects to the wider Fediverse. Its focus on distraction-free writing combined with federation support makes it ideal for writers who want to own their platform while reaching a broader audience.