29. Install Friendica

by Double Bastion - Updated December 9, 2024

Friendica is a social network server that can be used to implement decentralized social media services. It can be considered a part of the ‘Fediverse’ (the ensemble of interconnected servers used for social networking, microblogging, etc., that can communicate with each other while being independently operated). Friendica is the best among all the free and open source applications of the ‘Fediverse’ because of its well-thought structure, features and programming language (PHP). It’s the only decentralized social network software capable to take on the fight with Facebook. You can’t fight an enemy like Facebook using a mediocre programming language, like other popular decentralized social network platforms do.

Friendica allows real control, autonomy and freedom in the social media sphere. If you want to remain in control of your data when using social media, you can install your own Friendica server and decide who will be able to register, what you will do with the stored data, etc.

Friendica was added to RED SCARF Suite not only because today social media is part of the digital life of so many people, but because many businesses use social media as a tool to make their products or services known. By including Friendica in this software suite, we proved that even the seemingly inevitable Facebook, Instagram or X social media marketing, can be in fact avoided and replaced with freedom and privacy respecting alternatives that allow data sovereignty.

In order to avoid overloading the server, we recommend to install Friendica only for local use, which means that only your employees, collaborators, etc., (around 60 people) will be able to register and use the Friendica server also called a ‘node’. The general public will be able to view the profiles and posts on the server but they won’t be allowed to register. Nevertheless, the registered users will be able to connect to users of other Friendica servers and even to users of different platforms from the ‘Fediverse’ like: Diaspora, Mastodon, GNU social, Red, Hubzilla, StatusNet, Pleroma, Socialhome, Pump.io, GangGo, etc. In principle, Friendica can communicate with any applications using the ActivityPub, OStatus or Diaspora protocols. It can be also used to read X (formerly Twitter) feeds using bridges like bird.makeup .

Navigate to /var/www and create a directory called friendica.example.com, then switch to that directory:

cd /var/www
mkdir friendica.example.com
cd friendica.example.com

Next, download the latest versions of Friendica and of Friendica addons available on the ‘Releases’ page of the official GitHub repository. First navigate to https://github.com/friendica/friendica/releases, and search for the latest release where in the Using the Archive Files section, you find 2 links, one to the friendica-full package and the other to the corresponding friendica-addon package. They should look like this: friendica-full-2024.03.tar.gz and friendica-addons-2024.03.tar.gz. If the Using the Archive Files section doesn’t contain the links to both archives, don’t download the archives listed under Assets because they are incomplete and will generate errors when you will run the installation process. In that case, search for the 2 links in the previous release. Once you have found the 2 links, first right-click on the friendica-full-2024.03.tar.gz link, choose ‘Copy Link’, then use wget to download the first archive:

wget https://files.friendi.ca/friendica-full-2024.03.tar.gz

Extract the first archive:

tar xf friendica-full-2024.03.tar.gz
cd friendica-full-2024.03
mv * ..
mv .* ..
cd ..
rm -r friendica-full-2024.03 friendica-full-2024.03.tar.gz

Next, right-click on the friendica-addons-2024.03.tar.gz archive, choose ‘Copy Link’, then use wget to download the second archive:

wget https://files.friendi.ca/friendica-addons-2024.03.tar.gz

Extract the second archive, then remove it:

tar xf friendica-addons-2024.03.tar.gz
rm friendica-addons-2024.03.tar.gz

Change ownership and permissions for the friendica.example.com directory and its subdirectories:

cd ..
chown -R www-data:www-data friendica.example.com
find /var/www/friendica.example.com -type d -exec chmod 750 {} +
find /var/www/friendica.example.com -type f -exec chmod 640 {} +

Next, create a MariaDB database for Friendica. Go to phpMyAdmin, log in, click on ‘Databases’, in the ‘Create Database’ box enter a name for your database (like friendicadb), click on ‘Create’. Then click on ‘Home’, ‘User accounts’, click on ‘Add user account’, in the ‘User name:’ box enter a name for the new user (like friendicauser), in the ‘Host name:’ field enter localhost, then enter a password and re-type it. Make sure you save the database name, the database username and its password in a separate file, to use them later. Then leave everything unchecked at ‘Global privileges’ and click ‘Go’.

Then give the new user all the privileges (except for GRANT) on the new Friendlica database: click on ‘User accounts’, click on ‘Edit privileges’ next to the name of the new user, click on the ‘Database’ tab, select the name of the Friendlica database from the list of databases, then click on ‘Go’, then, next to ‘Database-specific privileges’ check ‘Check all’, then under ‘Administration’ uncheck ‘GRANT’, then click ‘Go’.

29.1. Obtain a Let’s Encrypt SSL certificate


Edit your DNS settings. Add an A entry and an AAAA entry for friendica.example.com. These entries are similar with the entries you already have for cloud.example.com. It’s just that instead of cloud you enter friendica .

Edit the server blocks configuration file:

nano /etc/nginx/sites-enabled/0-conf

Create a new server block for friendica.example.com, by adding the following lines (replace example.com with your domain) at the bottom of the /etc/nginx/sites-enabled/0-conf file:

server {
    listen 80;
    listen [::]:80;
    server_name friendica.example.com;

    location /.well-known/acme-challenge {
        root /var/www;
    }
}

Restart Nginx:

systemctl restart nginx

Get a Let’s Encrypt SSL certificate for friendica.example.com by running:

certbot certonly --agree-tos --webroot -w /var/www/ -d friendica.example.com

29.2. Configure Nginx


Open the /etc/nginx/sites-enabled/0-conf file and replace the entire server block for friendica.example.com with the following server blocks:

server {
    listen  80;
    listen [::]:80;
    server_name friendica.example.com;
    return  301 https://friendica.example.com$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name friendica.example.com;
    root /var/www/friendica.example.com;
    index index.php;

    ssl_certificate /etc/letsencrypt/live/friendica.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/friendica.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/friendica.example.com/chain.pem;
    ssl_dhparam /etc/nginx/ssl/dhparam.pem;

    ssl_session_timeout 4h;
    ssl_session_cache shared:SSL:40m;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;

    ssl_stapling on;
    ssl_stapling_verify on;
    add_header Strict-Transport-Security "max-age=63072000" always;
    add_header X-Content-Type-Options nosniff;

    location /.well-known/acme-challenge {
       root /var/www;
    }

    location = /robots.txt {
       allow all;
    }

    location / {
       rewrite ^/(.*) /index.php?q=$uri&$args last;
    }

    # allow uploads up to 20MB in size
    client_max_body_size 20m;
    client_body_buffer_size 128k;

    # statically serve these file types when possible
    # otherwise fall back to front controller
    # allow browser to cache them
    # added .htm for advanced source code editor library
    location ~* \.(jpg|jpeg|gif|png|ico|css|js|htm|html|ttf|svg)$ {
       expires 30d;
       try_files $uri /index.php?q=$uri&$args;
    }

    # block these file types
    location ~* \.(tpl|md|tgz|log|out)$ {
       deny all;
    }

    # pass the PHP scripts to FastCGI server
    location ~ \.php$ {
       try_files $uri =404;
       fastcgi_split_path_info ^(.+\.php)(/.+)$;
       include fastcgi_params;
       fastcgi_index index.php;
       fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
       fastcgi_param HTTPS on;
       fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }

    access_log /var/log/sites/friendica.example.com/access.log;
    error_log  /var/log/nginx/friendica.example.com.error.log notice;
}

Replace example.com with your domain name. Next, create the access log directory for friendica.example.com:

mkdir -p /var/log/sites/friendica.example.com

Restart Nginx:

systemctl restart nginx

29.3. Run the web-based installation


Open a browser and navigate to https://friendica.example.com. You will see a screen like this:


Click ‘Next’ at the bottom of the page. On the next page, in the ‘Base path to installation’ field leave /var/www/friendica.example.com, in the ‘The Friendica system URL’ field leave https://friendica.example.com, and click ‘Submit’.

On the next screen, in the ‘Database server name’ field enter localhost, in the ‘Database login name’ field enter the username set up earlier in phpMyAdmin, in the ‘Database login password’ field enter the username’s password, and in the ‘Database name’ field enter the name of the database that you set up earlier, then click ‘Submit’.

On the next screen, in the ‘Site administrator email address’ field enter your Friendica admin email address, for example admin@example.com, in the ‘Please select a default timezone for your website’ field select the city you live in or the nearest big city in your timezone (the list with possible options can be found here), in the ‘System Language’ field select ‘English’ or any other language, then click ‘Submit’. The next screen will look like this:

29.4. Configure the Friendica daemon


The next step is to start the Friendica daemon manually. First open the /var/www/friendica.example.com/config/local.config.php file:

nano /var/www/friendica.example.com/config/local.config.php

In the ‘system’ section, add the line for the pid file, like this:

        'system' => [
              'pidfile' => '/var/www/friendica.example.com/friendica.pid',
              ...

Change permissions for /var/www/friendica.example.com/config/local.config.php:

cd /var/www/friendica.example.com/config
chown www-data:www-data local.config.php
chmod 600 local.config.php

Navigate to /var/www/friendica.example.com:

cd /var/www/friendica.example.com

Set the correct permissions for /var/www/friendica.example.com/bin/daemon.php:

chmod 640 bin/daemon.php

Start the worker daemon by running:

sudo -u www-data php bin/daemon.php start

You can check if the daemon is running with:

sudo -u www-data php bin/daemon.php status

The result should look similar to this:

Daemon process 31511 is running.

You can stop the daemon with:

sudo -u www-data php bin/daemon.php stop

To start the daemon after each reboot, you need to create a service, like this:

nano /etc/systemd/system/friendica-daemon.service

Enter the following content in the new file:

[Unit]
Description=Friendica worker daemon
After=network.target mariadb.service
Requires=network.target

[Service]
User=www-data
Group=www-data
WorkingDirectory=/var/www/friendica.example.com
Type=simple
StandardOutput=null
StandardError=syslog
ExecStart=/usr/bin/php ./bin/daemon.php start
ExecStop=/usr/bin/php ./bin/daemon.php stop
PIDFile=/var/www/friendica.example.com/friendica.pid
PrivateTmp=true
InaccessibleDirectories=/home /root /boot /opt /mnt /media
ReadOnlyDirectories=/etc /usr
Restart=always

[Install]
WantedBy=multi-user.target

Replace example.com with your domain.

Next, run the following commands to reload the systemctl daemon, enable the friendica-daemon service, restart it and check its status:

systemctl daemon-reload
systemctl enable friendica-daemon
systemctl restart friendica-daemon
systemctl status friendica-daemon

29.5. Register as administrator


Next, access Friendica’s registration page:

https://friendica.example.com/register


You should register as a new user using the same email address that you entered earlier as administrator email. This will give you access to the admin panel. Thus, on the registration screen leave the ‘Your OpenID (optional)’ field empty, in the ‘Your Display Name (as you would like it to be displayed on this system)’ field enter your display name, in the ‘Your Email Address’ and ‘Please repeat your email address’ fields enter the administrator email address, in the ‘Choose a nickname’ field enter a nickname, at ‘Include your profile in member directory?’ you can check ‘Yes’, then click ‘Sign up now’. You should receive an email with the initial password needed to log in to Friendica, so, check your administrator email account Inbox.


After clicking ‘Sign up now’, the next screen will look like above. On this screen enter your nickname (or email) and the password that you have just received by email, leave the ‘Or login with OpenID’ field empty, then click ‘Login’.

Once logged in, upload a profile photo by following the initial screen prompts, then change your password by clicking on your profile picture in the upper right corner and choosing ‘Settings’. Click on ‘Account’ on the left panel, then, under ‘Account Settings’ you can change your password. Next, you can update your profile details by clicking on ‘Profile’ on the left panel and entering your details under ‘Personal’, ‘Location’, ‘Miscellaneous’ and ‘Custom Profile Fields’.

Please note that to be able to send registration emails, Friendica requires that the user of the web server, www-data, has permission to send emails using the sendmail utility which gets installed when Postfix is installed. This means that in /etc/postfix/main.cf you should have www-data listed as an authorized submit user, like this:

authorized_submit_users = root, www-data

29.6. Enable logging


To be able to configure Fail2ban to protect Friendica against brute-force attacks you need to enable logging using the admin settings. Thus, while logged in as Friendica administrator, click on your profile picture on the upper bar, choose ‘Admin’, click on ‘Logs’ on the left panel, then under ‘Administration – Logs’ check ‘Enable debugging’, in the ‘Log file’ box enter the full path of your log file /var/log/friendica/friendica.log, in the ‘Log level’ choose ‘Notice’, then click on ‘Save settings’.

Then create the /var/log/friendica directory and the friendica.log file inside it and set the appropriate permissions:

cd /var/log
mkdir friendica
touch friendica/friendica.log
chown -R www-data:www-data friendica

29.7. Configure logrotate to rotate Friendica logs


First configure logrotate to rotate Friendica’s access logs:

nano /etc/logrotate.d/nginx

Enter the following lines at the bottom of the file:

/var/log/sites/friendica.example.com/access.log {
        missingok
        rotate 10
        compress
        delaycompress
        notifempty
        create 0640 www-data adm
        size 2M
        sharedscripts
        prerotate
                if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                        run-parts /etc/logrotate.d/httpd-prerotate; \
                fi; \
        endscript
        postrotate
                [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid`
        endscript
}

Then configure logrotate to rotate the logs from the /var/log/friendica directory. Create a configuration file for Friendica in /etc/logrotate.d:

nano /etc/logrotate.d/friendica

Enter the following content inside the new file:

/var/log/friendica/friendica.log {
     missingok
     rotate 5
     size 2M
     compress
     delaycompress
     notifempty
     create 0640 www-data adm
     sharedscripts
}

29.8. Configure Fail2ban to protect Friendica against brute-force attacks

To configure Fail2ban to protect Friendica’s login page against brute-force attacks first edit the /etc/fail2ban/jail.local file:

nano /etc/fail2ban/jail.local

Beneath the [nextcloud] block add the following block:

[friendica]
enabled = true
filter = friendica
logtimezone = UTC
logpath = /var/log/friendica/friendica.log
port = 80,443
maxretry = 4
bantime = 604800

Please note the use of the logtimezone parameter. It forces Fail2ban to use UTC time when analyzing Friendica’s log, since the time stamps of this log use UTC time.

Next, create the filter configuration file:

cd /etc/fail2ban/filter.d
nano friendica.conf

Enter the following content inside this file:

[Definition]
failregex = ^.*authenticate\: failed login attempt.*\"ip\"\:\"<HOST>\".*$
ignoreregex =

Reload Fail2ban:

systemctl reload fail2ban

29.9. Change and customize display theme


To change the way your Friendica installation looks you can change the display theme and customize it. To change the display theme click on your profile picture on the upper bar, choose ‘Settings’, then click ‘Display’ on the left panel.

Under ‘Display Settings’ click on ‘Themes’. From the ‘Display theme’ drop-down menu you can choose between 2 themes: ‘Frio’ and ‘Vier’. After you choose a theme click ‘Save settings’. It’s recommended to leave the default theme (‘Frio’) selected.

To customize the chosen display theme you can click ‘Theme customization’ on the same page. In that section you can choose a general ‘Appearance’ (Light, Dark, Black or Custom) and a general ‘Accent color’ (Blue, Red, Purple, Green or Pink). To save the changes click ‘Submit’. If you want to set a custom color for your display theme, under ‘Appearance’ choose ‘Custom’, select one of the default colors as ‘Accent color’ and click ‘Submit’. Next, in the same ‘Theme customization’ section, you will see a list of color pickers for ‘Navigation bar background color’, ‘Navigation bar icon color’, ‘Link color’ and ‘Set the background color’, a field to set the content background opacity and even a field where you can set an image as background.

29.10. Change registration policy


Then, to disallow public registration, so that only a limited number of users (such as your employees, collaborators, etc.) can register, click on your profile picture on the upper bar, choose ‘Admin’, then click ‘Site’ on the left panel, then, under ‘Administration – Site’ click on ‘Registration’. From the ‘Registration policy’ drop-down list choose ‘Requires approval’. In this way, you can inform your collaborators, employees, etc. to register on the registration page (https://friendica.example.com/register), then you can approve their registration and after all of them have registered, you can change ‘Registration policy’ to Closed, so that no other user can register. In the same section you can also disable OpenID support for registration and logins by unchecking the ‘Enable OpenID’ checkbox. Before reviewing and changing other settings don’t forget to click the ‘Save settings’ button at the bottom of the ‘Registration’ section.

29.11. Change number of parallel workers


To improve performance you can increase the maximum number of parallel workers. While on the ‘Administration – Site’ page mentioned above, scroll down and click on ‘Worker’, then, in the ‘Maximum number of parallel workers’ field enter 20, then click ‘Save settings’.

29.12. Change profile settings


You can also change the settings related to your profile. For example, if you don’t want your profile to show up in the public global directories, you can click on your profile picture on the upper bar and choose ‘Settings’, then click ‘Account’ on the left panel, then, under ‘Security and privacy’ uncheck the ‘Allow your profile to be searchable globally? ‘ checkbox. Click ‘Save Settings’.

29.13. Move the configuration file outside the web root

First copy the configuration file outside the web root directory, to /srv/scripts:

cp /var/www/friendica.example.com/config/local.config.php /srv/scripts/friendica.php

Then remove the content of the /var/www/friendica.example.com/config/local.config.php file:

cat /dev/null > /var/www/friendica.example.com/config/local.config.php

Then open it:

nano /var/www/friendica.example.com/config/local.config.php

Add the following line inside it:

<?php $cfgprm = include('/srv/scripts/friendica.php'); return $cfgprm; ?>

Change ownership and permissions for the friendica.php file:

chown www-data:root /srv/scripts/friendica.php
chmod 400 /srv/scripts/friendica.php

29.14. Add a post


Once logged in, to add a post click on the house icon on the upper bar, then click on the pencil icon on the secondary upper bar:

Enter a title, then enter the text. You can also add pictures by clicking the ‘Drop files here to upload’ bar, you can embed videos by clicking the ‘Link or media’ icon, etc. To publish the post click ‘Share’.

29.15. Friendica directories


Friendica has two types of directories (lists of users):

  • a local directory where you can find the users registered to the local Friendica server.
  • a global directory (like https://dir.friendica.social) where all Friendica servers can send their users’ account information.

Assuming you are using the ‘frio’ theme, to see the directories, click on your profile picture on the upper bar, then choose ‘Directory’. On the left panel you will see links to the ‘Local directory’ and ‘Global directory’.

There are several global directories that exchange information with each other regularly. The global directory that you will see when clicking on ‘Global directory’ depends on where your server is located and can be configured by clicking on your profile picture on the upper bar > ‘Admin’ > ‘Site’ > ‘Policies’ > ‘Global directory URL’. If you click on ‘Global directory’, you will see a list of everybody who choses to be listed across all instances of Friendica.

You can use the local or global directory to search for users you want to connect with.

29.16. Connect to other Friendica users


When you look at the list of users on the local or global directories, if you want to connect with a user just click on ‘Follow’, next to their profile picture. If the user is on the local server, your “identity address” (https://friendica.example.com/profile/nickname) will be selected by default, so, all you have to do next is click on ‘Submit request’. If the user is on the global directory, you will be asked to enter your “identity address” which is https://friendica.example.com/profile/nickname (you can also enter nickname@friendica.example.com) then click on ‘Submit Request’.

After you submit the follow request, also called ‘introduction’ request, the user will receive an email about your request. Then, while logged in their Friendica account, they will be able to approve your request by clicking on the notification on the upper bar, then clicking on the ‘Approve’ tick sign in the upper right corner of the notification.

Let’s say that a different user has sent you a follow request. While logged in to your Friendica account you can click on the notification, then click on the ‘Approve’ sign. You will be prompted with a message that informs you that you can chose between accepting the new contact as a friend or as a follower. The difference between the two is the following:

– accepting the new contact as a friend will allow them to see your posts when they are published and you will also see their posts in your conversations/news feed.

– accepting the new contact as a follower allows them to see your posts when they are published, but you will not see their posts in your conversations/news feed.

In fact, to accept a contact as a friend means that you accept his invitation to follow you and you also follow him by clicking the “Follow” icon on the contact’s line.

You can also connect to groups and forums. You will follow the same steps to connect to groups and forums. The difference is that when you send the follow/introduction request, the groups and forums can accept your request automatically whereas individuals have to approve your request manually.

If you already know somebody’s “identity address”, you can click on the “Contacts” icon on the upper bar, then enter the “identity address” in the “Add new contact” box on the left panel, then click “Connect”.

29.17. Connect to users of other networks accross the Fediverse


You can also use your “identity address” to connect to other people across the “Fedivese” of free and open source self-hosted social media platforms. Currently, Friendica supports connections with users on diaspora*, Mastodon, GNU social, Red, Hubzilla, StatusNet, Pleroma, Socialhome, pump.io and GangGo platforms.

If you know (for instance) “tom” on gnusocial.net (a GNU Social site) you could put tom@gnusocial.net into your “Add new contact” box on the “Contacts” page (click on the “Contacts” icon on the upper bar) and click “Connect” to add him as a friend. Instead of tom@gnusocial.net you can also enter the URL to Tom’s gnusocial.net profile page.

People on these networks can also send you contact requests, if they know your “identity address”.

29.18. Syndication feeds

You can “follow” almost anybody or any website that produces a syndication feed (RSS/Atom, etc.). For example, if you want to follow the RSS feed of a WordPress website, you have to know the URL of that RSS feed. If the URL is https://www.website.com/feed/, to follow this feed, all you have to do is to click on the “Contacts” icon on the upper bar, then, in the “Add new contact” box on the left panel enter: https://www.website.com/feed/, then click “Connect”, then “Submit request”, and then, in the “Update public posts” dropdown list select “Daily” or “Weekly”, then click “Submit”. Next, to see the newly added RSS feed, click on the “My friends’ conversations” icon on the upper bar.

29.19. Ignoring, blocking and unfollowing contacts


Once you have added a contact as a friend, if you find that they send you spam or worthless information you can “Ignore” them without breaking off the friendship or even alerting them to the fact that you don’t want to receive updates from them anymore. In a way they become similar to followers, but without knowing it. They will think they are still a friend.

You can also “Block” a contact. This completely breaks communications with that contact. They may still be able to see your public posts, as can anybody on the Internet, but they cannot communicate with you directly.

You can also “Unfollow/Revoke Follow” a contact (if you followed him you will see the “Unfollow” option, if he has followed you you will see the “Revoke Follow” option). This completely removes everything relating to that person from your server.

To “Ignore”/”Block”/”Unfollow/Revoke Follow” a contact click on the “Contacts” icon on the upper bar, scroll down to the contact that you want to ignore or search for it using the search box, then, click on the name of the contact and in the upper right corner of the screen click on “Actions”, then click on “Ignore”/”Block”/”Unfollow/Revoke Follow”.

29.20. Upgrading Friendica


Before upgrading Friendica to a new version, it’s recommended to verify if the new version has been tested and confirmed to function well within the suite of applications described in this guide. Once we test an application and confirm that it works well, we include it on this page.

To upgrade Friendica to a new version follow these steps:

– Make a complete backup of the database and of the /var/www/friendica.example.com directory.

– Create a new folder to download the new archive:

cd /var/www
mkdir friendica.example.com_new

– Download the new archive as you did for installing Friendica (described above).

– Unpack the new Friendica archive.

– Copy /var/www/friendica.example.com/config/local.config.php, and /var/www/friendica.example.com/config/addon.config.php (if you have this file) to /var/www/friendica.example.com_new:

cp /var/www/friendica.example.com/config/local.config.php /var/www/friendica.example.com_new/config
cp /var/www/friendica.example.com/config/addon.config.php /var/www/friendica.example.com_new/config

– Rename the friendica.example.com folder to friendica.example.com_old:

mv friendica.example.com friendica.example.com_old

– Rename the friendica.example.com_new folder to friendica.example.com:

mv /var/www/friendica.example.com_new /var/www/friendica.example.com

Navigate to https://friendica.example.com.

The database update should start automatically and the site will go into maintenance mode. If the database update gets stuck, you can initiate the database update in command line like this:

cd /var/www/friendica.example.com
bin/console dbstructure update

To update the addons, after you download and extract the new addon archive as described for installing Friendica, you can simply delete the old addon directory and replace it with the new addon directory.

After the upgrade, if you can log in as an administrator and as a regular user and everything seems to be ok, you can delete the /var/www/friendica.example.com_old folder.

You can send your questions and comments to: