Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_mosaic-0.1.9.tar.gz (426.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_mosaic-0.1.9-py3-none-any.whl (445.0 kB view details)

Uploaded Python 3

File details

Details for the file django_mosaic-0.1.9.tar.gz.

File metadata

  • Download URL: django_mosaic-0.1.9.tar.gz
  • Upload date:
  • Size: 426.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for django_mosaic-0.1.9.tar.gz
Algorithm Hash digest
SHA256 451aeb4bc2c0e202571fed6f60d6a0e33135450644111ec1ac7f8c822cb5fb44
MD5 4857710f68c946e1955d9eaa7a834e76
BLAKE2b-256 7aaeddfee2dcecc20a59242e69ffa9ecf3b00461f2e58396c15dca7a9a1f69a2

See more details on using hashes here.

File details

Details for the file django_mosaic-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: django_mosaic-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 445.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.6 {"installer":{"name":"uv","version":"0.11.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Fedora Linux","version":"44","id":"","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for django_mosaic-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 46751806b7e8b6fe9834eeac918ddb3d53add1078a510ed249ed0c567b01ef80
MD5 bbe48d1da60f57d832eb239cb2dfc03e
BLAKE2b-256 866385af6d35bfe412c0cc7f147fc9b528e06c2c4e9e4fda8af4251e05214d4b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page