This page applies to Aikeedo 5.x. Class names, paths and signatures match the 5.0 source code.
Prerequisites
- A local Aikeedo installation. If you don’t have one, follow the local installation guide first.
- PHP 8.2 or newer with the
intl,gdandbcmathextensions - MySQL 8.0 or newer
- Composer 2
- Node.js 20.19+ or 22.12+ with npm, needed only for frontend work
The release archive ships with
vendor/ already installed, so you don’t need composer install to run Aikeedo. It does not ship node_modules/, so you need npm install before you can run the Vite dev server.Step 1: Configure the environment
Edit.env in the installation root:
.env
Step 2: Start the frontend dev server
Aikeedo builds the app, admin and auth bundles with Vite.How assets resolve
Templates resolve asset URLs through the
asset Twig filter. With HMR enabled, that filter points at ASSETS_SERVER instead of the manifest.
Step 3: Serve the application
Use PHP’s built-in server for local work:http://localhost:8000. Run this in a second terminal so Vite keeps running in the first.
The built-in server is single-threaded. Streamed responses, such as chat, occupy the process while they run, so a second request can appear to hang. Use
php -S with a worker-capable setup, Docker, Valet or nginx with PHP-FPM if that gets in your way.Step 4: Run cron
Scheduled work, including subscription renewals, usage resets, statistics and import jobs, runs throughcron.php. Nothing schedules it for you locally, so run it by hand when you need it:
Step 5: Use the console
bin/console exposes the Symfony Console application, including Doctrine’s commands:
See Console commands for the full list.
Development workflow
- PHP changes apply on the next request. If you add or move a route, clear the route cache or keep
CACHE=false. - Twig changes apply immediately while caching is off.
- Asset changes are rebuilt by Vite and pushed to the browser.
- Plugin and theme changes may need a cache clear, and a new plugin needs
composer require. See the plugin quickstart and theme quickstart.
Build for production
public/assets, copies resources/static into the web root, and refreshes public/.vite/manifest.json. Set HMR=0, DEBUG=false and CACHE=true before you deploy.
Troubleshooting
Pages load without styling, or the browser console shows failed asset requests
Pages load without styling, or the browser console shows failed asset requests
Vite isn’t running, or
ASSETS_SERVER doesn’t match its port. Start npm run dev, or set HMR=0 to use the built assets.A change to a Twig template has no effect
A change to a Twig template has no effect
Caching is on. Set
CACHE=false, or clear the cache from Status → Clear cache.Twig reports an undefined variable that production tolerates
Twig reports an undefined variable that production tolerates
Debug mode enables strict variables. Guard optional values with
{% if foo is defined %}.A new route returns 404
A new route returns 404
Routes are cached when
CACHE=true and DEBUG=false. Turn caching off during development, or clear the cache.Nothing is written to the log
Nothing is written to the log
Logs are in
var/log/app-YYYY-MM-DD.log and var/log/error-YYYY-MM-DD.log. Check that var/ is writable by your PHP user.