> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aikeedo.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Directory structure

> What every directory in an Aikeedo installation contains, and which ones you can safely change.

```text theme={null}
aikeedo/
├── bin/console          # Symfony Console entry point
├── bootstrap/           # autoloader, container and application bootstrap
├── config/              # providers, bootstrappers, commands, migrations, model registry
├── cron.php             # scheduled work entry point
├── data/                # seed content shipped with the release
├── docs/                # OpenAPI specifications and the API docs viewer
├── extra/               # plugins and themes
├── helpers/             # global helper functions
├── locale/              # translation catalogs and the language catalogue
├── migrations/          # database and data migrations
├── public/              # web root
├── resources/           # templates, email templates, frontend sources, static files
├── src/                 # application code
├── tests/               # test suites
├── var/                 # runtime files: cache, logs, temporary data
├── vendor/              # Composer dependencies
├── .env                 # environment configuration
└── composer.json
```

## Application code

| Path | Contents |
| - | - |
| `src/{Module}/Domain` | Entities, value objects, repository interfaces, domain events and exceptions |
| `src/{Module}/Application` | Commands, command handlers, listeners and application services |
| `src/{Module}/Infrastructure` | Doctrine repositories, adapters, module bootstrappers |
| `src/Presentation` | Request handlers, middleware, responses, resources, validation, console commands |
| `src/Shared` | Command bus, container glue, filesystem, i18n, navigation, registries, caching |
| `src/Application.php` | The application object that boots providers and bootstrappers |

See [Modules and layers](/development/core/modules-and-layers).

## Bootstrap and configuration

| Path | Purpose |
| - | - |
| `bootstrap/autoload.php` | Registers Composer's autoloader and maps the application's namespaces to `src/` |
| `bootstrap/container.php` | Loads the environment, builds configuration, registers resolvers |
| `bootstrap/app.php` | Creates the application, adds providers and bootstrappers, boots |
| `config/providers.php` | Service providers, in order |
| `config/bootstrappers.php` | Module bootstrappers, in order |
| `config/commands.php` | The console command map |
| `config/migrations.php` | Doctrine Migrations configuration |
| `config/registry/base.json` | The AI model catalog shipped with the release |
| `config/registry/registry.json` | Per-installation model customizations. Not shipped, so updates preserve it. |
| `config/registry/import.json`, `servers.json` | Importable models and OpenAI-compatible servers |

## Views and frontend

| Path | Contents |
| - | - |
| `resources/views/layouts` | Base layouts: `base`, `main`, `minimal` |
| `resources/views/templates` | Pages, grouped as `admin`, `app`, `auth` and `install` |
| `resources/views/sections`, `snippets` | Shared blocks and partials |
| `resources/views/overrides` | Optional. Templates here take precedence over the originals. |
| `resources/emails` | Email templates, in the `@emails` namespace |
| `resources/assets` | JavaScript and CSS sources built by Vite |
| `resources/static` | Files copied to the web root as-is |

## Web root

| Path | Contents |
| - | - |
| `public/index.php` | Front controller |
| `public/assets`, `public/.vite` | Built frontend bundles and their manifest |
| `public/e/{vendor}/{package}` | Assets published by plugins and themes |
| `public/uploads` | Local file storage, when the local storage adapter is used |
| `public/locale` | Browser translation catalogs |

The web root's name comes from the `PUBLIC_DIR` environment variable, so hosts that serve from `public_html` work without changes.

## Plugins and themes

| Path | Contents |
| - | - |
| `extra/extensions/{vendor}/{package}` | Installed plugins and themes |
| `extra/artifacts` | Uploaded archives, used as a Composer artifact repository |

Both are referenced as Composer path repositories, which is how a locally placed package installs by name.

## Data and runtime

| Path | Contents |
| - | - |
| `data/seeds` | Starter content imported by `app:import:seeds` |
| `locale/{code}/LC_MESSAGES/messages.po` | The application's own translations |
| `locale/locale.json` | The list of languages and the default |
| `migrations/mysql` | Doctrine schema migrations |
| `migrations/update` | Data migrations run during an update |
| `var/cache` | Twig, route, metadata and PSR-6 caches |
| `var/log` | `app-*.log` and `error-*.log`, rotated daily |
| `var/imports`, `var/tmp` | Working files |
| `var/plugin-backup` | Backups taken before a plugin reinstall |
| `var/plugin-health.json` | Recorded plugin boot failures |

<Warning>
  `var/` must be writable by the web server user, and so must the storage directory when the local adapter is used. A cron job running as a different user is a common cause of permission problems.
</Warning>

## What survives an update

| Path | On update |
| - | - |
| `src/`, `resources/` (except `overrides/`), `bootstrap/`, `config/*.php`, `migrations/`, `public/assets/` | Replaced |
| `vendor/` | Replaced, then plugin dependencies reinstalled |
| `config/registry/base.json` | Replaced. Customizations live in `registry.json`. |
| `extra/extensions/heyaikeedo/*` | Replaced with the bundled versions |
| `extra/extensions/{your-vendor}/*` | Kept and reinstalled |
| `resources/views/overrides/`, `locale/`, `.env`, `public/uploads/`, `var/` | Kept |

See [Extending Aikeedo](/development/extending-aikeedo) for what that means in practice.

## Quality tooling

| File | Tool |
| - | - |
| `phpstan.neon.dist` | Static analysis |
| `phpcs.xml.dist` | Coding standard |
| `phpmd.xml` | Mess detection |
| `phpunit.xml` | Tests |
| `vite.config.mjs`, `package.json` | Frontend build |

## Related

* [Bootstrap and lifecycle](/development/core/bootstrap-and-lifecycle)
* [Configuration](/development/core/configuration)
* [Views and frontend](/development/core/views-and-frontend)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.