Skip to content

Repository files navigation

OpenPost for Cloud in a Bottle

This wrapper runs OpenPost, a workspace for creating, adapting, scheduling, and publishing content across social platforms.

Cloud in a Bottle signs the owner in automatically. The first authenticated request creates an OpenPost user and workspace, so there is no separate signup or first-run form. SQLite data, uploaded media, and OpenPost's cryptographic keys live in the platform's backed-up app-data directory.

Install

Deploy this repository with Cloud in a Bottle. The app opens at https://openpost.<your-zone-domain>.

Connect each social account from OpenPost's Settings page. Provider OAuth apps may require callback URLs based on your OpenPost domain. See the OpenPost provider setup guides.

What the wrapper does

  • runs the official OpenPost container behind an unprivileged Nginx proxy
  • converts Cloud in a Bottle's owner assertion into OpenPost's trusted proxy authentication
  • replaces client-supplied OpenPost authentication headers at the proxy boundary
  • disables local registration and public profiles
  • persists the database, media, and generated application keys under BOTTLE_APP_DATA_DIR
  • leaves health checks, signed media URLs, and Telegram webhooks public

The upstream OpenPost port is not published. Nginx is the only public process in the container, and it uses a fresh proxy secret in its private temporary directory on every start.

Development

Run the wrapper checks with Python 3.9 or newer:

python -m unittest discover -s tests

The canonical platform manifest is cloudinabottle.toml. openhost.toml is an identical compatibility copy for the current catalog verifier, and the test suite prevents the two from drifting.

License

The wrapper and OpenPost are licensed under AGPL-3.0-only.

About

OpenPost packaged for Cloud in a Bottle with owner sign-in and persistent local storage

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages