{"id":30799392,"url":"https://github.com/triole/zsi","last_synced_at":"2025-09-05T19:11:53.667Z","repository":{"id":143197967,"uuid":"587438247","full_name":"triole/zsi","owner":"triole","description":"Zinc Search Indexer, crawl folders and index matching files via Zinc's HTTP API","archived":false,"fork":false,"pushed_at":"2024-03-24T19:26:05.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-03-24T20:29:35.965Z","etag":null,"topics":["command-line","search-engine","zincsearch"],"latest_commit_sha":null,"homepage":"","language":"Go","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/triole.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2023-01-10T18:50:19.000Z","updated_at":"2023-01-11T17:38:26.000Z","dependencies_parsed_at":"2023-05-23T19:00:14.358Z","dependency_job_id":null,"html_url":"https://github.com/triole/zsi","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/triole/zsi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/triole%2Fzsi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/triole%2Fzsi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/triole%2Fzsi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/triole%2Fzsi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/triole","download_url":"https://codeload.github.com/triole/zsi/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/triole%2Fzsi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273806205,"owners_count":25171569,"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","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["command-line","search-engine","zincsearch"],"created_at":"2025-09-05T19:11:41.688Z","updated_at":"2025-09-05T19:11:53.648Z","avatar_url":"https://github.com/triole.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZSI ![example workflow](https://github.com/triole/zsi/actions/workflows/build.yaml/badge.svg)\n\n\u003c!-- toc --\u003e\n\n- [Synopsis](#synopsis)\n- [Usage](#usage)\n- [Help](#help)\n\n\u003c!-- /toc --\u003e\n\n## Synopsis\n\nThe Zinc Search Indexer crawls a folder for files and triggers indexing them via the HTTP API of [Zinc](https://github.com/zinclabs/zinc). There is no logic or processing. The files aren't parsed but send to the API as they are. Using JSON files seems to be most reasonable as Zinc quite nicely indexes those providing a full text search and a simple navigation on the web interface.\n\n## Usage\n\nSettings are applied by config files which look like the one below.\n\n```go mdox-exec=\"cat examples/conf.toml\"\n[db]\nurl =  \"https://zincsearch.box\"\nuser = \"username\"\npass  = \"super_secret_pass\"\n\n[[indexers]]\nfolder = \"${HOME}/loads_of_json_files_about_nature\"\nrxmatcher = \".*/animal_.*.json$\"\nindex = \"animals\"\n\n[[indexers]]\nfolder = \"${HOME}/loads_of_json_files_about_nature\"\nrxmatcher = \".*/vegetable_.*.json$\"\nindex = \"vegetables\"\n```\n\nIf there is a configuration file named `zsi_conf.toml` you would have to pass the path to the config file as positional argument like this:\n\n```shell\nzsi ${HOME}/zsi/zsi_conf\n```\n\nNot providing an absolute path will make ZSI look for the file automatically. These folders are used for the lookup in the following order.\n\n```\n1. inside the binary's folder\n2. ${HOME}/.config/zsi\n3. ${HOME}/.conf/zsi\n```\n\nExecuting a command like `zsi animals` will make zsi look for a config file called `animals.toml` in the folders listed above. The first found will be processed.\n\n## Help\n\n```go mdox-exec=\"r -h\"\n\na zinc search indexer\n\nArguments:\n  [\u003cconfig-file\u003e]    file to process, positional arg required\n\nFlags:\n  -h, --help                      Show context-sensitive help.\n  -t, --threads=16                max indexer threads, default no of avail.\n                                  cpu threads\n  -l, --log-file=\"/dev/stdout\"    log file\n  -e, --log-level=\"info\"          log level\n  -n, --log-no-colors             disable output colours, print plain text\n  -j, --log-json                  enable json log, instead of text one\n  -d, --debug                     debug mode\n  -V, --version-flag              display version\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftriole%2Fzsi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftriole%2Fzsi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftriole%2Fzsi/lists"}