A dashboard application for monitoring and managing OpenWebUI instances. Syncs models from multiple OpenWebUI sites into a local database and presents them in a unified overview.
- Docker and Docker Compose
- A running Traefik instance on the
frontendnetwork - API keys for each OpenWebUI instance you want to monitor
-
Clone the repository:
git clone https://github.com/itk-dev/aarhusai-overview.git cd aarhusai-overview -
Configure environment variables:
cp .env .env.local
Set the required values in
.env.local:Variable Description COMPOSE_DOMAINLocal domain for Traefik routing COMPOSE_PROJECT_NAMEDocker Compose project name DATABASE_URLDoctrine database connection string OPENWEBUI_PRODUCTION_BASE_URLBase URL of the production OpenWebUI instance OPENWEBUI_PRODUCTION_API_KEYAPI key for production OPENWEBUI_DEV_BASE_URLBase URL of the dev OpenWebUI instance OPENWEBUI_DEV_API_KEYAPI key for dev OPENWEBUI_STG_BASE_URLBase URL of the staging OpenWebUI instance OPENWEBUI_STG_API_KEYAPI key for staging -
Pull Docker images:
docker compose pull
-
Start the Docker environment:
docker compose up -d
-
Install dependencies:
docker compose exec phpfpm composer install -
Run database migrations:
docker compose exec phpfpm bin/console doctrine:migrations:migrate --no-interaction -
Create a user account:
docker compose exec phpfpm bin/console app:create-user admin@example.comA random password will be generated and printed in the terminal.
-
Access the site at
https://<COMPOSE_DOMAIN>and log in with the created credentials.
The dashboard requires login. Users are managed via the CLI:
# Create a new user (generates and displays a random password)
docker compose exec phpfpm bin/console app:create-user user@example.comPull models from all configured OpenWebUI sites:
docker compose exec phpfpm bin/console app:sync-openwebuiSync a single site:
docker compose exec phpfpm bin/console app:sync-openwebui --site=productionThe web dashboard shows a models overview with:
- Site selector pills for filtering by OpenWebUI instance
- Sortable table columns
- Health check indicators for configured instances
Styles are hand-written CSS in assets/styles/app.css and served through
Symfony AssetMapper. There is no build step — edit the file and refresh.
Typography (Fraunces, IBM Plex Sans/Mono) is loaded from Google Fonts.
# PHP (Symfony coding standards via php-cs-fixer)
docker compose exec phpfpm vendor/bin/php-cs-fixer fix
# Twig
docker compose exec phpfpm vendor/bin/twig-cs-fixer lint
# Composer validation
docker compose exec phpfpm composer validate --strict
docker compose exec phpfpm composer normalize --dry-run
# Markdown
docker compose run --rm markdownlint markdownlint '**/*.md'
# YAML and CSS (Prettier)
docker compose run --rm prettier '**/*.{yml,yaml}' --check
docker compose run --rm prettier 'assets/**/*.{css,scss}' --checkThis project is licensed under the MIT License.