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:
- Explicitly passed settings
- Environment variables
- Secrets from files
- 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
)
Menu Manager
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.