mash-playbook/docs/services/apisix-dashboard.md

64 lines
2.9 KiB
Markdown
Raw Permalink Normal View History

2024-01-23 14:08:31 +01:00
# APISIX Dashboard
[APISIX Dashboard](https://apisix.apache.org/docs/dashboard/USER_GUIDE/) is a web UI for [APISIX Gateway](./apisix-gateway.md).
It works by directly editing the [etcd](./etcd.md) database that APISIX Gateway stores its data in.
## Dependencies
This service requires the following other services:
- a [Traefik](traefik.md) reverse-proxy server
- an [etcd](etcd.md) key-value store
- (optional) [APISIX Gateway](./apisix-gateway.md) - there's no point in administrating APISIX Gateway configuration stored in etcd without having an APISIX Gateway instance to initialize and consume it
## Configuration
To enable this service, add the following configuration to your `vars.yml` file and re-run the [installation](../installing.md) process:
```yaml
########################################################################
# #
# apisix_dashboard #
# #
########################################################################
apisix_dashboard_enabled: true
apisix_dashboard_hostname: dashboard.api.example.com
# A strong secret for JWT authentication
apisix_dashboard_config_authentication_secret: ''
apisix_dashboard_config_authentication_users:
- username: admin
password: password-here
########################################################################
# #
# /apisix_dashboard #
# #
########################################################################
```
If you'd like to do something more advanced, the [`ansible-role-apisix-dashboard` Ansible role](https://github.com/mother-of-all-self-hosting/ansible-role-apisix-dashboard) is very configurable and should not get in your way of exposing ports or configuring arbitrary settings.
Take a look at [its `default/main.yml` file](https://github.com/mother-of-all-self-hosting/ansible-role-apisix-dashboard/blob/main/defaults/main.yml) for available Ansible variables you can use in your own `vars.yml` configuration file.
### URL
In the example configuration above, we configure APISIX Dashboard to expose itself at: `https://dashboard.api.example.com`
### Authentication
The example above uses the built-in login page of APISIX Dashboard with a list of users is defined via `apisix_dashboard_config_authentication_users`.
APISIX Dashboard also supports OpenID Connect providers. It can be enabled and configured via various `apisix_dashboard_config_oidc_*` Ansible variables.
## Usage
After installation, you can visit the APISIX Dashboard URL and authenticate with a credential as specified in `apisix_dashboard_config_authentication_users`. If you've enabled OpenID Connect, you may also be able to authenticate with that.