Configuration Guide for small Nodes
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).
Server wide settings
Settings in the admin panel
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.
Limit public access
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
.
Discovery
Discovering potential contacts is great, but will use resources. So
- set
Discover followers/followings from contacts
to None and just to be sure deactivateDiscover contacts from other servers
. - Also
Only update contacts/servers with local data
should limit the data-waste filling up the database.
Remote content
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 also- limit the
Maximum age of items in the search table
. - The
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. - Deactivate the
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).
Relays
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…
- set the
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. However - set the
Lifespan of unclaimed items
to 1 (or another low value) so that these posting will get deleted quickly again
Display of content
Limit the amount of postings
and comments that are shown on one page. A value of 20 is working for the RasPi.
Deferred worker tasks
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.
Settings in the config file
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.
User settings
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.