This guide aims to provide a collection of settings for nodes installed with limited resources. They are actively used on a small (family) node running on a RaspberryPi 4B (8GB ram). But other restricted environments, e.g. a small VPS or shared hosting fall into targeted hardware range.
The result of this configuration is a limitation of the feature set that Friendica offers in exchange for a lighter footprint on the limited resources (e.g. less storage space/database size).
Activate the fast lane
worker. This will keep one worker process dealing only with the delivery of content. After all we want to share postings with contacts in a social network, so this should not suffer from other tasks the worker has to perform.
If non-logged in users have less access to potentially resource hungry parts of Friendica those resources are free for logged in users. These resource hungry parts include Community pages for visitors
(None), Disallow public access to addons listed in the apps menu.
, Only local search
.
Discovering potential contacts is great, but will use resources. So
Discover followers/followings from contacts
to None and just to be sure deactivate Discover contacts from other servers
.Only update contacts/servers with local data
should limit the data-waste filling up the database.Delete it automatically, as long as it is not protected by the users of the node. The settings for this are
Lifespan of remote items
and alsoMaximum age of items in the search table
.Lifespan of raw conversation data
is kept for 90 days by default, but the description claims it is save to delete it after 14 days so, take the minimum save value.Cache contact avatars
option.
Don't forget to select Clean database
and Periodically optimize tables
. The optimization will actually free the space the table is reserving on the storage (else the database will fill up the reserved space before claiming more).
Relay server are great to get content into your node, especially on small nodes (likely those with limited resources). Fill the global community page and have nice channel content based on them. But those postings will also eat the resources of the server quickly. So…
Relay scope
to tags and define some tags your server should import. Also “Allow user tags” so that the user can set tags to follow from the relay. HoweverLifespan of unclaimed items
to 1 (or another low value) so that these posting will get deleted quickly again
Limit the amount of postings
and comments that are shown on one page. A value of 20 is working for the RasPi.
Sometimes a post delivery task performed by the background worker fails and is deferred to a later time to try again. With the Worker defer limit
the number of re-tries can be defined.
system → fetch_parents = false
this will prevent Friendica to fetch missing parent postssystem → optimize_all_tables = true
this will optimizes all tables instead of only tables like workerqueue or the cache, so when things in the database are deleted, more space is freed.In addition to the mentioned settings admins can set for their server users can limit the scope of content they collect from their contacts; which in turn reduces the amount of postings that have to be stored in the database. The Followed content scope settings can be found in the personal profile settings → Social Media → General Social Media Settings. The most limited option is to only conversations my follows started.