Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
NodeCG is a broadcast graphics framework and application. It is primarily aimed at Twitch broadcasters using Open Broadcaster Software, but is usable in any environment that can render HTML, including CasparCG. NodeCG is based on the overlay system developed for the Tip of the Hats 2014 charity event.
Have questions about NodeCG, or just want to say 'hi'? Join our Gitter chatroom!
Install node.js (version 4 or greater) & npm (version 2 or greater).
Then, run the following commands:
git clone https://github.com/nodecg/nodecg.git
cd nodecg
npm install --production
bower install
node index.js
To run NodeCG in production, pm2 is recommended.
NodeCG's individual graphics packages are called bundles. They can be installed either from the command-line
(via nodecg-cli), or by simply placing the folder into the ./bundles
directory.
The easiest way to install bundles is via the command-line. To install a bundle from Github, enter the owner and repository name:
nodecg install gamesdonequick/agdq16-layouts
... to install a bundle from Bitbucket, enter the owner and repository name prefixed with bitbucket:
nodecg install bitbucket:username/repo-name
... to install a bundle from any other git provider, enter the git URL:
nodecg install https://github.com/GamesDoneQuick/agdq16-layouts.git
Bundles are just directories inside the ./bundles
folder.
They can always be added and removed by simply moving them into or out of that folder.
Avoid installing or uninstalling bundles while NodeCG is running.
bundles
folderhttp://localhost:9090
)./cfg/nodecg.json
is an optional file that you can create to configure NodeCG.
See the NodeCG Configuration tutorial for more information on configuring NodeCG.
Each NodeCG graphic is called a bundle. A bundle has one or more of the following:
A bundle can have multiple graphics and dashboard panels, and an extension can be split up into multiple files.
Graphics are, as the name implies, the actual graphics intended for broadcast. They are standard HTML webpages, and there are no restrictions on their content. When serving a graphic, NodeCG injects an instance of the API into the global scope.
Dashboard panels are the interface used to control and manage a bundle. They too are standard HTML webpages. Each panel is served as an iframe on the dashboard. This is done to ensure full code and style encapsulation. Because dashboard panels are iframes, they cannot render any content outside of their bounding box. For example, it is not possible to have a tooltip in a panel that extends beyond the bounding box of the panel itself.
When serving panels, NodeCG injects an instance of the API into the global scope, as well as a few default styles.
It is strongly recommended to use Polymer elements to build panels, though it is not required. Google's official Polymer elements, specifically their Paper elements, are a great place to start. The official NodeCGElements organization also has a selection of Polymer elements that are integrated with NodeCG's API.
Extensions are server-side code. They are standard Node.js JavaScript files. An extension must export a function that accepts a single argument. That argument will be an instance of the NodeCG API:
// bundles/my-bundle/extension.js
module.exports = function(nodecg) {
nodecg.listenFor('foo', function() {
console.log('bar');
});
};
NodeCG automatically attempts to load the following files as extensions:
your-bundle/extension.js
your-bundle/extension/index.js
Bundles may have one of, but not both of the above files. If your extension is simple enough to fit in one file,
use the former approach. If your extension is broken up into multiple files, you may want to use the latter structure
and keep all those files in a single extension
folder. If using an extension
folder, NodeCG will only load
your-bundle/extension/index.js
. It is up to you to load any other files that your extension needs via require
.
Every bundle must have a package.json
. In addition to the required fields
like name
and version
outlined in that link, NodeCG bundles must also have a nodecg
object in their package.json
with some additional properties that tell NodeCG about the bundle and how to load it.
See the manifest tutorial for more information on creating a valid package.json
for a bundle.
git checkout -b my-new-feature
)git commit -am 'Add some feature'
)git push origin my-new-feature
)Before creating your pull request:
npm test
Check which branch you should PR to. NodeCG is still in an unstable state, so we follow these semver guidelines:
0.current.x
)0.next.0
)NodeCG is provided under the MIT license, which is available to read in the LICENSE file.
0.7.1 (2016-01-30)
<a name="0.7.0"></a>
FAQs
Dynamic broadcast graphics rendered in a browser
The npm package nodecg receives a total of 286 weekly downloads. As such, nodecg popularity was classified as not popular.
We found that nodecg demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.