Skip to content

Configuration Guide

This guide explains how to configure Fast Pluggy for your FastAPI application.

Basic Configuration

When initializing Fast Pluggy, you can provide various configuration options:

from fastapi import FastAPI
from fastpluggy import FastPluggy

app = FastAPI()

# Initialize with basic configuration
pluggy = FastPluggy(
    app,
    app_root_dir=".",          # Root directory of your application
    path_plugins="./plugins",  # Directory where plugins are stored
    path_modules="./domains",  # Directory where domain modules are stored
    auth_manager=None          # Optional authentication manager
)

Configuration Class

Fast Pluggy uses a configuration class to manage settings:

from fastpluggy.core.config import FastPluggyConfig

# Access configuration
config = pluggy.settings

# Configuration options
print(f"App name: {config.app_name}")
print(f"Admin URL: {config.fp_admin_base_url}")
print(f"Plugin list URL: {config.plugin_list_url}")

Configuration Options

Here are the available configuration options in the FastPluggyConfig class:

Option Type Default Description
app_name str "FastPluggy" Name of the application
admin_enabled bool True Whether the admin interface is enabled
fp_admin_base_url str "/admin" URL prefix for the admin interface
plugin_list_url str "https://registry.fastpluggy.xyz/plugins.json" URL for the plugin registry
show_empty_menu_entries bool True Whether to show empty menu entries
install_module_requirement_at_start bool True Whether to install module requirements at startup
session_secret_key str "your-secret-key" Secret key for session management

Environment Variables and Database Settings

Fast Pluggy can load settings from environment variables and the database:

# .env file
FASTPLUGGY_APP_NAME=My App
FASTPLUGGY_ADMIN_ENABLED=true
FASTPLUGGY_FP_ADMIN_BASE_URL=/manage
FASTPLUGGY_SESSION_SECRET_KEY=my-secret-key

The configuration system uses the following sources in order of priority:

  1. Explicitly passed settings
  2. Environment variables
  3. Secrets from files
  4. Database settings

This allows for flexible configuration management across different environments.

Advanced Configuration

Authentication Manager

You can configure Fast Pluggy with a custom authentication manager:

from fastapi import FastAPI
from fastpluggy import FastPluggy
from your_auth_package import YourAuthBackend

app = FastAPI()

# Create custom authentication backend
auth_backend = YourAuthBackend()

# Pass auth manager to Fast Pluggy
pluggy = FastPluggy(
    app,
    auth_manager=auth_backend
)

You can customize the menu system:

from fastapi import FastAPI
from fastpluggy import FastPluggy

app = FastAPI()
pluggy = FastPluggy(app)

# Access the menu manager
menu_manager = pluggy.menu_manager

# Get menu items
main_menu = menu_manager.get_menu(menu_type='main')
admin_menu = menu_manager.get_menu(menu_type='admin')

Next Steps

After configuring Fast Pluggy, learn how to manage plugins.