====== 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 deactivate ''Discover 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 posts * ''system -> 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//.