# UpsBoard. Usenet + Plex Stats

**URL:** <https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158>\
**Category:** Dev/API Corner\
**Tags:** other-dev\
**Created:** [January 7, 2014, 6:06pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158 "2014-01-07T18:06:43Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Mat-a-tat](https://avatars.discourse-cdn.com/v4/letter/m/f475e1/32.png) [@Mat-a-tat](https://forums.plex.tv/u/Mat-a-tat)\
**Post date:** [January 7, 2014, 6:06pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/1 "2014-01-07T18:06:43Z")

</div>

**UpsBoard: U** senet + **P** lex + **S** tats **Board** **(Version 0.2.1)**  
  
I got inspired by [ryanc](https://forums.plex.tv/user/71812-ryanc/)'s work, [Network Status Page](https://forums.plex.tv/topic/84856-network-status-page/), and I created my own version. I call it UpsBoard, which stands for **U** senet + **p** lex + **s** tats **Board**. UpsBoard allows you to monitor your Usenet services (SABnzbd+, Sick Beard, & CouchPotato), Plex, & your system (CPU Usage, Memory Usage, Bandwidth Usage, & Disk Space Usage). **This is a work in progress!** A lot of features have not been developed yet, so they don't work. Basically anything related to the user features.  
  
This is built with Node.js and currently only works on Linux operating systems. I am planning to include Mac's and Windows later.  
  
**[Demo Page](https://mattsplex.tv/upsboard) - [Download Now (GitHub)](https://github.com/lienma/UpsBoard)**  
&nbsp;  
**Requirements:** (As of right now)

- Linux OS, Mac OS (Currently with limited functioning. Memory is not report back any data, going to happen soon.), unRAID (Thank you to smdion for work on this. For help with unRAID and UpsBoard, [click here](http://lime-technology.com/forum/index.php?topic=31249.0)).
- [Node.js](http://www.nodejs.org/)
- [vnStat](http://humdi.net/vnstat/)
- [Plex Media Server](http://plexapp.com/)
- [GraphicsMagick](http://www.graphicsmagick.org/README.html)

**Optional:**

- [Sick Beard](http://sickbeard.com/)
- [SABnzbd](http://sabnzbd.org/)
- [Forecast.io Api Key](http://forecast.io/)

**Getting Started**

**[How to Install Node.js](http://howtonode.org/how-to-install-nodejs)**

[**How to Install GraphicsMagicks**](http://www.graphicsmagick.org/README.html)

**How to Install UpsBoard**

- Run the following command. This will install the required dependencies that this application needs.  

```
npm install
```
- Rename **config.js-sample** to **config.js**
- Edit the config file, **config.js** ,&nbsp;with all your service details, api keys, username, passwords, ect...

**Features Coming Soon**

- Auto start app on system boot
- ~~User Account~~
- Control Sicbeard
- Control Couchpotato
- ~~Control Sabnzbd~~
- Make the panels module.
- Multiple User Accounts
- Administration Panel
- Allow to customize the modules around.

**I'm open for requests or ideas :-)**  
  
**Latest Changes**

&nbsp;

**0.2.1 - 5/29/2014**

**Updated:**

Updater now runs every 12 hours and it can be disabled in the config.js file.

&nbsp;

**0.2.0 - 5/29/2014**

**New:**

Updater. This feature will check github every 12 hours to see if there has been an update. If there has been the logged in user will see a notice on their web browser to update UpsBoard.

**Fixed:**

Fixed the 'currently' weather bug.

Fixed the logged in user bug that would crashing the app.

&nbsp;

**0.1.1 - 4/29/2014**

**Added:**

Added a warning to the startup if GraphicsMagick is not installed. If GraphicsMagick is not installed then the images do not get resized before sending to user's browsers.

**Fixed:**

Changed bcrypt to bcrpyt-nodejs, this does not require bcrypt to be complied and installed.

Fixed the css for firefox.

**Note:** If you are updated from 0.1.0, then you would need to run the following commands.

```
npm uninstall bcrypt
npm install bcrypt-nodejs
```

**0.1.0 - 4/23/2014**

**New:**

User Account. In a future release, you'll be able to have multiple user accounts.

SABnzbd! A semi-fully functional SABnzbd client. There are two things that I'm still working on, setting the download speed and adding a nzb file to sab. These will come in a future release.

**Updated:**

TV Shows Airing Soon module has been updated with a new look.

Updated Memory to allow for multiple servers. Cpu is going to be in another release.

Converted all the javascript files into requirejs format. This is the beginnings of making the panels modularized and customizable.

Updated the code for express 4.0

&nbsp;

**There are probably plenty other changes that I can't remember right now but it's here.**

---

<div class="post-metadata">

**Author:** ![radar](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/radar/32/332_2.png) [@radar](https://forums.plex.tv/u/radar)\
**Post date:** [January 7, 2014, 9:14pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/2 "2014-01-07T21:14:10Z")

</div>

I like the design. Is it running on a Mac? Can we get it?

Thanks.

---

<div class="post-metadata">

**Author:** ![wally007](https://avatars.discourse-cdn.com/v4/letter/w/bc8723/32.png) [@wally007](https://forums.plex.tv/u/wally007)\
**Post date:** [January 7, 2014, 9:30pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/3 "2014-01-07T21:30:15Z")

</div>

> Hello,  
> I got inspired by ryanc's work, Network Status Page, and I created my own version. I call it UpsBoaed, which stands for **U** Usenet + **p** Plex + **s** tats Board. It has a lot of useful information all on one page.  
>   
> [Demo Page](https://mattsplex.tv/StatusBoard)  
>   
> I'm away from my computer right now but when I get back I'll post the source and add more information to this post.

Very nice and original. I must have missed ryanc's work because i havent seen anything like this for Plex :-)&nbsp;

---

<div class="post-metadata">

**Author:** ![Mat-a-tat](https://avatars.discourse-cdn.com/v4/letter/m/f475e1/32.png) [@Mat-a-tat](https://forums.plex.tv/u/Mat-a-tat)\
**Post date:** [January 7, 2014, 10:50pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/4 "2014-01-07T22:50:34Z")

</div>

> I like the design. Is it running on a Mac? Can we get it?
> 
> Thanks.

As a right now, it doesn't run nice on Mac. I hope to have it soon tho.

---

<div class="post-metadata">

**Author:** ![chigusan](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/chigusan/32/85496_2.png) [@chigusan](https://forums.plex.tv/u/chigusan)\
**Post date:** [January 7, 2014, 11:10pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/5 "2014-01-07T23:10:53Z")

</div>

If you need help with some of this, let me know. My day job is a linux sysadmin, just not too familiar with node.js. I'm lovin how this looks so far.&nbsp;

Thanks!

---

<div class="post-metadata">

**Author:** ![jimbobba2773](https://avatars.discourse-cdn.com/v4/letter/j/258eb7/32.png) [@jimbobba2773](https://forums.plex.tv/u/jimbobba2773)\
**Post date:** [January 8, 2014, 12:19am UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/6 "2014-01-08T00:19:39Z")

</div>

Thanks for having a look for me and looking forward for the Mac version to be running soon. &nbsp;Brilliant job!

---

<div class="post-metadata">

**Author:** ![radar](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/radar/32/332_2.png) [@radar](https://forums.plex.tv/u/radar)\
**Post date:** [January 8, 2014, 3:16pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/7 "2014-01-08T15:16:16Z")

</div>

Hi,

I managed to make it (partially) running on OSX.

Here are the steps:

[Install vnstat](http://www.qlambda.com/2013/07/running-vnstat-in-os-x.html)

[Install node.js](http://nodejs.org/download/)

Once node.js installed, run the following command:

```
npm install express stylus nib async express-uglify request when underscore moment xml2js ssh2 jade os-utils
```

Then, I had to disable the&nbsp;

```
getMemory()
```

function, line 9 of routes/stats.js, and to disable also

```
minutelySummary: body.minutely.summary
```

line 116, in the same file.

I'll tell you later how to make vnstat and UpStatsBoard launch at startup.

And I'll try to figure out the getMemory() issue.

**Issues:**

I cannot get the posters from sickbeard:

![D1qF6.jpg](http://snag.gy/D1qF6.jpg)

Bandwidth is not workin. I have a "Server offline" message. I'm sure it has worked but cannot understand why it is not currently.

---

<div class="post-metadata">

**Author:** ![radar](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/radar/32/332_2.png) [@radar](https://forums.plex.tv/u/radar)\
**Post date:** [January 8, 2014, 6:28pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/8 "2014-01-08T18:28:10Z")

</div>

> I'll tell you later how to make vnstat and UpStatsBoard launch at startup.

Concerning vnstat, you'll find everything [here](http://www.qlambda.com/2013/07/running-vnstat-in-os-x.html).

- To make UpStatsBoard launches at startup, do the following:
- Create local.usb.plist file with following code
- 
```
<?xml version="1.0" encoding="UTF-8"?>

  KeepAlive
  
  Label
  local.usb
  ProgramArguments
  
    /usr/local/bin/node
    app
  
  RunAtLoad
  
  WorkingDirectory
  /Users/yourUsername/UpStatsBoard
```
- Put it in&nbsp;
- 
```
/Library/LaunchDaemons
```
- Run&nbsp;
- 
```
sudo chown root:wheel local.usb.plist
```
- Run&nbsp;
- 
```
sudo launchctl load -w /Library/LaunchDaemons/local.usb.plist
```

---

<div class="post-metadata">

**Author:** ![radar](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/radar/32/332_2.png) [@radar](https://forums.plex.tv/u/radar)\
**Post date:** [January 8, 2014, 9:17pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/9 "2014-01-08T21:17:35Z")

</div>

> Bandwidth is not working. I have a "Server offline" message. I'm sure it has worked but cannot understand why it is not currently.

That's because vnstat is called without absolute path. I'm sure Matt will correct that in future versions. In the meanwhile, edit

```
libs/Bandwidth.js
```

and replace all occurences (lines 141 and 170).

```
vnstat
```

by

```
/opt/local/bin/vnstat
```

---

<div class="post-metadata">

**Author:** ![smdion](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/smdion/32/6129_2.png) [@smdion](https://forums.plex.tv/u/smdion)\
**Post date:** [January 9, 2014, 1:20am UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/10 "2014-01-09T01:20:03Z")

</div>

> Hi,
> 
> I managed to make it (partially) running on OSX.
> 
> Here are the steps:
> 
> [Install vnstat](http://www.qlambda.com/2013/07/running-vnstat-in-os-x.html)
> 
> [Install node.js](http://nodejs.org/download/)
> 
> Once node.js installed, run the following command:
> 
> ```
> npm install express stylus nib async express-uglify request when underscore moment xml2js ssh2 jade os-utils
> ```
> 
> Then, I had to disable the&nbsp;
> 
> ```
> getMemory()
> ```
> 
> function, line 9 of routes/stats.js, and to disable also
> 
> ```
> minutelySummary: body.minutely.summary
> ```
> 
> line 116, in the same file.
> 
> I'll tell you later how to make vnstat and UpStatsBoard launch at startup.
> 
> And I'll try to figure out the getMemory() issue.
> 
> **Issues:**
> 
> I cannot get the posters from sickbeard:
> 
> ![D1qF6.jpg](http://snag.gy/D1qF6.jpg)
> 
> Bandwidth is not workin. I have a "Server offline" message. I'm sure it has worked but cannot understand why it is not currently.

I also had to comment out "minutelySummary: body.minutely.summary" and install the additional packages, but did not need to comment out getmemory and my posters are showing.

---

<div class="post-metadata">

**Author:** ![chigusan](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/chigusan/32/85496_2.png) [@chigusan](https://forums.plex.tv/u/chigusan)\
**Post date:** [January 9, 2014, 1:25am UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/11 "2014-01-09T01:25:26Z")

</div>

**To have this run as a daemon in Ubuntu and autostart at boot:**

&nbsp;

1. Install forever

```
sudo npm -g install forever
```

&nbsp;

2. Create a upstart script ups.conf with following contents

```
start on startup
exec forever start /full/path/to/app.js
```

&nbsp;

&nbsp;3. Place it in /etc/init

&nbsp;

&nbsp;4. Make the file executable

&nbsp;

```
sudo chmod 755 /etc/init/ups.conf
```

&nbsp;

&nbsp;5. Start it.

```
 sudo start ups
```

That's it.&nbsp; :)

---

<div class="post-metadata">

**Author:** ![chigusan](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/chigusan/32/85496_2.png) [@chigusan](https://forums.plex.tv/u/chigusan)\
**Post date:** [January 9, 2014, 1:25am UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/12 "2014-01-09T01:25:36Z")

</div>

Editing out double post

---

<div class="post-metadata">

**Author:** ![radar](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/radar/32/332_2.png) [@radar](https://forums.plex.tv/u/radar)\
**Post date:** [January 9, 2014, 8:50am UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/13 "2014-01-09T08:50:10Z")

</div>

> but did not need to comment out getmemory and my posters are showing.

How can you get memory while it uses "free" command which is not available (natively) in OSX?

Concerning my posters, they were not appearing in Sickbeard neither. I had to update PIL python library, to solve the problem in Sickbeard. But it remains in USB.

Edit: I had just to delete the content of cache/sickbeard to fix the problem.

Now, it's ok.

---

<div class="post-metadata">

**Author:** ![Mat-a-tat](https://avatars.discourse-cdn.com/v4/letter/m/f475e1/32.png) [@Mat-a-tat](https://forums.plex.tv/u/Mat-a-tat)\
**Post date:** [January 9, 2014, 3:46pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/14 "2014-01-09T15:46:19Z")

</div>

> I also had to comment out "minutelySummary: body.minutely.summary" and install the additional packages, but did not need to comment out getmemory and my posters are showing.

  
I'm curious why you had to comment out minutelySummary. What is the latitude and longitude are? Feel free to pm those details.  
  
As for the additional packages, what additional packages did you have to install? The command should have installed everything needed.  

```
npm install
```

---

<div class="post-metadata">

**Author:** ![radar](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/radar/32/332_2.png) [@radar](https://forums.plex.tv/u/radar)\
**Post date:** [January 9, 2014, 3:58pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/15 "2014-01-09T15:58:35Z")

</div>

> I'm curious why you had to comment out minutelySummary. What is the latitude and longitude are? Feel free to pm those details.

In my case: 48.9068,2.2450  
And, just by curiosity, why are you naming it minutelySummary while it concerns the hourly forecast? :)

---

<div class="post-metadata">

**Author:** ![Mat-a-tat](https://avatars.discourse-cdn.com/v4/letter/m/f475e1/32.png) [@Mat-a-tat](https://forums.plex.tv/u/Mat-a-tat)\
**Post date:** [January 9, 2014, 4:27pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/16 "2014-01-09T16:27:17Z")

</div>

> In my case: 48.9068,2.2450  
> And, just by curiosity, why are you naming it minutelySummary while it concerns the hourly forecast? :)

Thank you,

Just as I thought the data block minutely is in your location. I have fix the code to allow for this to be missing. As to why I named it minutelySummary, I'm lazy :) I just took the name straight from Forecast.io's api. As they example on their [developers page](https://developer.forecast.io/docs/v2), they are aware that it is not proper English and they are not will to change it. :/ So to keep everything aligned, I decided to just keep the same naming scheme.

---

<div class="post-metadata">

**Author:** ![smdion](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/smdion/32/6129_2.png) [@smdion](https://forums.plex.tv/u/smdion)\
**Post date:** [January 9, 2014, 5:33pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/17 "2014-01-09T17:33:05Z")

</div>

44.1677, -94.0034 for me. &nbsp;

&nbsp;

I had to install these packages -&nbsp;express stylus nib async express-uglify request when underscore moment xml2js ssh2 jade os-utils.

&nbsp;

&nbsp;

@Radar.. sorry I am running Ubuntu 12.04. &nbsp;Not OSX.. missed that part.

---

<div class="post-metadata">

**Author:** ![hthighway](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/hthighway/32/82003_2.png) [@hthighway](https://forums.plex.tv/u/hthighway)\
**Post date:** [January 9, 2014, 5:58pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/18 "2014-01-09T17:58:11Z")

</div>

> **To have this run as a daemon in Ubuntu and autostart at boot:**
> 
> &nbsp;
> 
> 1. Install forever
> 
> ```
> sudo npm -g install forever
> ```
> 
> &nbsp;
> 
> 2. Create a upstart script ups.conf with following contents
> 
> ```
> start on startup
> exec forever start /full/path/to/app.js
> ```
> 
> &nbsp;
> 
> &nbsp;3. Place it in /etc/init
> 
> &nbsp;
> 
> &nbsp;4. Make the file executable
> 
> &nbsp;
> 
> ```
> sudo chmod 755 /etc/init/ups.conf
> ```
> 
> &nbsp;
> 
> &nbsp;5. Start it.
> 
> ```
>  sudo start ups
> ```
> 
> That's it.&nbsp; :)

I get "unknown job: ups" when I run "sudo start ups"

---

<div class="post-metadata">

**Author:** ![chigusan](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/chigusan/32/85496_2.png) [@chigusan](https://forums.plex.tv/u/chigusan)\
**Post date:** [January 9, 2014, 7:54pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/19 "2014-01-09T19:54:22Z")

</div>

> I get "unknown job: ups" when I run "sudo start ups"

That's odd, it just sort of worked for me on my Ubuntu install. Is the file in /etc/init and named ups.conf? Also, check file permissions and ownership. It may need to be owned by root.

---

<div class="post-metadata">

**Author:** ![hthighway](https://sea1.discourse-cdn.com/plex/user_avatar/forums.plex.tv/hthighway/32/82003_2.png) [@hthighway](https://forums.plex.tv/u/hthighway)\
**Post date:** [January 9, 2014, 7:56pm UTC](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158/20 "2014-01-09T19:56:39Z")

</div>

It is owned by root and has the same file permissions as the other .conf files in /etc/init

[Next page](https://forums.plex.tv/t/upsboard-usenet-plex-stats/53158.md?page=2)
