|
| 1 | +[project] |
| 2 | +site_name = "FastAPI Boilerplate" |
| 3 | +site_description = "Production-ready FastAPI starter with sessions, OAuth, SQLAdmin, Taskiq, Redis caching, and a plugin-aware CLI." |
| 4 | +site_url = "https://benavlabs.github.io/FastAPI-boilerplate" |
| 5 | +docs_dir = "docs" |
| 6 | +site_dir = "site" |
| 7 | + |
| 8 | +copyright = "© 2026 Benav Labs" |
| 9 | + |
| 10 | +extra_css = ["stylesheets/extra.css"] |
| 11 | + |
| 12 | +# ============================================================================== |
| 13 | +# Theme |
| 14 | +# ============================================================================== |
| 15 | + |
| 16 | +[project.theme] |
| 17 | +variant = "modern" |
| 18 | + |
| 19 | +logo = "assets/FastAPI-boilerplate.png" |
| 20 | +favicon = "assets/FastAPI-boilerplate.png" |
| 21 | + |
| 22 | +font.text = "Ubuntu" |
| 23 | +font.code = "JetBrains Mono" |
| 24 | + |
| 25 | +features = [ |
| 26 | + "navigation.instant", |
| 27 | + "navigation.instant.prefetch", |
| 28 | + "navigation.tabs", |
| 29 | + "navigation.indexes", |
| 30 | + "navigation.top", |
| 31 | + "navigation.footer", |
| 32 | + "search.suggest", |
| 33 | + "search.highlight", |
| 34 | + "content.code.copy", |
| 35 | + "content.code.annotate", |
| 36 | + "toc.follow", |
| 37 | +] |
| 38 | + |
| 39 | +# Light/dark palette — uses brand colors via stylesheets/extra.css |
| 40 | +[[project.theme.palette]] |
| 41 | +scheme = "default" |
| 42 | +primary = "custom" |
| 43 | +accent = "custom" |
| 44 | +toggle.icon = "lucide/sun" |
| 45 | +toggle.name = "Switch to dark mode" |
| 46 | + |
| 47 | +[[project.theme.palette]] |
| 48 | +scheme = "slate" |
| 49 | +primary = "custom" |
| 50 | +accent = "custom" |
| 51 | +toggle.icon = "lucide/moon" |
| 52 | +toggle.name = "Switch to light mode" |
| 53 | + |
| 54 | +# ============================================================================== |
| 55 | +# Footer / extra |
| 56 | +# ============================================================================== |
| 57 | + |
| 58 | +[[project.extra.social]] |
| 59 | +icon = "fontawesome/brands/github" |
| 60 | +link = "https://github.com/benavlabs/fastapi-boilerplate" |
| 61 | +name = "FastAPI boilerplate on GitHub" |
| 62 | + |
| 63 | +[[project.extra.social]] |
| 64 | +icon = "fontawesome/brands/python" |
| 65 | +link = "https://pypi.org/project/fastapi/" |
| 66 | +name = "FastAPI on PyPI" |
| 67 | + |
| 68 | +# ============================================================================== |
| 69 | +# Navigation |
| 70 | +# ============================================================================== |
| 71 | + |
| 72 | +[[project.nav]] |
| 73 | +"Home" = "index.md" |
| 74 | + |
| 75 | +[[project.nav]] |
| 76 | +"Getting Started" = [ |
| 77 | + { "Overview" = "getting-started/index.md" }, |
| 78 | + { "Installation" = "getting-started/installation.md" }, |
| 79 | + { "Configuration" = "getting-started/configuration.md" }, |
| 80 | + { "First Run" = "getting-started/first-run.md" }, |
| 81 | +] |
| 82 | + |
| 83 | +[[project.nav]] |
| 84 | +"User Guide" = [ |
| 85 | + { "Overview" = "user-guide/index.md" }, |
| 86 | + { "Project Structure" = "user-guide/project-structure.md" }, |
| 87 | + { "Configuration" = [ |
| 88 | + { "Overview" = "user-guide/configuration/index.md" }, |
| 89 | + { "Environment Variables" = "user-guide/configuration/environment-variables.md" }, |
| 90 | + { "Settings Classes" = "user-guide/configuration/settings-classes.md" }, |
| 91 | + { "Docker Setup" = "user-guide/configuration/docker-setup.md" }, |
| 92 | + { "Environment-Specific" = "user-guide/configuration/environment-specific.md" }, |
| 93 | + ] }, |
| 94 | + { "Database" = [ |
| 95 | + { "Overview" = "user-guide/database/index.md" }, |
| 96 | + { "Models" = "user-guide/database/models.md" }, |
| 97 | + { "Schemas" = "user-guide/database/schemas.md" }, |
| 98 | + { "CRUD Operations" = "user-guide/database/crud.md" }, |
| 99 | + { "Migrations" = "user-guide/database/migrations.md" }, |
| 100 | + ] }, |
| 101 | + { "API" = [ |
| 102 | + { "Overview" = "user-guide/api/index.md" }, |
| 103 | + { "Endpoints" = "user-guide/api/endpoints.md" }, |
| 104 | + { "Pagination" = "user-guide/api/pagination.md" }, |
| 105 | + { "Exceptions" = "user-guide/api/exceptions.md" }, |
| 106 | + { "Versioning" = "user-guide/api/versioning.md" }, |
| 107 | + ] }, |
| 108 | + { "Authentication" = [ |
| 109 | + { "Overview" = "user-guide/authentication/index.md" }, |
| 110 | + { "Sessions" = "user-guide/authentication/sessions.md" }, |
| 111 | + { "User Management" = "user-guide/authentication/user-management.md" }, |
| 112 | + { "Permissions" = "user-guide/authentication/permissions.md" }, |
| 113 | + ] }, |
| 114 | + { "Admin Panel" = [ |
| 115 | + { "Overview" = "user-guide/admin-panel/index.md" }, |
| 116 | + { "Configuration" = "user-guide/admin-panel/configuration.md" }, |
| 117 | + { "Adding Models" = "user-guide/admin-panel/adding-models.md" }, |
| 118 | + { "User Management" = "user-guide/admin-panel/user-management.md" }, |
| 119 | + ] }, |
| 120 | + { "Caching" = [ |
| 121 | + { "Overview" = "user-guide/caching/index.md" }, |
| 122 | + { "Redis Cache" = "user-guide/caching/redis-cache.md" }, |
| 123 | + { "Client Cache" = "user-guide/caching/client-cache.md" }, |
| 124 | + { "Cache Strategies" = "user-guide/caching/cache-strategies.md" }, |
| 125 | + ] }, |
| 126 | + { "Background Tasks" = "user-guide/background-tasks/index.md" }, |
| 127 | + { "Rate Limiting" = "user-guide/rate-limiting/index.md" }, |
| 128 | + { "Development" = "user-guide/development.md" }, |
| 129 | + { "Production" = "user-guide/production.md" }, |
| 130 | + { "Testing" = "user-guide/testing.md" }, |
| 131 | +] |
| 132 | + |
| 133 | +[[project.nav]] |
| 134 | +"CLI" = [ |
| 135 | + { "Overview" = "cli/index.md" }, |
| 136 | + { "Commands" = "cli/commands.md" }, |
| 137 | + { "Plugins" = "cli/plugins.md" }, |
| 138 | +] |
| 139 | + |
| 140 | +[[project.nav]] |
| 141 | +"Community" = "community.md" |
| 142 | + |
| 143 | +# ============================================================================== |
| 144 | +# Markdown extensions |
| 145 | +# ============================================================================== |
| 146 | + |
| 147 | +[[project.markdown_extensions]] |
| 148 | +admonition = {} |
| 149 | + |
| 150 | +[[project.markdown_extensions]] |
| 151 | +"pymdownx.details" = {} |
| 152 | + |
| 153 | +[[project.markdown_extensions]] |
| 154 | +"pymdownx.highlight" = { anchor_linenums = true, line_spans = "__span", pygments_lang_class = true } |
| 155 | + |
| 156 | +[[project.markdown_extensions]] |
| 157 | +"pymdownx.inlinehilite" = {} |
| 158 | + |
| 159 | +[[project.markdown_extensions]] |
| 160 | +"pymdownx.snippets" = {} |
| 161 | + |
| 162 | +[[project.markdown_extensions]] |
| 163 | +"pymdownx.superfences" = {} |
| 164 | + |
| 165 | +[[project.markdown_extensions]] |
| 166 | +"pymdownx.tabbed" = { alternate_style = true } |
| 167 | + |
| 168 | +[[project.markdown_extensions]] |
| 169 | +"pymdownx.tasklist" = { custom_checkbox = true } |
| 170 | + |
| 171 | +[[project.markdown_extensions]] |
| 172 | +"toc" = { permalink = true } |
| 173 | + |
| 174 | +[[project.markdown_extensions]] |
| 175 | +"attr_list" = {} |
| 176 | + |
| 177 | +[[project.markdown_extensions]] |
| 178 | +"md_in_html" = {} |
0 commit comments