Forge Home


Install and configure Friendica to run on a LEMP stack


6,413 latest version

4.0 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.1.1 (latest)
  • 0.1.0
released Mar 17th 2017
This version is compatible with:
  • Puppet Enterprise 2017.2.x, 2017.1.x, 2016.5.x, 2016.4.x
  • Puppet >= 3.0.0 < 5.0.0
  • ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'eelcomaljaars-friendica', '0.1.1'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add eelcomaljaars-friendica
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install eelcomaljaars-friendica --version 0.1.1

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



eelcomaljaars/friendica — version 0.1.1 Mar 17th 2017


Table of Contents

  1. Description
  2. Setup - The basics of getting started with friendica
  3. Usage - Configuration options and additional functionality
  4. Reference - An under-the-hood peek at what the module is doing and how
  5. Limitations - OS compatibility, etc.
  6. Development - Guide for contributing to the module


Puppet class to install and configure a Friendica instance Friendica is a federated social platform.

What friendica affects

This module installs and configures a copy of the Friendica php code in /var/www.

By default it will also setup nginx, php-fpm, mysql and nscd to suit friendicas needs.

Beginning with friendica

Add it to you existing puppet setup and see this manual for optional settings. Or download the easy installer from to use this software without a full fledged puppet environment.


class { 'friendica':
  $service_name => "",
  $admin_email => "",


  • tls_key

Allow you to inject a TLS key that comes from eg encrypted hiera (eyaml)

  • service_name

The DNS name the friendica instance should serve. Defaults to the full qualified domain name of the server / node.

  • admin_mail

Working email address of the server admin. Use this email address to register the first account on your Friendica instance after setup. Defauls to info@service_name

  • mysql_web_user

The mysql user name that the friendica application uses to connect to mysql. Defaults to friendica-www

  • mysql_web_password

THe mysql password that the friendica application uses to connect to mysql. Has a default which may be ok if MySQL security is otherwise sane. But feeding it an eyaml encrypted alternative is better.

  • mysql_db_name

MySQL database name to use, defaults to 'friendica'

  • branch

The Friendica code is deployed using a git clone command. This options allows you to specify an alternative git branch to check out Defaults to develop.

Please note the the checkout is only performed during setup. Updates currently must be done manually using a git pull.

  • download_url

Option to specify an other GIT repository, defaults to the friendica public repo on Github.

  • manage_mysql

Wether to setup MySQL using the included puppet code. Defaults to true.

  • manage_nginx

Wether to setup nginx using the included puppet code. Defaults to true.

  • manage_php

Wether to setup php/php-fpm using the included puppet code. Defaults to true.

  • manage_nscd

Wether to setup nscd (name serving caching daemon) using the included puppet code. Defaults to true.

  • manage_firewall

Wether to setup a firewall rule using the included puppet code. Defaults to true.


For now only tested in Ubuntu 16.04 and Debian 8 on amd64.


Development for this module is managed in a Gitlab instance at Please feel free to raise issues or send PR there.