Backend API for serving aula. Visit the aula documentation for more information about the project.
See SELF_HOSTING.md for up-to-date information. At the moment, running aula-backend and aula-frontend docker images is NOT enough.
See LICENSE.txt. Licensed under the EUPL-1.2 or later.
You may obtain a copy of the license at https://interoperable-europe.ec.europa.eu/collection/eupl/eupl-text-eupl-12.
Thank you for your interest. See contribution guidelines at CONTRIBUTION.md.
Choose one of the following:
# Run aula-backend:v2 locally (doesn't include the legacy aula-backend:v1)
docker compose --profile v2-only up --build -d
# Stop aula-backend:v2 and run legacy aula-backend:v1
docker compose --profile v2-only down \
&& make run-legacy-local
# Run both legacy aula-backend:v1 (:8080) and current Laravel-based aula-backend:v2 (:???)
docker build -f Dockerfile . \
&& docker compose --profile v2-only down \
&& make run-legacy-local \
&& docker compose up --build -d aula-backendWe're currently rewriting the API to use Laravel and be RESTful. New feature development using code in the ./legacy/ folder is stopped since 2025-11-15. Security patches and bugs are welcome. As parts of the system get refactored, and API clients updated, we will remove the related code from the legacy codebase.
./legacy/srccontains all PHP source files that are served by Apache2../legacy/confighas templates for configuration. You can manually edit them../legacy/inithas SQL scripts to init the legacy DB structure, for local development use only../legacy/docker-localis local-only folder bound to Docker volumes storing database and uploaded files.
You can use one of the two following:
# Run the latest published release locally
make run-legacy-release# Run locally live development environment (files you edit get updated immediately)
make run-legacy-local