In this article, we will review some of the initial steps you should take after installing Friendica on your Virtual Private Server.
Register as an Administrator on your Friendica website.
Open a new browser tab and type in your subdomain to reach your Friendica website. https://washington.communitynetwork.us/
Then click Sign up now. This brings up the Registration page:
Type in your full name and admin email address and Nickname.
Your profile address on this site will then be "
Change Include Profile in Member Directory to Yes. Then click Sign Up Now. It will reply: Please check your email for further instructions. This is an example of the email that will be sent:
Dear David Spring, |
The login details are as follows: |
Friendica Social Network Administrator |
Log in with the temporary password and change the password to something you can remember.
Here is the Profile Page after logging in:
Click Upload Profile Picture to add an image. Then in the upper right corner, click Account Settings. Change the password. Then complete Basic Information. Security and Privacy. Notification.
Settings Admin panel
If you are the admin, you have access to the Admin Panel where you can configure your Friendica site. The admin panel is separated into subsections accessible from the side bar of the panel.
Overview...An overview of the accounts on your site, which can be moderated in the "Users" section of the panel.
Site… This section of the admin panel is separated into several sub-section beginning with the basic settings at the top.
Basic Settings
Banner/Logo… Set the content for the site banner. The default logo is the Friendica logo and name. You can easily change the name.
System Theme… Choose a theme to be the default system theme. This can be over-ridden by user profiles. You may also want to set a special theme for mobile interfaces. Which may or may not be necessary depending of the mobile friendliness of the desktop theme you have chosen. The vier theme for instance is mobile friendly.
Change the Site Access policy
Click on the Admin Menu option and then click Site to change the site registration policy. Scroll down the screen to Registration and change the policy from open to requires approval – this is a choice you can revise later. You can chose between the following modes:
-
open: Everybody can register a new account and start using it right away.
-
requires approval: Everybody can register a new account, but the admin has to approve it before it can be used.
-
closed: No new registrations are possible.
Invitation based registry… Additionally to the setting in the admin panel, you can decide if registrations are only possible using an invitation code or not. To enable invitation based registration, you have to set the invitation_only setting to true in the system section of the config/local.config.php file. If you want to use this method, the registration policy has to be set to either open or requires approval.
Check Full Names… You may find a lot of spammers trying to register on your site. During testing we discovered that since these registrations were automatic, the "Full Name" field was often set to just an account name with no space between first and last name. If you would like to support people with only one name as their full name, you may change this setting to true. Default is false.
Turn Off OpenID… By default, OpenID may be used for both registration and logins. If you do not wish to make OpenID facilities available on your system (at all), set 'no_openid' to true. Default is false.
Multiple Registrations… The ability to create "Pages" requires a person to register more than once. Your site configuration can block registration (or require approval to register). By default, logged in users can register additional accounts for use as pages. These will still require approval if the policy is set to require approval You may prohibit logged in users from creating additional accounts by setting block multiple registrations to true. Default is false.
Storage… Set the back end used by Friendica to store uploaded file data. Two storage back ends are available:
-
Database : Data is stored in a dedicated table in database (storage)
-
File system : Data is stored as file on the file system.
Default value is 'Database (legacy)': it's the legacy way used to store data directly in database.
Maximum Image Size… Maximum size in bytes of uploaded images. The default is set to 0, which means no limits.
Allowed Friend Domains… Comma separated list of domains which are allowed to establish friendships with this site. By default, any (valid) domain may establish friendships with this site. This is useful if you want to setup a closed network for educational groups and groups that don't want to communicate with the rest of the network.
Allowed Email Domains… Comma separated list of domains which are allowed in email addresses for registrations to this site. This can lockout those who are not part of this organisation from registering here. By default, any (valid) email address is allowed in registrations.
Block Public… Set to true to block public access to all otherwise public personal pages unless you are currently logged in. This blocks the viewing of profiles, friends, photos, the site directory and search pages to unauthorized persons. A side effect is that entries from this site will not appear in the global directory. Note: this is specifically for sites that desire to be "standalone" and do not wish to be connected to any other Friendica sites. Unauthorized persons will also not be able to request friendship with site members. Default is false.
Mandatory Directory Listing… By default, each user can choose on their Settings page whether or not to have their profile published in the site directory. This setting forces all profiles on this site to be listed in the site directory and there is no option provided to the user to change it. Default is false.
Community pages for Visitors...The community pages show all public postings, separated by their origin being local or the entire network. With this setting you can select which community pages will be shown to visitors. Your local users will always have access to both pages.
Note: Several settings, like users hiding their contacts from the public will prevent the postings to show up on the global community page.
Global Directory… This configures the URL to update the global directory, and is supplied in the default configuration. The undocumented part is that if this is not set, the global directory is completely unavailable to the application. This allows a private community to be completely isolated from the global network. So if you want a completely private network, then delete this URL.
Allow Users to set remote_self… It is disabled by default, as it causes additional load on the server and may be misused to distribute SPAM.
Explicit Content...If you are running a site with explicit content, you can announce this with this option. When checked an information flag will be set in the published information. Additionally a note will be displayed on the registration page for new users.
Network Timeout… How long to wait on a network communication before timing out. Value is in seconds. Default is 60 seconds.
Verify SSL Certificates… By default Friendica allows SSL communication between websites that have "self-signed" SSL certificates. SSL encrypts all the data transmitted between sites (and to your browser). This allows you to have completely encrypted communications, and also protect your login session from hijacking.
Check upstream version… Leave set for Do not check. If this option is enabled your Friendica site will check the upstream version once per day from the github repository.
Enable Fast Lane… The tasks for the background process have priorities. To guarantee that important tasks are executed even though the system has a lot of work to do, it is useful to enable the fast lane.
Users… This section of the panel let the admin control the users registered on the site. If you have selected "Requires approval" for the Register policy in the general nodes configuration, new registrations will be listed at the top of the page. There the admin can then approve or disapprove the request.
Below the new registration block the current accounts on the Friendica node are listed. You can sort the user list by name, email, registration date, date of last login, date of last posting and the account type. Here the admin can also block/unblock users from accessing the node or delete the accounts entirely.
In the last section of the page admins can create new accounts on the site. The password for the new account will be send by email to the chosen email address.
Themes… The Themes section of the admin panel lets you control the themes on your Friendica site. Each theme has a dedicated subpage showing the current status, some information about the theme and a screen-shot of the Friendica interface using the theme. Should the theme offer special settings, admins can set a global default value here. You can activate and deactivate themes on their dedicated sub-pages thus making them available for the users of the node. To select a default theme for the Friendica node, see the Site section of the admin panel.
Additional Features… There are several optional features in Friendica like adding searchable categories to posts.
DB Updates… Should the database structure of Friendica change, it will apply the changes automatically. In case you are suspecting the update might not have worked, you can use this section of the admin panel to check the situation.
Inspect Queue… In the admin panel summary there are two numbers for the message queues. The second number represents messages which could not be delivered and are queued for later retry. If this number goes sky-rocking ask yourself which recipient is not receiving. Behind the inspect queue section of the admin panel you will find a list of the messages that could not be delivered. The listing is sorted by the recipient name so identifying potential broken communication lines should be simple. These lines might be broken for various reasons. The receiving end might be off-line, there might be a high system load. Don't panic! Friendica will not queue messages for all time but will sort out dead nodes automatically after a while and remove messages from the queue then.
Tools, Server Blocklist… This page allows to block all communications (inbound and outbound) with a specific domain name. Each blocked domain entry requires a reason that will be displayed on the friendica page. Matching is exact, blocking a domain doesn't block subdomains.
Tools, Delete Item… Using this page an admin can delete postings and eventually associated discussion threads from their Friendica site. To do so, they need to know the GUID of the posting. This can be found on the /display page of the posting, it is the last part of the URL displayed in the browsers navigation bar. You can get to the /display page by following the Link to source.
Addon Features… Some of the addons you can install have settings which have to be set by the admin. All those addons will be listed in this area of the admin panels side bar with their names.
Logs… The log section of the admin panel is separated into two pages. On the first, following the "log" link, you can configure how much Friendica shall log. And on the second you can read the log. You should not place your logs in any directory accessible from the web. There are five different log levels: Normal, Trace, Debug, Data and All. Specifying different verbosity of information and data written out to the log file. Normally you should not need to log at all. The DEBUG level will show a good deal of information about system activity but will not include detailed data. In the ALL level Friendica will log everything to the file. But due to the volume of information we recommend only enabling this when you are tracking down a specific problem. The amount of data can grow the filesize of the logfile quickly. You should set up some kind of log rotation to keep the log file from growing too big. Known Issues: The filename friendica.log can cause problems depending on your server configuration (see issue 2209).
By default PHP warnings and error messages are suppressed. If you want to enable those, you have to activate them in the config/local.config.php file. Use the following settings to redirect PHP errors to a file.
Config:
error_reporting(E_ERROR | E_WARNING | E_PARSE );
ini_set('error_log','php.out');
ini_set('log_errors','1');
ini_set('display_errors', '0');
This will put all PHP errors in the file php.out (which must be writeable by the webserver). Undeclared variables are occasionally referenced in the program and therefore we do not recommend using E_NOTICE or E_ALL. The vast majority of issues reported at these levels are completely harmless. If you encounter a blank (white) page when using the application, view the PHP logs - as this almost always indicates an error has occurred.
How to have more than one admin for your Friendica Site… Simply list more then one email address in the config/local.config.php file. The listed emails need to be separated by a comma.
Customizing Friendica Appearance
You can change the appearance for all from the admin side or change just the appearance for yourself on the account settings page by clicking on Display. You can change the appearance using any of five included themes. Here is the default theme called Frio.
To change themes, click on Settings, Display, Themes. Change the theme from Frio to Vier. Then click Save Settings.
Then go back to Settings, Display Themes and change the theme to Smoothly.
The Home icon is hidden in the top menu. Then go back to Settings, Display Themes and change the theme to Quattro.
This displays the calendar on the home page which is rather distracting. Then go back to Settings, Display Themes and change the theme to Duepuntozero. This option does the best job of exposing Text links to various sections of the network. It also has the best display of the Friendica Logo image.
Uncheck the Display Dislike Feature
Go to Settings, Display and uncheck the Display Dislike Feature.
Change the Site Name
Click on Admin, Site. Change the site name from Friendica Social Network to Washington Community Network. Then in the Banner Logo box, change the ending text from Friendica to Washington Community Network. Then click Save. To hide Login with Open ID, uncheck the box on the Admin site screen. Then click Save settings. This will change the log in page to look like this:
Add the server connected email address to the Sender email. Leave the name of the system actor as friendica. Change the system theme to duepuntozero.
Customize Friendica CSS files
We will need to use Midnight Commander to change the Friendica CSS files. Open a terminal and start a root ssh session. Then click mc to open Midnight Commander. Click on the forward slash and two dots to go to the root directory. Then click on the home folder to open it. Find your user folder and click on it to open it. Click the web folder to open it. Click on your Friendica subdomain folder to open it. Then click Public_html to open it. Then click the view folder to open it. Then click the theme folder to open it. Then click Duepuntozero to open it. Then select style.css and click File Edit.
Use the down arrow to scroll down to body font size and increase it from 12px to 16px. Then scroll down to nav #site location and change the font size from 0.8em to 1.0em. Then scroll down to nav #banner #logo-text and change the font size from 40px to 32px.
Then scroll down to .nav-commlink, .nav-login-link, .nav-logout-link and change the background-color to #cceeff;
To hide the Home Page Atom Feed, scroll down to
#subscribe-feed-link and change display from block to none.
To hide Home Page No Contacts, add the following to the bottom of the aside section (just above the section section:
#contact-block {display: none;}
Then press Control plus o followed by Enter to save the file. Then click Control plus x to close the file. Then type exit to exit Midnight Commander. Then type exit to close the ssh session. Then close the terminal. Then clear the browser cache and log in:
The pages and links are now much more readable.
Create a Friendica Cron Job with Hestia
One of the first things you should as an administrator of a new Friendica website is to set up a Cron Job (or Time related task) so that your server will properly update messages in your database about every 10 minutes. You only need to set up this process once. It will then run automatically in the background. Thankfully, the Hestia Control Panel can help us set up this Friendica cron job.
What is a Cron Job?
Cron is named after Greek word for time “Chronos.” A Cron job is a command run tasks periodically at a set period of time. Crontab is the name of the program, which is used to edit that schedule with a crontab file. A crontab file contains instructions that basically say "run this command at this time". Crontabs and cron jobs are user specific. Each Linux user can have their own crontab and cron jobs.
What happens if you do not set up a Friendica cron job
Log into your Friendica website as an administrator and click on the Admin menu item. This will take you to the Admin Overview screen which will show you a summary about your Friendica website. If you have not yet set up a Friendica cron job, there will be a big yellow warning at the top of this screen:
Below the big yellow warning is the Messages Queues which has two or three numbers. (note that the word queue means tasks waiting to be processed). The first number is the retry queue. These outgoing messages or tasks couldn't be received by your server and will be resent periodically before being dropped entirely after 30 days.
The second number is called the deferred queue. These tasks failed and will be retried at most 14 times. The third number is called the task queue. These tasks are queued for processing during the next background worker run. Above we have five queued tasks. However, they cannot be processed because we have not yet set up a cron job to process them!
To see what these queued tasks are, click on Inspect Worker Queue in the Admin Side Menu to see this screen:
This list of tasks will continue to grow. So we should set up our Friendica Cron Job as soon as possible after we set up our Friendica website and make sure it is working properly before inviting potential members to join our network.
Review of the Friendica Cron Task Setup Instructions
The Friendica Wiki provides a brief explanation of how to set up a Friendica Cron Job. We will try to translate their advice into plain English. Here is their advice: “Set up a cron job or scheduled task to run the worker once every 10 minutes in order to perform background processing.”
Translation: The word worker is a term used by Friendica to describe the cron task command we will be setting up in a moment. They recommend setting up this command so that it runs once every 10 minutes. However, this time interval is not written in stone. If you have a small group, you may only need to run the cron job command once every 30 minutes. If you have a large group, such as an entire school, you may want to run the command once every 5 minutes. We will stick with their advice and set up the cron job to run every 10 minutes. Back to the Friendica Wiki:
“Example: cd /base/directory; /path/to/php bin/worker.php
Change "/base/directory", and "/path/to/php" as appropriate for your situation.”
Translation: What they want us to do is open our Linux terminal on our home computer and start an SSH session as root. Then copy paste a command into the terminal that is similar to the command they have provided. If you look closely, you will see that the command above has five parts.
The first part is the letters cd followed by a space. Cd means to change the directory (or folder) from the root directory to the base directory of your Friendica website.
The second part of the example command begins with a forward slash. In the Linux terminal, the first forward slash stands for your Linux root directory. If we start a root SSH session and type mc to open Midnight Commander, we simply press Enter on our key board to go to the root directory. To find our Friendica root folder, we need to click on /home, then our Hestia Username which in our case is ctct10f. Then click on the /web folder, then our subdomain /washington.communitynetwork.us, then the /public_html folder. Here is the entire path to our Hestia Friendica root folder (which is the public_html folder for this subdomain):
/home/ctct10f/web/washington.communitynetwork.us/public_html
The third part of the example command is the semicolon symbol. Note that the example command has a semi-colon placed at the end of the second part. The semicolon symbol (;) is a way to put two or more commands on the same line and have them run in sequence. It is basically like pressing the ENTER key on your keyboard. So the example command could have been more clearly written as
First, copy paste this command into the terminal.
cd /base/directory
Then press Enter. Then copy paste this command into the terminal:
/path/to/php bin/worker.php.
The fourth part of the example command is called /path/to/php. They are referring to the php folder which is located in your usr/bin folder. You can type the following command into the terminal to determine the actual path: which php. Then press Enter. In my case, the path was
/usr/bin/php
However, using Midnight Commander, if you go to the usr/bin folder, there is no php folder.
The fifth part of the example command is bin/worker.php.
Translation: I think they want to create a new folder and file called bin/worker.php in your /usr/bin/php folder.
Back to the Wiki. Here is the final part of their advice:
cron job for worker
If you are using a Linux server, run "crontab -e" and add a line like the one shown, substituting for your unique paths and settings:
*/10 * * * * cd /home/myname/mywebsite; /usr/bin/php bin/worker.php
Translation: This means to copy paste the command crontab -e into the terminal. Then press Enter. This will install the crontab program on your server if it is not already installed and also open it.
Then create a command similar to what they have provided only with your actual path instead of their example path. In our case, the command would be:
*/10 * * * * cd /home/ctct10f/web/washington.communitynetwork.us/public_html; /usr/bin/php bin/worker.php
To fully understand the above command, we need to clarify that a cron job command begins with five asterisk symbols. Each of these five symbols means a unit of time as shown on the following graphic:
The forward slash 10 after the first asterisk means to run the cron job every 10 minutes. After the five asterisks is the actual command to be run. This may or may not include the user running the command. The command typically includes a path to a script file.
Using Hestia instead of the Terminal to Create the Cron Job
Now that we better understand the Friendica instructions, let’s see if we can set up this same cron job or something similar using the Hestia Control Panel rather than the terminal and see if it works. Here is the Friendica suggested command we want to duplicate:
*/10 * * * * cd /home/ctct10f/web/washington.communitynetwork.us/public_html; /usr/bin/php bin/worker.php
Log into your Hestia user account used for your Friendica website and click CRON. Then click Add Job.
Change the time from every minute to every ten minutes. Then copy paste this command into the Command box:
cd /home/ctct10f/web/washington.communitynetwork.us/public_html; /usr/bin/php bin/worker.php
Then click the Generate button. This will place */10 in the Minute box. Then click Save. Then click Back. By default the cronjob will be active and should run automatically. Wait 20 minutes. Then log into your Friendica website as an administrator and see if the yellow warning is gone.
Congratulations! You now have a working Friendica Cron job!
What’s Next?
In our next article, we will review some tips to help new members to your social network create posts and find friends.