CcHost

From Creative Commons
Revision as of 21:48, 29 August 2006 by Fourstones (talk | contribs) (HOWTO Tag a Release)
Jump to: navigation, search

ccHost is an open source (GPL licensed) project that provides web-based infrastructure to support collaboration, sharing, and storage of multi-media using the Creative Commons licenses and metadata. It is used by ccMixter and other sites.Categpru:Developer

Information

Short Description

"Web-based System Supporting Remixing and Collaboration on Media"

Sound Bites

Please add your own sound bite...

  • "ccHost enables you to 'run your own flickr or youtube while having an infrastructure for legally sharing audio, video, text, and other media." Jon Phillips 22:50, 25 August 2006 (UTC)


Goal

The goal of this project is to spread media content that is licensed under Creative Commons throughout the web in much the same way that weblogs spread CC licensed text. ccHost is web-based infrastructure that may be used to host and allow for commenting, remixing, and distribution globally. The more installations of ccHost and its variations, the more content there will be available for enjoyment and artistic re-use in a sane and legal setting. ccHost is what is used for the infamous Creative Commons CC Mixter project which supports legal media sharing and remixing. For more information, contact Jon Phillips at jon@creativecommons.org.

Frequently Asked Questions (FAQ)

Releases and Downloads

Current Version is 2.0.1

ccHost files on Source Forge

Screenshots

Release Notes

Press Releases

Experimental Thrice-Daily Builds

Currently, cchost packages are being made three-times a day and are available here: http://mirrors.creativecommons.org/cchost/packages/

Download, install and use these packages at your own risk.

Only 30 days worth of builds are saved currently.

SVN (Source Code Repository)

HOWTO Tag a Release

Really, each major release needs to be tagged, but this 2.0.1 is the first SVN release, and we did it post CVS -> SVN migration. In the future, this is the proper way to tag and branch.

svn copy https://svn.sourceforge.net/svnroot/cctools/cchost/trunk \
https://svn.sourceforge.net/svnroot/cctools/cchost/tags/2_0_1 \
-m "Tagging 2.0.1 bugfix release"

Here is more about SVN merging/branching.

Packaging

Sign Package

You should do this for all packages (RPM, tar.gz, zip, tar.bz2, etc)

gpg --detach-sign --armor cchost-VERSION.tar.gz

Verify Package

gpg --verify cchost-VERSION.tar.gz.asc

Communication

Bugs, Patches and Feature Requests

Make sure to use the 'ccHost' category when filing bugs. Also, please use a real email so that we can followup on any bugs posted. Be descriptive when posting and commenting on bugs (every bit counts).

Support

Browsers

  • Tested on: Firefox 1.0+ Mac/PC/Linux, IE 6+ PC, Safari Mac
  • Javascript, XHTML 1.0+, CSS 2

Usage Examples

Installation

General Requirements

  • PHP 4 (PHP 5 works if you sync to latest code.)
  • MySQL 4 (MySQL 5 works if you sync to latest code; MySQL 3 is not supported.)
  • GetID3
  • Cookies enabled in one's browser.
  • Platforms: This system has been tested on Apache 1 and 2 Windows and Linux. It also works with IIS on Windows. If you receive an error about DOCUMENT_ROOT, ignore it. IIS doesn't use DOCUMENT_ROOT, and ccHost doesn't seem to mind. If you have tested ccHost on System X or any other platform, please register as a ccDeveloper and update this page! Thanks. =)
    • Apache 2.0.49 up to at least apache-2.0.55-r1 works with cchost 2.0.1
  • Optional: Here is the block of code in the Apache virtual host for setting the rewrite rules to get pretty urls:
<VirtualHost *:80>
ServerName ccmixter.localhost
ServerPath /ccmixter
#DocumentRoot /var/www/localhost/htdocs/cchost 
DocumentRoot /home/rejon/Documents/freelance/creativecommons/src/ccmixter

<Directory "/home/rejon/Documents/freelance/creativecommons/src/ccmixter">
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?ccm=/$1 [L,QSA]
</Directory>
</VirtualHost>

Web Hosting Services

Common web hosting services like Dreamhost and WebsiteSource provide an administration interface from which to setup a mysql database. Hosting services also provide some FTP or SFTP mechanism to upload the cchost installation files as well. 99% of all services provide support for PHP as well. If you have questions about support in this area, check the requirements below and with your hosting service.

.htaccess file settings

Put the following into a file named '.htaccess' in your root directory of a ccHost setup if you can't set your php.ini settings for your hosting setup. These settings should work, but should be tested first. They correct many memory problems people have with ccHost.

# php configs http://www.php.net/manual/en/ini.core.php#ini.memory-limit
# http://www.php.net/manual/en/ini.php#ini.list

php_value memory_limit 20M
php_value upload_max_filesize 20M
# next line fixes noncompliant & used in php
php_value arg_separator.output &
php_flag session.use_trans_sid off
# turns off annoying autoquotes
php_flag magic_quotes_gpc off

Options +MultiViews

# Stop morons that are hammer your site
# Open Clip Art Library had someone DDoS'ing our site
<Limit GET>
 order deny,allow
 deny from 59.116.0.0/16
</Limit>

Windows

XAMPP

It is recommended to download XAMPP for Windows, which provides an easy install of Apache web server, MySQL database server, and PHP and perl programming languages. This is the easiest way to get up and running, as this system replicates the standard Open Source (and Linux) setup of a time-tested server, Apache, along with the required MySQL database and PHP programming language, all necessary to use ccHost.

Follow the instructions for installation of XAMPP to know where to put the uncompressed ccHost package to properly work with your local setup.

Windows IIS Server

Windows users with their installation disks may install optionally the Windows IIS Web Server. This option has been tested. However, there might still be issues with it, and if so, please file a bug.

Mac OS X

NOTE: This setup is similar to Linux.

Tested Setups

  • OS X 10.4.6
  • default OS X MySQL build, 4.0.26
  • GetID3 1.7.7
  • default Apache/PHP

Linux

Primary development is done on up-to-date Linux development systems using apache, mysql, and php. One should be able to easily install mysql, php, and apache (if they are not already available) through their distributions packaging system.

Step-by-step instructions

Simple or hosted environment

If you are using a shared server or other hosted site (like Dreamcast, etc.) then your hosting service probably provided you with a web interface for creating a database, doing file uploads and setting permissions for files and directories.

  1. Create a new database for ccHost BEFORE running this installation.
  2. Unzip the ccHost ZIP archive on your local system and copy the files to your server retaining the the directory structure.
  3. Browse to http://where_you_installed/ccadmin and follow all the instructions from then on.

Advanced environment

If you have basic knowledge of using FTP and you are comfortable at a UNIX/Linux command line you can use these steps to install:

  1. Unzip the ccHost ZIP or tar.bz2 archive on your local system and copy the files (retaining the directory structure) to your web-server directory. Change the group and permissions of the files so they may be written by the web server (e.g., in the following lines, the web-server account is "apache").
    • For example:
      1. cp -a cchost-1.0.3 /var/www/localhost/htdocs/cchost
      2. chgrp -R apache /var/www/localhost/htdocs/cchost
      3. chmod g+w /var/www/localhost/htdocs/cchost/
      4. chmod -R g+w /var/www/localhost/htdocs/cchost/cclib/phptal/phptal_cache/
  2. Install the GetID3 (1.7.3) library from here: http://www.getid3.org/#download . Unpack the package, and then copy the GetID3 directory to the location it will be accessed. For example:
    1. tar xzf getid3.tar.gz
    2. cp -a getid3/getid3 /var/www/localhost/htdocs/cchost/
  3. Create a new database for ccHost (e.g., named "cchost") and create an administrative user to access it (e.g., "cchostadmin"). For example:
    1. mysql -p -u root
    2. mysql> CREATE DATABASE cchost;
    3. mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE ON cchost.* TO 'cchostadmin'@'localhost' IDENTIFIED BY 'YOUR_PASSWORD_HERE';
      • Make sure to change 'YOUR_PASSWORD_HERE' (and maybe 'cchostadmin') to something unique to your site.
      • Many systems provide phpMyAdmin to take care of these tasks.
    4. Create directory /var/log/cchost or other location to store log files. Must be writable by the web-server account (e.g., "apache"). For example:
      1. mkdir /var/log/cchost
      2. chown apache:apache /var/log/cchost
    5. Browse to http://where_you_installed_cchost/ccadmin
      • Everything else you need to know will be on the screen from that point on, including suggested php.ini and .htaccess settings, access permissions requirements, etc.

Take Note: On the last screen of the installation process you'll be prompted to read about specific issues regarding file permissions. DO NOT SKIP THIS STEP!

Upgrade existing ccHost installations

  1. Log in as administrator
  2. Copy this installation over your current installation.
  3. Browse to: http://where_you_installed/?update=1

Note to 1.x ccHost installations: phpBB2 is no longer used for reviews. There is a script for importing existing phpBB2 format reviews into the new native reviewing system. Contact fourstones@users.sourceforge.net for details.

Notes

  • Installing the CCHost software involves downloading the source files from sourceforge, and running a simple installation script. Permissions will need to be set on several folders, namely cclib/phptal/phptal_cache.
  • The text for the front page can be changed by editing ccfiles/home.xml. The other menu functions and so on are generally modified using the admin functions of the site.

Development

Documentation

Discussion

Roadmap

Release Procedure

Community Building

Testing and Debugging

Sample Pools

People

History

Research