{"id":13464058,"url":"https://github.com/tarampampam/mikrotik-hosts-parser","last_synced_at":"2026-01-14T10:57:57.826Z","repository":{"id":35604537,"uuid":"39877790","full_name":"tarampampam/mikrotik-hosts-parser","owner":"tarampampam","description":"✂ Mikrotik hosts parser","archived":true,"fork":false,"pushed_at":"2024-03-16T17:21:18.000Z","size":3695,"stargazers_count":248,"open_issues_count":2,"forks_count":74,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-10-09T05:53:04.335Z","etag":null,"topics":["golang","mikrotik","parser"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tarampampam.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-07-29T06:38:28.000Z","updated_at":"2025-09-08T21:47:20.000Z","dependencies_parsed_at":"2023-02-17T20:15:26.650Z","dependency_job_id":"ef2cbc66-bafd-4ea1-9507-03328b1db905","html_url":"https://github.com/tarampampam/mikrotik-hosts-parser","commit_stats":{"total_commits":301,"total_committers":9,"mean_commits":33.44444444444444,"dds":0.5514950166112957,"last_synced_commit":"a35c7dc16a424064e3d0f5bf4595d54683e40a6f"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/tarampampam/mikrotik-hosts-parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarampampam%2Fmikrotik-hosts-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarampampam%2Fmikrotik-hosts-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarampampam%2Fmikrotik-hosts-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarampampam%2Fmikrotik-hosts-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tarampampam","download_url":"https://codeload.github.com/tarampampam/mikrotik-hosts-parser/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tarampampam%2Fmikrotik-hosts-parser/sbom","scorecard":{"id":868666,"data":{"date":"2025-08-11","repo":{"name":"github.com/tarampampam/mikrotik-hosts-parser","commit":"a35c7dc16a424064e3d0f5bf4595d54683e40a6f"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.1,"checks":[{"name":"Maintained","score":0,"reason":"project is archived","details":["Warn: Repository is archived."],"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/4 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: topLevel 'contents' permission set to 'write': .github/workflows/dependabot.yml:7","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/tests.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: third-party GitHubAction not pinned by hash: .github/workflows/dependabot.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/dependabot.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:54: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:58: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:60: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:62: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:67: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/release.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/release.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:44: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:51: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:71: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:73: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:76: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:106: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:113: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:135: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:137: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:149: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:159: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:174: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:184: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:24: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests.yml:30: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:32: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/tarampampam/mikrotik-hosts-parser/tests.yml/master?enable=pin","Warn: containerImage not pinned by hash: Dockerfile:4","Info:   0 out of  13 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  19 third-party GitHubAction dependencies pinned","Info:   0 out of   1 containerImage dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact v4.6.0 not signed: https://api.github.com/repos/tarampampam/mikrotik-hosts-parser/releases/146899376","Warn: release artifact v4.5.1 not signed: https://api.github.com/repos/tarampampam/mikrotik-hosts-parser/releases/93471955","Warn: release artifact v4.5.0 not signed: https://api.github.com/repos/tarampampam/mikrotik-hosts-parser/releases/93468654","Warn: release artifact v4.4.0 not signed: https://api.github.com/repos/tarampampam/mikrotik-hosts-parser/releases/50830340","Warn: release artifact v4.3.0 not signed: https://api.github.com/repos/tarampampam/mikrotik-hosts-parser/releases/41108929","Warn: release artifact v4.6.0 does not have provenance: https://api.github.com/repos/tarampampam/mikrotik-hosts-parser/releases/146899376","Warn: release artifact v4.5.1 does not have provenance: https://api.github.com/repos/tarampampam/mikrotik-hosts-parser/releases/93471955","Warn: release artifact v4.5.0 does not have provenance: https://api.github.com/repos/tarampampam/mikrotik-hosts-parser/releases/93468654","Warn: release artifact v4.4.0 does not have provenance: https://api.github.com/repos/tarampampam/mikrotik-hosts-parser/releases/50830340","Warn: release artifact v4.3.0 does not have provenance: https://api.github.com/repos/tarampampam/mikrotik-hosts-parser/releases/41108929"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 28 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-24T03:29:00.275Z","repository_id":35604537,"created_at":"2025-08-24T03:29:00.275Z","updated_at":"2025-08-24T03:29:00.275Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28417783,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T10:47:48.104Z","status":"ssl_error","status_checked_at":"2026-01-14T10:46:19.031Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["golang","mikrotik","parser"],"created_at":"2024-07-31T14:00:33.134Z","updated_at":"2026-01-14T10:57:57.810Z","avatar_url":"https://github.com/tarampampam.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://hsto.org/webt/rx/1t/zd/rx1tzde8lrw8gqijqzdayj1gz1g.png\" alt=\"Logo\" width=\"128\" /\u003e\n\u003c/p\u003e\n\n# MikroTik hosts parser\n\n![Release version][badge_release_version]\n[![Build Status][badge_build]][link_build]\n[![Coverage][badge_coverage]][link_coverage]\n[![Image size][badge_size_latest]][link_docker_hub]\n[![License][badge_license]][link_license]\n\nThis application provides HTTP server, that can generate script for RouterOS-based routers for blocking \"AD\" hosts using 3rd party host-lists (available by HTTP):\n\n```routeros\n## Limit: 5000\n## Cache lifetime: 30m0s\n## Format: routeros\n## Redirect to: 127.0.0.1\n## Sources list:\n##  - \u003chttps://adaway.org/hosts.txt\u003e\n##  - \u003chttps://www.malwaredomainlist.com/hostslist/hosts.txt\u003e\n## Excluded hosts:\n##  - broadcasthost\n##  - ip6-allhosts\n##  - ip6-allnodes\n##  - ip6-allrouters\n## Cache HIT for \u003chttps://adaway.org/hosts.txt\u003e (expires after 25m55s)\n## Cache miss for \u003chttps://www.malwaredomainlist.com/hostslist/hosts.txt\u003e\n\n/ip dns static\nadd address=127.0.0.1 comment=\"ADBlock\" disabled=no name=\"1-1ads.com\"\nadd address=127.0.0.1 comment=\"ADBlock\" disabled=no name=\"101com.com\"\nadd address=127.0.0.1 comment=\"ADBlock\" disabled=no name=\"101order.com\"\nadd address=127.0.0.1 comment=\"ADBlock\" disabled=no name=\"123freeavatars.com\"\n\n# ...\n```\n\nHosts file format ([example](https://cdn.jsdelivr.net/gh/tarampampam/mikrotik-hosts-parser@master/.hosts/basic.txt)):\n\n```\n# Any comments\n127.0.0.1   1-1ads.com\n127.0.0.1   101com.com 101order.com\n0.0.0.0     123freeavatars.com\n```\n\nAll what you need is:\n\n- Start current application HTTP server\n- Make an HTTP request to the script generator endpoint `/script/source?sources_urls=...` with all required parameters (like records limit, hosts file URLs, exclusion list and others)\n- Generated script source execute on your RouterOS-based hardware\n\nMore information can be [found here][link_habr_post].\n\n\u003e Previous version (PHP) can be found in [`php-version` branch](https://github.com/tarampampam/mikrotik-hosts-parser/tree/php-version).\n\n## Installing\n\nDownload latest binary file for your os/arch from [releases page][link_releases] or use our [docker image][link_docker_hub] ([ghcr.io][link_ghcr]). Also you may need in configuration file [`./configs/config.yml`](configs/config.yml) and [`./web`](web) directory content for web UI access.\n\n## Usage\n\nThis application supports next sub-commands:\n\n| Sub-command   | Description                                                                               |\n|---------------|-------------------------------------------------------------------------------------------|\n| `serve`       | Start HTTP server                                                                         |\n| `healthcheck` | Health checker for the HTTP server (use case - docker healthcheck) _(hidden in CLI help)_ |\n| `version`     | Display application version                                                               |\n\nAnd global flags:\n\n| Flag              | Description         |\n|-------------------|---------------------|\n| `--verbose`, `-v` | Verbose output      |\n| `--debug`         | Debug output        |\n| `--log-json`      | Logs in JSON format |\n\n### HTTP server starting\n\n`serve` sub-command allows to use next flags:\n\n| Flag                    | Description                                                          | Default value              | Environment variable |\n|-------------------------|----------------------------------------------------------------------|----------------------------|----------------------|\n| `--listen`, `-l`        | IP address to listen on                                              | `0.0.0.0` (all interfaces) | `LISTEN_ADDR`        |\n| `--port`, `-p`          | TCP port number                                                      | `8080`                     | `LISTEN_PORT`        |\n| `--resources-dir`, `-r` | Path to the directory with public assets                             | `./web`                    | `RESOURCES_DIR`      |\n| `--config`, `-c`        | Config file path                                                     | `./configs/config.yml`     | `CONFIG_PATH`        |\n| `--caching-engine`      | Caching engine (`memory` or `redis`)                                 | `memory`                   | `CACHING_ENGINE`     |\n| `--cache-ttl`           | Cached entries lifetime (examples: `50s`, `1h30m`)                   | `30m`                      | `CACHE_TTL`          |\n| `--redis-dsn`           | Redis server DSN, required only if `redis` caching engine is enabled | `redis://127.0.0.1:6379/0` | `REDIS_DSN`          |\n\n\u003e Environment variables have higher priority then flag values.\n\nServer starting command example:\n\n```shell\n$ ./mikrotik-hosts-parser serve \\\n    --config ./configs/config.yml \\\n    --listen 0.0.0.0 \\\n    --port 8080 \\\n    --resources-dir ./web\n```\n\nThis command will start HTTP server using configuration from `./configs/config.yml` on TCP port `8080` and use directory `./web` for serving static files. Configuration file well-documented, so, feel free to change any settings on your choice!\n\n\u003e Configuration file allows you to use environment variables with default values ([used library](https://github.com/a8m/envsubst))!\n\nAfter that you can navigate your browser to `http://127.0.0.1:8080/` and you will see something like that:\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://hsto.org/webt/k-/2f/ju/k-2fju1fgkbrsujcv15f-msgx2w.png\" alt=\"screenshot\" width=\"880\" /\u003e\n\u003c/p\u003e\n\nSpecial endpoint `/script/source?sources_urls=...` generates RouterOS-based script using passed http-get parameters _(watch examples on index page)_.\n\n### Using docker\n\n[![image stats](https://dockeri.co/image/tarampampam/mikrotik-hosts-parser)][link_docker_hub]\n\n\u003e All supported image tags [can be found here][link_docker_hub] and [here][link_ghcr].\n\nJust execute in your terminal:\n\n```shell\n$ docker run --rm -p 8080:8080/tcp tarampampam/mikrotik-hosts-parser:X.X.X\n```\n\nWhere `X.X.X` is image tag _(application version)_.\n\n## Demo\n\nI can't guarantee that this links will available forever, but you can use this application by the following links:\n\n- \u003chttps://stopad.cgood.ru/\u003e\n\n## Testing\n\nFor application testing and building we use built-in golang testing feature and `docker-ce` + `docker-compose` as develop environment. So, just write into your terminal after repository cloning:\n\n```shell\n$ make test\n```\n\nOr build the binary file:\n\n```shell\n$ make build\n```\n\n## Releasing\n\nNew versions publishing is very simple - just make required changes in this repository, update [changelog file](CHANGELOG.md) and \"publish\" new release using repo releases page.\n\nBinary files and docker images will be build and published automatically.\n\n\u003e New release will overwrite the `latest` docker image tag in both registers.\n\n## Changes log\n\n[![Release date][badge_release_date]][link_releases]\n[![Commits since latest release][badge_commits_since_release]][link_commits]\n\nChanges log can be [found here][link_changes_log].\n\n## Support\n\n[![Issues][badge_issues]][link_issues]\n[![Issues][badge_pulls]][link_pulls]\n\nIf you will find any package errors, please, [make an issue][link_create_issue] in current repository.\n\n## License\n\nThis is open-sourced software licensed under the [MIT License][link_license].\n\n[badge_build]:https://img.shields.io/github/actions/workflow/status/tarampampam/mikrotik-hosts-parser/tests.yml?branch=master\u0026maxAge=30\n[badge_coverage]:https://img.shields.io/codecov/c/github/tarampampam/mikrotik-hosts-parser/master.svg?maxAge=30\n[badge_release_version]:https://img.shields.io/github/release/tarampampam/mikrotik-hosts-parser.svg?maxAge=30\n[badge_size_latest]:https://img.shields.io/docker/image-size/tarampampam/mikrotik-hosts-parser/latest?maxAge=30\n[badge_license]:https://img.shields.io/github/license/tarampampam/mikrotik-hosts-parser.svg?longCache=true\n[badge_release_date]:https://img.shields.io/github/release-date/tarampampam/mikrotik-hosts-parser.svg?maxAge=180\n[badge_commits_since_release]:https://img.shields.io/github/commits-since/tarampampam/mikrotik-hosts-parser/latest.svg?maxAge=45\n[badge_issues]:https://img.shields.io/github/issues/tarampampam/mikrotik-hosts-parser.svg?maxAge=45\n[badge_pulls]:https://img.shields.io/github/issues-pr/tarampampam/mikrotik-hosts-parser.svg?maxAge=45\n\n[link_coverage]:https://codecov.io/gh/tarampampam/mikrotik-hosts-parser\n[link_build]:https://github.com/tarampampam/mikrotik-hosts-parser/actions\n[link_docker_hub]:https://hub.docker.com/r/tarampampam/mikrotik-hosts-parser/\n[link_ghcr]:https://github.com/users/tarampampam/packages/container/package/mikrotik-hosts-parser\n[link_docker_hub_tags]:https://hub.docker.com/r/tarampampam/mikrotik-hosts-parser/tags\n[link_license]:https://github.com/tarampampam/mikrotik-hosts-parser/blob/master/LICENSE\n[link_releases]:https://github.com/tarampampam/mikrotik-hosts-parser/releases\n[link_commits]:https://github.com/tarampampam/mikrotik-hosts-parser/commits\n[link_changes_log]:https://github.com/tarampampam/mikrotik-hosts-parser/blob/master/CHANGELOG.md\n[link_issues]:https://github.com/tarampampam/mikrotik-hosts-parser/issues\n[link_create_issue]:https://github.com/tarampampam/mikrotik-hosts-parser/issues/new/choose\n[link_pulls]:https://github.com/tarampampam/mikrotik-hosts-parser/pulls\n\n[link_habr_post]:https://habr.com/ru/post/264001/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarampampam%2Fmikrotik-hosts-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftarampampam%2Fmikrotik-hosts-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftarampampam%2Fmikrotik-hosts-parser/lists"}