Host extensions built with Twext online. API-only.
- Publishing sends your Twext project's source; the server compiles it in a sandbox and serves the built extension, so what's reviewed is what runs.
- Accounts, organizations, SemVer versions with dist-tags, and a review queue for a namespace's first publish.
- Runs anywhere Docker does: one container plus PostgreSQL, with a volume for the stored sources and blobs.
TwextHub is a registry of custom TurboWarp extensions built with Twext. It tracks registry stats, user accounts, organizations, and extension source code. Powered by PostgreSQL and Node.js, it is easy to deploy on the majority of cloud platforms to bare metal (with Docker).
AI Disclosure: AI was used in the development of the TwextHub API.
- Main Developer: @kamixfox
You can see the official live instance of TwextHub at twexts.sdisk.us. We can't reliably explain the API's usage without getting technical. So, if you're planning to deploy a TwextHub API instance, see the documentation.
While installation with Node.js exists, you should prefer Docker because it's safer. We will only provide steps for deployment with Docker Compose.
-
Copy the compose file to a directory of your choice:
cp compose.example.yml <YOUR_DIRECTORY>/compose.yaml
-
Set
TWEXTHUB_DATABASE_URLandTWEXTHUB_PUBLIC_BASE_URLin it. The image is configured throughTWEXTHUB_*environment variables. -
Deploy:
docker compose up -d
The container applies the schema and any pending migrations on boot, so a first deploy needs no manual migrate step. Upgrading a database that an earlier release built with its own SQL files requires its schema_migrations table to hold every legacy migration name; the deploy guide has the details.
Discussions are turned off here, just open an issue if you have a question, or if you find a bug/a new feature to add.
If you want to contribute to this project, feel free! See the Development Guide.