Skip to main content

poaster


builds.sr.ht status PyPI - Version License: AGPL v3

Minimal, libre bulletin board for posts.

You can see a simple demo of poaster here.

Features

  • Display bulletin posts to all users.
  • Create, update, and delete posts as authenticated user.
  • Manage posts through web app and JSON API.
  • Offer CLI for managing users and app state.
  • Expose configuration options through environment variables.

Roadmap

  • Refined access control (admin, members, public).
  • Add markdown support for post content.

Quickstart

Install package:

pip install poaster

Initialize application:

poaster init

Add a user:

poaster users add

Launch application server:

poaster run

Configuration

You can configure parts of the application in the shell environment. Here's an example .env:

# Logging
LOG_LEVEL="info"

# Database
DB_PATH="/./poaster.db"

# Security
SECRET_KEY="<generated-when-initializing-app>"
SECRET_KEY_N_BYTES=32
ALGORITHM="HS256"

# Theming
TITLE="poaster"
COLOR_DANGER="#FF595E"
COLOR_INFO="#1982C4"
COLOR_PRIMARY="#6A4C93"
COLOR_SUCCESS="#8AC926"
COLOR_WARINING="#FFCA3A"

Development

The easiest way to develop locally with poaster is to use hatch. With hatch, you will have access to important helper scripts for running locally, linting, type-checks, testing, etc.

Testing

Lint and check types with:

hatch run check

Format code with:

hatch run format

Run test suite and report coverage with:

hatch run cov

Database Management

To upgrade the local database to latest schema, run:

hatch run db:upgrade

Now that the tables are created, you can add fixtures:

hatch run db:fixtures

If you add or update a table, you can generate a migration script by running:

hatch run db:migration

If the migration script wasn't generated, check to see if you imported the model to env.py.

Local Server

Run the application server locally with:

hatch run dev

The server should reload on changes to the source code.

License

poaster is distributed under the terms of the AGPLv3 license.

Metadata

Release files for poaster 1.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for poaster 1.5.0
File Size Uploaded Provenance Actions
poaster-1.5.0.tar.gz 39.3 kB Without provenance Details for poaster-1.5.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for poaster 1.5.0
File Interpreter ABI Platform Actions
poaster-1.5.0-py3-none-any.whl Python 3 none any Details for poaster-1.5.0-py3-none-any.whl

Total release size: 83.7 kB

Release files / poaster-1.5.0.tar.gz

Download URL poaster-1.5.0.tar.gz
Size 39.3 kB
Tags Source
SHA-256 checksum
How to use checksums
791f2747cfac30c3921c795478a1dca07e5588a01115dd7a9c9d188fdff4b61c
BLAKE2b-256 checksum
How to use checksums
c79200cacc4b556e110c65a4875de3763274be7825fbbff218de17842bc5cca0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.27.0

Release files / poaster-1.5.0-py3-none-any.whl

Download URL poaster-1.5.0-py3-none-any.whl
Size 44.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5f1d7fe8334edc4568700e0c8cc460919cc04a7d48f84f62d5173835161c6de7
BLAKE2b-256 checksum
How to use checksums
d249ab4a558e29bfa41ab22b8be266f299f15d53708ee88db4766f8148fbf413
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.27.0

Security for poaster 1.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page