Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Repository files navigation

HowToCook Viewer - Visualization and website of HowToCook

MIT licensed Pipeline stat Test Coverage Man hours Website Docker

HowToCook Viewer - Visualization and website of HowToCook

screenshot

Default user name is [email protected] and default password is Admin@123456!.

Try

Try a running HowToCookViewer here.

Run in Ubuntu

The following script will install\update this app on your Ubuntu server. Supports Ubuntu 25.04.

On your Ubuntu server, run the following command:

curl -sL https://github.com/aiursoftweb/howToCookViewer/raw/master/install.sh | sudo bash

Of course it is suggested that append a custom port number to the command:

curl -sL https://github.com/aiursoftweb/howToCookViewer/raw/master/install.sh | sudo bash -s 8080

It will install the app as a systemd service, and start it automatically. Binary files will be located at /opt/apps. Service files will be located at /etc/systemd/system.

Run manually

Requirements about how to run

  1. Install .NET 10 SDK and Node.js.
  2. Execute npm install at wwwroot folder to install the dependencies.
  3. Execute dotnet run to run the app.
  4. Use your browser to view http://localhost:5000.

Run in Microsoft Visual Studio

  1. Open the .sln file in the project path.
  2. Press F5 to run the app.

Run in Docker

First, install Docker here.

Then run the following commands in a Linux shell:

image=aiursoft/howtocookviewer
appName=howtocookviewer
sudo docker pull $image
sudo docker run -d --name $appName --restart unless-stopped -p 5000:5000 -v /var/www/$appName:/data $image

That will start a web server at http://localhost:5000 and you can test the app.

The docker image has the following context:

Properties Value
Image aiursoft/howtocookviewer
Ports 5000
Binary path /app
Data path /data
Config path /data/appsettings.json

How to contribute

There are many ways to contribute to the project: logging bugs, submitting pull requests, reporting issues, and creating suggestions.

Even if you with push rights on the repository, you should create a personal fork and create feature branches there when you need them. This keeps the main repository clean and your workflow cruft out of sight.

We're also interested in your feedback on the future of this project. You can submit a suggestion or feature request through the issue tracker. To make this process more effective, we're asking that these include more information to help define them more clearly.

Search resource protection

Dashboard requests and ingredient lookups use WebTools [LimitPerMin(8)]: eight requests per minute for each resolved connection IP and request path, returning HTTP 429 before executing the action. The old AI-only limiter and its keyword-search fallback have been removed. WebTools counts route aliases separately; this change does not alter WebTools or forwarded-header trust configuration.

Both actions also share a process-local concurrency budget: at most four active requests overall and one per resolved IP, including result rendering. Concurrency rejections return HTTP 429 with Retry-After. These in-memory limits are per application instance, not shared across replicas.

Keyword search scores and pages in SQL, then selects card fields and cover images without recipe bodies or embeddings. Ingredient lookup accepts at most 100 selected IDs and returns at most 24 exact and 24 near matches, with a visible truncation notice. It ranks scalar counts before loading card data. Browser requests are debounced, and request cancellation is passed through database queries and vector search.

Releases

Packages

Contributors

Languages