OpenALPR Webhook Processor for IP Cameras

Something interesting, if I have a plate set for an alert in OpenALPR, it gives me the plate twice in the webhook processor UI

1612302701459.png
 
I think pagination is currently broken insofar as it deals with searching for a plate. Its easy to reproduce the issue. Go ahead and hit the next page arrow a dozen times or more and click on a random plate. Then hit "Search for Plate". When you do that, it gives you search results that will probably be blank. Look at the page arrows on the search results page. You will probably have to click the left (back) arrow a bunch of times to actually show the results. What I think is happening is the search is remembering the pagination you searched from and not showing you to the first results of the search. So the results page is blank until you "back up" to the first results.

EDIT: Actually you don't even have to use the "Search for Plate" button to reproduce the issue. Go ahead and navigate in about a dozen or so pages and then type in a random plate that you know passed in front of the camera at some point. If you notice when you hit apply, the search results keep you on the page you navigate into when you searched so your search results page will probably be blank again (unless that car really passes by TONS of times a day). You will have to use the left arrow to navigate back to the first few pages where the plate results can actually be seen.
 
Last edited:
Is it possible to do a wildcard search? I'm looking for a plate ending in 9E9 however my OpenALPR only goes back 5 days, Webhook goes much further but I can't seem to do a wildcard
 
I am looking for a little help to get this running on my Windows 10 machine using Docker. I am new to Docker but have gotten the openALPRagent running and working in Docker so I thought this would be just as easy.

I pulled the openalprwebhookprocessor image into Docker and try to it. I haven't done anything other than that at this point, No Webhook configuration, No port forwarding or anything. I just hit run in Docker and up pops the optional settings (which I didn't change) then hit RUN. it runs for a second then exits. I get the attached error in the log.

There must be some other steps I am missing but just can't figure it out.

Can someone give a couple of pointers/steps I am needing to move this along a little further.

Thanks

Unhandled exception. Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 14: 'unable to open database file'.
at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
at Microsoft.Data.Sqlite.SqliteConnection.Open()
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.Sqlite.Storage.Internal.SqliteDatabaseCreator.Create()
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
at OpenAlprWebhookProcessor.Startup.ConfigureServices(IServiceCollection services) in /src/Startup.cs:line 60
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.InvokeCore(Object instance, IServiceCollection services)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass9_0.<Invoke>g__Startup|0(IServiceCollection serviceCollection)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.Invoke(Object instance, IServiceCollection services)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass8_0.<Build>b__0(IServiceCollection services)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.UseStartup(Type startupType, HostBuilderContext context, IServiceCollection services, Object instance)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__0(HostBuilderContext context, IServiceCollection services)
at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at OpenAlprWebhookProcessor.Program.Main(String[] args) in /src/Program.cs:line 19
 
Is it possible to do a wildcard search? I'm looking for a plate ending in 9E9 however my OpenALPR only goes back 5 days, Webhook goes much further but I can't seem to do a wildcard
Wildcards aren't implemented yet I don't believe. But you should be able to type in those three letters/numbers and get a result.
 
Wildcards aren't implemented yet I don't believe. But you should be able to type in those three letters/numbers and get a result.

Perfect! I didn't know that was a feature, I guess they haven't been around here in the day as nothing comes up. I tried with another plate and it works just the way you say
 
I am looking for a little help to get this running on my Windows 10 machine using Docker. I am new to Docker but have gotten the openALPRagent running and working in Docker so I thought this would be just as easy.

I pulled the openalprwebhookprocessor image into Docker and try to it. I haven't done anything other than that at this point, No Webhook configuration, No port forwarding or anything. I just hit run in Docker and up pops the optional settings (which I didn't change) then hit RUN. it runs for a second then exits. I get the attached error in the log.

There must be some other steps I am missing but just can't figure it out.

Can someone give a couple of pointers/steps I am needing to move this along a little further.

Thanks

Unhandled exception. Microsoft.Data.Sqlite.SqliteException (0x80004005): SQLite Error 14: 'unable to open database file'.
at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
at Microsoft.Data.Sqlite.SqliteConnection.Open()
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenDbConnection(Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.OpenInternal(Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.Storage.RelationalConnection.Open(Boolean errorsExpected)
at Microsoft.EntityFrameworkCore.Sqlite.Storage.Internal.SqliteDatabaseCreator.Create()
at Microsoft.EntityFrameworkCore.Migrations.Internal.Migrator.Migrate(String targetMigration)
at Microsoft.EntityFrameworkCore.RelationalDatabaseFacadeExtensions.Migrate(DatabaseFacade databaseFacade)
at OpenAlprWebhookProcessor.Startup.ConfigureServices(IServiceCollection services) in /src/Startup.cs:line 60
at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.InvokeCore(Object instance, IServiceCollection services)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass9_0.<Invoke>g__Startup|0(IServiceCollection serviceCollection)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.Invoke(Object instance, IServiceCollection services)
at Microsoft.AspNetCore.Hosting.ConfigureServicesBuilder.<>c__DisplayClass8_0.<Build>b__0(IServiceCollection services)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.UseStartup(Type startupType, HostBuilderContext context, IServiceCollection services, Object instance)
at Microsoft.AspNetCore.Hosting.GenericWebHostBuilder.<>c__DisplayClass13_0.<UseStartup>b__0(HostBuilderContext context, IServiceCollection services)
at Microsoft.Extensions.Hosting.HostBuilder.CreateServiceProvider()
at Microsoft.Extensions.Hosting.HostBuilder.Build()
at OpenAlprWebhookProcessor.Program.Main(String[] args) in /src/Program.cs:line 19
What image did you pull? When I get home I'll see what image I'm running. I see he uploaded several alphas to Dockerhub in the last 24 hours but he hasn't announced what they are for yet so I'm still running an older one that works.
 
What image did you pull? When I get home I'll see what image I'm running. I see he uploaded several alphas to Dockerhub in the last 24 hours but he hasn't announced what they are for yet so I'm still running an older one that works.

How can you find the version of the image you are running in Docker?
 
Well what image did you pull when you ran docker run ...? Did you just specify latest or did you pull a specific image version?

I'm running v3.2.4 which is working great. His docker cli commands on his repo page are missing the config directory though unless its no longer needed. Here is the cli I ran when I pulled the v3.2.4 image down:

Bash:
#!/bin/bash

docker run -d \
--name=openalprwebhookprocessor \
--restart unless-stopped \
--net=bridge \
-v /home/joe/webhook_alpr/app/config/:/app/config/ \
-p 3859:80 \
mlapaglia/openalprwebhookprocessor:v3.2.4

I'm wondering if I no longer have to specify that config directory any longer since he doesn't show it on this repo homepage. The first few versions of his service required that directory to be mapped because that the is the directory locations of the .db files. Hopefully he will chime in soon.

I think his docs may be a bit out of date because he still makes reference to the appsettings.json file and I know that was removed several versions ago. You now configure all of that from the gui in the web interface.
 
Last edited:
Ok, so v3.2.4 has the same digest as latest according to his docker hub page so that is the version I'm also running. I think you still have to create a directory to store the .db files into like I have in my cli command above. So you need to remove the container (docker rm openalprwebhookprocessor) and then use my cli above as a guide to re-pull it correctly mapping a config directory you create.
 
Thanks, the CLI command got my container running. Now to figure out the next steps, such as the username and password. :) Like I said I am new to this and trying to learn how to use Docker and this program.
 
Just create a new user/password with the "register" button and then enter the gui and setup your camera and agent information from there.
 
I seem to be having an issue with getting everything configured correctly. When I go in to setup the Webhook in the dashboard on Rekor I get the following error about unable to find the index.html.




[15:27:06 INF] Request starting HTTP/1.1 POST application/json 28
[15:27:06 ERR] HTTP POST / responded 500 in 0.9299 ms
System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.
Your application is running in Production mode, so make sure it has been published, or that you have built your SPA manually. Alternatively you may wish to switch to the Development environment.

at Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware.<>c__DisplayClass0_0.<Attach>b__1(HttpContext context, Func`1 next)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at OpenAlprWebhookProcessor.Users.JwtMiddleware.Invoke(HttpContext context, IUserService userService) in /src/Users/JwtMiddleware.cs:line 43
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
[15:27:06 ERR] An unhandled exception has occurred while executing the request.
System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.
Your application is running in Production mode, so make sure it has been published, or that you have built your SPA manually. Alternatively you may wish to switch to the Development environment.

at Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware.<>c__DisplayClass0_0.<Attach>b__1(HttpContext context, Func`1 next)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at OpenAlprWebhookProcessor.Users.JwtMiddleware.Invoke(HttpContext context, IUserService userService) in /src/Users/JwtMiddleware.cs:line 43
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
[15:27:06 ERR] HTTP POST / responded 500 in 0.5693 ms
System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.
Your application is running in Production mode, so make sure it has been published, or that you have built your SPA manually. Alternatively you may wish to switch to the Development environment.

at Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware.<>c__DisplayClass0_0.<Attach>b__1(HttpContext context, Func`1 next)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at OpenAlprWebhookProcessor.Users.JwtMiddleware.Invoke(HttpContext context, IUserService userService) in /src/Users/JwtMiddleware.cs:line 43
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
[15:27:06 ERR] An exception was thrown attempting to execute the error handler.
System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.
Your application is running in Production mode, so make sure it has been published, or that you have built your SPA manually. Alternatively you may wish to switch to the Development environment.

at Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware.<>c__DisplayClass0_0.<Attach>b__1(HttpContext context, Func`1 next)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at OpenAlprWebhookProcessor.Users.JwtMiddleware.Invoke(HttpContext context, IUserService userService) in /src/Users/JwtMiddleware.cs:line 43
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.HandleException(HttpContext context, ExceptionDispatchInfo edi)
[15:27:06 ERR] Connection id "0HM6A23IM3AF4", Request id "0HM6A23IM3AF4:00000002": An unhandled exception was thrown by the application.
System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.
Your application is running in Production mode, so make sure it has been published, or that you have built your SPA manually. Alternatively you may wish to switch to the Development environment.

at Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware.<>c__DisplayClass0_0.<Attach>b__1(HttpContext context, Func`1 next)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at OpenAlprWebhookProcessor.Users.JwtMiddleware.Invoke(HttpContext context, IUserService userService) in /src/Users/JwtMiddleware.cs:line 43
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.HandleException(HttpContext context, ExceptionDispatchInfo edi)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
[15:27:06 INF] Request finished HTTP/1.1 POST application/json 28 - 500 0 - 10.6671ms
 
I seem to be having an issue with getting everything configured correctly. When I go in to setup the Webhook in the dashboard on Rekor I get the following error about unable to find the index.html.




[15:27:06 INF] Request starting HTTP/1.1 POST application/json 28
[15:27:06 ERR] HTTP POST / responded 500 in 0.9299 ms
System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.
Your application is running in Production mode, so make sure it has been published, or that you have built your SPA manually. Alternatively you may wish to switch to the Development environment.

at Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware.<>c__DisplayClass0_0.<Attach>b__1(HttpContext context, Func`1 next)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at OpenAlprWebhookProcessor.Users.JwtMiddleware.Invoke(HttpContext context, IUserService userService) in /src/Users/JwtMiddleware.cs:line 43
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
[15:27:06 ERR] An unhandled exception has occurred while executing the request.
System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.
Your application is running in Production mode, so make sure it has been published, or that you have built your SPA manually. Alternatively you may wish to switch to the Development environment.

at Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware.<>c__DisplayClass0_0.<Attach>b__1(HttpContext context, Func`1 next)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at OpenAlprWebhookProcessor.Users.JwtMiddleware.Invoke(HttpContext context, IUserService userService) in /src/Users/JwtMiddleware.cs:line 43
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
[15:27:06 ERR] HTTP POST / responded 500 in 0.5693 ms
System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.
Your application is running in Production mode, so make sure it has been published, or that you have built your SPA manually. Alternatively you may wish to switch to the Development environment.

at Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware.<>c__DisplayClass0_0.<Attach>b__1(HttpContext context, Func`1 next)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at OpenAlprWebhookProcessor.Users.JwtMiddleware.Invoke(HttpContext context, IUserService userService) in /src/Users/JwtMiddleware.cs:line 43
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
[15:27:06 ERR] An exception was thrown attempting to execute the error handler.
System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.
Your application is running in Production mode, so make sure it has been published, or that you have built your SPA manually. Alternatively you may wish to switch to the Development environment.

at Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware.<>c__DisplayClass0_0.<Attach>b__1(HttpContext context, Func`1 next)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at OpenAlprWebhookProcessor.Users.JwtMiddleware.Invoke(HttpContext context, IUserService userService) in /src/Users/JwtMiddleware.cs:line 43
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.HandleException(HttpContext context, ExceptionDispatchInfo edi)
[15:27:06 ERR] Connection id "0HM6A23IM3AF4", Request id "0HM6A23IM3AF4:00000002": An unhandled exception was thrown by the application.
System.InvalidOperationException: The SPA default page middleware could not return the default page '/index.html' because it was not found, and no other middleware handled the request.
Your application is running in Production mode, so make sure it has been published, or that you have built your SPA manually. Alternatively you may wish to switch to the Development environment.

at Microsoft.AspNetCore.SpaServices.SpaDefaultPageMiddleware.<>c__DisplayClass0_0.<Attach>b__1(HttpContext context, Func`1 next)
at Microsoft.AspNetCore.StaticFiles.StaticFileMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at OpenAlprWebhookProcessor.Users.JwtMiddleware.Invoke(HttpContext context, IUserService userService) in /src/Users/JwtMiddleware.cs:line 43
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Serilog.AspNetCore.RequestLoggingMiddleware.Invoke(HttpContext httpContext)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.HandleException(HttpContext context, ExceptionDispatchInfo edi)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
at Microsoft.AspNetCore.Server.Kestrel.Core.Internal.Http.HttpProtocol.ProcessRequests[TContext](IHttpApplication`1 application)
[15:27:06 INF] Request finished HTTP/1.1 POST application/json 28 - 500 0 - 10.6671ms
When you hit "test webhooks" in the OpenALPR webhook dashboard, are you getting a 200 response code? You did forward that port to your host running the docker container right? It looks like you may have a forward slash (/) at the end of your address after the port. Remove that.

If you are running this from Docker on Windows then you will probably have to create a firewall rule that allows ingress to the host.
 
Last edited:
When you hit "test webhooks" in the OpenALPR webhook dashboard, are you getting a 200 response code? You did forward that port to your host running the docker container right? It looks like you may have a forward slash (/) at the end of your address after the port. Remove that.

If you are running this from Docker on Windows then you will probably have to create a firewall rule that allows ingress to the host.


I did forward the port to this machine. I can see the logs getting the POSTThe forward slash isn't on the configuration screen.

When I run a test this is what I get ...

WebHooks Test Succeeded
Server response content:
Server responded with HTTP Code: 500


1612630658374.png
 
It needs ip:port/webhook in the OpenALPR webhook address. When. I get home ill verify.

Check his wiki on the repo in the meantime.
 
Last edited:
The address that goes in the OpenALPR webhook section is http://address:dockerport/webhook. I think you are missing the /webhook at the end of the address.
 
The address that goes in the OpenALPR webhook section is http://address:dockerport/webhook. I think you are missing the /webhook at the end of the address.


Yes I saw that in his wiki and made the change. I got my first plate hit and plate into the Database. But I'm not getting any images on this screen.

Plus I think I have my camera setup but not sure what should be in the Camera Text Overlay URL. When I press test on the camera setup I dont get anything returned.


1612641815728.png

1612641644247.png