{"id":24987659,"url":"https://github.com/keeweb/keeweb-favicon-worker","last_synced_at":"2025-07-31T02:05:50.580Z","repository":{"id":237435816,"uuid":"794444820","full_name":"keeweb/keeweb-favicon-worker","owner":"keeweb","description":"A repository used for KeeWeb's favicon grabber service as a Cloudflare service worker","archived":false,"fork":false,"pushed_at":"2024-10-29T12:43:32.000Z","size":1052,"stargazers_count":4,"open_issues_count":3,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-10-29T21:05:59.687Z","etag":null,"topics":["cloudflare","cloudflare-worker","cloudflare-workers","favicon","favicon-downloader","favicon-site","favicons","keepass","keepassxc","keeweb","keeweb-plugin","password-manager","password-manager-cli"],"latest_commit_sha":null,"homepage":"https://services.keeweb.info/favicon","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/keeweb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["keeweb","antelle"],"patreon":null,"open_collective":"keeweb","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2024-05-01T07:14:13.000Z","updated_at":"2024-10-14T22:46:29.000Z","dependencies_parsed_at":"2024-11-06T22:33:03.584Z","dependency_job_id":"09dab9ed-8d1e-4dd2-8a84-28bc50578004","html_url":"https://github.com/keeweb/keeweb-favicon-worker","commit_stats":null,"previous_names":["keeweb/favicon-worker","keeweb/keeweb-favicon-worker"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keeweb%2Fkeeweb-favicon-worker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keeweb%2Fkeeweb-favicon-worker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keeweb%2Fkeeweb-favicon-worker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/keeweb%2Fkeeweb-favicon-worker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/keeweb","download_url":"https://codeload.github.com/keeweb/keeweb-favicon-worker/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247731066,"owners_count":20986594,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare","cloudflare-worker","cloudflare-workers","favicon","favicon-downloader","favicon-site","favicons","keepass","keepassxc","keeweb","keeweb-plugin","password-manager","password-manager-cli"],"created_at":"2025-02-04T11:48:32.394Z","updated_at":"2025-04-11T23:41:17.577Z","avatar_url":"https://github.com/keeweb.png","language":"JavaScript","funding_links":["https://github.com/sponsors/keeweb","https://github.com/sponsors/antelle","https://opencollective.com/keeweb"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\u003ch6\u003eSelf-hosted Favicon Grabber for KeeWeb\u003c/h6\u003e\n\u003ch2\u003e☁️ KeeWeb Favicon Grabber ☁️\u003c/h1\u003e\n\n\u003cbr /\u003e\n\n\u003cp\u003e\n\nA self-hosted Cloudflare worker for KeeWeb which allows you to run your own favicon grabber service. This worker is responsible for users who obtain a favicon within the KeeWeb application.\n\n\u003c/p\u003e\n\n\u003cbr /\u003e\n\n[![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/keeweb/keeweb-favicon-worker)\n\n\u003cbr /\u003e\n\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003c!-- prettier-ignore-start --\u003e\n[![Version][github-version-img]][github-version-uri]\n[![Downloads][github-downloads-img]][github-downloads-uri]\n[![Build Status][github-build-img]][github-build-uri]\n[![Size][github-size-img]][github-size-img]\n[![Last Commit][github-commit-img]][github-commit-img]\n[![Contributors][contribs-all-img]](#contributors-)\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n- [About](#about)\n- [Service Usage](#service-usage)\n- [Self-Hosted Instance](#self-hosted-instance)\n  - [Developer Notes](#developer-notes)\n    - [wrangler.toml](#wranglertoml)\n    - [Global v.s. Local Wrangler Commands](#global-vs-local-wrangler-commands)\n  - [Wrangler Commands](#wrangler-commands)\n    - [Update Wrangle](#update-wrangle)\n    - [Login](#login)\n    - [Logout](#logout)\n    - [Whoami](#whoami)\n    - [Deploy › Dev Server](#deploy--dev-server)\n    - [Deploy › Production](#deploy--production)\n    - [Deploy › Dry-run (Build)](#deploy--dry-run-build)\n    - [Deploy › Rollback](#deploy--rollback)\n    - [List Packages](#list-packages)\n    - [List Deployments](#list-deployments)\n    - [List Versions](#list-versions)\n    - [Delete](#delete)\n- [Contributors ✨](#contributors-)\n\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## About\n\nThis project is a Cloudflare service worker utilized for [KeeWeb's Favicon Grabber](https://services.keeweb.info/favicon/) and is integrated as an API end-point within the [KeeWeb Password Manager](https://keeweb.info).\n\n\u003cbr /\u003e\n\nThis worker includes the following features:\n- Favicon override using a Github repository \u003csup\u003e _`(self-hostable)`_ \u003c/sup\u003e\n- Favicon override using locally provided image URL table\n- Favicon override using locally provided SVG path\n- Works with Google, Yandex, Duckduckgo, FaviconKit, Allesedv\n- Site code scanning for favicon tags, both `link` and `svg`\n- CORS Security Headers\n- Ability to set API rate limits \u003csup\u003e _`(disabled by default)`_ \u003c/sup\u003e\n  - Daily limits OR limit X per milliseconds\n- Aggressive throttling mode \u003csup\u003e _`(disabled by default)`_ \u003c/sup\u003e\n  - Adds an incremental punishment onto the client's cooldown each time they attempt to grab a favicon when their original cooldown period has not yet expired.\n- IP blacklisting / banning\n- Supports sub-routes for users who want to add on `get`, `post` routes\n- Supports Cloudflare worker logs \u003csup\u003e _`(beta)`_ \u003c/sup\u003e\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## Service Usage\n\nFavicons can be grabbed with the following syntax:\n```\nhttps://services.keeweb.info/favicon/{DOMAIN}/{ICON_SIZE}\nhttps://services.keeweb.info/favicon/keeweb.info/64\n```\n\n\u003cbr /\u003e\n\n| Parameter | Description | Default | Status |\n| --- | --- | --- | --- |\n| \u003csub\u003e`DOMAIN`\u003c/sub\u003e | \u003csub\u003eWebsite to grab favicon for\u003cbr\u003eDoes not require the use of adding `http`, `https` or `www` to your url.\u003c/sub\u003e |  | \u003csub\u003e✔️ Required\u003c/sub\u003e |\n| \u003csub\u003e`ICON_SIZE`\u003c/sub\u003e | \u003csub\u003eSpecifies the size of the icon to return. Certain methods may not support down-sizing icons.\u003c/sub\u003e | \u003csub\u003e`32`\u003c/sub\u003e | \u003csub\u003e⭕ Optional\u003c/sub\u003e |\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## Self-Hosted Instance\nIf you wish to host your own instance of this service, you must deploy it as a Cloudflare worker, which requires you to sign up for a [Cloudflare account](https://cloudflare.com).\n\n\u003cbr /\u003e\n\nOnce you are signed up for Cloudflare, you may click the button below:\n\n\u003cbr /\u003e\n\n[![Deploy to Cloudflare Workers](https://deploy.workers.cloudflare.com/button)](https://deploy.workers.cloudflare.com/?url=https://github.com/keeweb/keeweb-favicon-worker)\n\n\u003cbr /\u003e\n\n\n\n\u003cbr /\u003e\n\n### Developer Notes\nThese are notes you should keep in mind if you plan on modifying this favicon Cloudflare worker.\n\n\u003cbr /\u003e\n\n#### wrangler.toml\nWe recommend treating your `wrangler.toml` file as the source of truth for your Worker configuration, and to avoid making changes to your Worker via the Cloudflare dashboard if you are using Wrangler.\n\nIf you need to make changes to your Worker from the Cloudflare dashboard, the dashboard will generate a TOML snippet for you to copy into your `wrangler.toml` file, which will help ensure your `wrangler.toml` file is always up to date.\n\nIf you change your environment variables in the Cloudflare dashboard, Wrangler will override them the next time you deploy. If you want to disable this behavior, add `keep_vars = true` to your `wrangler.toml`.\n\nIf you change your routes in the dashboard, Wrangler will override them in the next deploy with the routes you have set in your `wrangler.toml`. To manage routes via the Cloudflare dashboard only, remove any route and routes keys from your `wrangler.toml` file. Then add `workers_dev = false` to your `wrangler.toml` file. For more information, refer to [Deprecations](https://developers.cloudflare.com/workers/wrangler/deprecations/#other-deprecated-behavior).\n\nWrangler will not delete your secrets (encrypted environment variables) unless you run `wrangler secret delete \u003ckey\u003e`.\n\n\u003cbr /\u003e\n\n\u003e [!NOTE]\n\u003e **Experimental Config**\n\u003e \n\u003e Wrangler currently supports an `--experimental-json-config` flag, which will read your configuration from a `wrangler.json` file, rather than `wrangler.toml`. The format of this file is exactly the same as the `wrangler.toml` configuration file, except that the syntax is `JSON` rather than `TOML`. \n\u003e \n\u003e This is experimental, and is not recommended for production use.\n\n\u003cbr /\u003e\n\n#### Global v.s. Local Wrangler Commands\nSince Cloudflare recommends [installing Wrangler locally](https://developers.cloudflare.com/workers/wrangler/install-and-update/) in your project(rather than globally), the way to run Wrangler will depend on your specific setup and package manager.\n\n- [npm](https://developers.cloudflare.com/workers/wrangler/commands/#)\n- [yarn](https://developers.cloudflare.com/workers/wrangler/commands/#)\n- [pnpm](https://developers.cloudflare.com/workers/wrangler/commands/#)\n\n\u003cbr /\u003e\n\nAfter you have access to wrangler globally, you can switch over from using `npx wrangler` to just `wrangler`:\n\n\u003cbr /\u003e\n\n### Wrangler Commands\nThis section provides a reference for Wrangler commands. [Full list of commands available here](https://developers.cloudflare.com/workers/wrangler/commands/).\n\n\u003cbr /\u003e\n\nThe syntax for utilizing wrangler is as follows:\n\n```shell ignore\nnpx wrangler \u003cCOMMAND\u003e \u003cSUBCOMMAND\u003e [PARAMETERS] [OPTIONS]\n```\n\n\u003cbr /\u003e \u003cbr /\u003e\n\n#### Update Wrangle\nUpdate version of Wrangler used in your project:\n\n```shell ignore\nnpm install wrangler@latest\n```\n\n\u003cbr /\u003e \u003cbr /\u003e\n\n#### Login\nTo use Wrangler, deploy a dev server, or deploy a production build, you must be signed into your Cloudflare account via wrangler. This will be accomplished by making use of OAuth. Wrangler will attempt to automatically open your web browser to login with your Cloudflare account.\n\n\u003cbr /\u003e\n\nIf you prefer to use API tokens for authentication, such as in headless or continuous integration environments, refer to [Running Wrangler in CI/CD](https://developers.cloudflare.com/workers/wrangler/ci-cd/).\n\n\u003cbr /\u003e\n\nIf Wrangler fails to open a browser, you can copy and paste the URL generated by `wrangler login` in your terminal into a browser and log in.\n\n```shell ignore\nnpx wrangler login [OPTIONS]\n```\n\n\u003cbr /\u003e \u003cbr /\u003e\n\n#### Logout\nLogout from Cloudflare\n\n\u003cbr /\u003e\n\n```shell ignore\nnpx wrangler logout [OPTIONS]\n```\n\n\u003cbr /\u003e \u003cbr /\u003e\n\n#### Whoami\nLists all accounts associated with your Cloudflare account\n\n```shell ignore\nnpx wrangler whoami\n```\n\n\u003cbr /\u003e \u003cbr /\u003e\n\n#### Deploy › Dev Server\nLaunches local wrangler / cloudflare dev project in a test environment.\n\n```shell ignore\nnpx wrangler dev -e dev\n```\n\n\u003cbr /\u003e \u003cbr /\u003e\n\n#### Deploy › Production\nDeploy your Worker to Cloudflare.\n\n```shell ignore\nnpx wrangler deploy [\u003cSCRIPT\u003e] [OPTIONS]\n```\n\n```shell ignore\nnpx wrangler deploy --minify -e production\n```\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n#### Deploy › Dry-run (Build)\nThe following command will build a dry-run compiled version of your index.js file which will be placed in the `dist/` folder\n\n```shell ignore\nnpx wrangler deploy --dry-run --outdir dist -e production\n```\n\n\u003cbr /\u003e\n\n\u003e [!NOTE]\n\u003e None of the options for this command are required. Also, many can be set in your `wrangler.toml` file. Refer to the [`wrangler.toml` configuration](https://developers.cloudflare.com/workers/wrangler/configuration/) documentation for more information.\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n#### Deploy › Rollback\nRollback a deployment for a Worker to a previous version.\n\n```shell ignore\nnpx wrangler rollback [version-id]\n```\n\n\u003cbr /\u003e \u003cbr /\u003e\n\n#### List Packages\nCheck where wrangler (and other global packages) are installed at:\n\n```shell ignore\nnpm list -g --depth=0\n```\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n#### List Deployments\nDisplays the 10 most recent deployments of your Worker\n\n```shell ignore\nnpx wrangler deployments list\n```\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n#### List Versions\nList the 10 most recent Versions of your Worker [beta]\n\n```shell ignore\nnpx wrangler versions list\n```\n\n\u003cbr /\u003e \u003cbr /\u003e\n\n#### Delete\nDelete your Worker and all associated Cloudflare developer platform resources.\n\n```shell ignore\nnpx wrangler delete [\u003cSCRIPT\u003e] [OPTIONS]\n```\n\n\u003cbr /\u003e\u003cbr /\u003e\n\n\u003cbr /\u003e\n\n---\n\n\u003cbr /\u003e\n\n## Contributors ✨\nWe are always looking for contributors. If you feel that you can provide something useful to KeeWeb, then we'd love to review your suggestion.\n\n\u003cbr /\u003e\n\nThe following people have helped get this project going:\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --\u003e\n[![Contributors][contribs-all-img]](#contributors-)\n\u003c!-- ALL-CONTRIBUTORS-BADGE:END --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://gitlab.com/antelle\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/633557?v=4?s=40\" width=\"40px;\" alt=\"Antelle\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAntelle\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keeweb/favicon-worker/commits?author=antelle\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#projectManagement-antelle\" title=\"Project Management\"\u003e📆\u003c/a\u003e \u003ca href=\"#fundingFinding-antelle\" title=\"Funding Finding\"\u003e🔍\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://gitlab.com/Aetherinox\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/118329232?v=4?s=40\" width=\"40px;\" alt=\"Aetherinox\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAetherinox\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keeweb/favicon-worker/commits?author=Aetherinox\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#projectManagement-Aetherinox\" title=\"Project Management\"\u003e📆\u003c/a\u003e \u003ca href=\"#fundingFinding-Aetherinox\" title=\"Funding Finding\"\u003e🔍\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://gitlab.com/HarlemSquirrel\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/6445815?v=4?s=40\" width=\"40px;\" alt=\"HarlemSquirrel\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eHarlemSquirrel\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/keeweb/favicon-worker/commits?author=HarlemSquirrel\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#projectManagement-HarlemSquirrel\" title=\"Project Management\"\u003e📆\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n\u003cbr /\u003e\n\u003cbr /\u003e\n\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003c!-- BADGE \u003e GENERAL --\u003e\n  [general-npmjs-uri]: https://npmjs.com\n  [general-nodejs-uri]: https://nodejs.org\n  [general-npmtrends-uri]: http://npmtrends.com/keeweb-favicon-worker\n\n\u003c!-- BADGE \u003e VERSION \u003e GITHUB --\u003e\n  [github-version-img]: https://img.shields.io/github/v/tag/keeweb/keeweb-favicon-worker?logo=GitHub\u0026label=Version\u0026color=ba5225\n  [github-version-uri]: https://github.com/keeweb/keeweb-favicon-worker/releases\n\n\u003c!-- BADGE \u003e VERSION \u003e NPMJS --\u003e\n  [npm-version-img]: https://img.shields.io/npm/v/keeweb-favicon-worker?logo=npm\u0026label=Version\u0026color=ba5225\n  [npm-version-uri]: https://npmjs.com/package/keeweb-favicon-worker\n\n\u003c!-- BADGE \u003e VERSION \u003e PYPI --\u003e\n  [pypi-version-img]: https://img.shields.io/pypi/v/keeweb-favicon-worker\n  [pypi-version-uri]: https://pypi.org/project/keeweb-favicon-worker\n\n\u003c!-- BADGE \u003e LICENSE \u003e MIT --\u003e\n  [license-mit-img]: https://img.shields.io/badge/MIT-FFF?logo=creativecommons\u0026logoColor=FFFFFF\u0026label=License\u0026color=9d29a0\n  [license-mit-uri]: https://github.com/keeweb/keeweb-favicon-worker/blob/main/LICENSE\n\n\u003c!-- BADGE \u003e GITHUB \u003e DOWNLOAD COUNT --\u003e\n  [github-downloads-img]: https://img.shields.io/github/downloads/keeweb/keeweb-favicon-worker/total?logo=github\u0026logoColor=FFFFFF\u0026label=Downloads\u0026color=376892\n  [github-downloads-uri]: https://github.com/keeweb/keeweb-favicon-worker/releases\n\n\u003c!-- BADGE \u003e NPMJS \u003e DOWNLOAD COUNT --\u003e\n  [npmjs-downloads-img]: https://img.shields.io/npm/dw/%40keeweb%2Fkeeweb-favicon-worker?logo=npm\u0026\u0026label=Downloads\u0026color=376892\n  [npmjs-downloads-uri]: https://npmjs.com/package/keeweb-favicon-worker\n\n\u003c!-- BADGE \u003e GITHUB \u003e DOWNLOAD SIZE --\u003e\n  [github-size-img]: https://img.shields.io/github/repo-size/keeweb/keeweb-favicon-worker?logo=github\u0026label=Size\u0026color=59702a\n  [github-size-uri]: https://github.com/keeweb/keeweb-favicon-worker/releases\n\n\u003c!-- BADGE \u003e NPMJS \u003e DOWNLOAD SIZE --\u003e\n  [npmjs-size-img]: https://img.shields.io/npm/unpacked-size/keeweb-favicon-worker/latest?logo=npm\u0026label=Size\u0026color=59702a\n  [npmjs-size-uri]: https://npmjs.com/package/keeweb-favicon-worker\n\n\u003c!-- BADGE \u003e CODECOV \u003e COVERAGE --\u003e\n  [codecov-coverage-img]: https://img.shields.io/codecov/c/github/keeweb/keeweb-favicon-worker?token=MPAVASGIOG\u0026logo=codecov\u0026logoColor=FFFFFF\u0026label=Coverage\u0026color=354b9e\n  [codecov-coverage-uri]: https://codecov.io/github/keeweb/keeweb-favicon-worker\n\n\u003c!-- BADGE \u003e ALL CONTRIBUTORS --\u003e\n  [contribs-all-img]: https://img.shields.io/github/all-contributors/keeweb/keeweb-favicon-worker?logo=contributorcovenant\u0026color=de1f6f\u0026label=contributors\n  [contribs-all-uri]: https://github.com/all-contributors/all-contributors\n\n\u003c!-- BADGE \u003e GITHUB \u003e BUILD \u003e NPM --\u003e\n  [github-build-img]: https://img.shields.io/github/actions/workflow/status/keeweb/keeweb-favicon-worker/worker-publish.yml?logo=github\u0026logoColor=FFFFFF\u0026label=Build\u0026color=%23278b30\n  [github-build-uri]: https://github.com/keeweb/keeweb-favicon-worker/actions/workflows/worker-publish.yml\n\n\u003c!-- BADGE \u003e GITHUB \u003e BUILD \u003e Pypi --\u003e\n  [github-build-pypi-img]: https://img.shields.io/github/actions/workflow/status/keeweb/keeweb-favicon-worker/release-pypi.yml?logo=github\u0026logoColor=FFFFFF\u0026label=Build\u0026color=%23278b30\n  [github-build-pypi-uri]: https://github.com/keeweb/keeweb-favicon-worker/actions/workflows/pypi-release.yml\n\n\u003c!-- BADGE \u003e GITHUB \u003e TESTS --\u003e\n  [github-tests-img]: https://img.shields.io/github/actions/workflow/status/keeweb/keeweb-favicon-worker/tests.yml?logo=github\u0026label=Tests\u0026color=2c6488\n  [github-tests-uri]: https://github.com/keeweb/keeweb-favicon-worker/actions/workflows/tests.yml\n\n\u003c!-- BADGE \u003e GITHUB \u003e COMMIT --\u003e\n  [github-commit-img]: https://img.shields.io/github/last-commit/keeweb/keeweb-favicon-worker?logo=conventionalcommits\u0026logoColor=FFFFFF\u0026label=Last%20Commit\u0026color=313131\n  [github-commit-uri]: https://github.com/keeweb/keeweb-favicon-worker/commits/main/\n\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- markdownlint-restore --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeeweb%2Fkeeweb-favicon-worker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkeeweb%2Fkeeweb-favicon-worker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkeeweb%2Fkeeweb-favicon-worker/lists"}