Version 4 (modified by mike, 7 years ago) (diff)


These instructions can be used for installing Plumi 3.0 on a Linux server using an Apache2 web server. To install Plumi 3.0 on FreeBSD you can visit  this guide. Although Plumi is more or less untested on other environments, it has been reported working without issues on OS X.


A) Requirements

  • Linux server machine with these system requirements and Apache2 web server & domain set up in which to run your Plumi site.
  • Shell access to server and an account with permissions over domain's directory.
  • The server will need to have:
    • GCC development tools.
    • make.
    • Subversion version control system (svn).
    • Python 2.4
    • ffmpeg with h264 support and ffmpeg2theora
  • Plumi 3 is built on Plone 3 which requires Python 2.4 to operate correctly. It will be installed as part of the installation detailed in this chapter.

B) Two Domains Required

Plumi 3 requires two domains to operate although they can point to the same server:

  • The Plumi Site (eg:
  • Plumi Transcode Daemon and transcoded files (

Please ensure that these domains are set up in advance of your site installation and have had sufficient time to propagate through the Internet (eg: 24-48 hours).

NOTE: If you server is not going to be accessed from the Internet, you still need to set up the domains within your private network (eg: internal DNS server, /etc/hosts files on all workstations, etc).

C) Setting up Python & video codecs

The following instructions apply for Ubuntu. If you are using another distribution you need to adjust accordingly.

The video codecs (ffmpeg with h264 support) are not part of the standard Ubuntu repositories and you will need use the following command to add the Medibuntu repository to your system:

sudo wget --output-document=/etc/apt/sources.list.d/medibuntu.list$(lsb_release -cs).list && sudo apt-get --quiet update && sudo apt-get --yes --quiet --allow-unauthenticated install medibuntu-keyring && sudo apt-get --quiet update

Once your system is configured to use the Medibuntu repository you can install Python and the codecs by running this command:

apt-get install python2.4-dev python2.4-setuptools build-essential libavcodec-unstripped-52 ffmpeg ffmpeg2theora

Plumi installation

1) Plumi can be downloaded and installed using SVN or as a packaged tarball.

1a) Download Plumi from SVN

Plumi is available from the Plone SVN server. To download version 3.0 of Plumi, run the following command:

svn co target_folder_name

1b) Download Plumi as a Packaged Release

Plumi can be downloaded as a fully packaged release in an archive using the tar format. Only tagged versions are available this way, not the current trunk. To download a packaged release, follow the instructions below:

mkdir /opt/plumi wget tar -xzvf plumi3.tgz cd plumi-3

2) Set Site Configuration Information

Configure the specific information about this Plumi installation, including:

  • Change all references to hostname & email address
  • Check the ports and change them if the defaults are already in use
  • Set the effective user to the name of the user account that Zope is to be installed under (NOTE: This user should already be set up - the Plumi installation script will not create it)
  • Set the default Zope admin user & password if you want them to be different (recommended)

NOTE: It is best to use the default URLs unless you are putting the transcoder on a separate machine

Edit the site.cfg file and provide the following details:

# site-specific settings for a Plumi based site

[site] # start with offbeat password, and hint that it should be made unique in-site: user = admin:admin <-Default Zope admin user & password effective-user = zope <-User that Zope will be installed under http-address = <-Internal address of the Zope server ftp-address = <-Internal address of the Zope FTP server transcode_host = <-Internal address of the transcoder transcode_port = 8888 <-Port the transcoder will listen on videofolder = transcoded <-Directory where videos will be placed

#squid configs squid_address = squid_backend = ${site:http-address} squid_hostname = <-Replace this with your domain name squid_email = plumi@… <-Replace this with a valid email address

#apache configs apache_backends =${site:squid_address} transcode_backends =${site:transcode_host}:${site:transcode_port} apache_zope2_vhm_map = <-Replace this with your domain and Plumi site name

3) Run the buildout then setup & configure Plumi

# Prepare to run the buildout (bootstrap is a Python script that creates a number of directories and scripts based on the buildout configuration file, and downloads the latest version of the zc.buildout egg).

$ python2.4

# Run the buildout (in verbose mode). This will take between 5 to 10 minutes, possibly more depending on your server's configuration & load. Sit down, grab a coffee and wait till it finishes!

$ ./bin/buildout -v

# Now start Zope/Plone? and the other applications in the background (NOTE: This assumes you are running Apache & Squid as supplied by the Plumi Buildout)

./bin/instance start ./bin/transcodedaemon start ./bin/squid-instance sudo ./bin/apachectl start

# If your server already has Apache & Squid set up on it (eg: for hosting other, non-Plumi sites), copy the files below into the list of available Apache sites and enable them (remember to replace with your site's domain) and then restart Apache:

cp ./parts/apacheconf/conf.d/ /etc/apache2/sites-available cp ./parts/apachetranscodeconf/conf.d/ /etc/apache2/sites-available /etc/init.d/apache2 restart

# Once the instance is running, go to the Zope Management Interface (ZMI).

If you've used a non-standard port for Zope, replace the 8080 in the URL above with the port you have specified when configuring the buildout.

# Log in to the ZMI using the admin login details you specified in site.cfg (eg: username: admin, password: admin). If you want to change the admin user's ZMI password once logged in, navigate to acl_users -> users -> password.

# Add a Plone site or instance in the ZMI.

Click “Root Folder” in the left-hand sidebar. Choose Plone site from the Select type to add... drop-down menu and click Add.

Enter the ID, Name and Description, e.g. ID "plumi" and Name "Plumi Site". Click Add Plone Site.

# Visit your new plone site by entering this URL:

If you've used a non-standard port for Zope, replace the 8080 in the URL above with the port you have specified when configuring the buildout.

# Click site setup in the top right corner. Click Add/Remove? Products and install the Plumi application setup product.

Wait a few minutes for your Plumi site to install. When it is done, the page will reload and you should see a freshly installed Plumi site :)

# Go to the Zope Management Interface (ZMI) and select portal_properties/plumi_properties then set addresses for transcodedaemon (eg:, videoserver (eg: and plonesite (eg:

# Add a new user to your Plumi site for testing (the admin user may not have the correct folders created for them, as this user is created before the Plumi site is generated). Log out and log back in as your new user.

# Try publishing a video in your new Plumi site (logged in as this new testing user).

# Check the video after it has uploaded to see if it has been created and transcoded correctly.

4) Install PlumiFTP (optional)

An optional addition to Plumi is the PlumiFTP module. This provides an FTP service that monitors port 21 and intterfaces with the Zope FTP service. It is not essential for the operatoin of Plumi.

To install PlumiFTP, run the following command

sudo easy_install-2.4 plumiftp

Once installed, run the following commands to set up the configuration files

cp /usr/lib/python2.4/site-packages/plumiftp-0.4-py2.4.egg/plumiftp/plumiftp.cfg /etc cp /usr/lib/python2.4/site-packages/plumiftp-0.4-py2.4.egg/plumiftp/plumiftp.initscript /etc/init.d/plumiftp chmod +x /etc/init.d/plumiftp

Now you need to edit the /etc/plumiftp.cfg file to configure PlumiFTP as required. The values you can set are:

  • TmpDir? Temporary storage for files as they are being uploaded
  • ZopeFTPServerAddr The URL to the Zope FTP server (be st left as localhost if possible)
  • ZopeFTPServerPort The port your Zope FTP server is listening on
  • ZopePathString? Change plumi-id to the ID of your plumi site
  • RealFTP values Set the URL, port, "hello" and "goodbye" messages that PlumiFTP will use when providing the FTP service

Once you have completed editing the configuration file, use the following command to start PlumiFTP:

/etc/init.d/plumiftp start

Now you can test that PlumiFTPis running by using telnet to connect to your site on the RealFTP URL & port. You should see the "hello" message you set up in /etc/plumiftp.cfg:

telnet 21

For the current version of PlumiFTP, you should also see the following message:

220 pyftpdlib 0.5.2 ready

Future versions of PlumFTP will show a different version number.

5) Configuring Plumi to start automatically

To ensure that Plumi will start automatically whenever your server is turned on, add the following lines to your /etc/rc.local file:

./bin/instance start ./bin/squid-instance su zope -c './bin/transcodedaunemon start' ./bin/apachectl start

NOTE: Replace the "zope" in "su zope -c" with the name of the user you installed Plumi under (the "effective-user" from site.cfg)

if you are running PlumiFTP on your site, you will also need to add the following line:

/etc/init.d/plumiftp start