A simple django blogging engine for the indieweb
Project description
Mosaic
A simple blog system in the spirit of the IndieWeb. It's aimed to get up and running as quickly as possible with your own, easily customizable CMS
Installation
First, install the package using your favorite python package manager
uv add django-mosaic
or
pip install django-mosaic
Second, you need to enable the app in your Django project.
# settings.py
INSTALLED_APPS = [
...
"django_mosaic"
...
]
Third, run the migrations to add the relevant schemas to your database
uv run python manage.py migrate
Quickstart
Start the development server.
uv run python manage.py runserver
Mosaic exposes all its features through the admin. First, create a user for the admin.
uv run python manage.py createsuperuser
Go to http://localhost:8000/admin.
You can write a post right within the admin, in markdown.
By default, there are two namespaces, public and private. Everything you post in public will be visible to, well, everyone. Posts in private will be visible only to those with a secret AccessToken, which you can also generate in the admin.
Only Posts with the is_draft flag set to False will be shown on your website.
Hit the save button and go to https://localhost:8000
Have fun!
Deployment
To reduce one of the major pains of running your own site, Mosaic includes automated deployment for VPS hosting with sane (reach out if not!) defaults for Docker, nginx, and SSL certificates.
Quick Deploy
Deploy to a fresh Ubuntu/Debian VPS:
uv run python manage.py mosaic deployment setup
The setup wizard will prompt you for:
- VPS hostname and SSH credentials
- Domain name
- Email for SSL certificate notifications
The deployment script will:
- Install Docker, nginx, and certbot
- Configure firewall (UFW)
- Build and deploy your application in a Docker container
- Set up nginx as a reverse proxy with rate limiting
- Obtain SSL certificates via Let's Encrypt
- Configure automated hourly database backups
Check Deployment Status
uv run python manage.py mosaic deployment status
Shows health checks for services, SSL certificates, backups, and application availability.
Configuration
Configuration is saved to .deployment-config.toml for subsequent runs.
๐ค AI Disclaimer
This project uses AI-assisted development tools. See the AI usage policy for details.
Tools
- Claude Code (Anthropic) ยท
claude-sonnet-4-6ยท Agentic
Contribution Profile
Phase Humanโ AI
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโ
Requirements & Scope 95% โโโโโโโโโโโ 5%
Architecture & Design 95% โโโโโโโโโโโ 5%
Implementation 40% โโโโโโโโโโโ 60%
Testing 5% โโโโโโโโโโโ 95%
Documentation 40% โโโโโโโโโโโ 60%
Oversight: Collaborative
Human and AI co-author decisions; human reviews all output.
Process
AI agent operated autonomously across multi-step tasks. Human reviewed diffs, resolved conflicts, and approved merges.
Accountability
The human author(s) are solely responsible for the content, accuracy, and fitness-for-purpose of this project.
Last updated: 2026-02-20 ยท Generated with ai-disclaimer
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file django_mosaic-0.1.8.tar.gz.
File metadata
- Download URL: django_mosaic-0.1.8.tar.gz
- Upload date:
- Size: 426.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e45c22609a7189589c66d64e262bf947dd1f07c08fe4025dd201a6187b329367
|
|
| MD5 |
ce11fb48e265c05e3828b25d17098d6a
|
|
| BLAKE2b-256 |
0e8ea25ad6e7d9bafa726a0cbd01ec3ce04d705911983b18941527e029baa77c
|
File details
Details for the file django_mosaic-0.1.8-py3-none-any.whl.
File metadata
- Download URL: django_mosaic-0.1.8-py3-none-any.whl
- Upload date:
- Size: 444.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"43","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d72c748b8c9cb20ebe7df61c2d7c3fe5c9443ae299e09a89d00a33f2d5ec5cc
|
|
| MD5 |
0eb7a58acfc78fce7b88fefd791101de
|
|
| BLAKE2b-256 |
7a1701413dfa4c47ee30aef2be32bb8116f321817fad7a171a0df2b6949442b3
|