Ckan torrent
Author: p | 2025-04-25
CKAN extension that enables creating torrent files (seeding, tracking) - microcomp/ckanext-torrent
Torrent downloads Issue 783 KSP-CKAN/CKAN - GitHub
Ckan-solrPre-configured Solr Docker images for CKAN.Note: These images are built on top of the upstream Solr images. These images receive bug fixes from time to time which we pull into ours, but you won't get them unless you re-pull the CKAN Solr image.The recommended Solr version for the currently supported CKAN version is Solr 9.You can get a local Solr instance targeting a specific CKAN version by running the following command:docker run --name ckan-solr -p 8983:8983 -d ckan/ckan-solr:2.11-solr9The following versions are available as different image tags:CKAN VersionSolr versionDocker tagNotes2.11Solr 9ckan/ckan-solr:2.11-solr9, ckan/ckan-solr:2.11-solr9.8This is the recommended version if you are unsure which one to use2.11Solr 9ckan/ckan-solr:2.10-solr9-spatial, ckan/ckan-solr:2.10-solr9.8-spatialContains fields needed for the ckanext-spatial geo search2.10Solr 9ckan/ckan-solr:2.10-solr9, ckan/ckan-solr:2.10-solr9.82.10Solr 9ckan/ckan-solr:2.10-solr9-spatial, ckan/ckan-solr:2.10-solr9.8-spatialContains fields needed for the ckanext-spatial geo search2.10Solr 8ckan/ckan-solr:2.10-solr8 (previously ckan/ckan-solr:2.10)2.10Solr 8ckan/ckan-solr:2.10-solr8-spatial (previously ckan/ckan-solr:2.10-spatial)Contains fields needed for the ckanext-spatial geo searchmasterSolr 9ckan/ckan-solr:masterThe master image is built nightlyThe following tags are no longer supported:CKAN VersionSolr versionDocker tagLegacy Docker tagsNotes2.7Solr 6ckan/ckan-solr:2.7ckan/ckan-solr-dev:2.72.8Solr 6ckan/ckan-solr:2.8ckan/ckan-solr-dev:2.82.9Solr 6ckan/ckan-solr:2.9ckan/ckan-solr-dev:2.92.9Solr 9ckan/ckan-solr:2.9-solr9Requires at least CKAN 2.9.52.9Solr 9ckan/ckan-solr:2.9-solr9-spatialContains fields needed for the ckanext-spatial geo search2.9Solr 8ckan/ckan-solr:2.9-solr8Requires at least CKAN 2.9.52.9Solr 8ckan/ckan-solr:2.9-solr8-spatialContains fields needed for the ckanext-spatial geo searchAll these images expose the CKAN Solr endpoint at so that's what you should set the value of solr_url in your ini file to.Building the imagesGo to the relevant folder for the Solr version (eg solr-9) and use the Makefile included:# Default version is 2.11make build# Specify a different versionmake build CKAN_VERSION=2.10Use your own configuration filesIf you want to play around with the solr config files you can copy them from the container to your local host and then run the container with a bind mount.Run a container:docker run --name ckan-solr -p 8983:8983 -d ckan/ckan-solr:2.11-solr9Copy the config file of the target core to your machine (eg ckan):docker cp ckan-solr:/opt/solr/server/solr/configsets/ckan/conf ./my_confStop the container:Run the container with a bind mount:docker run -p 8983:8983 --mount type=bind,source="$(pwd)"/my_conf,target=/opt/solr/server/solr/configsets/ckan/conf -d ckan/ckan-solr:2.11-solr9Edit your local filesReload the core using the Solr admin page: Metadata repository ishosted on github.ValidationA JSON Schema is provided for validation purposes.Any CKAN file must conform to this schema to be considered valid.The CKAN fileA CKAN file is designed to contain all the relevant meta-infoabout a mod, including its name, license, download location,dependencies, compatible versions of KSP, and the like. CKANfiles are simply JSON files using UTF-8 as character-encoding.Except where stated otherwise all strings should be printable unicode only.CKAN files should have a naming scheme of their mod's identifier,followed by a dash, followed by the version number, followed bythe extension .ckan. For example: RealSolarSystem-7.3.ckan.The CKAN metadata spec is inspired by theCPAN metadata spec,the Debian Policy Manualand theKSP-RealSolarSystem-BundlerExample CKAN file { "spec_version" : 1, "name" : "Advanced Jet Engine (AJE)", "abstract" : "Realistic jet engines for KSP", "identifier" : "AJE", "download" : " "license" : "LGPL-2.1", "version" : "1.6", "release_status" : "stable", "ksp_version" : "0.25", "resources" : { "homepage" : " "repository" : " }, "tags" : [ "physics", "resources", "atmospheric", "engines", "nasa-enginesim", "b9-turbofans" ], "install" : [ { "file" : "AJE-1.6", "install_to" : "GameData" } ], "depends" : [ { "name" : "FerramAerospaceResearch" }, { "name" : "ModuleManager", "min_version" : "2.3.5" } ], "recommends" : [ { "name" : "RealFuels" }, { "name" : "HotRockets" } ] }Metadata descriptionThe metadata file provides machine-readable information about adistribution.Mandatory fieldsspec_versionThe version number of the CKAN specification used to create this .ckan file.A vx.x string (eg: "v1.2"), being the minimum version of thereference CKAN client that will read this file.For compatibility with pre-release clients,Torrent based cache sharing plugin Issue 1591 KSP-CKAN/CKAN
Metadata documents(separated by --- in YAML or separate top-level {} object blocks in JSON), one per server.These will all be checked for new releases and the results merged based on the value of their version properties,resulting in a download property containing an array of multiple download URLs.A JSON Schema is provided for validation purposes.Any .netkan file must conform to this schema to be considered valid.YAML OptionA .netkan file may be in either JSON or YAML format. All examples shown below assume YAML, but the JSON equivalents will work the same way.Note that # is the comment character in YAML, so even if you choose YAML syntax, you still can't omit the quotes around a value that includes #, such as typical values of $kref and $vref:$kref: "#/ckan/spacedock/1234"$vref: "#/ckan/ksp-avc"Internal .ckan filesIf a module's download contains a file with a .ckan extension, this file will be parsed and its contents added to the module's metadata. This can be a convenient way to handle metadata values that can change from one version to the next, such as dependencies.An internal .ckan file may be in either JSON or YAML format.$krefThe $kref field indicates that data should be filled in from an external service provider. The following $krefvalues are understood. Only one $kref field may be present in a .netkan file.#/ckan/spacedock/:sdidIndicates that data should be fetched from SpaceDock, using the :sdid provided. For example: #/ckan/spacedock/269.When used, the following fields will be auto-filled if not already present:namelicenseabstractauthorversiondownloaddownload_sizedownload_hashdownload_content_typeresources.homepageresources.spacedockresources.repositoryresources.bugtrackerresources.x_screenshotksp_versionrelease_daterelease_status#/ckan/curse/:cidThe Curse API that we used to use was sunsetted,. CKAN extension that enables creating torrent files (seeding, tracking) - microcomp/ckanext-torrent Every mod tracked by CKAN has a .ckan file for every version (example chosen at random: BDArmory). The torrent metadata (specifically, the btih ) goes in the .ckan file, and refers only to the one version of the mod. When the mod isCKAN/ at master KSP-CKAN/CKAN - GitHub
Should be used as the value of the version property. Combinedwith the x_netkan_version_edit property this allows the version to be extracted from the filename itself.Otherwise the expectation is that the archive will have an AVC .version file which will be used to generate theversion value.If any options are not present their default values are used.An example .netkan excerpt:$kref: '#/ckan/jenkins/ build: stable asset_match: \.zip$ use_filename_version: false#/ckan/http/:urlIndicates that data should be fetched from an HTTP server, using the :url provided. For example:$kref: '#/ckan/http/ used, the following fields will be auto-filled if not already present:downloaddownload_sizedownload_hashdownload_content_typeThis method depends on the existence of an AVC .version file in the download fileto determine:version#/ckan/ksp-avc/:urlIndicates that data should be fetched from a KSP-AVC .version file at the :url provided. The file should be in the KSP-AVC JSON file format, see the KSP-AVC spec. The DOWNLOAD property of the file is used to find the download. For example: #/ckan/ksp-avc/ used, the following fields will be auto-filled if not already present:namedownloaddownload_sizedownload_hashdownload_content_typeresources.repositoryversionksp_versionksp_version_minksp_version_max#/ckan/netkan/:urlIndicates that data should be fetched from another .netkan file hosted remotely.For example: #/ckan/netkan/ remote .netkan file is downloaded and used as if it were the original. .netkan files which contain such areference are known as recursive netkans or metanetkans. They are primarily used so that mod authors can provideauthoritative metadata.A metanetkan may be in either JSON or YAML format.The following conditions apply:A metanekan may not reference another metanetkan, otherwise an error is produced.Any fields specified in the metanetkan will override any fields in the target netkan file.When used, the So Curse is no longer supported.Expand to see the old infoIndicates that data should be fetched from Curse, using the :cid provided. The :cid may be a number for modules indexed prior to March 2018, or the name from the Curse URL otherwise. For example: #/ckan/curse/220221 or #/ckan/curse/photonsail.When used, the following fields will be auto-filled if not already present:namelicenseauthorversiondownloaddownload_sizedownload_hashdownload_content_typeresources.curseksp_version#/ckan/github/:user/:repo[(/asset_match/:filter_regexp)|(/version_from_asset/:version_regexp)]Indicates that data should be fetched from GitHub, using the :user and :repo provided.For example: #/ckan/github/pjf/DogeCoinFlag.When used, the following fields will be auto-filled if not already present:namelicense (v1.26)abstractauthorversiondownloaddownload_sizedownload_hashdownload_content_typeresources.repositoryresources.bugtrackerrelease_daterelease_statusOptionally, one of asset_match with :filter_regexp or version_from_asset with :version_regexp may be provided:asset_match with filter_regexp: A string which is treated as case-sensitive C# regular expressions which are matched against thename of the released artifact.version_from_asset with :version_regexp: A string which is treated as case-sensitive C# regular expressions which are matchedagainst the names of all release artifacts. Every matching artifact will result in a separate metadata output. The :version_regexpmust have a named capturing group version, which is used as the version of each asset's module.An example .netkan excerpt:.+).zip$'">$kref: '#/ckan/github/pjf/DogeCoinFlag/version_from_asset/^DogeCoinFlag-(?.+).zip$'An x_netkan_github field may be provided to customize how the metadata is fetched from GitHub. It is an object with the following fields:use_source_archive (type: boolean) (default: false)Specifies that the source ZIP of the repository itself will be used instead of any assets in the release.prereleases (type: boolean) (default: null)Skip prereleases if false, skip regular releases if true, use both if absent.#/ckan/gitlab/:user/:repoIndicates that data should be fetched from GitLab, using the :user and :repo provided.For example: #/ckan/gitlab/Ailex-/starilex-mk1-iva.When used, the followingCKAN/Spec.md at master KSP-CKAN/CKAN - GitHub
The Comprehensive Kerbal Archive Network (CKAN)This is a Request For Comments on the Comprehensive Kerbal ArchiveNetwork (CKAN). Please open discussions in the issues list, andsend pull requests to patch this document and associated files.This document, and all associated files, are licensed under the MIT/Expatlicense.The key words "must", "must not", "required", "shall","shall not", "should", "should not", "recommended", "may" and"optional" in this document are to be interpreted as described inRFC 2119.IntroductionThere have been many comprehensive archive networks for variouslanguages and platforms. While the original network was for TeX(the CTAN), the most successful has been for Perl (the CPAN),with over 11,000 contributors and 30,000 distributions.The goal of the CKAN is to provide a network that is easy to usefor both mod authors and end users. By providing a standardised wayto release and install modules, it is hoped that many of the misinstallproblems will be eliminated (reducing the workload on authors), anda more straightforward path of installing mods is provided (makingit easier for users to use mods).DesignThe fundamental design of the CKAN is as follows:Each distribution (a mod and its associated files) must have anassociated meta-data file that describes its contents.The meta-data file must be detachable from the distributionitself. This facilities easy building of indexes, and means meta-datacan be created independently of the distribution itself, easingadoption by authors.The meta-data file may be included in the distribution, to facilitateeasier indexing. CKAN files may be placed anywhere inside a distribution.It is an error for a distribution (zipfile) to contain more than oneCKAN file.Presently the authoritative CKANHow to Install CKAN - ckan/ckan GitHub Wiki
Equivalentfunctionality. For example: "provides" : [ "RealSolarSystemTextures" ]It is recommended that this field be used sparingly, as all mods withthe same provides string are essentially declaring they can be usedinterchangeably.It is considered acceptable to use this field if a mod is renamed,and the old name of the mod is listed in the provides field. Thisallows for mods to be renamed without updating all other mods whichdepend upon it.A module may both provide functionality, and conflict with the samefunctionality. This allows relationships that ensure only one setof assets are installed. (Eg: CustomBiomesRSS and CustomBiomesKerbalboth provide and conflict with CustomBiomesData, ensuring that bothcannot be installed at the same time.)ExtensionsAny field starting with x_ (an x, followed by an underscore) is consideredan extension field. The CKAN tool-chain will ignore any such fields.These fields may be used to include additional machine or human-readabledata in the files.For example, one may have an x_maintained_by field, to indicate themaintainer of a CKAN file, or an x_generated_by field to indicateit's the result of a custom build process.Extension fields are unrestricted, and may contain any sort of data,including lists and objects.NetKAN FieldsNetKAN is the name the tool which is used to automatically generate CKAN files from a variety of sources. NetKANconsumes .netkan files to produce .ckan files. .netkan files are a strict superset of .ckan files. Every.ckan file is a valid .netkan file but not vice versa. NetKAN uses the following fields to produce .ckan files.If a mod is hosted on multiple servers, a .netkan file may contain multiple. CKAN extension that enables creating torrent files (seeding, tracking) - microcomp/ckanext-torrentCKAN/README.md at master KSP-CKAN/CKAN - GitHub
Fields will be auto-filled if not already present:nameabstractauthorversionresources.repositoryresources.bugtrackerresources.manualdownloaddownload_sizedownload_hashdownload_content_typerelease_dateAn example .netkan excerpt:$kref: '#/ckan/gitlab/Ailex-/starilex-mk1-iva'An x_netkan_gitlab field must be provided to customize how the metadata is fetched from GitLab. It is an object with the following fields:use_source_archive (type: boolean) (default: false)Specifies that the source ZIP of the release will be used instead of any discrete assets.Note that this must be true! GitLab only offers source ZIP assets, so we can only index mods that use them. If at some point in the future GitLab adds support for non-source assets, we will be able to add support for setting this property to false or omitting it.#/ckan/sourceforge/:repoIndicates that data should be fetched from SourceForge using the :repo provided.For example: '#/ckan/sourceforge/ksreWhen used, the following fields will be auto-filled if not already present:nameresources.homepageresources.repositoryresources.bugtrackerdownloaddownload_sizedownload_hashdownload_content_typerelease_dateAn example .netkan excerpt:$kref: '#/ckan/sourceforge/ksre'#/ckan/jenkins/:joburlIndicates that data should be fetched from a Jenkins CI server using the :joburl provided. Forexample: #/ckan/jenkins/ following fields will be auto-filled if not already present:versiondownloaddownload_sizedownload_hashdownload_content_typeresources.cirelease_dateAn x_netkan_jenkins field may be provided to customize how the metadata is fetched from the Jenkins server. It isan object with the following fields:build (type: string, enumerated) (default: "stable")Specifies the type of build to use. Possible values are "any", "completed", "failed", "stable","successful", "unstable", or "unsuccessful". Many of these values do not make sense to use in practice butare provided for completeness.asset_match (type: string, regex) (default: \.zip$)Specifies a regex which selects which artifact to use by filename (case-insensitively). Not having exactly onematching asset is an error.use_filename_version (type: boolean, default: false)Specifies if the filename of the matched artifactComments
Ckan-solrPre-configured Solr Docker images for CKAN.Note: These images are built on top of the upstream Solr images. These images receive bug fixes from time to time which we pull into ours, but you won't get them unless you re-pull the CKAN Solr image.The recommended Solr version for the currently supported CKAN version is Solr 9.You can get a local Solr instance targeting a specific CKAN version by running the following command:docker run --name ckan-solr -p 8983:8983 -d ckan/ckan-solr:2.11-solr9The following versions are available as different image tags:CKAN VersionSolr versionDocker tagNotes2.11Solr 9ckan/ckan-solr:2.11-solr9, ckan/ckan-solr:2.11-solr9.8This is the recommended version if you are unsure which one to use2.11Solr 9ckan/ckan-solr:2.10-solr9-spatial, ckan/ckan-solr:2.10-solr9.8-spatialContains fields needed for the ckanext-spatial geo search2.10Solr 9ckan/ckan-solr:2.10-solr9, ckan/ckan-solr:2.10-solr9.82.10Solr 9ckan/ckan-solr:2.10-solr9-spatial, ckan/ckan-solr:2.10-solr9.8-spatialContains fields needed for the ckanext-spatial geo search2.10Solr 8ckan/ckan-solr:2.10-solr8 (previously ckan/ckan-solr:2.10)2.10Solr 8ckan/ckan-solr:2.10-solr8-spatial (previously ckan/ckan-solr:2.10-spatial)Contains fields needed for the ckanext-spatial geo searchmasterSolr 9ckan/ckan-solr:masterThe master image is built nightlyThe following tags are no longer supported:CKAN VersionSolr versionDocker tagLegacy Docker tagsNotes2.7Solr 6ckan/ckan-solr:2.7ckan/ckan-solr-dev:2.72.8Solr 6ckan/ckan-solr:2.8ckan/ckan-solr-dev:2.82.9Solr 6ckan/ckan-solr:2.9ckan/ckan-solr-dev:2.92.9Solr 9ckan/ckan-solr:2.9-solr9Requires at least CKAN 2.9.52.9Solr 9ckan/ckan-solr:2.9-solr9-spatialContains fields needed for the ckanext-spatial geo search2.9Solr 8ckan/ckan-solr:2.9-solr8Requires at least CKAN 2.9.52.9Solr 8ckan/ckan-solr:2.9-solr8-spatialContains fields needed for the ckanext-spatial geo searchAll these images expose the CKAN Solr endpoint at so that's what you should set the value of solr_url in your ini file to.Building the imagesGo to the relevant folder for the Solr version (eg solr-9) and use the Makefile included:# Default version is 2.11make build# Specify a different versionmake build CKAN_VERSION=2.10Use your own configuration filesIf you want to play around with the solr config files you can copy them from the container to your local host and then run the container with a bind mount.Run a container:docker run --name ckan-solr -p 8983:8983 -d ckan/ckan-solr:2.11-solr9Copy the config file of the target core to your machine (eg ckan):docker cp ckan-solr:/opt/solr/server/solr/configsets/ckan/conf ./my_confStop the container:Run the container with a bind mount:docker run -p 8983:8983 --mount type=bind,source="$(pwd)"/my_conf,target=/opt/solr/server/solr/configsets/ckan/conf -d ckan/ckan-solr:2.11-solr9Edit your local filesReload the core using the Solr admin page:
2025-04-17Metadata repository ishosted on github.ValidationA JSON Schema is provided for validation purposes.Any CKAN file must conform to this schema to be considered valid.The CKAN fileA CKAN file is designed to contain all the relevant meta-infoabout a mod, including its name, license, download location,dependencies, compatible versions of KSP, and the like. CKANfiles are simply JSON files using UTF-8 as character-encoding.Except where stated otherwise all strings should be printable unicode only.CKAN files should have a naming scheme of their mod's identifier,followed by a dash, followed by the version number, followed bythe extension .ckan. For example: RealSolarSystem-7.3.ckan.The CKAN metadata spec is inspired by theCPAN metadata spec,the Debian Policy Manualand theKSP-RealSolarSystem-BundlerExample CKAN file { "spec_version" : 1, "name" : "Advanced Jet Engine (AJE)", "abstract" : "Realistic jet engines for KSP", "identifier" : "AJE", "download" : " "license" : "LGPL-2.1", "version" : "1.6", "release_status" : "stable", "ksp_version" : "0.25", "resources" : { "homepage" : " "repository" : " }, "tags" : [ "physics", "resources", "atmospheric", "engines", "nasa-enginesim", "b9-turbofans" ], "install" : [ { "file" : "AJE-1.6", "install_to" : "GameData" } ], "depends" : [ { "name" : "FerramAerospaceResearch" }, { "name" : "ModuleManager", "min_version" : "2.3.5" } ], "recommends" : [ { "name" : "RealFuels" }, { "name" : "HotRockets" } ] }Metadata descriptionThe metadata file provides machine-readable information about adistribution.Mandatory fieldsspec_versionThe version number of the CKAN specification used to create this .ckan file.A vx.x string (eg: "v1.2"), being the minimum version of thereference CKAN client that will read this file.For compatibility with pre-release clients,
2025-03-29Metadata documents(separated by --- in YAML or separate top-level {} object blocks in JSON), one per server.These will all be checked for new releases and the results merged based on the value of their version properties,resulting in a download property containing an array of multiple download URLs.A JSON Schema is provided for validation purposes.Any .netkan file must conform to this schema to be considered valid.YAML OptionA .netkan file may be in either JSON or YAML format. All examples shown below assume YAML, but the JSON equivalents will work the same way.Note that # is the comment character in YAML, so even if you choose YAML syntax, you still can't omit the quotes around a value that includes #, such as typical values of $kref and $vref:$kref: "#/ckan/spacedock/1234"$vref: "#/ckan/ksp-avc"Internal .ckan filesIf a module's download contains a file with a .ckan extension, this file will be parsed and its contents added to the module's metadata. This can be a convenient way to handle metadata values that can change from one version to the next, such as dependencies.An internal .ckan file may be in either JSON or YAML format.$krefThe $kref field indicates that data should be filled in from an external service provider. The following $krefvalues are understood. Only one $kref field may be present in a .netkan file.#/ckan/spacedock/:sdidIndicates that data should be fetched from SpaceDock, using the :sdid provided. For example: #/ckan/spacedock/269.When used, the following fields will be auto-filled if not already present:namelicenseabstractauthorversiondownloaddownload_sizedownload_hashdownload_content_typeresources.homepageresources.spacedockresources.repositoryresources.bugtrackerresources.x_screenshotksp_versionrelease_daterelease_status#/ckan/curse/:cidThe Curse API that we used to use was sunsetted,
2025-04-22