<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wikimirror.piraten.tools/wiki/index.php?action=history&amp;feed=atom&amp;title=Pirate_Feedback%2FInstallation</id>
	<title>Pirate Feedback/Installation - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wikimirror.piraten.tools/wiki/index.php?action=history&amp;feed=atom&amp;title=Pirate_Feedback%2FInstallation"/>
	<link rel="alternate" type="text/html" href="https://wikimirror.piraten.tools/wiki/index.php?title=Pirate_Feedback/Installation&amp;action=history"/>
	<updated>2026-04-07T21:28:17Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Piratenwiki Mirror</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wikimirror.piraten.tools/wiki/index.php?title=Pirate_Feedback/Installation&amp;diff=55868997&amp;oldid=prev</id>
		<title>imported&gt;Rüdiger: /* Optional https via letsencrypt */</title>
		<link rel="alternate" type="text/html" href="https://wikimirror.piraten.tools/wiki/index.php?title=Pirate_Feedback/Installation&amp;diff=55868997&amp;oldid=prev"/>
		<updated>2018-11-10T17:22:49Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Optional https via letsencrypt&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= How to install Pirate Feedback =&lt;br /&gt;
&lt;br /&gt;
This installation is for a Debian 6 (squeeze) or 7 (wheezy) system. Installation on different Linux distributions is possible with little changes.&lt;br /&gt;
&lt;br /&gt;
== Debian packages ==&lt;br /&gt;
&lt;br /&gt;
PostgreSQL 9.6 is tested, but Pirate Feedback should also work with every version up from 8.4.&lt;br /&gt;
&lt;br /&gt;
On Debian 6 (squeeze) add the backports to /etc/apt/sources.list to make PostgreSQL 9.1 available:&lt;br /&gt;
 # Backports for squeeze&lt;br /&gt;
 deb http://backports.debian.org/debian-backports squeeze-backports main&lt;br /&gt;
&lt;br /&gt;
Install debian security updates:&lt;br /&gt;
 apt-get update&lt;br /&gt;
 apt-get upgrade&lt;br /&gt;
&lt;br /&gt;
This example uses exim as mail transfer agent, but actually you just need any mail transfer agent.&lt;br /&gt;
&lt;br /&gt;
Install the necessary debian packages:&lt;br /&gt;
 apt-get install lua5.1 postgresql-9.6 postgresql-server-dev-9.6&lt;br /&gt;
 build-essential libpq-dev liblua5.1-0-dev ghc  imagemagick &lt;br /&gt;
&lt;br /&gt;
( lighttpd  oder Apache ?)&lt;br /&gt;
( exim4 ?)&lt;br /&gt;
( libghc6-parsec3-dev ??)&lt;br /&gt;
&lt;br /&gt;
Configure mail system:&lt;br /&gt;
 dpkg-reconfigure exim4-config&lt;br /&gt;
&lt;br /&gt;
== Preparation ==&lt;br /&gt;
&lt;br /&gt;
Create the destination directory as root and set the ownership to your normal user:&lt;br /&gt;
 # mkdir /opt/pirate_feedback&lt;br /&gt;
 # chown &amp;lt;user&amp;gt; /opt/pirate_feedback&lt;br /&gt;
&lt;br /&gt;
Create a directory for unpacking source tar balls, from now on as your normal user:&lt;br /&gt;
 mkdir /opt/pirate_feedback/src&lt;br /&gt;
&lt;br /&gt;
== RocketWiki ==&lt;br /&gt;
&lt;br /&gt;
 apt-get install cabal-install&lt;br /&gt;
 ( cabal install transformers-0.4.3.0 -- Abhängigkeit zur genauen Version siehe [http://stackoverflow.com/questions/37944725/cabal-failed-to-install-mtl-missing-dependency-of-transformers] ??)&lt;br /&gt;
 cabal install parsec&lt;br /&gt;
 cabal install dph-seq&lt;br /&gt;
 cabal install dph-par&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
 cd /opt/pirate_feedback/src&lt;br /&gt;
 wget http://www.public-software-group.org/pub/projects/rocketwiki/liquid_feedback_edition/v0.4/rocketwiki-lqfb-v0.4.tar.gz&lt;br /&gt;
 tar xzf rocketwiki-lqfb-v0.4.tar.gz&lt;br /&gt;
 cd rocketwiki-lqfb-v0.4&lt;br /&gt;
 make&lt;br /&gt;
 mkdir /opt/pirate_feedback/rocketwiki-lqfb&lt;br /&gt;
 cp rocketwiki-lqfb rocketwiki-lqfb-compat /opt/pirate_feedback/rocketwiki-lqfb/&lt;br /&gt;
&lt;br /&gt;
== Files ==&lt;br /&gt;
&lt;br /&gt;
Note that the patch files from wigbold8 are lost. You may download already patched code at https://bitbucket.org/cmrcx/ which ist nescessary for webcmp but only includes changes up to 2013, or from https://github.com/rudipf/pirate_feedback which includes the code changes from 2017 on.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download and unpack the archives:&lt;br /&gt;
 cd /opt/pirate_feedback/src&lt;br /&gt;
 wget http://www.public-software-group.org/pub/projects/webmcp/v1.2.5/webmcp-v1.2.5.tar.gz&lt;br /&gt;
 wget http://www.public-software-group.org/pub/projects/liquid_feedback/backend/v2.2.4/liquid_feedback_core-v2.2.4.tar.gz&lt;br /&gt;
 wget http://www.public-software-group.org/pub/projects/liquid_feedback/frontend/v2.2.3/liquid_feedback_frontend-v2.2.3.tar.gz&lt;br /&gt;
 wget http://wigbold8.piratenpartei-bayern.de/releases/pirate_feedback-v1.2.2.tar.bz2&lt;br /&gt;
 rm -rf webmcp-v1.2.5           # remove temporary files from last installation&lt;br /&gt;
 tar xzf webmcp-v1.2.5.tar.gz&lt;br /&gt;
 tar xzf liquid_feedback_core-v2.2.4.tar.gz&lt;br /&gt;
 tar xzf liquid_feedback_frontend-v2.2.3.tar.gz&lt;br /&gt;
 tar xjf pirate_feedback-v1.2.2.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Apply patches and move files:&lt;br /&gt;
 cd webmcp-v1.2.5/&lt;br /&gt;
 patch -p1 &amp;lt; ../pirate_feedback-v1.2.2/webmcp-v1.2.5_pirate_feedback-v1.2.2.diff&lt;br /&gt;
 make&lt;br /&gt;
 mkdir ../../webmcp-v1.2.5_pirate_feedback-v1.2.2&lt;br /&gt;
 cp -RL framework/* ../../webmcp-v1.2.5_pirate_feedback-v1.2.2&lt;br /&gt;
&lt;br /&gt;
 cd ../liquid_feedback_core-v2.2.4&lt;br /&gt;
 patch -p1 &amp;lt; ../pirate_feedback-v1.2.2/liquid_feedback_core-v2.2.4_pirate_feedback-v1.2.2.diff&lt;br /&gt;
&lt;br /&gt;
 cd ../liquid_feedback_frontend-v2.2.3&lt;br /&gt;
 patch -p1 &amp;lt; ../pirate_feedback-v1.2.2/liquid_feedback_frontend-v2.2.3_pirate_feedback-v1.2.2.diff&lt;br /&gt;
&lt;br /&gt;
 cd ..&lt;br /&gt;
 mv liquid_feedback_core-v2.2.4 ../liquid_feedback_core-v2.2.4_pirate_feedback-v1.2.2&lt;br /&gt;
 mv liquid_feedback_frontend-v2.2.3 ../liquid_feedback_frontend-v2.2.3_pirate_feedback-v1.2.2&lt;br /&gt;
&lt;br /&gt;
In the configuration we use the short paths without the version numbers. We will set the necessary links later.&lt;br /&gt;
&lt;br /&gt;
Prepare and configure the core:&lt;br /&gt;
 cd ../liquid_feedback_core-v2.2.4_pirate_feedback-v1.2.2&lt;br /&gt;
 make&lt;br /&gt;
 chmod +x import_members lf_update lf_update_suggestion_order lf_updated lf_notification lf_update_and_notification.sh lf_export check_sane.sh backup_data.sh recreate_schema.sh&lt;br /&gt;
 cp config_example config     # copy configuration from example or previous version&lt;br /&gt;
 vi config&lt;br /&gt;
&lt;br /&gt;
Prepare and configure the frontend:&lt;br /&gt;
 cd ../liquid_feedback_frontend-v2.2.3_pirate_feedback-v1.2.2&lt;br /&gt;
 chmod 777 tmp/&lt;br /&gt;
 cd fastpath&lt;br /&gt;
 make&lt;br /&gt;
 cd ../locale&lt;br /&gt;
 make&lt;br /&gt;
 cd ../config&lt;br /&gt;
 cp example.lua myconfig.lua    # copy configuration from example or previous version&lt;br /&gt;
 vi myconfig.lua&lt;br /&gt;
&lt;br /&gt;
Set links to new version:&lt;br /&gt;
 cd /opt/pirate_feedback&lt;br /&gt;
 rm webmcp                       # removes the link to a previous version if you're upgrading&lt;br /&gt;
 ln -s webmcp-v1.2.5_pirate_feedback-v1.2.2/ webmcp&lt;br /&gt;
 rm liquid_feedback_core         # removes the link to a previous version if you're upgrading&lt;br /&gt;
 ln -s liquid_feedback_core-v2.2.4_pirate_feedback-v1.2.2/ liquid_feedback_core&lt;br /&gt;
 rm liquid_feedback_frontend     # removes the link to a previous version if you're upgrading&lt;br /&gt;
 ln -s liquid_feedback_frontend-v2.2.3_pirate_feedback-v1.2.2/ liquid_feedback_frontend&lt;br /&gt;
&lt;br /&gt;
Additional directory, if you want to use the export:&lt;br /&gt;
 cd /opt/pirate_feedback&lt;br /&gt;
 mkdir export_dump&lt;br /&gt;
 chmod 777 backup_dump export_dump&lt;br /&gt;
&lt;br /&gt;
Additional directories, if you want to use the member import script:&lt;br /&gt;
 cd /opt/pirate_feedback&lt;br /&gt;
 mkdir member_import&lt;br /&gt;
 mkdir member_import_processed&lt;br /&gt;
&lt;br /&gt;
== Database ==&lt;br /&gt;
&lt;br /&gt;
On Debian the user of the webserver is &amp;quot;www-data&amp;quot;. On other Linux distributions this user might have a different name.&lt;br /&gt;
&lt;br /&gt;
Create a database role for www-data:&lt;br /&gt;
 # su - postgres&lt;br /&gt;
 createuser&lt;br /&gt;
 Enter name of role to add: www-data&lt;br /&gt;
 Shall the new role be a superuser? (y/n) n&lt;br /&gt;
 Shall the new role be allowed to create databases? (y/n) y&lt;br /&gt;
 Shall the new role be allowed to create more new roles? (y/n) n&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Set up the database:&lt;br /&gt;
 # usermod -s /bin/bash www-data&lt;br /&gt;
 # su www-data&lt;br /&gt;
 cd /opt/pirate_feedback/liquid_feedback_core&lt;br /&gt;
 createdb pirate_feedback&lt;br /&gt;
 createlang plpgsql pirate_feedback&lt;br /&gt;
 psql -v ON_ERROR_STOP=1 -f core.sql pirate_feedback&lt;br /&gt;
 psql -v ON_ERROR_STOP=1 -f core_ext.sql pirate_feedback&lt;br /&gt;
 psql pirate_feedback&lt;br /&gt;
&lt;br /&gt;
Deactivate members after one 3 months of inactivity and delegations 3 months after last confimation:&lt;br /&gt;
 pirate_feedback=&amp;gt; INSERT INTO system_setting (member_ttl, delegation_ttl) VALUES ('3 mons', '3 mons');&lt;br /&gt;
&lt;br /&gt;
Set amount of text entries or initiatives a user may create within a given time frame:&lt;br /&gt;
 pirate_feedback=&amp;gt; INSERT INTO contingent (time_frame, text_entry_limit, initiative_limit) VALUES ('1 hour', 20, 6);&lt;br /&gt;
 pirate_feedback=&amp;gt; INSERT INTO contingent (time_frame, text_entry_limit, initiative_limit) VALUES ('1 day', 80, 12);&lt;br /&gt;
&lt;br /&gt;
Create an administrator account:&lt;br /&gt;
 pirate_feedback=&amp;gt; INSERT INTO member (login, name, admin, invite_code) VALUES ('admin', 'Administrator', TRUE, _INSERT_ADMIN_INVITE_CODE_IN_SINGLE_QUOTES_HERE_);&lt;br /&gt;
&lt;br /&gt;
Everything else can be done later in the administration area.&lt;br /&gt;
&lt;br /&gt;
Exit from psql and su:&lt;br /&gt;
 pirate_feedback=&amp;gt; \q&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
== Webserver ==&lt;br /&gt;
&lt;br /&gt;
This example uses lighttpd. It also works with apache, but the configuration is different.&lt;br /&gt;
&lt;br /&gt;
Copy and adjust the example configuration:&lt;br /&gt;
 # cp /opt/pirate_feedback/liquid_feedback_core/60-pirate_feedback.conf_example /etc/lighttpd/conf-available/60-pirate_feedback.conf&lt;br /&gt;
 # vi /etc/lighttpd/conf-available/60-pirate_feedback.conf&lt;br /&gt;
 # cd /etc/lighttpd/conf-enabled&lt;br /&gt;
 # ln -s ../conf-available/60-pirate_feedback.conf .&lt;br /&gt;
&lt;br /&gt;
Change the document root:&lt;br /&gt;
 # vi /etc/lighttpd/lighttpd.conf&lt;br /&gt;
&lt;br /&gt;
 server.document-root = &amp;quot;/opt/pirate_feedback/webmcp/cgi-bin&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Restart the webserver:&lt;br /&gt;
 # /etc/init.d/lighttpd restart&lt;br /&gt;
&lt;br /&gt;
== Background processes ==&lt;br /&gt;
&lt;br /&gt;
Install initscripts:&lt;br /&gt;
 # cp /opt/pirate_feedback/liquid_feedback_core/lf_updated /etc/init.d/&lt;br /&gt;
 # update-rc.d lf_updated defaults&lt;br /&gt;
 # /etc/init.d/lf_updated start&lt;br /&gt;
 # cp /opt/pirate_feedback/liquid_feedback_core/lf_notification /etc/init.d/&lt;br /&gt;
 # update-rc.d lf_notification defaults&lt;br /&gt;
 # /etc/init.d/lf_notification start&lt;br /&gt;
&lt;br /&gt;
If you want to use the export:&lt;br /&gt;
 www-data$ crontab -e&lt;br /&gt;
&lt;br /&gt;
 23 0 * * * /opt/pirate_feedback/liquid_feedback_core/lf_export&lt;br /&gt;
&lt;br /&gt;
If you want to use the member import script:&lt;br /&gt;
 # crontab -e&lt;br /&gt;
&lt;br /&gt;
 */5 * * * *  /opt/pirate_feedback/liquid_feedback_core/import_members&lt;br /&gt;
&lt;br /&gt;
== First login ==&lt;br /&gt;
&lt;br /&gt;
Take the browser and navigate to your new Pirate Feedback. Go to &amp;quot;Login&amp;quot;, then &amp;quot;Registration&amp;quot; and enter the invite code you provided earlier. Register the admin user and then log in. Under &amp;quot;Admin&amp;quot; you will find the administration area where you can add members, units, areas and policies.&lt;br /&gt;
&lt;br /&gt;
== Optional https via letsencrypt ==&lt;br /&gt;
Akording to current debian&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install certbot&lt;br /&gt;
&lt;br /&gt;
apt install python-certbot-apache&lt;br /&gt;
&lt;br /&gt;
a2enmod ssl&lt;br /&gt;
&lt;br /&gt;
sudo certbot --authenticator standalone --installer apache  \&lt;br /&gt;
 -d &amp;lt;domain&amp;gt; --pre-hook &amp;quot;service apache2 stop&amp;quot; --post-hook &amp;quot;service apache2 start&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Choose an admin mail adress for the certificate on any domain. Domain ist the FQDN of the installation. You need an existing sites-available/....conf.&lt;br /&gt;
&lt;br /&gt;
== Update to a new release ==&lt;br /&gt;
&lt;br /&gt;
Install the new files like described in the section &amp;quot;Files&amp;quot;, but stop before setting the links&lt;br /&gt;
&lt;br /&gt;
Stop the webserver and the background processes:&lt;br /&gt;
 # /etc/init.d/lf_updated stop&lt;br /&gt;
 # /etc/init.d/lf_notification stop&lt;br /&gt;
 # /etc/init.d/lighttpd stop&lt;br /&gt;
 # crontab -e    # deactivate member import&lt;br /&gt;
&lt;br /&gt;
Check if everything is fine:&lt;br /&gt;
 # /opt/pirate_feedback/liquid_feedback_core/check_sane.sh&lt;br /&gt;
&lt;br /&gt;
Set the links like described in the section &amp;quot;Files&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Backup the database:&lt;br /&gt;
 # cd /opt/pirate_feedback/liquid_feedback_core&lt;br /&gt;
 # ./backup_data.sh&lt;br /&gt;
&lt;br /&gt;
Update the database (only if there are changes and an update file is supplied):&lt;br /&gt;
 # cd /opt/pirate_feedback/liquid_feedback_core&lt;br /&gt;
 # su www-data&lt;br /&gt;
 psql -v ON_ERROR_STOP=1 -f update/core-update.pirate_feedback-v1.1.0.sql pirate_feedback&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
Recreate the database schema:&lt;br /&gt;
 # cd /opt/pirate_feedback/liquid_feedback_core&lt;br /&gt;
 # ./recreate_schema.sh&lt;br /&gt;
&lt;br /&gt;
Start the webserver and the background processes:&lt;br /&gt;
 # /etc/init.d/lf_updated start&lt;br /&gt;
 # /etc/init.d/lf_notification start&lt;br /&gt;
 # /etc/init.d/lighttpd start&lt;br /&gt;
 # crontab -e    # reactivate member import&lt;br /&gt;
&lt;br /&gt;
Check if everything is fine:&lt;br /&gt;
 # /opt/pirate_feedback/liquid_feedback_core/check_sane.sh&lt;br /&gt;
&lt;br /&gt;
== Convert database from LiquidFeedback ==&lt;br /&gt;
&lt;br /&gt;
It is possible to convert an existing LiquidFeedback database and then continue with Pirate Feedback. The existing delegation chains will be converted to preference lists.&lt;br /&gt;
&lt;br /&gt;
 # su www-data&lt;br /&gt;
 cd /opt/pirate_feedback/liquid_feedback_core&lt;br /&gt;
 created pirate_feedback&lt;br /&gt;
 createlang plpgsql pirate_feedback&lt;br /&gt;
 psql -v ON_ERROR_STOP=1 -f liquid_feedback.sql pirate_feedback&lt;br /&gt;
 psql -v ON_ERROR_STOP=1 -f update/core-update.liquid_feedback-pirate_feedback.sql pirate_feedback&lt;br /&gt;
 exit&lt;br /&gt;
 # cd /opt/pirate_feedback/liquid_feedback_core&lt;br /&gt;
 # ./recreate_schema.sh&lt;br /&gt;
&lt;br /&gt;
Then recalculate the vote counts:&lt;br /&gt;
 # su www-data&lt;br /&gt;
 cd /opt/pirate_feedback/liquid_feedback_core&lt;br /&gt;
 psql -v ON_ERROR_STOP=1 -f update/core-update.pirate_feedback-v1.1.0.sql pirate_feedback&lt;br /&gt;
 exit&lt;br /&gt;
&lt;br /&gt;
== Notices ==&lt;br /&gt;
&lt;br /&gt;
Of course these installation instructions base on the instructions for LiquidFeedback:&lt;br /&gt;
http://dev.liquidfeedback.org/trac/lf/wiki/installation&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:BY:Pirate Feedback|Installation]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Rüdiger</name></author>
	</entry>
</feed>