Skip to content

Commit

Permalink
Merge develop in master for release v2.0.
Browse files Browse the repository at this point in the history
  • Loading branch information
daschatten committed Jun 28, 2014
1 parent 9a594b0 commit 3a69e16
Show file tree
Hide file tree
Showing 3,542 changed files with 862,492 additions and 273 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
3 changes: 0 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
www/assets/
www/protected/runtime/
www/protected/config/main.php
www/protected/config/console.php
www/themes/classic/views/
*.swp
*.swo
www/protected/data/auth.php
6 changes: 0 additions & 6 deletions .gitmodules

This file was deleted.

110 changes: 14 additions & 96 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,16 @@
mcc
===
# mcc

MythTV Control Center - An alternative to the standard mythtv webinterface mythweb.

Notes
-----
## Notes

Regularly backup your mythtv database!
* Regularly backup your mythtv database!
* Read https://github.com/daschatten/mcc/blob/develop/docs/security.md
* Read https://github.com/daschatten/mcc/blob/develop/docs/faq.md

Features
--------
## Features

See https://github.com/daschatten/mcc/blob/develop/docs/changelog.md for changelog and https://github.com/daschatten/mcc/blob/develop/docs/todo.md for upcoming features.

Recordings:
* Recorded: List recordings. Filter for title, subtitle and recording group are available. Sorting is enabled for some columns.
Expand All @@ -22,102 +23,19 @@ Status:
* Storage: List of storage groups and detailed information about space used total and per recording group (Details only list titles with a minimum of two recordings).

Guide:
* Simple guide view with "one click record" feature (configure in main.php!).
* Simple guide view with "one click record" feature.

Users:
Admin:
* Manage application configuration
* Manage record templates for one click recording
* Create/Read/Update/Delete Users
* Assign roles to users
* Create/Read/Update/Delete roles, tasks and operations. Be careful with these things!

Requirements
------------

* Yii http://www.yiiframework.com. Put framework to '/usr/share/frameworks/yii/'. For Yii 1.1.14 the path should be '/usr/share/frameworks/yii/yii-1.1.14.f0fee9'.
Or change path to framework in /var/www/mcc/www/index.php
* MythTV http://www.mythtv.org/
* Apache, PHP and MySQL (they should already be installed with mythtv)
* php-curl
* php-cli
* git

Installation
------------

Be root.

Web application:
```
cd /var/www
git clone [email protected]:daschatten/mcc.git
/var/www/mcc/extra/fixPermissions.sh
cd /var/www/mcc
git submodule init
git submodule update
```

Apache config:

```
vim /etc/apache2/sites-available/mcc
```

Fill with content:

```
<VirtualHost *:80>
ServerAdmin webmaster@localhost
Servername mcc.mydomain.local
DocumentRoot /var/www/mcc/www
CustomLog /var/log/apache/mcc-access.log combined
ErrorLog /var/log/apache/mcc-error.log
Alias /media path-to-mythtv-recordings-dir
<Directory "path-to-mythtv-recordings-dir">
order allow,deny
allow from all
</Directory>
</VirtualHost>
```

Replace 'mcc.mydomain.local' and 'path-to-mythtv-recordings-dir' with your values.

Enable module and reload apache:

```
a2ensite mcc
/etc/init.d/apache2 reload
```

MCC config:

```
cd /var/www/mcc/www/protected/config
cp main.php.example main.php
cp console.php.example console.php
vim main.php console.php
```

* Search block starting with "'db'=>array(" and configure your mythtv database connection in both config files.
* Set application parameter at bottom of config file to your needs (look at comments) in main.php.

Database modifications:

```
/var/www/mcc/www/protected/yiic migrate
```

and confirm with 'yes'.

First login
-----------
## Installation

Login as 'Admin' with PIN '0000'. Create users, assign roles! And change admin PIN!
See https://github.com/daschatten/mcc/blob/develop/docs/install.md for requirements and installation instructions.

Have fun!

48 changes: 48 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Changelog

## v2.0

* Make installation and configuration much easier
* Rework guide display
* Add database config page
* Extend configuration page
* Add error handling mechanism to catch database and configuration errors
* Remove old code and config items
* Use git subtree instead of git submoule
* Add required yii framework to application
* Focus on PIN field on login page
* Move record templates to database and web configuration
* Add documentation in 'docs/'
* Rename install file to 'extra/install.sh'
* Execute database migration in install file

## v1.4

* Fix record rule types

## v1.3

* Add recording status to guide and guide detail views
* Fix guide layout
* Rework guide display
* Add refresh timeout to record feature
* Add basic config feature

## v1.2

* Fix installation instructions in readme
* fix example configuration file (console.php)

## v1.1

* Fix README

## v1.0

* Access control
* User management
* Show recordings
* Archive recordings
* Show upcoming recordings
* Backend, tuner and storage status
* Program guide with one click recording feature
5 changes: 5 additions & 0 deletions docs/faq.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# FAQ

* The mcc webiste shows only a blank page

Check if all requirements are met. This may happen if you forgot to install a package. Run 'extra/install.sh' after installing required packages!
37 changes: 37 additions & 0 deletions docs/install.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
# Installation

## Requirements

* MythTV http://www.mythtv.org/
* Apache, PHP and MySQL (they should already be installed with mythtv). Debian packages:
* apache2
* libapache2-mod-php5
* php5
* php5-mysql
* php5-curl
* php5-cli
* php5-json

## .tar.bz2 packages

* Get package from https://github.com/daschatten/mcc/releases
* Unpack package to '/var/www/':
```bash
cd /var/www
tar -xjf mcc.tar.bz2
```
* Run installation as root:
```bash
/var/www/mcc/extra/install.sh
```
* Open url 'http://&lt;your systems ip&gt;/mcc'
* Enter database configuration data when prompted
* Run installation as root second time:
```bash
/var/www/mcc/extra/install.sh
```
* Enter mythbackend configuration data when prompted

## First login

Login as 'Admin' with PIN '0000'. Create users, assign roles! And change admin PIN! And do not forget to create record templates (admin menu).
12 changes: 12 additions & 0 deletions docs/security.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Security considerations

## Authentication

The authentication mechanism of this authentication is not as strong as it could be because it only uses a password (let's call it PIN, because it's intended to use numbers, but that is not required) and no username. This is intended because of a more userfriendly experience. It is much easier to just type in a PIN instead of username and password, especially on mobile devices. In almost all cases this should be enough security for home usage, just change the admin PIN and choose a long enough PIN.

## Application accessibility

NEVER put this application directly on the internet! If you want to use this application from everywhere, then you can use

* a vpn tunnel (e.g. openvpn)
* a reverse proxy with certificate authentication
18 changes: 18 additions & 0 deletions docs/todo.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# ToDo

Following features are unordered and unprioritized. If you have wished, just open an issue in githubs tracker.

* Display frontend status
* Manage recording rules
* Manage frontend settings
* Add streaming feature
* More guide views
* Frontend control
* Get complete season and episode list from internet. Compare is to recordings.
* Manage channels
* Resolve metadata (for recordings where builtin feature does not work)
* Import/export channel list (makes it easier to restore channel order after scanning for new channels)
* Import/export recordings (in case of a complete backend renewal)
* Compare channel with an internet source. Makes it easier to get known of new channels.
* Add possibility to cancel current recording.
* Add override recording rule feature.
7 changes: 7 additions & 0 deletions extra/db.php.init
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<?php $db = array (
'connectionString' => 'mysql:host=mythtv.example.local;dbname=mythtv',
'emulatePrepare' => '1',
'username' => 'mcc',
'password' => 'mcc',
'charset' => 'utf8',
); ?>
6 changes: 0 additions & 6 deletions extra/fixPermissions.sh

This file was deleted.

73 changes: 73 additions & 0 deletions extra/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
#!/bin/sh

echo ""
echo "Checking for user root..."

if ! [ $(id -u) = 0 ]; then
echo "You must be root to do this." 1>&2
echo ""
exit 100
else
echo "Ok, we are root."
echo ""
fi

echo "Setting up directories and permissions"
echo ""

if [ ! -d "/var/www/mcc/www/assets" ]; then
mkdir /var/www/mcc/www/assets
fi

if [ ! -d "/var/www/mcc/www/protected/runtime" ]; then
mkdir /var/www/mcc/www/protected/runtime
fi

chown www-data:www-data /var/www/mcc/www/assets
chown www-data:www-data /var/www/mcc/www/protected/runtime

touch /var/www/mcc/www/protected/config/params.php
chown www-data:www-data /var/www/mcc/www/protected/config/params.php

touch /var/www/mcc/www/protected/config/db.php
chown www-data:www-data /var/www/mcc/www/protected/config/db.php

if [ ! -d "/etc/mcc" ]; then
mkdir /etc/mcc
fi

if [ ! -e "/etc/mcc/db.php" ]; then
cp /var/www/mcc/extra/db.php.init /etc/mcc/db.php
fi

touch /etc/mcc/db.php
touch /etc/mcc/params.php
touch /etc/mcc/custom.php
touch /etc/mcc/record.php

chown -R www-data:www-data /etc/mcc/

echo "Upgrading database"
echo ""

/var/www/mcc/www/protected/yiic migrate --interactive=0 > /dev/null

echo "Configuring webserver"
echo ""

if [ -e "/etc/php5/cli/conf.d/suhosin.ini" ]; then

RES=`grep 'suhosin.executor.include.whitelist = phar' /etc/php5/cli/conf.d/suhosin.ini | wc -l`

if [ $RES = 0 ]; then
echo "Applying suhosin whitelist entry for 'phar'"
echo "suhosin.executor.include.whitelist = phar" >> /etc/php5/cli/conf.d/suhosin.ini
fi
fi

cp /var/www/mcc/extra/mcc.conf.apache /etc/apache2/conf.d/mcc
/etc/init.d/apache2 reload


echo "Done!"
echo ""
6 changes: 6 additions & 0 deletions extra/mcc.conf.apache
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
Alias /mcc /var/www/mcc/www

<Directory /var/www/mcc/www>
Options FollowSymLinks
DirectoryIndex index.php
</Directory>
Loading

0 comments on commit 3a69e16

Please sign in to comment.