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.8.tar.gz (426.8 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.8-py3-none-any.whl (444.9 kB view details)

Uploaded Python 3

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

Hashes for django_mosaic-0.1.8.tar.gz
Algorithm Hash digest
SHA256 e45c22609a7189589c66d64e262bf947dd1f07c08fe4025dd201a6187b329367
MD5 ce11fb48e265c05e3828b25d17098d6a
BLAKE2b-256 0e8ea25ad6e7d9bafa726a0cbd01ec3ce04d705911983b18941527e029baa77c

See more details on using hashes here.

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

Hashes for django_mosaic-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 6d72c748b8c9cb20ebe7df61c2d7c3fe5c9443ae299e09a89d00a33f2d5ec5cc
MD5 0eb7a58acfc78fce7b88fefd791101de
BLAKE2b-256 7a1701413dfa4c47ee30aef2be32bb8116f321817fad7a171a0df2b6949442b3

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