Skip to main content

Minimal, libre bulletin board for posts.

Project description

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.

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

poaster-1.5.0.tar.gz (39.3 kB view details)

Uploaded Source

Built Distribution

poaster-1.5.0-py3-none-any.whl (44.3 kB view details)

Uploaded Python 3

File details

Details for the file poaster-1.5.0.tar.gz.

File metadata

  • Download URL: poaster-1.5.0.tar.gz
  • Upload date:
  • Size: 39.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for poaster-1.5.0.tar.gz
Algorithm Hash digest
SHA256 791f2747cfac30c3921c795478a1dca07e5588a01115dd7a9c9d188fdff4b61c
MD5 cbf9573dfa84171328d2a25f7c652eaa
BLAKE2b-256 c79200cacc4b556e110c65a4875de3763274be7825fbbff218de17842bc5cca0

See more details on using hashes here.

File details

Details for the file poaster-1.5.0-py3-none-any.whl.

File metadata

  • Download URL: poaster-1.5.0-py3-none-any.whl
  • Upload date:
  • Size: 44.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.27.0

File hashes

Hashes for poaster-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f1d7fe8334edc4568700e0c8cc460919cc04a7d48f84f62d5173835161c6de7
MD5 0eba1cc6a9fee8b022796491fcc36745
BLAKE2b-256 d249ab4a558e29bfa41ab22b8be266f299f15d53708ee88db4766f8148fbf413

See more details on using hashes here.

Supported by

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