64 lines
2.9 KiB
Markdown
64 lines
2.9 KiB
Markdown
|
# 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.
|