Drupal is a registered trademark of Dries Buytaert

satis_hub

No security coverage
View on drupal.org

Satis Hub enables Drupal developers and engineering teams to run a self-hosted private Composer repository for Drupal using Satis 3 with a Drupal-native web interface.

Instead of managing Satis purely via CLI and manual configuration, Satis Hub provides centralized repository administration inside Drupal, including repository configuration, secure access token management, and rebuild automation.

Who is it for?

  • Drupal developers who distribute private modules or shared libraries across multiple projects.
  • Agencies and large teams who need centralized dependency governance and controlled access to internal packages.
  • Organizations looking for a self-hosted alternative to SaaS solutions, while keeping full control over infrastructure and security.

Key capabilities

  • Web-based repository management through the Drupal admin UI.
  • Private repository access using issued and revocable Bearer tokens for Composer clients (Base64 by default).
  • Optional JWT tokens via the satis_hub_jwt_auth submodule (see “JWT authentication” below).
  • Rebuild automation via Admin UI, webhook, or Drush command.
  • Repository configuration stored in Drupal (Drupal entities and configuration), aligned with deployment workflows.
  • Upstream credential support via generated auth.json for private VCS / Composer sources.
  • Configurable output directory (recommended: private://satis_hub).

Why use Satis Hub?

Plain Satis provides the build engine, but teams typically still need to implement operational workflows, access control, and a management interface. Satis Hub adds those missing pieces in a Drupal-native way, making it practical to operate a private Composer repository within Drupal-based infrastructure.

Comparison

Satis Hub vs Satis

  • Satis: CLI-driven, manual configuration, no built-in user/token management.
  • Satis Hub: Drupal admin UI, token issuance and revocation, Drupal permissions, and rebuild triggers.

Satis Hub vs Satisfy

  • Satisfy: Standalone application providing a UI around Satis.
  • Satis Hub: Fully integrated into Drupal (auth, permissions, config management, entities) with no separate platform required.

Satis Hub vs Private Packagist

  • Private Packagist: SaaS with subscription and external dependency on a third-party service.
  • Satis Hub: Self-hosted and Drupal-native, giving teams full ownership of infrastructure, workflows, and access control.

Installation

  1. Install via Composer:
    composer require drupal/satis_hub
  2. Enable the module:
    drush en satis_hub
  3. Configure the output directory (recommended: private://satis_hub).

Configuration

All configuration is available under the Satis Hub Server admin menu. The module includes a guided setup flow and grouped settings sections.

Satis build settings

  • Rebuild authentication token: token used to authorize rebuild webhook requests (can be regenerated from the UI).
  • Webhook URL: copyable URL for triggering remote rebuilds using the token.
  • Satis directory: where generated files are stored (recommended: private://satis_hub).
  • Twig templates source: use module templates, active theme templates, or a custom path.

Homepage settings

  • Optionally set the Packages page as the Drupal front page (via a dedicated action button).

Satis JSON configuration

  • Basic settings: package name, homepage URL, minimum stability.
  • Output settings: generate HTML output, pretty-print JSON, provider mode for large repositories.
  • Twig template: path to a custom template for the generated HTML output (optional).
  • Package requirements: include all packages, include dependencies, optionally include dev dependencies, dependency filtering.
  • Composer configuration: preferred install method, additional behavior options.
  • Archive settings: archive directory, archive format (e.g. ZIP), skip dev packages, prefix URL, checksums, re-archive behavior.

Composer authentication (auth.json)

Satis Hub can generate an auth.json file for private upstream access.

  • Configure the auth.json file path (recommended: private://satis_hub/auth.json).
  • Add authentication entries by selecting a method (for example OAuth-based credentials), host, and credentials.
  • Use the provided actions to save the generated file and reload credentials from file.

Token settings

  • Configure defaults such as default expiration time for tokens.
  • Set the Satis User ID used for repository operations.

Usage

  1. Add repositories in Satis Repositories (choose repository type, URL, and install source).
  2. Create access tokens in SatisHub Tokens and distribute them securely to users/teams.
  3. Run a build from Run Satis Build (or trigger it via webhook / Drush).
  4. Use the provided Composer snippets on the token page to configure projects quickly and consistently.

JWT authentication (optional)

If you prefer JWT-based tokens instead of the default Base64 Bearer tokens:

  1. Install and configure the contributed jwt module.
  2. Enable the Satis Hub JWT submodule:
    drush en satis_hub_jwt_auth
  3. When creating a token, an additional option will appear allowing you to select JWT as the token type.

Permissions

Satis Hub integrates with Drupal’s permission system to control access to repository management, rebuild actions, and token administration.

Requirements

  • Drupal core: ^11 || ^12
  • Satis: composer/satis ^3

Activity

Total releases
7
First release
Jan 2026
Latest release
1 week ago
Release cadence
7 days
Stability
100% stable

Release Timeline

Releases

Version Type Release date
1.0.6 Stable Feb 23, 2026
1.0.5 Stable Feb 19, 2026
1.0.4 Stable Feb 2, 2026
1.0.3 Stable Jan 17, 2026
1.0.2 Stable Jan 17, 2026
1.0.1 Stable Jan 16, 2026
1.0.0 Stable Jan 15, 2026