{"id":22884595,"url":"https://github.com/darkriftnetworking/darkrift-cli","last_synced_at":"2026-03-09T16:03:41.457Z","repository":{"id":92781777,"uuid":"211502971","full_name":"DarkRiftNetworking/darkrift-cli","owner":"DarkRiftNetworking","description":"Command Line Interface tool for DarkRift","archived":false,"fork":false,"pushed_at":"2021-05-31T15:04:16.000Z","size":213,"stargazers_count":11,"open_issues_count":8,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-05-07T07:46:18.482Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","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/DarkRiftNetworking.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":"License.md","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,"zenodo":null}},"created_at":"2019-09-28T13:15:58.000Z","updated_at":"2021-06-29T00:40:33.000Z","dependencies_parsed_at":"2023-04-13T16:16:02.311Z","dependency_job_id":null,"html_url":"https://github.com/DarkRiftNetworking/darkrift-cli","commit_stats":null,"previous_names":[],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/DarkRiftNetworking/darkrift-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DarkRiftNetworking%2Fdarkrift-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DarkRiftNetworking%2Fdarkrift-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DarkRiftNetworking%2Fdarkrift-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DarkRiftNetworking%2Fdarkrift-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DarkRiftNetworking","download_url":"https://codeload.github.com/DarkRiftNetworking/darkrift-cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DarkRiftNetworking%2Fdarkrift-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30301530,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T14:33:48.460Z","status":"ssl_error","status_checked_at":"2026-03-09T14:33:48.027Z","response_time":61,"last_error":"SSL_read: 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":[],"created_at":"2024-12-13T19:18:31.130Z","updated_at":"2026-03-09T16:03:41.447Z","avatar_url":"https://github.com/DarkRiftNetworking.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DarkRift CLI Tool\n![GitHub all releases](https://img.shields.io/github/downloads/DarkRiftNetworking/darkrift-cli/total) ![Docker Pulls](https://img.shields.io/docker/pulls/darkriftnetworking/darkrift-cli)\n\nThis tool is designed to make DarkRift projects more structured and uniform across all users as well as providing a single interface to simplify common tasks.\n\nTo start with, the tool handles four common tasks:\n- Creating projects, plugins and other resources from scratch;\n- downloading and managing different versions of DarkRift;\n- downloading and installing plugins from online locations; and,\n- running a server from centralized binaries.\n\nIn future, this tool will likely handle:\n- Package management to allow easier download of common plugins (network listeners, log writers etc.)\n- Managing remote servers (e.g. executing commands over SSH/HTTP, retrieving logs)\n\n# Installation\n## From Releases (recommended)\nIf you've downloaded a release version you simply need to extract the archive into a folder and add the folder to your path variable.\n\nYou can test your installation with\n```bash\ndarkrift version\n```\n\n## From Scoop\nYou can install the DarkRift CLI tool using [Scoop](https://scoop.sh/) on Windows:\n```bash\nscoop install https://raw.githubusercontent.com/DarkRiftNetworking/darkrift-cli/master/scoop/darkrift-cli.json\n```\n\n## From Source\nTo build from source, clone the repository and run `dotnet publish`. You will then have the same binaries as in the release in the `bin/` folder and can follow the steps above to install.\n\n# Usage\n## New\nTo create a new project etc. from template use:\n```bash\ndarkrift new project my-project\ndarkrift new plugin my-plugin\ndarkrift new log-writer my-plugin\ndarkrift new network-listener my-plugin\n```\n\n## Get\nTo download and install a plugin from a remote location use:\n```bash\ndarkrift get http://url-of.your/plugin.zip\n```\nThe archive will be decompressed into the `plugins` directory.\n\nNote: this sub-command may be deprecated in the future if/once a  full package management system is implemented.\n\n## Run\nTo run your project use:\n```bash\ndarkrift run\n```\n\n## Pull\nTo pull a version of DarkRift from the remote server for use locally you can use:\n```bash\ndarkrift pull 2.4.5\n```\nThis version of DarkRift is then available for use in your projects when starting a server with `darkrift run`. Specifying without a version number will use your current project's version and specifying `latest` will get the latest version of DarkRift. You can also specify `-f` to force a download\n\nIn most cases you do not need to do this yourself as `darkrift run` will automatically download the correct version.\n\nYou can also list all the DarkRift versions you have installed with:\n```bash\ndarkrift pull --list\n```\n\n## Docs\nTo access the DarkRift documentation you can simply use:\n```bash\ndarkrift docs 2.4.5\n```\nSpecifying without a version number will use your current project's version and specifying latest will get the documentation for the latest version of DarkRift. You can also add the `--local` flag to download the documentation to your local machine (note, this doesn't seem to render correctly in Firefox though).\n\n# Docker\n**Dockerisation is not production ready and should not be used on outside of a development environment**\n\nYou can use the CLI tool within docker, for example to host a dockerised DarkRift server. Images are hosted on [Docker Hub](https://hub.docker.com/repository/docker/darkriftnetworking/darkrift-cli).\n\nA simple example of this would be:\n```bash\ndocker run --name darkrift -d -p 4296:4296/tcp -p 4296:4296/udp -v $PWD/project:/project -e DR_INVOICE_NO=\"if-using-pro\" darkriftnetworking/darkrift-cli:latest\n```\n\nThe `project` volume should contain a DarkRift project with a platform of `netcoreapp3.1` (and hence Pro is required). Ports are provided as an example and will depend on the listener in use. By default, the command executed is `run`. The HTTP healthcheck plugin will need to be enabled and running on the default port of 10666.\n\nIt is advised to set the DarkRift's data directory to a path outside of the project such as `/data`. It may be useful to assign this to a named volume if your plugins require persistence.\n\n# Development\nPull requests are actively encouraged on all open source DarkRift projects! This section will provide some useful advice for extending or improving the DarkRift CLI tool.\n\nAn [EditorConfig](https://editorconfig.org/) file is provided that will automatically configure your IDE with the DarkRift style guidelines while working on this project. Many IDEs support it natively but some like VS Code require [an extension](https://marketplace.visualstudio.com/items?itemName=EditorConfig.EditorConfig).\n\n## Project Structure\nThis is the structure the tool generates for projects:\n```\n\u003cproject\u003e/\n  |- .darkrift/\n  |- logs/\n  |- log-writers/\n  |- network-listeners/\n  |- plugins/\n  |- Readme.md\n  |- Server.config\n  |- Project.xml\n  '- .gitignore\n```\n\nThis is the structure the tool generates for plugins:\n```\n\u003cplugin\u003e/\n  |- src/\n  |  '- Plugin1.cs\n  |- Readme.md\n  |- \u003cplugin\u003e.csproj\n  '- .gitignore\n```\n\n## Templates\nTemplates are stored in the `templates/` directory and each must be added to the build file (`darkrift-cli.proj`) in order to be copied to the correct location.\n\nThere is a very basic templating syntax at the moment to ensure that files (particularly those with special meaning in git) are extracted correctly.\n\nTo enable templating of the file content, use `__c__` in the file path as directed below.\n\n### Valid In File Paths and File Content\n| | | | |\n|-|-|-|-|\n| **Keep** | `__k__` | This will simply be removed. This is useful for making a file that git will only parse it when extracted and not while it is in this repository. | `.gitignore__k__` -\u003e `.gitignore` |\n| **Name** | `__n__` | This will be replaced with the name of the resource that was created. | `__n__.txt` -\u003e `my-project.txt` |\n| **Version** | `__v__` | This will be replaced with the version of DarkRift being used. | `__v__.txt` -\u003e `2.4.5.txt` |\n| **Tier** | `__t__` | This will be replaced with the tier of DarkRift being used. | `__t__.txt` -\u003e `Pro.txt` |\n| **Platform** | `__p__` | This will be replaced with the platform the DarkRift being used was build for (`Framework` or `Standard`). | `__p__.txt` -\u003e `Standard.txt` |\n\n### Valid In File Paths Only\n| | | | |\n|-|-|-|-|\n| **Delete** | `__d__` | This will cause a file to be deleted once extracted. This is useful for ensuring folders are tracked by git in this repository but appear empty when the template is extracted. | `.gitkeep__d__` -\u003e *Deleted* |\n| **Template** | `__c__` | This will simply be removed but will enable templating of the content of the file; any variables defined such as `$__n__` will be resolved. | `file__c__.txt` -\u003e `file.txt` (*But content will be templated*) |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarkriftnetworking%2Fdarkrift-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdarkriftnetworking%2Fdarkrift-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdarkriftnetworking%2Fdarkrift-cli/lists"}