A modern web interface for managing ProxySQL, built with Blazor and .NET Core.
- Dashboard with metrics
- ProxySQL management:
- Mysql backend server configuration
- Mysql Users configuration
- Query rules configuration
- Query digest grid with stats and filters
- Global variables configuration
- ASP.NET Core (.NET 8)
- Blazor Server
- Entity Framework Core
- Radzen Blazor Components
- SQLite (for auth data)
- .NET 8 SDK
- Running ProxySQL instance
- Configure ProxySQL connection in
appsettings.json
:
"ConnectionStrings": {
"ProxySqlContext": "Server=0.0.0.0;Port=6033;Uid=radmin;Pwd=radmin;ConnectionReset=False;Pooling=True;ConnectionLifeTime=3000000;"
},
"DefaultUsers": [
{
"Username": "admin",
"Password": "AdminAdminAdmin1"
}
]
- Start the application:
dotnet watch --project ProxysqlAdminUi.Web/ProxysqlAdminUi.Web.csproj
Set the environment variables in the docker-compose.yml
file:
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_URLS: 'http://+:8000'
# Connection string for the ProxySQL server
PAI_ConnectionStrings__ProxySqlContext: 'Server=xxxxxx;Port=6033;Uid=radmin;Pwd=radmin;ConnectionReset=False;Pooling=True;ConnectionLifeTime=3000000;'
or if you're running the app and the proxysql server in the same docker-compose file, you can use the service name as the host:
environment:
ASPNETCORE_ENVIRONMENT: Production
ASPNETCORE_URLS: 'http://+:8000'
# Connection string for the ProxySQL server
PAI_ConnectionStrings__ProxySqlContext: 'Server=proxysql;Port=6033;Uid=radmin;Pwd=radmin;ConnectionReset=False;Pooling=True;ConnectionLifeTime=3000000;'
One query rule can have many digests! example: if one rule matches by table prefix "ps_setting*" if there are 10 tables being accessed, via 20 queries, that would result in 40 different digests. 20 for the uncached queries and 20 for the cache hits.
Contributions are welcome! Please feel free to submit a Pull Request.