Skip to main content

No project description provided

Project description

texsite

Pipeline Coverage PyPI License

texsite delivers great and ready-to-use page templates for the modern, flexible and user-focused web content management system Wagtail CMS backed by the popular Django web framework, both written in Python.

Based on the amazing StreamField introduced with Wagtail release 1.0, which texsite uses extensively, it has never been easier for editors to author awesome pages. Read more on how this concept works in the great blog article Rich text fields and faster horses written by Matt Westcott, lead technical developer of Wagtail.

Features

Technical requirements

New feature releases frequently add support for newer versions of underlying technologies and drop support for older ones. The compatible versions of Wagtail, Django and Python for each texsite release are:

Release Wagtail Django Python
6.0+ 7.0 LTS 5.2 LTS 3.13
5.0+ 6.3 LTS 4.2 LTS 3.9, 3.10, 3.11, 3.12, 3.13
4.0+ 4.1 LTS 3.2 LTS 3.8, 3.9, 3.10, 3.11
3.0 2.11 LTS 3.1 3.8
2.0 2.7 LTS 2.2 LTS 3.6, 3.7, 3.8
1.0 2.3 LTS 1.11 LTS 3.4. 3.5, 3.6

texsite only supports SQLite databases.

Code and contribution

The code is open source and released under the ISC License (ISCL). It is available on Gitlab and follows the guidelines about Semantic Versioning for transparency within the release cycle and backward compatibility whenever possible.

All contributions are welcome, whether bug reports, code contributions and reviews, documentation or feature requests.

If you're a developer, fork the repo and prepare a merge request:

# Prepare your environment
uv sync
git config core.hooksPath .githooks

# Running tests
uv run python -m django test --settings=tests.settings

# Code quality
uv run ruff format texsite tests
uv run ruff check texsite tests

# Translations
uv run python -m django makemessages --all
uv run python -m django compilemessages

Installation

Install texsite directly from PyPI using pip:

pip install texsite

Configuration

The tool defines a set of environment variables to configure the application:

Name Default Description
TEXSITE_DATA_ROOT ./.data Local path for storing data and logs.
TEXSITE_DEBUG False Enable debug mode.
TEXSITE_ALLOWED_HOSTS localhost Comma separated list of allowed hosts.
TEXSITE_SECRET_KEY `` At least 50 random characters.
TEXSITE_SECURE_PROXY False Enable for deployments behind a reverse proxy with Host, Origin and X-Forwarded-Proto headers set correctly.

We recommend to leverage a .env file to set the environment variables. It is recognised automatically (e.g. Docker compose) or can easily be configured in many tools.

If you need more flexibility, you may provide your own settings module. This is done by setting the DJANGO_SETTINGS_MODULE environment variable to the path of your custom settings module.

Docker

We provide a Dockerfile to build a production-ready image to make use of our entrypoints.

For local testing and development purposes a predefined Docker compose file is available. It uses the same Dockerfile and showcases how to run the different entrypoints as containers.

docker compose up --build --detach --remove-orphans

This runs the following containers:

  • Traefik as application proxy
  • Gunicorn serving our WSGI application
  • NGINX serving static and media files

In addition you can easily use the cli service to execute Django management commands:

docker compose run --rm --publish 8000:8000 cli runserver 0.0.0.0:8000
docker compose run --rm cli collectstatic
docker compose run --rm cli migrate

Multi-Tenant Hosting

texsite supports multi-tenant hosting where a single instance serves multiple customer domains. Each tenant gets their own:

  • Wagtail Site with custom root page
  • Collection for media isolation
  • User group with scoped permissions
  • Site branding (logo/favicon) via Wagtail admin

New Tenant Setup (Wagtail Admin)

  1. Create root page under the Root page
  2. Create Wagtail Site pointing to the new root page with correct hostname/port
  3. Create Collection for tenant media (Images/Documents)
  4. Create Group with permissions:
    • add_page, change_page, publish_page on root page
    • add_image, change_image, choose_image on collection
    • add_document, change_document, choose_document on collection
  5. Create users and assign to the tenant group
  6. Configure SiteBranding (Settings > Site branding)

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

texsite-6.1.0-py3-none-any.whl (2.4 MB view details)

Uploaded Python 3

File details

Details for the file texsite-6.1.0-py3-none-any.whl.

File metadata

  • Download URL: texsite-6.1.0-py3-none-any.whl
  • Upload date:
  • Size: 2.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: uv/0.9.28 {"installer":{"name":"uv","version":"0.9.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Debian GNU/Linux","version":"12","id":"bookworm","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for texsite-6.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1046dc51abbdf36392f8bf8d7e6728100f6fed45ad01029d1d12ce512e3b8466
MD5 e2ffa853590baced3c54d79b4b82a2ec
BLAKE2b-256 5569e156ce53cc1c3f466a8777bfe296b6a1c1855ebd0622c25035750e1a567b

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