Merge remote-tracking branch 'upstream/develop' into aria
|
@ -0,0 +1,14 @@
|
||||||
|
codecov:
|
||||||
|
branch: develop
|
||||||
|
ci:
|
||||||
|
- drone.friendi.ca
|
||||||
|
|
||||||
|
coverage:
|
||||||
|
precision: 2
|
||||||
|
round: down
|
||||||
|
range: "70...100"
|
||||||
|
status:
|
||||||
|
project: off
|
||||||
|
patch: off
|
||||||
|
|
||||||
|
comment: off
|
|
@ -0,0 +1,439 @@
|
||||||
|
kind: pipeline
|
||||||
|
name: mysql8.0-php7.1
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: mysql8.0-php7.1
|
||||||
|
image: friendicaci/php7.1:php7.1.32
|
||||||
|
commands:
|
||||||
|
- NOCOVERAGE=true ./autotest.sh mysql
|
||||||
|
environment:
|
||||||
|
MYSQL_USERNAME: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
MYSQL_HOST: mysql
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: mysql
|
||||||
|
image: mysql:8.0
|
||||||
|
command: [ "--default-authentication-plugin=mysql_native_password" ]
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: friendica
|
||||||
|
MYSQL_USER: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
path: /var/lib/mysql
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
temp: {}
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- "*-rc"
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: mysql8.0-php7.2
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: mysql8.0-php7.2
|
||||||
|
image: friendicaci/php7.2:php7.2.22
|
||||||
|
commands:
|
||||||
|
- NOCOVERAGE=true ./autotest.sh mysql
|
||||||
|
environment:
|
||||||
|
MYSQL_USERNAME: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
MYSQL_HOST: mysql
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: mysql
|
||||||
|
image: mysql:8.0
|
||||||
|
command: [ "--default-authentication-plugin=mysql_native_password" ]
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: friendica
|
||||||
|
MYSQL_USER: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
path: /var/lib/mysql
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
temp: {}
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- "*-rc"
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: mysql8.0-php7.3
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: mysql8.0-php7.3
|
||||||
|
image: friendicaci/php7.3:php7.3.9
|
||||||
|
commands:
|
||||||
|
- NOCOVERAGE=true ./autotest.sh mysql
|
||||||
|
environment:
|
||||||
|
MYSQL_USERNAME: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
MYSQL_HOST: mysql
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: mysql
|
||||||
|
image: mysql:8.0
|
||||||
|
command: [ "--default-authentication-plugin=mysql_native_password" ]
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: friendica
|
||||||
|
MYSQL_USER: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
path: /var/lib/mysql
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
temp: {}
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- "*-rc"
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: mariadb10.1-php7.1
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: mariadb10.1-php7.1
|
||||||
|
image: friendicaci/php7.1:php7.1.32
|
||||||
|
commands:
|
||||||
|
- phpenmod xdebug
|
||||||
|
- sleep 20
|
||||||
|
- ./autotest.sh mariadb
|
||||||
|
- wget https://codecov.io/bash -O codecov.sh
|
||||||
|
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi"
|
||||||
|
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi"
|
||||||
|
environment:
|
||||||
|
MYSQL_USER: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
MYSQL_HOST: mariadb
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: mariadb
|
||||||
|
image: mariadb:10.1
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: friendica
|
||||||
|
MYSQL_USER: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
path: /var/lib/mysql
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
temp: {}
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- "*-rc"
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: mariadb10.1-php7.2
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: mariadb10.1-php7.2
|
||||||
|
image: friendicaci/php7.2:php7.2.22
|
||||||
|
commands:
|
||||||
|
- NOCOVERAGE=true ./autotest.sh mariadb
|
||||||
|
environment:
|
||||||
|
MYSQL_USER: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
MYSQL_HOST: mariadb
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: mariadb
|
||||||
|
image: mariadb:10.1
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: friendica
|
||||||
|
MYSQL_USER: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
path: /var/lib/mysql
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
temp: {}
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- "*-rc"
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: mariadb10.1-php7.3
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: mariadb10.1-php7.3
|
||||||
|
image: friendicaci/php7.3:php7.3.9
|
||||||
|
commands:
|
||||||
|
- NOCOVERAGE=true ./autotest.sh mariadb
|
||||||
|
environment:
|
||||||
|
MYSQL_USER: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
MYSQL_HOST: mariadb
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: mariadb
|
||||||
|
image: mariadb:10.1
|
||||||
|
environment:
|
||||||
|
MYSQL_ROOT_PASSWORD: friendica
|
||||||
|
MYSQL_USER: friendica
|
||||||
|
MYSQL_PASSWORD: friendica
|
||||||
|
MYSQL_DATABASE: friendica
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
path: /var/lib/mysql
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: cache
|
||||||
|
temp: {}
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: redis-php7.1
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: redis-php7.1
|
||||||
|
image: friendicaci/php7.1:php7.1.32
|
||||||
|
commands:
|
||||||
|
- phpenmod xdebug
|
||||||
|
- sleep 20
|
||||||
|
- NOINSTALL=true TEST_SELECTION=REDIS ./autotest.sh mysql
|
||||||
|
- wget https://codecov.io/bash -O codecov.sh
|
||||||
|
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi"
|
||||||
|
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi"
|
||||||
|
environment:
|
||||||
|
REDIS_HOST: redis
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: redis
|
||||||
|
image: redis
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- "*-rc"
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: redis-php7.2
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: redis-php7.2
|
||||||
|
image: friendicaci/php7.2:php7.2.22
|
||||||
|
commands:
|
||||||
|
- NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=REDIS ./autotest.sh mysql
|
||||||
|
environment:
|
||||||
|
REDIS_HOST: redis
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: redis
|
||||||
|
image: redis
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- "*-rc"
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: redis-php7.3
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: redis-php7.3
|
||||||
|
image: friendicaci/php7.3:php7.3.9
|
||||||
|
commands:
|
||||||
|
- NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=REDIS ./autotest.sh mysql
|
||||||
|
environment:
|
||||||
|
REDIS_HOST: redis
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: redis
|
||||||
|
image: redis
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: memcache-php7.1
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: memcache-php7.1
|
||||||
|
image: friendicaci/php7.1:php7.1.32
|
||||||
|
commands:
|
||||||
|
- phpenmod xdebug
|
||||||
|
- sleep 20
|
||||||
|
- NOINSTALL=true TEST_SELECTION=MEMCACHE ./autotest.sh mysql
|
||||||
|
- wget https://codecov.io/bash -O codecov.sh
|
||||||
|
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi"
|
||||||
|
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi"
|
||||||
|
environment:
|
||||||
|
MEMCACHE_HOST: memcached
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: memcached
|
||||||
|
image: memcached
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- "*-rc"
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: memcache-php7.2
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: memcache-php7.2
|
||||||
|
image: friendicaci/php7.2:php7.2.22
|
||||||
|
commands:
|
||||||
|
- NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=MEMCACHE ./autotest.sh mysql
|
||||||
|
environment:
|
||||||
|
MEMCACHE_HOST: memcached
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: memcached
|
||||||
|
image: memcached
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- "*-rc"
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: memcache-php7.3
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: memcache-php7.3
|
||||||
|
image: friendicaci/php7.3:php7.3.9
|
||||||
|
commands:
|
||||||
|
- NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=MEMCACHE ./autotest.sh mysql
|
||||||
|
environment:
|
||||||
|
MEMCACHE_HOST: memcached
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: memcached
|
||||||
|
image: memcached
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: memcached-php7.1
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: memcached-php7.1
|
||||||
|
image: friendicaci/php7.1:php7.1.32
|
||||||
|
commands:
|
||||||
|
- phpenmod xdebug
|
||||||
|
- sleep 20
|
||||||
|
- NOINSTALL=true TEST_SELECTION=MEMCACHED ./autotest.sh mysql
|
||||||
|
- wget https://codecov.io/bash -O codecov.sh
|
||||||
|
- sh -c "if [ '$DRONE_BUILD_EVENT' = 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -P $DRONE_PULL_REQUEST -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi"
|
||||||
|
- sh -c "if [ '$DRONE_BUILD_EVENT' != 'pull_request' ]; then bash codecov.sh -B $DRONE_BRANCH -C $DRONE_COMMIT -t 5ce7d64e-07b4-4adf-8700-e2eae27e14ec -f tests/autotest-clover.xml; fi"
|
||||||
|
environment:
|
||||||
|
MEMCACHED_HOST: memcached
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: memcached
|
||||||
|
image: memcached
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- "*-rc"
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: memcached-php7.2
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: memcached-php7.2
|
||||||
|
image: friendicaci/php7.2:php7.2.22
|
||||||
|
commands:
|
||||||
|
- NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=MEMCACHED ./autotest.sh mysql
|
||||||
|
environment:
|
||||||
|
MEMCACHED_HOST: memcached
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: memcached
|
||||||
|
image: memcached
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
branch:
|
||||||
|
- master
|
||||||
|
- develop
|
||||||
|
- "*-rc"
|
||||||
|
event:
|
||||||
|
- pull_request
|
||||||
|
- push
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
name: memcached-php7.3
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: memcached-php7.3
|
||||||
|
image: friendicaci/php7.3:php7.3.9
|
||||||
|
commands:
|
||||||
|
- NOCOVERAGE=true NOINSTALL=true TEST_SELECTION=MEMCACHED ./autotest.sh mysql
|
||||||
|
environment:
|
||||||
|
MEMCACHED_HOST: memcached
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: memcached
|
||||||
|
image: memcached
|
|
@ -1,21 +1,24 @@
|
||||||
favicon.*
|
favicon.*
|
||||||
.htconfig.php
|
/.htconfig.php
|
||||||
.htpreconfig.php
|
/.htpreconfig.php
|
||||||
\#*
|
\#*
|
||||||
include/jquery-1.4.2.min.js
|
|
||||||
*.log
|
*.log
|
||||||
*.out
|
*.out
|
||||||
*.version*
|
*.version*
|
||||||
favicon.*
|
|
||||||
home.html
|
home.html
|
||||||
addon
|
|
||||||
*~
|
*~
|
||||||
robots.txt
|
robots.txt
|
||||||
|
|
||||||
#ignore documentation, it should be newly built
|
#ignore local config
|
||||||
doc/html
|
/config/local.config.php
|
||||||
|
/config/addon.config.php
|
||||||
|
/config/local.ini.php
|
||||||
|
/config/addon.ini.php
|
||||||
|
|
||||||
#ignore reports, should be generted with every build
|
#ignore documentation, it should be newly built
|
||||||
|
/doc/html
|
||||||
|
|
||||||
|
#ignore reports, should be generated with every build
|
||||||
report/
|
report/
|
||||||
|
|
||||||
#ignore config files from eclipse, we don't want IDE files in our repository
|
#ignore config files from eclipse, we don't want IDE files in our repository
|
||||||
|
@ -23,9 +26,11 @@ report/
|
||||||
.buildpath
|
.buildpath
|
||||||
.externalToolBuilders
|
.externalToolBuilders
|
||||||
.settings
|
.settings
|
||||||
|
|
||||||
#ignore OSX .DS_Store files
|
#ignore OSX .DS_Store files
|
||||||
.DS_Store
|
.DS_Store
|
||||||
|
|
||||||
|
#ignore NetBeans IDE's private files (at least)
|
||||||
/nbproject/private/
|
/nbproject/private/
|
||||||
|
|
||||||
#ignore smarty cache
|
#ignore smarty cache
|
||||||
|
@ -58,3 +63,16 @@ venv/
|
||||||
|
|
||||||
#ignore config files from JetBrains
|
#ignore config files from JetBrains
|
||||||
/.idea
|
/.idea
|
||||||
|
|
||||||
|
#ignore addons directory
|
||||||
|
/addons
|
||||||
|
/addon
|
||||||
|
|
||||||
|
#ignore .htaccess
|
||||||
|
.htaccess
|
||||||
|
|
||||||
|
#ignore filesystem storage default path
|
||||||
|
/storage
|
||||||
|
|
||||||
|
#Ignore log folder
|
||||||
|
/log
|
||||||
|
|
|
@ -38,4 +38,3 @@ AddType audio/ogg .oga
|
||||||
RewriteRule ^(.*)$ index.php?pagename=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
|
RewriteRule ^(.*)$ index.php?pagename=$1 [E=REMOTE_USER:%{HTTP:Authorization},L,QSA]
|
||||||
|
|
||||||
</IfModule>
|
</IfModule>
|
||||||
|
|
27
.travis.yml
|
@ -1,10 +1,29 @@
|
||||||
---
|
---
|
||||||
language: php
|
language: php
|
||||||
## Friendica supports PHP version >= 5.6
|
## Friendica officially supports PHP version >= 7.1
|
||||||
php:
|
php:
|
||||||
- 5.6
|
|
||||||
- 7.0
|
|
||||||
- 7.1
|
- 7.1
|
||||||
- 7.2
|
- 7.2
|
||||||
|
- 7.3
|
||||||
|
|
||||||
install: composer install
|
services:
|
||||||
|
- mysql
|
||||||
|
- redis-server
|
||||||
|
- memcached
|
||||||
|
env:
|
||||||
|
- MYSQL_HOST=localhost MYSQL_PORT=3306 MYSQL_USERNAME=travis MYSQL_PASSWORD= MYSQL_DATABASE=test
|
||||||
|
|
||||||
|
install:
|
||||||
|
- composer install
|
||||||
|
before_script:
|
||||||
|
- cp config/local-sample.config.php config/local.config.php
|
||||||
|
- mysql -e 'CREATE DATABASE IF NOT EXISTS test;'
|
||||||
|
- mysql -utravis test < database.sql
|
||||||
|
- pecl channel-update pecl.php.net
|
||||||
|
- pecl config-set preferred_state beta
|
||||||
|
- if [[ $TRAVIS_PHP_VERSION != "7.1" ]]; then echo yes | pecl upgrade apcu; fi
|
||||||
|
- if [[ $TRAVIS_PHP_VERSION != "7.1" ]]; then phpenv config-add .travis/apcu.ini; fi
|
||||||
|
- phpenv config-add .travis/redis.ini
|
||||||
|
- phpenv config-add .travis/memcached.ini
|
||||||
|
|
||||||
|
script: vendor/bin/phpunit --configuration tests/phpunit.xml
|
||||||
|
|
|
@ -0,0 +1,4 @@
|
||||||
|
extension="apcu.so"
|
||||||
|
|
||||||
|
apc.enabled = 1
|
||||||
|
apc.enable_cli = 1
|
|
@ -0,0 +1 @@
|
||||||
|
extension="memcached.so"
|
|
@ -0,0 +1 @@
|
||||||
|
extension="redis.so"
|
|
@ -3,7 +3,7 @@ host = https://www.transifex.com
|
||||||
|
|
||||||
[friendica.messagespo]
|
[friendica.messagespo]
|
||||||
file_filter = view/lang/<lang>/messages.po
|
file_filter = view/lang/<lang>/messages.po
|
||||||
source_file = util/messages.po
|
source_file = view/lang/C/messages.po
|
||||||
source_lang = en
|
source_lang = en
|
||||||
type = PO
|
type = PO
|
||||||
|
|
||||||
|
|
586
CHANGELOG
|
@ -1,3 +1,585 @@
|
||||||
|
Version 2019.12-dev (unreleased)
|
||||||
|
Friendica Core:
|
||||||
|
Enhanced the manage functionality [annando]
|
||||||
|
Fixed some problems with the remote auth functionality [annando]
|
||||||
|
Added router configuration file [nupplaphil]
|
||||||
|
Added drone.io as CI service [nupplaphil]
|
||||||
|
|
||||||
|
Friendica Addons:
|
||||||
|
mailstream:
|
||||||
|
Support for new img format was added [mexon]
|
||||||
|
BB Code is now included as plaintext [mexon]
|
||||||
|
Logging format is enhanced [mexon]
|
||||||
|
ActivityPub "announce" notifications are not included [mexon]
|
||||||
|
|
||||||
|
Closed Issues:
|
||||||
|
1071, 7548, 7657, 7681
|
||||||
|
|
||||||
|
Version 2019.09 (2019-09-29)
|
||||||
|
Friendica Core:
|
||||||
|
Update to the translations (CS, DE, EN GB, EN US, FR, JA, NL, PL) [translation teams]
|
||||||
|
Update to the themes (frio, vier) [JeroenED, MrPetovan, tobiasd, vinzv]
|
||||||
|
Update to the documentation [annando, tobiasd, guzzisti, vinzv]
|
||||||
|
Enhanced the log output of the background process [annando]
|
||||||
|
Enhanced the vcard translation in the profile [JeroenED]
|
||||||
|
Enhanced the delivery count [annando]
|
||||||
|
Enhanced ActivityPub envelopes [MrPetovan]
|
||||||
|
Enhanced communication about deleted accounts via AP [annando]
|
||||||
|
Enhanced the following process [annando]
|
||||||
|
Enhanced the tests [nupplaphil]
|
||||||
|
Enhanced the front-end worker [annando]
|
||||||
|
Enhanced the img format to allow alternative texts [annando]
|
||||||
|
Enhanced the detection of supported protocols for contacts [annando]
|
||||||
|
Enhanced the re-share of items [annando]
|
||||||
|
Enhanced 2FA process [MrPetovan]
|
||||||
|
Enhanced server wide theme settings [MrPetovan]
|
||||||
|
Enhanced config loading process [MrPetovan, nupplaphil]
|
||||||
|
Enhanced handling of emoticons [MrPetovan]
|
||||||
|
Enhanced performance [annando]
|
||||||
|
Fixed a bug in the admin panel leading to orphaned options [tobiasd]
|
||||||
|
Fixed a problem that could lead to duplicated Pleroma contacts [annando]
|
||||||
|
Fixed a problem with the hide profile setting [annando]
|
||||||
|
Fixed the problem sending out the post when hitting the enter key in the ACL dialog [MrPetovan]
|
||||||
|
Fixed a bug in HTML special character escaping of event titles [MrPetovan]
|
||||||
|
Fixed a bug in HTML special character conversion in item titles [MrPetovan]
|
||||||
|
Fixed a bug in the auto linker for URLs [MrPetovan]
|
||||||
|
Fixed a bug that prevented the display of images in some postings from diaspora* [MrPetovan]
|
||||||
|
Fixed a bug in setting the permissions on uploaded images [annando]
|
||||||
|
Fixed a bug that lead to potentially unwanted importing threads started by contacts of contacts [annando]
|
||||||
|
Fixed implicit self mentions [MrPetovan]
|
||||||
|
Fixed display of register links on closed nodes landing pages [MrPetovan]
|
||||||
|
Fixed the display of [spoiler] tags [MrPetovan]
|
||||||
|
Fixed an issue with photo permissions in private mails [annando]
|
||||||
|
Fixed a bug in the process of following Pleroma accounts [annando]
|
||||||
|
Fixed a bug that caused notifications about locally deleted items [annando]
|
||||||
|
Fixed the link to the source of an event [MrPetovan]
|
||||||
|
Fixed a problem that caused authors from twitter postings having no profile pic [annando]
|
||||||
|
Fixed a bug in BBCode -> Markdown conversation for font size [annando]
|
||||||
|
Fixed a BBCode parser problem with the audio tag [MrPetovan]
|
||||||
|
Fixed a session problem [annando]
|
||||||
|
Fixed a problem with the auto-installer [nupplaphil]
|
||||||
|
Fixed a bug with magic links redirection for non profiles [annando]
|
||||||
|
General code cleaning [annando, MrPetovan, nupplaphil]
|
||||||
|
Removed contacts auto completion (in /contacts [MrPetovan]
|
||||||
|
Replaced FontAwesome by ForkAwesome in frio theme [vinzv]
|
||||||
|
Added new compose page for the frio theme [MrPetovan]
|
||||||
|
Added new console command: lock [nupplaphil]
|
||||||
|
Added new additional feature to show trending tags on community page [MrPetovan]
|
||||||
|
Added support of image descriptions [annando]
|
||||||
|
Added support of wildcards to server block lists [MrPetovan]
|
||||||
|
Added app specific passwords when using 2FA [MrPetovan]
|
||||||
|
Added fetching of postings via URL to interact with public postings [annando]
|
||||||
|
Added opt-out flag for federated search engines and associated header information for profiles [annando]
|
||||||
|
|
||||||
|
Friendica Addons:
|
||||||
|
Update to the translation (CS, DE, EN GB, EN US, ES, FR, JA, NL SV) [translation teams]
|
||||||
|
General code cleanup [nupplaphil, Quix0r]
|
||||||
|
blockbot:
|
||||||
|
Added translations
|
||||||
|
Added more bots [annando]
|
||||||
|
Added admin panel settings [annando]
|
||||||
|
tumblr:
|
||||||
|
Changed used URLs to https adopting tumblrs change [annando]
|
||||||
|
twitter:
|
||||||
|
Enhanced handling of multi image postings [annando]
|
||||||
|
Enhanced display of quoted tweets [MrPetovan]
|
||||||
|
Added alternative text support for images [annando]
|
||||||
|
|
||||||
|
Closed Issues:
|
||||||
|
870, 1605, 2199, 3239, 3816, 4117, 4815, 5721, 6384, 6521, 6553,
|
||||||
|
6675, 7212, 7235, 7285, 7293, 7314, 7317, 7337, 7338, 7346, 7350,
|
||||||
|
7367, 7383, 7396, 7397, 7401, 7406, 7408, 7426, 7428, 7456, 7442,
|
||||||
|
7457, 7468, 7471, 7473, 7488, 7497, 7498, 7501, 7507, 7521, 7526,
|
||||||
|
7527, 7536, 7542, 7545, 7576, 7586, 7594, 7597, 7603, 7610, 7618,
|
||||||
|
7629, 7635, 7638, 7663, 7665, 7672
|
||||||
|
|
||||||
|
Version 2019.06 (2019-06-23)
|
||||||
|
Friendica Core:
|
||||||
|
Update to the tranlation (CS, DE, EN-GB, EN-US, ET, FR, IT, PL, PT-BR, SV) [translation teams]
|
||||||
|
Update to the documentation [nupplaphil, realkinetix, MrPetovan]
|
||||||
|
Update to the themes (frio, vier) [BinkaDroid, MrPetovan, tobiasd]
|
||||||
|
Enhancements to the API [annando, MrPetovan]
|
||||||
|
Enhancements to the way reshares are handled [annando]
|
||||||
|
Enhancements to the redis configuration [nupplaphil]
|
||||||
|
Enhancements to the federation stats display in the admin panel [tobiasd]
|
||||||
|
Enhancements to the processing of changed storage engine [MrPetovan]
|
||||||
|
Enhancements to ActivityPub support [annando, MrPetovan]
|
||||||
|
Enhancements to code security [MrPetovan]
|
||||||
|
Enhancements to delivery counter [annando]
|
||||||
|
Fixed the notification order [JeroenED]
|
||||||
|
Fixed the timezone of Friendica logs [nupplaphil]
|
||||||
|
Fixed tag completion painfully slow [AlfredSK]
|
||||||
|
Fixed a regression in notifications [MrPetovan, annando]
|
||||||
|
Fixed an issue with smilies and code blocks [MrPetovan]
|
||||||
|
Fixed an AP issue with unavailable local profiles [MrPetovan]
|
||||||
|
Fixed an issue with the File to Folder feature [MrPetovan]
|
||||||
|
Fixed an issue with the legacy storage engine [fabrixxm]
|
||||||
|
Fixed an issue with the theme and addon path items [MrPetovan]
|
||||||
|
Fixed an issue occuring when the BasePath was not set [tobiasd]
|
||||||
|
Fixed an issue with additionally opened Sessions [MrPetovan]
|
||||||
|
Fixed an issue with legacy loglevel mapping [nupplaphil]
|
||||||
|
Fixed contact suggestions [annando]
|
||||||
|
Fixed an issue with frio hovercard [nupplaphil]
|
||||||
|
Fixed event interaction federation [annando]
|
||||||
|
Fixed remote image permission [deantownsley]
|
||||||
|
General Code cleaning and restructuring [annando, nupplaphil, tobiasd]
|
||||||
|
Added frio color scheme sharing [JeroenED]
|
||||||
|
Added syslog and stream Logger [nupplaphil]
|
||||||
|
Added storage move cronjob [MrPetovan]
|
||||||
|
Added collapsible panel for connector permission fields [MrPetovan]
|
||||||
|
Added rule-based router [MrPetovan]
|
||||||
|
Added Estonian translation [Rain Hawk]
|
||||||
|
Added APCu caching [nupplaphil]
|
||||||
|
Added BlockServer command to the Friendica console [nupplaphil]
|
||||||
|
Added reshare count [annando]
|
||||||
|
Added rule-based router [MrPetovan, nupplaphil]
|
||||||
|
Added themed error pages with mascot [MrPetovan, lostinlight]
|
||||||
|
Added contact relationship filter [MrPetovan]
|
||||||
|
Added native reshares and reshare count [annando]
|
||||||
|
Removed the old queue mechanism (deferred workers are now used) [annando]
|
||||||
|
Removed BasePath and Hostname settings from the admin panel [nupplaphil]
|
||||||
|
Remove support for defunct F-Droid Friendica app [MrPetovan]
|
||||||
|
|
||||||
|
Friendica Addons:
|
||||||
|
Update to the tranlation (ET, SV, ZH_CN) [translation teams]
|
||||||
|
botdetection:
|
||||||
|
Added a new addon for preventing access by bots [nupplaphil, annando]
|
||||||
|
buffer:
|
||||||
|
Traces of Google+ were removed [annando]
|
||||||
|
curweather:
|
||||||
|
Fixed a problem with the display of the correct temperature unit [tobiasd]
|
||||||
|
fromgplus:
|
||||||
|
Deprecated the addon as Google+ was closed [tobiasd]
|
||||||
|
fortunate:
|
||||||
|
Deprecated addon for incompatibility with latest Friendica version [MrPetovan]
|
||||||
|
phpmailer:
|
||||||
|
Added a new addon to use external SMTP for email [M-arcus, kecalcze, MrPetovan]
|
||||||
|
pledgie:
|
||||||
|
Deprecated addon as service was discontinued [M-arcus]
|
||||||
|
xmpp:
|
||||||
|
Marked addon as unsupported because of various incompatibilities with themes [MrPetovan]
|
||||||
|
|
||||||
|
Closed Issues:
|
||||||
|
838, 1012, 2209, 2528, 3309, 3717, 3816, 3869, 4453, 4999, 5011,
|
||||||
|
5047, 5276, 5850, 5983, 6245, 6303, 6319, 6379, 6410, 6477, 6478,
|
||||||
|
6720, 6799, 6813, 6819, 6861, 6864, 6879, 6903, 6916, 6917, 6918,
|
||||||
|
6921, 6927, 6929, 6936, 6938, 6941, 6943, 6947, 6948, 6950, 6952,
|
||||||
|
6983, 6999, 7012, 7020, 7023, 7031, 7036, 7047, 7106, 7110, 7112,
|
||||||
|
7119, 7128, 7130, 7131, 7141, 7142, 7150, 7171, 7183, 7196, 7209,
|
||||||
|
7223, 7226, 7240, 7241, 7249, 7264, 7269, 7271, 7275, 7300, 7303
|
||||||
|
|
||||||
|
Version 2019.04 (2019-04-28)
|
||||||
|
Friendica Core:
|
||||||
|
Fixed a privacy problem with postings accessed by feed [MrPetovan]
|
||||||
|
|
||||||
|
Version 2019.03 (2019-03-22)
|
||||||
|
Friendica Core:
|
||||||
|
Update to the translation (CS, DE, EN-GB, EN-US, ES, FR, IT, PL, SV, ZH-CN) [translation teams]
|
||||||
|
Update to the documentation [Aditoo17, JeroenED, m4sk1n, softmetz, tobiasd]
|
||||||
|
Update to the themes (duepuntozero, frio, smoothy, quattro, vier) [lxiter, MrPetovan, nupplaphil, rabuzarus, tobiasd]
|
||||||
|
Enhancements to the API [jasonscheng]
|
||||||
|
Enhancements to the Vagrant development VM [JeroenED]
|
||||||
|
Enhancements to the storage of gender, sexual preferences and maritial status [JeroenED]
|
||||||
|
Enhancements to the wording of notifications [MrPetovan]
|
||||||
|
Enhancements to the display of contacts in the profile [MrPetovan]
|
||||||
|
Enhancements to the handling of local links [lxiter]
|
||||||
|
Enhancements to the explicit and implicit mentioning in conversations [annando, MrPetovan]
|
||||||
|
Enhancements to the warnings in the admin panel [tobiasd]
|
||||||
|
Enhancements to the AP implementation [annando]
|
||||||
|
Enhancements to the worker process [annando]
|
||||||
|
Enhancements to the testing process [MrPetovan, nupplaphil]
|
||||||
|
Enhancements to the LibreJS compatibility [tobiasd]
|
||||||
|
Enhancements to the federated display of postings [MrPetovan]
|
||||||
|
Enhancements to the photo menu [annando]
|
||||||
|
Enhancements to the probing of contacts [annando]
|
||||||
|
Fixed several bugs with weird tagging in code blocks [lxiter]
|
||||||
|
Fixed a bug during contact entries update [rabuzarus]
|
||||||
|
Fixed several PHP warnings and errors [annando, MrPetovan, tobiasd]
|
||||||
|
Fixed an issue when Friendica is installed in a subdirectory [rabuzarus]
|
||||||
|
Fixed several issues in the handling of the Markdown parsing from and to d* [lxiter, MrPetovan]
|
||||||
|
Fixed a bug that prevented blocked contacts from being removed from groups [MrPetovan]
|
||||||
|
Fixed a bug in the ACL with preselected items [lxiter]
|
||||||
|
Fixed an issue with polling Events via AP [annando]
|
||||||
|
Fixed a memory issue with the JSON-LD parser [annando]
|
||||||
|
Fixed an issue with the forced DB structure update [nupplaphil]
|
||||||
|
Fixed an issue with wrongly encoded HTML entities in URLs [annando]
|
||||||
|
Fixed an issue with the rotation of images in the gallery [nupplaphil]
|
||||||
|
Fixed issues with redirs in the photo menu of Friendica contacts [tobiasd]
|
||||||
|
Fixed an issue with sending out notification mails to the admin [nupplaphil]
|
||||||
|
Fixed an the issue, that the API was ignoring the globalsilence setting [nupplaphil]
|
||||||
|
Fixed issues with the autolinker of URLs in postings [MrPetovan]
|
||||||
|
Fixed an issue resulting in multible emails after successful updates of the database [nupplaphil]
|
||||||
|
Fixed a timeout issue during detection process of the remote profile [annando]
|
||||||
|
Fixed an issue with postings from blocked servers [annando, MrPetovan]
|
||||||
|
Fixed an issue with the paging of stored folders [MrPetovan]
|
||||||
|
Fixed an issue with notifications about interactions with Friendica contacts [annando]
|
||||||
|
Fixed an issue that caused double postings of images uploaded to the gallery [annando]
|
||||||
|
Fixed an issue handling legacy config files [nupplaphil]
|
||||||
|
Fixed an issue that caused notifications about interaction with a locally deleted posting [annando]
|
||||||
|
If the node does not want to publish information, nodeinfo now returns 404 instead of non-existing entries [nupplaphil]
|
||||||
|
General Code cleaning and restructuring [annando, JeroenED, MrPetovan, nupplaphil]
|
||||||
|
Switched logging engine to monolog [nupplaphil]
|
||||||
|
Added plugable storage backend [fabrixxm, nupplaphil]
|
||||||
|
Added item delivery indicator to posting header [MrPetovan]
|
||||||
|
Added URL parameter to force a specific language [JeroenED]
|
||||||
|
Added live preview of attachments to frio [rabuzarus]
|
||||||
|
Added a "friendica_author" field to the API results which holds the real author [annando]
|
||||||
|
Added support for AP with forum postings [annando]
|
||||||
|
Added a summary of articles send over AP [annando]
|
||||||
|
|
||||||
|
Friendica Addons:
|
||||||
|
Updates to the translations (CS, DE, EN-GB, ES, FR, NL, PL, SV) [translation teams]
|
||||||
|
Updated documentation [softmetz, tobiasd]
|
||||||
|
blackout:
|
||||||
|
Fix applying the translations [JeroenED, tobiasd]
|
||||||
|
Fixed some templating of the settings [tobiasd]
|
||||||
|
blogger:
|
||||||
|
The addon was marked as unsupported as it does currently not work (needs OAuth support) [annando]
|
||||||
|
cookienotice:
|
||||||
|
Added new addon to display a cookie usage notice in the browser [lxiter]
|
||||||
|
forumdirectory:
|
||||||
|
Fixed a theming issue with frio [rabuzarus]
|
||||||
|
js_upload:
|
||||||
|
Fixed a missing extionsion index [nupplaphil]
|
||||||
|
mailstream:
|
||||||
|
Fixed a curl issue [MrPetovan]
|
||||||
|
piwik:
|
||||||
|
Make it clear that Piwik is now Matomo but the addon supports both [tobiasd]
|
||||||
|
securemail:
|
||||||
|
updated the addon dependencies [MrPetovan]
|
||||||
|
twitter:
|
||||||
|
@ mentions are now stripped from the posts send to Twitter [MrPetovan]
|
||||||
|
|
||||||
|
Closed Issues:
|
||||||
|
1777, 2487, 3218, 3506, 3837, 4496, 5884, 6087, 6161, 6167, 6205,
|
||||||
|
6232, 6263, 6274, 6292, 6337, 6338, 6375, 6378, 6382, 6384, 6386,
|
||||||
|
6403, 6405, 6449, 6468, 6472, 6489, 6491, 6492, 6495, 6498, 6501,
|
||||||
|
6503, 6505, 6511, 6514, 6521, 6522, 6529, 6532, 6533, 6544, 6545,
|
||||||
|
6551, 6553, 6537, 6558, 6552, 6561, 6570, 6575, 6585, 6603, 6610,
|
||||||
|
6629, 6630, 6633, 6635, 6652, 6656, 6658, 6667, 6668, 6669, 6672,
|
||||||
|
6674, 6676, 6677, 6679, 6691, 6710, 6711, 6714, 6716, 6733, 6758,
|
||||||
|
6772, 6778, 6785, 6788, 6800, 6805, 6812, 6819, 6822, 6823, 6840,
|
||||||
|
6855, 6866, 6874, 6891, 6901, 6913
|
||||||
|
|
||||||
|
Version 2019.01 (2019-01-21)
|
||||||
|
Friendica Core:
|
||||||
|
Update to the translation (CS, DE, EN-UK, EN-US, FR, NB-NO, NL, PL) [translation teams]
|
||||||
|
Update to the documentation [AndyHee, FiXato, hoergen, JeroenED, MrPetovan, rebeka-catalina, tobiasd, wouter705]
|
||||||
|
Enhancements to the themes (frio, vier) [annando, JonnyTischbein, MrPetovan, rabuzarus]
|
||||||
|
Enhancements to the usage of MagicLinks [annando, rabuzarus]
|
||||||
|
Enhancements to the escaping of user submitted content [annando, MrPetovan, tobiasd]
|
||||||
|
Enhancements to the installation wizard [annando, JonnyTischbein, vinzv]
|
||||||
|
Enhancements to the OWA compatibility with Hubzilla [annando]
|
||||||
|
Enhancements to Friendica on the iOS Home Screen [MrPetovan]
|
||||||
|
Enhancements to the Welcome email after registration [MrPetovan]
|
||||||
|
Enhancements to the API [annando]
|
||||||
|
Enhancements to the methods to find potentially interesting contacts [MrPetovan]
|
||||||
|
Enhancements to the remote detection of already existing relationships [MrPetovan]
|
||||||
|
Enhancements to the handling of large posts [annando]
|
||||||
|
Enhancements to the user removal process [annando, MrPetovan]
|
||||||
|
Enhancements to the generation of HTTP error messages [annando]
|
||||||
|
Enhancements to the admin panel [AndyHee, annando]
|
||||||
|
Enhancements to the display of birthday reminders [MrPetovan]
|
||||||
|
Enhancements to the display of the group filter [annando]
|
||||||
|
Enhancements to the Worker [annando]
|
||||||
|
Enhancements to the exported Atom feeds [Alkarex]
|
||||||
|
Enhancements to the Vagrant VM [fabrixxm, tobiasd]
|
||||||
|
Enhancements to the tests [nupplaphil]
|
||||||
|
Enhancements to the node info [annando]
|
||||||
|
Enhancements to the DBclean process [annando]
|
||||||
|
Enhancements to the PasswordExposedChecker [MrPetovan]
|
||||||
|
Enhancements to the BBCode handling [MrPetovan]
|
||||||
|
Enhancements to the diaspora* protocol implementation [annando]
|
||||||
|
Enhancements to the automatic installation [nupplaphil]
|
||||||
|
Fixed various PHP notice occurrences [annando, MrPetovan]
|
||||||
|
Fixed the display of private postings in contact overview [annando]
|
||||||
|
Fixed a problem with the display of forums in the widget [annando]
|
||||||
|
Fixed a bug in the email support [MrPetovan]
|
||||||
|
Fixed a bug in the endless scroll of the network stream [MrPetovan]
|
||||||
|
Fixed a style problem with iOS mobile browser [MrPetovan]
|
||||||
|
Fixed a bug handling links to Hubzilla forums [MrPetovan]
|
||||||
|
Fixed a bug in the character set detection [MrPetovan]
|
||||||
|
Fixed a bug with the display of private notes [annando]
|
||||||
|
Fixed a bug in setting the photo permissions [JonnyTischbein]
|
||||||
|
Fixed a bug that caused some photo albums having no permissions [JonnyTischbein]
|
||||||
|
Fixed a problem adding multiple hashtags [JonnyTischbein]
|
||||||
|
Fixed a bug when subscribing to OStatus accounts [MrPetovan]
|
||||||
|
Fixed a bug in SQL grammar [Alkarex]
|
||||||
|
Fixed a bug with WebSub [Alkarex]
|
||||||
|
Fixed a bug in the generated node info JSON [fabrixxm]
|
||||||
|
Fixed a bug displaying videos when using the frio theme [JeroenED]
|
||||||
|
Moved config format to PHP arrays [MrPetovan]
|
||||||
|
Moved several additional features back to the default features [annando]
|
||||||
|
Started to deprecate the Google+ support [annando]
|
||||||
|
Added support of ActivityPub (tested with Hubzilla, Mastodon, Nextcloud Social, Osada, PeerTube, Pixelfed, Pleroma) [annando]
|
||||||
|
Added support for custom emojis [annando, MrPetovan]
|
||||||
|
The util folder was removed and the content restructured elsewhere [MrPetovan]
|
||||||
|
Removed the old /p endpoint from diaspora* compatibility [annando]
|
||||||
|
|
||||||
|
Friendica Addons:
|
||||||
|
Updating the translations (DE, FR) [translation teams]
|
||||||
|
twitter:
|
||||||
|
use original URL for link display [MrPetovan]
|
||||||
|
enhancements to shares [MrPetovan]
|
||||||
|
leistungsschutzrecht:
|
||||||
|
show preview pictures of videos [annando]
|
||||||
|
optionally suppress pictures [annando]
|
||||||
|
wordpress:
|
||||||
|
posting should work again [annando]
|
||||||
|
forumdirectory:
|
||||||
|
paging enhancements [MrPetovan]
|
||||||
|
mathjax:
|
||||||
|
addon rewritten [MrPetovan]
|
||||||
|
highlightjs:
|
||||||
|
added addon to highlight source code [MrPetovan]
|
||||||
|
|
||||||
|
Closed Issues:
|
||||||
|
1430, 1495, 1572, 1575, 1580, 1581, 2123, 2893, 3016, 3466, 3777,
|
||||||
|
3870, 3897, 4242, 4584, 4592, 4609, 4688, 4708, 4715, 4738, 4804,
|
||||||
|
5264, 5368, 5547, 5596, 5627, 5716, 5723, 5737, 5757, 5771, 5779,
|
||||||
|
5797, 5798, 5811, 5809, 5814, 5820, 5834, 5847, 5801, 5805, 5857,
|
||||||
|
5858, 5859, 5863, 5875, 5879, 5886, 5890, 5893, 5896, 5908, 5911,
|
||||||
|
5915, 5913, 5924, 5932, 5934, 5943, 5955, 5956, 5960, 5966, 5968,
|
||||||
|
5971, 5975, 5992, 5994, 5996, 6006, 6010, 6015, 6027, 6032, 6036,
|
||||||
|
6038, 6047, 6081, 6100, 6109, 6119, 6124, 6125, 6128, 6140, 6149,
|
||||||
|
6157, 6173, 6202, 6211, 6212, 6213, 6236, 6243, 6255, 6257, 6259,
|
||||||
|
6268, 6282, 6283, 6208, 6289, 6294, 6308, 6309, 6313, 6316, 6323,
|
||||||
|
6329, 6334, 6344, 6347, 6343, 6349, 6350, 6355, 6358, 6360, 6361,
|
||||||
|
6363, 6368, 6370, 6391, 6394, 6424, 6425, 6439, 6459
|
||||||
|
|
||||||
|
Version 2018.09 (2018-09-23)
|
||||||
|
Friendica Core:
|
||||||
|
Update to the translation (CS, DE, EN-US, FI, IT, NL, PL, ZH-CN) [translation teams]
|
||||||
|
Update to the documentation [Aditoo17, annando, astifter, rebeka-catalina, fabrixxm, M-arcus, microgroove, nupplaphil, tobiasd]
|
||||||
|
Enhancements to the database structure, handling and documentation [abanink, Angristan, annando, miqrogroove, tobiasd]
|
||||||
|
Enhancements of unit testing [abanink, nupplaphil, rudloff]
|
||||||
|
Enhancements to labelling of UI elements [andyhee, tobiasd]
|
||||||
|
Enhancements to the background workers [annando, miqrogroove, rabuzarus]
|
||||||
|
Enhancements to the PHP7.2 compatibility [annando, miqrogroove, MrPetovan]
|
||||||
|
Enhancements to the content filter [MrPetovan]
|
||||||
|
Enhancements to the hooks provided for addons [abanink]
|
||||||
|
Enhancements to the interaction with public postings [annando]
|
||||||
|
Enhancements to the config storage [frabrixxm]
|
||||||
|
Enhancements to the themes (frio, quattro, smoothly, vier) [annando, astifter, hoergen, MrPetovan, rabuzarus, tobiasd]
|
||||||
|
Enhancements to the handling of locks [nupplaphil]
|
||||||
|
Enhancements to the redis integration [nupplaphil]
|
||||||
|
Enhancements to the admin panel [JeroenED, tobiasd]
|
||||||
|
Enhancements to the user import process [annando]
|
||||||
|
Enhancements to the display of invitation information [JeroenED]
|
||||||
|
Enhancements to the automatic installation process [nupplaphil]
|
||||||
|
Enhancements to the contact group UI [annando, astifter]
|
||||||
|
Enhancements to the call of JS [hypolite]
|
||||||
|
Enhancements to the storage of items in the database [annando]
|
||||||
|
Enhancements to the process of changing relationships [annando]
|
||||||
|
Enhancements to the OEmbed of data [MrPetovan]
|
||||||
|
Fixed various PHP notice occurrences [annando, MrPetovan]
|
||||||
|
Fixed a bug that could lead to the display of posts from deleted accounts on the community page for a short period [annando]
|
||||||
|
Fixed a bug that prevented email notification to be send out [annando]
|
||||||
|
Fixed a bug in database optimisation [annando]
|
||||||
|
Fixed a bug during removing contacts [annando]
|
||||||
|
Fixed a bug in the tag-cloud widget [annando]
|
||||||
|
Fixed a bug in the daemon mode of the background worker [annando]
|
||||||
|
Fixed a bug in the frio theme that contact filtering [rabuzarus]
|
||||||
|
Fixed a bug that mangled the display of some additional smileys [abanink]
|
||||||
|
Fixed a bug in generating registration mails [MrPetovan]
|
||||||
|
Fixed a bug that caused blank re-share bodies [MrPetovon]
|
||||||
|
Fixed a bug in the API handling of private mails [fabrixxm]
|
||||||
|
Fixed a bug when calling the mail() function [miqrogroove]
|
||||||
|
Fixed a bug that caused deleted accounts being displayed in the local directory [miqrogroove]
|
||||||
|
Fixed a bug when checking the domain of an email address [VVelox]
|
||||||
|
Fixed a bug that prevented re-shares from Twitter to be shown as this [annando]
|
||||||
|
Fixed a bug that caused broken profile links [miqrogroove]
|
||||||
|
Fixed a bug that caused content from unknown accounts appearing in the timeline [annando]
|
||||||
|
Fixed a bug with the ignoring and blocking of contacts [annando]
|
||||||
|
Fixed a bug with showing hidden contacts in some places [annando]
|
||||||
|
Fixed a bug that prevented the deletion of events by contacts [annando]
|
||||||
|
Fixed a bug that prevented email contacts from being added [annando]
|
||||||
|
Fixed a bug in the notification/seen API call [fabrixxm]
|
||||||
|
Fixed a bug that prevented a refresh after un-/ignoring a conversation [annando]
|
||||||
|
Fixed a bug in the handling of some language translations [anndno]
|
||||||
|
Fixed a bug in the hook handling [annando]
|
||||||
|
Fixed the handling of too long tags [annando]
|
||||||
|
Fixed a bug that prevented the unliking of dis-/likes [annando]
|
||||||
|
Fixed bugs with the handling of private nodes [annando]
|
||||||
|
Fixed a bug in the session initialisation [annando]
|
||||||
|
Fixed bugs in the execution of the background processes [annando, Quix0r]
|
||||||
|
Fixed a problem with the notification page [MrPetovan]
|
||||||
|
Fixed a bug with wrong dates in importing some Atom feeds [annando]
|
||||||
|
Fixed forum exclusive distribution of postings using the !notation [annando]
|
||||||
|
Fixed a bug that lead to empty notifications [MrPetovan]
|
||||||
|
Fixed a problem that could sometimes prevent the execution of the relocation [annando]
|
||||||
|
Fixed a bug with the handling of images in postings over the connectors [annando]
|
||||||
|
Added conversation cleanup configuration [miqrogroove]
|
||||||
|
Added support of the usage of internal diaspora links to accounts [annando]
|
||||||
|
Added the possibility for admins to block certain nicknames (e.g. role names) [tobiasd]
|
||||||
|
Added the generation of system guid [nupplaphil]
|
||||||
|
Added the possibility for admins to mark a node for explicit content [tobiasd]
|
||||||
|
Added filter by account type to the community page [annando]
|
||||||
|
Added private flag to API results [fabrixxm]
|
||||||
|
Added post update checks to the console utility [annando]
|
||||||
|
Added codecov analysis [nupplaphil]
|
||||||
|
Added access-keys to the frio theme [tobiasd]
|
||||||
|
Added the profile settings to the user settings [tobiasd]
|
||||||
|
General code refactoring and beautification work [annando, MrPetovan, Quix0r, tobiasd]
|
||||||
|
Fixation of the position on the network page when new posts arrive [rabuzarus]
|
||||||
|
Ported OpenWebAuth from Hubzilla [annando, rabuzarus]
|
||||||
|
Removed hard coded syntax highlighting from code blocks [MrPetovan]
|
||||||
|
Removed (temporarily) the possibility to add pictures to private messages [annando]
|
||||||
|
New INI style config file format in /config [MrPetovan, tobiasd]
|
||||||
|
The .htaccess file is not part of the git repository anymore [annando, Quix0r]
|
||||||
|
|
||||||
|
Friendica Addons:
|
||||||
|
Update to the translations (CS, DE, EN-US, NL, PL, ZH-CN) [translation teams]
|
||||||
|
General update to adopt changes in core [annando, MrPetovan, Quix0r, tobiasd]
|
||||||
|
advancedcontentfilter:
|
||||||
|
Enhancement to the error handling [MrPetovan]
|
||||||
|
Honour the CSP settings [MrPetovan]
|
||||||
|
Fixed translation problems [annando]
|
||||||
|
blockem:
|
||||||
|
Enhancement of the settings [AlfredSK]
|
||||||
|
buffer:
|
||||||
|
support for app.net removed [annando]
|
||||||
|
js_upload:
|
||||||
|
Enhancement of the album name handling [rabuzarus]
|
||||||
|
Enhancement to the wording of the labels [astifter]
|
||||||
|
langfilter:
|
||||||
|
Fixed a problem with default values of the filtered languages [tobiasd]
|
||||||
|
libravatar:
|
||||||
|
The service wont shutdown, so we can keep the addon [tobiasd]
|
||||||
|
pumpio:
|
||||||
|
Fixed a problem that prevented new connections [annando]
|
||||||
|
superblock:
|
||||||
|
Fixed a bug that prevented the addon to block accounts [annando]
|
||||||
|
Enhancements of the settings [AlfredSK]
|
||||||
|
twitter:
|
||||||
|
Use rich text for quote tweets [MrPetovan]
|
||||||
|
Prevent empty quotes from being created [annando]
|
||||||
|
Fixed a problem with re-shares from remote_self contacts [annando]
|
||||||
|
Changed URL display after link expansion [MrPetovan]
|
||||||
|
Fixed a problem with EXIF handling [MrPetovan]
|
||||||
|
added addons:
|
||||||
|
mastodoncustomemojis [MrPetovan]
|
||||||
|
deprecated addons:
|
||||||
|
notimeline, retriver, remote_permissions, widgets
|
||||||
|
|
||||||
|
Directory:
|
||||||
|
Enhancements of the health summary [andyhee]
|
||||||
|
Enhancements of the PHP7 compatibility [MrPetovan]
|
||||||
|
|
||||||
|
Closed Issues:
|
||||||
|
901, 1034, 1074, 1303, 1308, 1391, 1490, 1470, 1559, 2093, 2337,
|
||||||
|
2340, 2381, 2396, 2675, 3291, 3299, 3493, 3501, 3535, 3643, 3840,
|
||||||
|
4148, 4419, 4475, 4507, 4655, 4659, 4710, 4726, 4739, 4753, 4814,
|
||||||
|
4830, 4868, 4889, 4923, 4971, 4950, 4985, 5066, 5099, 5137, 5148,
|
||||||
|
5158, 5168, 5188, 5202, 5211, 5222, 5233, 5243, 5247, 5252, 5257,
|
||||||
|
5260, 5262, 5268, 5274, 5275, 5276, 5278, 5298, 5318, 5319, 5320,
|
||||||
|
5321, 5322, 5330, 5333, 5341, 5365, 5405, 5407, 5411, 5423, 5432,
|
||||||
|
5434, 5436, 5443, 5455, 5464, 5467, 5469, 5486, 5496, 5497, 5514,
|
||||||
|
5539, 5524, 5541, 5544, 5550, 5564, 5566, 5605, 5630, 5638, 5651,
|
||||||
|
5653, 5660, 5670, 5691, 5733, 5745, 5768
|
||||||
|
|
||||||
|
Version 2018.05 (2018-06-01)
|
||||||
|
Friendica Core:
|
||||||
|
Update to the translations (DE, EN-GB, EN-US, FI, IS, IT, NL, PL, RU, ZN CH) [translation teams]
|
||||||
|
Update to the documentation [andyhee, annando, fabrixxm, M-arcus, MrPedovan, rudloff, tobiasd]
|
||||||
|
Enhancements to the DB handling [annando]
|
||||||
|
Enhancements to the relay system [annando]
|
||||||
|
Enhancements to the handling of URL that contain unicode characters [annando]
|
||||||
|
Enhancements to the Vagrant VM configuration [fabrixxm, tobiasd]
|
||||||
|
Enhancementa to the Babel module [MrPetovan]
|
||||||
|
Enhancements to the display of the [code] elements [MrPetovan]
|
||||||
|
Enhancements to the federation (OStatus, diaspora) [annando]
|
||||||
|
Enhancements to the PHP7.2 compatibility [Alkarex, MrPetovan, Quix0r]
|
||||||
|
Enhancements to the themes (frio, vier) [astifter, fabrixxm, koyuawsmbrtn, M-arcus, MrPetovan, Quix0r, rabuzarus]
|
||||||
|
Enhancements to the accessibility using the frio theme [annando]
|
||||||
|
Enhancements to the display of the registration note and the privacy statements on the registration page [tobiasd]
|
||||||
|
Enhancements to the UI by clarification of the wording (deletion of items, network widget, invitations) [annando, tobiasd]
|
||||||
|
Enhancements to the background worker [annando]
|
||||||
|
Enhancements to the forum display in the sidebar [annando]
|
||||||
|
Enhancements to the testing system [rudloff, tobiasd]
|
||||||
|
Enhancements to the display of events [MrPetovan]
|
||||||
|
Enhancements to the language detection of postings [MrPetovan]
|
||||||
|
Enhancements to the memcached handling [MrPetovan]
|
||||||
|
Enhancements to the Dandelion app support [annando]
|
||||||
|
Enhancements to the API [rudloff]
|
||||||
|
Enhancements to the systemd timer example [ben-utzer]
|
||||||
|
Enhancements to the notification emails to better integrate the securemail addon [tobiasd]
|
||||||
|
Enhancements to the caching/loading mechanisms [MrPetovan]
|
||||||
|
Enhancements to the sample-nginx configfile to not use $uri in the rewrite rules [anmol26s]
|
||||||
|
Fixed a bug in the relocation process of a Friendica instance [annando]
|
||||||
|
Fixed a bug in the shell wrapper for the console [MrPetovan]
|
||||||
|
Fixed a bug with the console tool po2php [MrPetovan]
|
||||||
|
Fixed a bug with the console tool blockaccounts [MrPetovan]
|
||||||
|
Fixed a bug in the ACL [annando, MrPetovan]
|
||||||
|
Fixed a bug that prevented the deletion of contact groups [annando]
|
||||||
|
Fixed a bug that made edited mentions and hashtags plaintext [annando]
|
||||||
|
Fixed a bug that caused the /display page to receive constandly new updates [annando]
|
||||||
|
Fixed wrong version of a dependency preventing the usage of PHP 5.6 [MrPetovan]
|
||||||
|
Fixed a bug in OpenID authentification [Quix0r]
|
||||||
|
Fixed a bug in the item deletion [annando]
|
||||||
|
Fixed a bug that prevented public comments from being distributed [annando]
|
||||||
|
Fixed a bug that caused empty profile pictures for public contacts [annando]
|
||||||
|
Fixed a bug that prevented the display of some postings in the network stream [annando]
|
||||||
|
Fixed a bug in the display of videos with parameters [annando]
|
||||||
|
Fixed a bug that caused the display of blocked contacts under some conditions [annando]
|
||||||
|
Fixed bugs in the installer [annando, M-arcus]
|
||||||
|
Fixed a bug in the installer running on nginx [astifter]
|
||||||
|
Fixed a bug with reshares from diaspora* [annando]
|
||||||
|
Fixed a bug that accounts from diaspora* could join private forums automatically [annando]
|
||||||
|
Fixed a bug that prevented the selection of displayed profiles for other Friendica contacts [MrPetovan]
|
||||||
|
Fixed the version sorting in the federation statistics page [annando]
|
||||||
|
Fixed a bug in the nodeinfo calculation of total comments [annando]
|
||||||
|
Fixed a bug during registration that prevented the detected language to be saved [tobiasd]
|
||||||
|
Added an optional module to display the Terms of Service [rabuzarus, tobiasd]
|
||||||
|
Added testfeed module [MrPetovan]
|
||||||
|
Added hashtag autocomplete (ported from Hubzilla) [rabuzarus]
|
||||||
|
Added password exposed check [MrPetovan]
|
||||||
|
Added preloading config adapter [MrPetovan]
|
||||||
|
Added a console to unify the PHP utility scripts [MrPetovan]
|
||||||
|
Added a tool to set user passwords to the console [annando]
|
||||||
|
Added memcached support [MrPetovan]
|
||||||
|
Added password exposure check [MrPetovan]
|
||||||
|
Added hashtag autocompletion [rabuzarus]
|
||||||
|
Added feedtest module [MrPetovan]
|
||||||
|
Added dbclean options to the admin panel [annando]
|
||||||
|
Added the possibility to add the remote_self flag to contacts from diaspora* and Twitter [annando]
|
||||||
|
Added the possibility of automatic installations [M-arcus]
|
||||||
|
Added the sending of a notification mail to the admin when a user deletes their account [tobiasd]
|
||||||
|
Added examples for home.html and home.css files [tobiasd]
|
||||||
|
Added an option to define after how many days a contact should be archived [annando]
|
||||||
|
Added parts of the list API [rudloff]
|
||||||
|
Added support of ALT texts for images [annando]
|
||||||
|
Removed the connection postings [annando]
|
||||||
|
Corrected a long standing typo in config variable names; should your bandwidth saver mode stop working please turn it off and on again [abanink]
|
||||||
|
The execute-ables were moved from /util to /bin [MrPetovan]
|
||||||
|
The execute-ables for the developers were moved from /util to /bin/dev [MrPetovan]
|
||||||
|
The last year deprecated themes frost and frost mobile got removed from the Friendica repository. They can be found in the dedicated repository for deprecated themes [tobiasd]
|
||||||
|
General code refactoring and beautification work [annando, MrPetovan, rudloff]
|
||||||
|
Switched to cropperjs to better support touch screen devices [rabuzarus]
|
||||||
|
Use the diaspora transport layer for the DFRN protocol as well [annando]
|
||||||
|
|
||||||
|
Friendica Addons:
|
||||||
|
Updates to the translations (DE, EN_GB, EN_US, ES, FI, FR, IS, IT, NL, PL, RU, ZH_CN) [translation teams]
|
||||||
|
advancedcontentfilter: new addon with advanced filter capabilities [MrPetova]
|
||||||
|
catavatar: new addon for profile pictures based on David Revoy's cat-avatar generator [annando, fabrixxm, tobiasd]
|
||||||
|
languagefilter: better help text [andyhee]
|
||||||
|
mathjax: fixed the config form and adopted new CDN URL [tobiasd]
|
||||||
|
NSFW: add hashtag only hiding [MrPetovan]
|
||||||
|
notifyall: fixed a bug in handling the sender name [tobiasd]
|
||||||
|
Twitter: fixed a bug during the creation of public contacts [annando]
|
||||||
|
Twitter: remote self now also works for Twitter contacts [annando]
|
||||||
|
Twitter: optimizations for sending media [annando]
|
||||||
|
|
||||||
|
Closed Issues:
|
||||||
|
839, 1186, 1729, 2115, 2247, 2781, 2880, 3174, 3395, 3409, 3412,
|
||||||
|
3611, 3834, 3837, 3979, 4146, 4572, 4601, 4616, 4629, 4647, 4660,
|
||||||
|
4661, 4663, 4664, 4665, 4666, 4669, 4670, 4681, 4695, 4670, 4689,
|
||||||
|
4730, 4749, 4760, 4772, 4786, 4790, 4791, 4816, 4867, 4878, 4819,
|
||||||
|
4860, 4876, 4879, 4886, 4898, 4899, 4902, 4921, 4926, 4927, 4928,
|
||||||
|
4938, 4943, 4946, 4947, 4965, 4976, 4966, 4994, 4997, 5002, 5014,
|
||||||
|
5033, 5043, 5050, 5051, 5056, 5063, 5067, 5010, 5111, 5116, 5128,
|
||||||
|
5137, 5147
|
||||||
|
|
||||||
Version 3.6 (2018-03-23)
|
Version 3.6 (2018-03-23)
|
||||||
Friendica Core:
|
Friendica Core:
|
||||||
Updates to the translations (DE, EN_GB, EN_US, ES, FR, IT, ZH_CN) [translation teams]
|
Updates to the translations (DE, EN_GB, EN_US, ES, FR, IT, ZH_CN) [translation teams]
|
||||||
|
@ -93,6 +675,8 @@ Version 3.6 (2018-03-23)
|
||||||
Updates to the translations (DE, EN_GB, ES, FR, IT, NL, ZH_CN) [translation teams]
|
Updates to the translations (DE, EN_GB, ES, FR, IT, NL, ZH_CN) [translation teams]
|
||||||
all bridges don't relay postings anymore that are posted to a public forum [annando]
|
all bridges don't relay postings anymore that are posted to a public forum [annando]
|
||||||
DAV addon marked unsupported [tobiasd]
|
DAV addon marked unsupported [tobiasd]
|
||||||
|
communityhome addon marked unsupported [MrPetovan]
|
||||||
|
yourls addon makrked unsupported [MrPetovan]
|
||||||
Current Weather: fixing a problem with the weathermap link [zeroadam]
|
Current Weather: fixing a problem with the weathermap link [zeroadam]
|
||||||
NSFW added config examples, reworked the description, now ignores the CW from Mastodon [andyhee, annando, rebeka-catalina]
|
NSFW added config examples, reworked the description, now ignores the CW from Mastodon [andyhee, annando, rebeka-catalina]
|
||||||
Twitter support 280 chars limit [annando]
|
Twitter support 280 chars limit [annando]
|
||||||
|
@ -102,7 +686,7 @@ Version 3.6 (2018-03-23)
|
||||||
Public Server reworked [annando]
|
Public Server reworked [annando]
|
||||||
pageheader settings beautifications [tobiasd]
|
pageheader settings beautifications [tobiasd]
|
||||||
mailstream settings beautifications [tobiasd]
|
mailstream settings beautifications [tobiasd]
|
||||||
Membersince is now part of the core [rabuzarus]
|
Membersince is now part of the core, addon marked unsupported [rabuzarus]
|
||||||
Forum posts are not transmitted over the connectors anymore [annando]
|
Forum posts are not transmitted over the connectors anymore [annando]
|
||||||
|
|
||||||
Friendica Dir:
|
Friendica Dir:
|
||||||
|
|
|
@ -1,8 +1,14 @@
|
||||||
|
|
||||||
|
|
||||||
23n
|
23n
|
||||||
Abinoam P. Marques Jr.
|
Abinoam P. Marques Jr.
|
||||||
|
Abraham Pérez Hernández
|
||||||
Abrax
|
Abrax
|
||||||
|
Adam Clark
|
||||||
Adam Jurkiewicz
|
Adam Jurkiewicz
|
||||||
Adam Magness
|
Adam Magness
|
||||||
|
Aditoo
|
||||||
|
AgnesElisa
|
||||||
Albert
|
Albert
|
||||||
Alberto Díaz Tormo
|
Alberto Díaz Tormo
|
||||||
Alex
|
Alex
|
||||||
|
@ -10,17 +16,20 @@ Alexander Fortin
|
||||||
Alexander Kampmann
|
Alexander Kampmann
|
||||||
Alexandre Alapetite
|
Alexandre Alapetite
|
||||||
AlfredSK
|
AlfredSK
|
||||||
|
Andi
|
||||||
Andi Stadler
|
Andi Stadler
|
||||||
Andreas H.
|
Andreas H.
|
||||||
Andreas Neustifter
|
Andreas Neustifter
|
||||||
Andrej Stieben
|
Andrej Stieben
|
||||||
André Alves
|
André Alves
|
||||||
André Lohan
|
André Lohan
|
||||||
Andy H3
|
Andy
|
||||||
Andy Hee
|
|
||||||
Andy Hee
|
Andy Hee
|
||||||
|
Angristan
|
||||||
Anthronaut
|
Anthronaut
|
||||||
|
Antron Samurai
|
||||||
Arian - Cazare Muncitori
|
Arian - Cazare Muncitori
|
||||||
|
Asher Pen
|
||||||
Athalbert
|
Athalbert
|
||||||
aweiher
|
aweiher
|
||||||
axelt
|
axelt
|
||||||
|
@ -28,8 +37,12 @@ balderino
|
||||||
Beanow
|
Beanow
|
||||||
beardyunixer
|
beardyunixer
|
||||||
Beatriz Vital
|
Beatriz Vital
|
||||||
|
Beluga
|
||||||
|
Ben
|
||||||
Ben Roberts
|
Ben Roberts
|
||||||
ben-utzer
|
ben-utzer
|
||||||
|
BinkaDroid
|
||||||
|
Bjoessi
|
||||||
bufalo1973
|
bufalo1973
|
||||||
Calango Jr
|
Calango Jr
|
||||||
Carlos Solís
|
Carlos Solís
|
||||||
|
@ -40,6 +53,8 @@ Christian González
|
||||||
Christian M. Grube
|
Christian M. Grube
|
||||||
Christian Vogeley
|
Christian Vogeley
|
||||||
Cohan Robinson
|
Cohan Robinson
|
||||||
|
Copiis Praeesse
|
||||||
|
CrystalStiletto
|
||||||
Cyboulette
|
Cyboulette
|
||||||
Cyryl Sochacki
|
Cyryl Sochacki
|
||||||
czarnystokrotek
|
czarnystokrotek
|
||||||
|
@ -69,6 +84,7 @@ Fabian Dost
|
||||||
Fabio Comuni
|
Fabio Comuni
|
||||||
felixgilles
|
felixgilles
|
||||||
Filip Bugaj
|
Filip Bugaj
|
||||||
|
Filip H.F. "FiXato" Slagter
|
||||||
FlxAlbroscheit
|
FlxAlbroscheit
|
||||||
foss
|
foss
|
||||||
Francesco Apruzzese
|
Francesco Apruzzese
|
||||||
|
@ -80,41 +96,53 @@ Gert Cauwenberg
|
||||||
GLComo
|
GLComo
|
||||||
greeneyedred
|
greeneyedred
|
||||||
Gregory Smith
|
Gregory Smith
|
||||||
|
guzzisti
|
||||||
Haakon Meland Eriksen
|
Haakon Meland Eriksen
|
||||||
Hans Meine
|
Hans Meine
|
||||||
hauke
|
Hauke
|
||||||
Hauke Altmann
|
Hauke Altmann
|
||||||
Hauke Zühl
|
|
||||||
Herbert Thielen
|
Herbert Thielen
|
||||||
|
hlad
|
||||||
hoergen
|
hoergen
|
||||||
Hubert Kościański
|
Hubert Kościański
|
||||||
Hypolite Petovan
|
Hypolite Petovan
|
||||||
|
Ilmari
|
||||||
|
ImgBotApp
|
||||||
irhen
|
irhen
|
||||||
Jak
|
Jak
|
||||||
Jakob
|
Jakob
|
||||||
Jens Tautenhahn
|
Jens Tautenhahn
|
||||||
jensp
|
jensp
|
||||||
|
Jeroen De Meerleer
|
||||||
jeroenpraat
|
jeroenpraat
|
||||||
|
JOduMonT
|
||||||
Johannes Schwab
|
Johannes Schwab
|
||||||
John Brazil
|
John Brazil
|
||||||
Jonatan Nyberg
|
Jonatan Nyberg
|
||||||
|
Jonny Tischbein
|
||||||
Josef Moravek
|
Josef Moravek
|
||||||
juanman
|
juanman
|
||||||
julia.domagalska
|
julia.domagalska
|
||||||
Karel Vandecandelaere
|
Karel
|
||||||
Karolina
|
Karolina
|
||||||
Keith Fernie
|
Keith Fernie
|
||||||
Klaus Weidenbach
|
Klaus Weidenbach
|
||||||
|
Koyu Berteon
|
||||||
|
Kris
|
||||||
Lea1995polish
|
Lea1995polish
|
||||||
Leberwurscht
|
Leberwurscht
|
||||||
Leonard Lausen
|
Leonard Lausen
|
||||||
Lionel Triay
|
Lionel Triay
|
||||||
|
Lorem Ipsum
|
||||||
Ludovic Grossard
|
Ludovic Grossard
|
||||||
maase2
|
maase2
|
||||||
Magdalena Gazda
|
Magdalena Gazda
|
||||||
Mai Anh Nguyen
|
Mai Anh Nguyen
|
||||||
Manuel Pérez Monís
|
Manuel Pérez Monís
|
||||||
Marcin Klessa
|
Marcin Klessa
|
||||||
|
Marcin Mikołajczak
|
||||||
|
Marcus Müller
|
||||||
|
Marie Olive
|
||||||
Mariusz Pisz
|
Mariusz Pisz
|
||||||
marmor
|
marmor
|
||||||
Marquis_de_Carabas
|
Marquis_de_Carabas
|
||||||
|
@ -132,6 +160,7 @@ Michael Vogel
|
||||||
Michal Šupler
|
Michal Šupler
|
||||||
Michalina
|
Michalina
|
||||||
Mike Macgirvin
|
Mike Macgirvin
|
||||||
|
miqrogroove
|
||||||
mytbk
|
mytbk
|
||||||
Nicola Spanti
|
Nicola Spanti
|
||||||
Olaf Conradi
|
Olaf Conradi
|
||||||
|
@ -139,29 +168,43 @@ Oliver
|
||||||
Olivier
|
Olivier
|
||||||
Olivier Mehani
|
Olivier Mehani
|
||||||
Olivier Migeot
|
Olivier Migeot
|
||||||
|
Ozero Dien
|
||||||
Paolo Wave
|
Paolo Wave
|
||||||
|
Pascal
|
||||||
|
Pascal Deklerck
|
||||||
Pavel Morozov
|
Pavel Morozov
|
||||||
PerigGouanvic
|
PerigGouanvic
|
||||||
|
Peter Liebetrau
|
||||||
peturisfeld
|
peturisfeld
|
||||||
|
Phigger Phigger
|
||||||
|
Philipp
|
||||||
|
Philipp Holzer
|
||||||
Pierre Rudloff
|
Pierre Rudloff
|
||||||
Piotr Blonkowski
|
Piotr Blonkowski
|
||||||
pokerazor
|
pokerazor
|
||||||
|
R C
|
||||||
Rabuzarus
|
Rabuzarus
|
||||||
Radek
|
Radek
|
||||||
Rafael Garau
|
Rafael Garau
|
||||||
|
Rain Hawk
|
||||||
Rainulf Pineda
|
Rainulf Pineda
|
||||||
|
Ralf Thees
|
||||||
Ralph
|
Ralph
|
||||||
Ratten
|
Ratten
|
||||||
rcmaniac
|
rcmaniac
|
||||||
rebeka-catalina
|
rebeka-catalina
|
||||||
repat
|
repat
|
||||||
Ricardo Pereira
|
Ricardo Pereira
|
||||||
|
Rik 4
|
||||||
RJ Madsen
|
RJ Madsen
|
||||||
Roland Häder
|
Roland Häder
|
||||||
Rui Andrada
|
Rui Andrada
|
||||||
|
rwa
|
||||||
|
RyDroid
|
||||||
S.Krumbholz
|
S.Krumbholz
|
||||||
Sakałoŭ Alaksiej
|
Sakałoŭ Alaksiej
|
||||||
Sam
|
Sam
|
||||||
|
Samuli Valavuo
|
||||||
Sandro Santilli
|
Sandro Santilli
|
||||||
Sebastian Egbers
|
Sebastian Egbers
|
||||||
sella
|
sella
|
||||||
|
@ -170,27 +213,35 @@ Seth
|
||||||
Silke Meyer
|
Silke Meyer
|
||||||
Simon L'nu
|
Simon L'nu
|
||||||
Simó Albert i Beltran
|
Simó Albert i Beltran
|
||||||
|
softmetz
|
||||||
soko1
|
soko1
|
||||||
St John Karp
|
St John Karp
|
||||||
Stanislav N.
|
Stanislav N.
|
||||||
|
Steffen K9
|
||||||
StefOfficiel
|
StefOfficiel
|
||||||
Sveinn í Felli
|
Sveinn í Felli
|
||||||
Sven Anders
|
Sven Anders
|
||||||
|
Sylke Vicious
|
||||||
Sylvain Lagacé
|
Sylvain Lagacé
|
||||||
szymon.filip
|
szymon.filip
|
||||||
Sérgio Lima
|
Sérgio Lima
|
||||||
Taekus
|
Taekus
|
||||||
Tazman DeVille
|
Tazman DeVille
|
||||||
|
teho
|
||||||
Thecross
|
Thecross
|
||||||
Thomas
|
Thomas
|
||||||
Thomas Willingham
|
Thomas Willingham
|
||||||
thorsten23
|
thorsten23
|
||||||
|
Tim Stahel
|
||||||
|
TiMESPLiNTER
|
||||||
Tino
|
Tino
|
||||||
Tobias Diekershoff
|
Tobias Diekershoff
|
||||||
Tobias Hößl
|
Tobias Hößl
|
||||||
|
tomacat
|
||||||
tomamplius
|
tomamplius
|
||||||
tomtom84
|
tomtom84
|
||||||
Tony Baldwin
|
Tony Baldwin
|
||||||
|
Torbjörn Andersson
|
||||||
TORminator
|
TORminator
|
||||||
trebor
|
trebor
|
||||||
tschlotfeldt
|
tschlotfeldt
|
||||||
|
@ -198,16 +249,28 @@ Tubuntu
|
||||||
Tupambae.org
|
Tupambae.org
|
||||||
U-SOUND\mike
|
U-SOUND\mike
|
||||||
ufic
|
ufic
|
||||||
|
Ulf Rompe
|
||||||
|
Unknown
|
||||||
|
Valvin
|
||||||
|
Valvin A
|
||||||
Vasudev Kamath
|
Vasudev Kamath
|
||||||
Vasya Novikov
|
Vasya Novikov
|
||||||
|
Vinzenz Vietzke
|
||||||
vislav
|
vislav
|
||||||
|
vladimir N
|
||||||
|
Vladimir Núñez
|
||||||
|
VVelox
|
||||||
Vít Šesták 'v6ak'
|
Vít Šesták 'v6ak'
|
||||||
|
Waldemar Stoczkowski
|
||||||
|
Wouter Broers
|
||||||
Yasen Pramatarov
|
Yasen Pramatarov
|
||||||
ylms
|
ylms
|
||||||
Zach Prezkuta
|
Zach Prezkuta
|
||||||
|
Zane C. Bowers-Hadley
|
||||||
Zered
|
Zered
|
||||||
zotlabs
|
zotlabs
|
||||||
zottel
|
zottel
|
||||||
Zvi ben Yaakov (a.k.a rdc)
|
Zvi ben Yaakov (a.k.a rdc)
|
||||||
Михаил
|
Михаил
|
||||||
|
Олексій Замковий
|
||||||
朱陈锬
|
朱陈锬
|
|
@ -1,9 +1,9 @@
|
||||||
INPUT = README.md index.php boot.php testargs.php update.php mod/ object/ include/ js/ util/ view/ src/ version.inc
|
INPUT = README.md index.php boot.php update.php bin/ mod/ include/ view/ src/ VERSION
|
||||||
RECURSIVE = YES
|
RECURSIVE = YES
|
||||||
PROJECT_NAME = "Friendica"
|
PROJECT_NAME = "Friendica"
|
||||||
PROJECT_LOGO = images/friendica-64.jpg
|
PROJECT_LOGO = images/friendica-64.jpg
|
||||||
EXCLUDE = .htconfig.php library/ doc/ .git/ log/ util/zotsh/easywebdav/ addon/ report/ privacy_image_cache/ photo/ proxy/ local/
|
EXCLUDE = .htconfig.php config/ library/ doc/ .git/ log/ addon/ report/ privacy_image_cache/ photo/ proxy/ local/
|
||||||
EXCLUDE_PATTERNS = *smarty3* *strings.php*.log *.out *test*
|
EXCLUDE_PATTERNS = *smarty3* strings.php *.log *.out *test*
|
||||||
OUTPUT_DIRECTORY = doc
|
OUTPUT_DIRECTORY = doc
|
||||||
GENERATE_HTML = YES
|
GENERATE_HTML = YES
|
||||||
HTML_OUTPUT = html/
|
HTML_OUTPUT = html/
|
||||||
|
@ -15,7 +15,6 @@ GENERATE_TODOLIST = YES
|
||||||
USE_MDFILE_AS_MAINPAGE = README.md
|
USE_MDFILE_AS_MAINPAGE = README.md
|
||||||
REFERENCED_BY_RELATION = YES
|
REFERENCED_BY_RELATION = YES
|
||||||
GENERATE_TREEVIEW = YES
|
GENERATE_TREEVIEW = YES
|
||||||
HTML_FOOTER = util/Doxygen.footer
|
|
||||||
ALIASES += "license=@par License:\n"
|
ALIASES += "license=@par License:\n"
|
||||||
ALIASES += "fixme=\xrefitem fixme \"Fixme\" \"Fixme List\""
|
ALIASES += "fixme=\xrefitem fixme \"Fixme\" \"Fixme List\""
|
||||||
ALIASES += "FIXME=\fixme"
|
ALIASES += "FIXME=\fixme"
|
328
INSTALL.txt
|
@ -1,328 +0,0 @@
|
||||||
|
|
||||||
Friendica Installation
|
|
||||||
|
|
||||||
We've tried very hard to ensure that Friendica will run on commodity hosting
|
|
||||||
platforms - such as those used to host Wordpress blogs and Drupal websites.
|
|
||||||
But be aware that Friendica is more than a simple web application. It is a
|
|
||||||
complex communications system which more closely resembles an email server
|
|
||||||
than a web server. For reliability and performance, messages are delivered in
|
|
||||||
the background and are queued for later delivery when sites are down. This
|
|
||||||
kind of functionality requires a bit more of the host system than the typical
|
|
||||||
blog. Not every PHP/MySQL hosting provider will be able to support Friendica.
|
|
||||||
Many will. But please review the requirements and confirm these with your
|
|
||||||
hosting provider prior to installation.
|
|
||||||
|
|
||||||
Before you begin: Choose a domain name or subdomain name for your server.
|
|
||||||
Put some thought into this - because changing it is currently not-supported.
|
|
||||||
Things will break, and some of your friends may have difficulty communicating
|
|
||||||
with you. We plan to address this limitation in a future release. Also decide
|
|
||||||
if you wish to connect with members of the Diaspora network, as this will
|
|
||||||
impact the installation requirements.
|
|
||||||
|
|
||||||
Decide if you will use SSL and obtain an SSL cert. Communications with the
|
|
||||||
Diaspora network MAY require both SSL AND an SSL cert signed by a CA which is
|
|
||||||
recognised by the major browsers. Friendica will work with self-signed certs
|
|
||||||
but Diaspora communication may not. For best results, install your cert PRIOR
|
|
||||||
to installing Friendica and when visiting your site for the initial
|
|
||||||
installation in step 5, please use the https: link. (Use the http: or non-SSL
|
|
||||||
link if your cert is self-signed).
|
|
||||||
|
|
||||||
|
|
||||||
1. Requirements
|
|
||||||
- Apache with mod-rewrite enabled and "Options All" so you can use a
|
|
||||||
local .htaccess file
|
|
||||||
|
|
||||||
- PHP 5.6+ (PHP 7 recommended for performance).
|
|
||||||
|
|
||||||
- PHP *command line* access with register_argc_argv set to true in the
|
|
||||||
php.ini file [or see 'poormancron' in section 8]
|
|
||||||
|
|
||||||
- curl, gd (with at least jpeg support), mysql, mbstring, xml, zip and openssl extensions
|
|
||||||
|
|
||||||
- some form of email server or email gateway such that PHP mail() works
|
|
||||||
|
|
||||||
- The POSIX module of PHP needs to be activated (e.g. RHEL, CentOS have disabled it)
|
|
||||||
|
|
||||||
- Mysql 5.5.3+ or an equivalant alternative for MySQL (MariaDB, Percona Server etc.)
|
|
||||||
|
|
||||||
- ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks
|
|
||||||
(Windows) [Note: other options are presented in Section 8 of this document]
|
|
||||||
|
|
||||||
- Installation into a top-level domain or sub-domain (without a
|
|
||||||
directory/path component in the URL) is preferred. This is REQUIRED if
|
|
||||||
you wish to communicate with the Diaspora network.
|
|
||||||
|
|
||||||
|
|
||||||
- For alternative server configurations (such as Nginx server and MariaDB
|
|
||||||
database engine), refer to the wiki at https://github.com/friendica/friendica/wiki
|
|
||||||
|
|
||||||
2. Unpack the Friendica files into the root of your web server document area.
|
|
||||||
|
|
||||||
- If you copy the directory tree to your webserver, make sure
|
|
||||||
that you also copy .htaccess - as "dot" files are often hidden
|
|
||||||
and aren't normally copied.
|
|
||||||
|
|
||||||
OR
|
|
||||||
|
|
||||||
2b. Clone the friendica/friendica GitHub repository and import dependencies
|
|
||||||
|
|
||||||
git clone https://github.com/friendica/friendica [web server folder]
|
|
||||||
cd [web server folder]
|
|
||||||
php bin/composer.phar install
|
|
||||||
|
|
||||||
3. Create an empty database and note the access details (hostname, username,
|
|
||||||
password, database name).
|
|
||||||
|
|
||||||
- Friendica needs the permission to create and delete fields and tables in its own database.
|
|
||||||
- Please check the additional notes if running on MySQ 5.7.17 or newer
|
|
||||||
|
|
||||||
4. If you know in advance that it will be impossible for the web server to
|
|
||||||
write or create files in your web directory, create an empty file called
|
|
||||||
.htconfig.php and make it writable by the web server.
|
|
||||||
|
|
||||||
5. Visit your website with a web browser and follow the instructions. Please
|
|
||||||
note any error messages and correct these before continuing.
|
|
||||||
|
|
||||||
If you are using SSL with a known signature authority (recommended), use the
|
|
||||||
https: link to your website. If you are using a self-signed cert or no cert,
|
|
||||||
use the http: link.
|
|
||||||
|
|
||||||
If you need to specify a port for the connection to the database, you can do
|
|
||||||
so in the host name setting for the database.
|
|
||||||
|
|
||||||
6. *If* the automated installation fails for any reason, check the following:
|
|
||||||
|
|
||||||
- ".htconfig.php" exists
|
|
||||||
If not, edit htconfig.php and change system settings. Rename
|
|
||||||
to .htconfig.php
|
|
||||||
- Database is populated.
|
|
||||||
If not, import the contents of "database.sql" with phpmyadmin
|
|
||||||
or mysql command line
|
|
||||||
|
|
||||||
7. At this point visit your website again, and register your personal account.
|
|
||||||
Registration errors should all be recoverable automatically.
|
|
||||||
If you get any *critical* failure at this point, it generally indicates the
|
|
||||||
database was not installed correctly. You might wish to move/rename
|
|
||||||
.htconfig.php to another name and empty (called 'dropping') the database
|
|
||||||
tables, so that you can start fresh.
|
|
||||||
|
|
||||||
****************************************************************************
|
|
||||||
****************************************************************************
|
|
||||||
******** THIS NEXT STEP IS IMPORTANT!!!! ***********
|
|
||||||
****************************************************************************
|
|
||||||
****************************************************************************
|
|
||||||
|
|
||||||
8. Set up a cron job or scheduled task to run the worker once every 5-10
|
|
||||||
minutes to pick up the recent "public" postings of your friends. Example:
|
|
||||||
|
|
||||||
cd /base/directory; /path/to/php bin/worker.php
|
|
||||||
|
|
||||||
Change "/base/directory", and "/path/to/php" as appropriate for your situation.
|
|
||||||
|
|
||||||
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
|
|
||||||
|
|
||||||
You can generally find the location of PHP by executing "which php". If you
|
|
||||||
have troubles with this section please contact your hosting provider for
|
|
||||||
assistance. Friendica will not work correctly if you cannot perform this step.
|
|
||||||
|
|
||||||
You should also be sure that $a->config['php_path'] is set correctly, it should
|
|
||||||
look like (changing it to the correct PHP location)
|
|
||||||
|
|
||||||
$a->config['php_path'] = '/usr/local/php56/bin/php'
|
|
||||||
|
|
||||||
Alternative: If you cannot use a cron job as described above, you can use
|
|
||||||
the frontend worker and an external cron service to trigger the execution
|
|
||||||
of the worker script. You can enable the frontend worker after the installation
|
|
||||||
from the admin panel of your node and call
|
|
||||||
|
|
||||||
https://example.com/worker
|
|
||||||
|
|
||||||
with the service of your choice.
|
|
||||||
|
|
||||||
9. (Recommended) Set up a backup plan
|
|
||||||
|
|
||||||
Bad things will happen. Let there be a hardware failure, a corrupted
|
|
||||||
database or whatever you can think of. So once the installation of your
|
|
||||||
Friendica node is done, you should make yoursef a backup plan.
|
|
||||||
|
|
||||||
The most important file is the `.htconfig.php` file in the base directory.
|
|
||||||
As it stores all your data, you should also have a recent dump of your
|
|
||||||
Friendica database at hand, should you have to recover your node.
|
|
||||||
|
|
||||||
10. (Optional) Reverse-proxying and HTTPS
|
|
||||||
|
|
||||||
Friendica looks for some well-known HTTP headers indicating a reverse-proxy
|
|
||||||
terminating an HTTPS connection. While the standard from RFC 7239 specifies
|
|
||||||
the use of the `Forwaded` header.
|
|
||||||
|
|
||||||
Forwarded: for=192.0.2.1; proto=https; by=192.0.2.2
|
|
||||||
|
|
||||||
Friendica also supports a number on non-standard headers in common use.
|
|
||||||
|
|
||||||
|
|
||||||
X-Forwarded-Proto: https
|
|
||||||
|
|
||||||
Front-End-Https: on
|
|
||||||
|
|
||||||
X-Forwarded-Ssl: on
|
|
||||||
|
|
||||||
It is however preferable to use the standard approach if configuring a new server.
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
If things don't work...
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
- If you get the message
|
|
||||||
"System is currently unavailable. Please try again later"
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
Check your database settings. It usually means your database could not
|
|
||||||
be opened or accessed. If the database resides on the same machine, check that
|
|
||||||
the database server name is "localhost".
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
- 500 Internal Error
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
This could be the result of one of our Apache directives not being
|
|
||||||
supported by your version of Apache. Examine your apache server logs.
|
|
||||||
You might remove the line "Options -Indexes" from the .htaccess file if
|
|
||||||
you are using a Windows server as this has been known to cause problems.
|
|
||||||
Also check your file permissions. Your website and all contents must generally
|
|
||||||
be world-readable.
|
|
||||||
|
|
||||||
It is likely that your web server reported the source of the problem in
|
|
||||||
its error log files. Please review these system error logs to determine what
|
|
||||||
caused the problem. Often this will need to be resolved with your hosting
|
|
||||||
provider or (if self-hosted) your web server configuration.
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
- 400 and 4xx "File not found" errors
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
First check your file permissions. Your website and all contents must
|
|
||||||
generally be world-readable.
|
|
||||||
|
|
||||||
Ensure that mod-rewite is installed and working, and that your
|
|
||||||
.htaccess file is being used. To verify the latter, create a file test.out
|
|
||||||
containing the word "test" in the top directory of Friendica, make it world
|
|
||||||
readable and point your web browser to
|
|
||||||
|
|
||||||
http://yoursitenamehere.com/test.out
|
|
||||||
|
|
||||||
This file should be blocked. You should get a permission denied message.
|
|
||||||
|
|
||||||
If you see the word "test" your Apache configuration is not allowing
|
|
||||||
your .htaccess file to be used (there are rules in this file to block access
|
|
||||||
to any file with .out at the end, as these are typically used for system logs).
|
|
||||||
|
|
||||||
Make certain the .htaccess file exists and is readable by everybody, then
|
|
||||||
look for the existence of "AllowOverride None" in the Apache server
|
|
||||||
configuration for your site. This will need to be changed to
|
|
||||||
"AllowOverride All".
|
|
||||||
|
|
||||||
If you do not see the word "test", your .htaccess is working, but it is
|
|
||||||
likely that mod-rewrite is not installed in your web server or is not working.
|
|
||||||
|
|
||||||
On most flavour of Linux,
|
|
||||||
|
|
||||||
% a2enmod rewrite
|
|
||||||
% /etc/init.d/apache2 restart
|
|
||||||
|
|
||||||
Consult your hosting provider, experts on your particular Linux
|
|
||||||
distribution or (if Windows) the provider of your Apache server software if
|
|
||||||
you need to change either of these and can not figure out how. There is
|
|
||||||
a lot of help available on the web. Google "mod-rewrite" along with the
|
|
||||||
name of your operating system distribution or Apache package (if using
|
|
||||||
Windows).
|
|
||||||
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
- If you are unable to write the file .htconfig.php during installation
|
|
||||||
due to permissions issues:
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
create an empty file with that name and give it world-write permission.
|
|
||||||
For Linux:
|
|
||||||
|
|
||||||
% touch .htconfig.php
|
|
||||||
% chmod 777 .htconfig.php
|
|
||||||
|
|
||||||
Retry the installation. As soon as the database has been created,
|
|
||||||
|
|
||||||
******* this is important *********
|
|
||||||
|
|
||||||
% chmod 755 .htconfig.php
|
|
||||||
|
|
||||||
#####################################################################
|
|
||||||
- Some configurations with "suhosin" security are configured without
|
|
||||||
an ability to run external processes. Friendica requires this ability.
|
|
||||||
Following are some notes provided by one of our members.
|
|
||||||
#####################################################################
|
|
||||||
|
|
||||||
On my server I use the php protection system Suhosin
|
|
||||||
[http://www.hardened-php.net/suhosin/]. One of the things it does is to block
|
|
||||||
certain functions like proc_open, as configured in /etc/php5/conf.d/suhosin.ini:
|
|
||||||
|
|
||||||
suhosin.executor.func.blacklist = proc_open, ...
|
|
||||||
|
|
||||||
For those sites like Friendica that really need these functions they can be
|
|
||||||
enabled, e.g. in /etc/apache2/sites-available/friendica:
|
|
||||||
|
|
||||||
<Directory /var/www/friendica/>
|
|
||||||
php_admin_value suhosin.executor.func.blacklist none
|
|
||||||
php_admin_value suhosin.executor.eval.blacklist none
|
|
||||||
</Directory>
|
|
||||||
|
|
||||||
This enables every function for Friendica if accessed via browser, but not for
|
|
||||||
the cronjob that is called via php command line. I attempted to enable it for
|
|
||||||
cron by using something like
|
|
||||||
|
|
||||||
*/10 * * * * cd /var/www/friendica/friendica/ && sudo -u www-data /usr/bin/php
|
|
||||||
-d suhosin.executor.func.blacklist=none -d suhosin.executor.eval.blacklist=none
|
|
||||||
-f bin/worker.php
|
|
||||||
|
|
||||||
This worked well for simple test cases, but the friendica-cron still failed with
|
|
||||||
a fatal error:
|
|
||||||
suhosin[22962]: ALERT - function within blacklist called: proc_open() (attacker
|
|
||||||
'REMOTE_ADDR not set', file '/var/www/friendica/friendica/boot.php', line 1341)
|
|
||||||
|
|
||||||
After a while I noticed, that bin/worker.php calls further php script via
|
|
||||||
proc_open. These scripts themselves also use proc_open and fail, because they
|
|
||||||
are NOT called with -d suhosin.executor.func.blacklist=none.
|
|
||||||
|
|
||||||
So the simple solution is to put the correct parameters into .htconfig.php:
|
|
||||||
// Location of PHP command line processor
|
|
||||||
$a->config['php_path'] = '/usr/bin/php -d suhosin.executor.func.blacklist=none
|
|
||||||
-d suhosin.executor.eval.blacklist=none';
|
|
||||||
|
|
||||||
|
|
||||||
This is obvious as soon as you notice that the friendica-cron uses proc_open to
|
|
||||||
execute php-scripts that also use proc_open, but it took me quite some time to
|
|
||||||
find that out. I hope this saves some time for other people using suhosin with
|
|
||||||
function blacklists.
|
|
||||||
|
|
||||||
########################################################################
|
|
||||||
Unable to create all mysql tables on MySQL 5.7.17 or newer
|
|
||||||
#######################################################################
|
|
||||||
|
|
||||||
If the setup fails to create all the database tables and/or manual
|
|
||||||
creation from the command line fails, with this error:
|
|
||||||
|
|
||||||
ERROR 1067 (42000) at line XX: Invalid default value for 'created'
|
|
||||||
|
|
||||||
You need to adjust your my.cnf and add the following setting under
|
|
||||||
the [mysqld] section :
|
|
||||||
|
|
||||||
sql_mode = '';
|
|
||||||
|
|
||||||
After that, restart mysql and try again.
|
|
||||||
|
|
||||||
|
|
2
LICENSE
|
@ -1,5 +1,5 @@
|
||||||
Friendica Communications Server
|
Friendica Communications Server
|
||||||
Copyright (c) 2010-2018 the Friendica Project
|
Copyright (c) 2010-2019 the Friendica Project
|
||||||
|
|
||||||
This program is free software: you can redistribute it and/or modify
|
This program is free software: you can redistribute it and/or modify
|
||||||
it under the terms of the GNU Affero General Public License as published by
|
it under the terms of the GNU Affero General Public License as published by
|
||||||
|
|
23
README.md
|
@ -13,29 +13,30 @@ With Friendica, you can also fully interact with anyone on Twitter, post on Face
|
||||||
|
|
||||||
Join today and [get your Friendica profile!](https://dir.friendica.social/servers 'Join Friendica today!')
|
Join today and [get your Friendica profile!](https://dir.friendica.social/servers 'Join Friendica today!')
|
||||||
|
|
||||||
|
Have a look at the [installation documentation](doc/Install.md) for further information about installing and using Friendica.
|
||||||
|
|
||||||
### Friendica Screenshots
|
### Friendica Screenshots
|
||||||
|
|
||||||
| ![Frio theme in mobile browser](/images/screenshots/friendica-frio-mobile-profle-1.png?raw=true "Frio theme in mobile browser") ![Frio theme in mobile browser](/images/screenshots/friendica-frio-mobile-profle-2.png?raw=true "Frio theme in mobile browser")
|
| ![Frio theme in mobile browser](images/screenshots/friendica-frio-mobile-profle-1.png?raw=true "Frio theme in mobile browser") ![Frio theme in mobile browser](images/screenshots/friendica-frio-mobile-profle-2.png?raw=true "Frio theme in mobile browser")
|
||||||
|:--:|
|
|:--:|
|
||||||
|*Frio theme, mobile browser. Timeline and composer view.*|
|
|*Frio theme, mobile browser. Timeline and composer view.*|
|
||||||
|![Frio theme in desktop browser](/images/screenshots/friendica-frio-green-profle-1.png?raw=true "Frio theme in desktop browser")
|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-green-profle-1.png?raw=true "Frio theme in desktop browser")
|
||||||
|*Frio theme, desktop browser. Timeline view, contact info popped up, control menu open.*|
|
|*Frio theme, desktop browser. Timeline view, contact info popped up, control menu open.*|
|
||||||
|![Frio theme in desktop browser](/images/screenshots/friendica-frio-green-profle-2.png?raw=true "Frio theme in desktop browser")
|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-green-profle-2.png?raw=true "Frio theme in desktop browser")
|
||||||
|*Frio theme, desktop browser. Menu open for controlling individual posts.*|
|
|*Frio theme, desktop browser. Menu open for controlling individual posts.*|
|
||||||
|![Frio theme in desktop browser](/images/screenshots/friendica-frio-red-profle-3.png?raw=true "Frio theme in desktop browser")
|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profle-3.png?raw=true "Frio theme in desktop browser")
|
||||||
|*Frio theme, desktop browser. Profile view, notification menu open.*|
|
|*Frio theme, desktop browser. Profile view, notification menu open.*|
|
||||||
|![Frio theme in desktop browser](/images/screenshots/friendica-frio-red-profle-2.png?raw=true "Frio theme in desktop browser")
|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profle-2.png?raw=true "Frio theme in desktop browser")
|
||||||
|*Number of new posts, in total and by group.*|
|
|*Number of new posts, in total and by group.*|
|
||||||
|![Frio theme in desktop browser](/images/screenshots/friendica-frio-red-profle-1.png?raw=true "Frio theme in desktop browser")
|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-red-profle-1.png?raw=true "Frio theme in desktop browser")
|
||||||
|*Calender with popup of event.*|
|
|*Calender with popup of event.*|
|
||||||
|![Frio theme default colour in standard browser on tablet](/images/screenshots/friendica-frio-default-profile-1.png?raw=true "Frio theme default colour in standard browser on tablet")
|
|![Frio theme default colour in standard browser on tablet](images/screenshots/friendica-frio-default-profile-1.png?raw=true "Frio theme default colour in standard browser on tablet")
|
||||||
|*Notifications menu and private messages counter, standard browser on tablet.*|
|
|*Notifications menu and private messages counter, standard browser on tablet.*|
|
||||||
|![Frio theme in desktop browser](/images/screenshots/friendica-frio-brown-profile-2.png?raw=true "Frio theme in desktop browser")
|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-brown-profile-2.png?raw=true "Frio theme in desktop browser")
|
||||||
|*Number of visible contacts, standard browser.*|
|
|*Number of visible contacts, standard browser.*|
|
||||||
|![Frio theme in desktop browser](/images/screenshots/friendica-frio-brown-profile-1.png?raw=true "Frio theme in desktop browser")
|
|![Frio theme in desktop browser](images/screenshots/friendica-frio-brown-profile-1.png?raw=true "Frio theme in desktop browser")
|
||||||
|*Network posts chronologically ordered, standard browser.*|
|
|*Network posts chronologically ordered, standard browser.*|
|
||||||
|![Vier theme in desktop browser](/images/screenshots/friendica-vier-profile.png?raw=true "Vier theme in desktop browser")
|
|![Vier theme in desktop browser](images/screenshots/friendica-vier-profile.png?raw=true "Vier theme in desktop browser")
|
||||||
|*Vier theme, desktop browser. Public timeline view.*|
|
|*Vier theme, desktop browser. Public timeline view.*|
|
||||||
|![Vier theme in desktop browser](/images/screenshots/friendica-vier-community.png?raw=true "Vier theme in desktop browser")
|
|![Vier theme in desktop browser](images/screenshots/friendica-vier-community.png?raw=true "Vier theme in desktop browser")
|
||||||
|*Vier theme, desktop browser. Community post displayed.*|
|
|*Vier theme, desktop browser. Community post displayed.*|
|
||||||
|
|
|
@ -1,101 +0,0 @@
|
||||||
Friendica translations
|
|
||||||
======================
|
|
||||||
|
|
||||||
Translation Process
|
|
||||||
-------------------
|
|
||||||
|
|
||||||
The strings used in the UI of Friendica is translated at [Transifex] [1] and then included in the git repository at github.
|
|
||||||
If you want to help with translation for any language, be it correcting terms or translating friendica to a currently not supported language, please register an account at transifex.com and contact the friendica translation team there.
|
|
||||||
|
|
||||||
Translating friendica is simple.
|
|
||||||
Just use the online tool at transifex.
|
|
||||||
If you don't want to deal with git & co. that is fine, we check the status of the translations regularly and import them into the source tree at github so that others can use them.
|
|
||||||
|
|
||||||
We do not include every translation from transifex in the source tree to avoid a scattered and disturbed overall experience.
|
|
||||||
As an uneducated guess we have a lower limit of 50% translated strings before we include the language (for the core messages.po file, addont translation will be included once all strings of an addon are translated.
|
|
||||||
This limit is judging only by the amount of translated strings under the assumption that the most prominent strings for the UI will be translated first by a translation team.
|
|
||||||
If you feel your translation useable before this limit, please contact us and we will probably include your teams work in the source tree.
|
|
||||||
|
|
||||||
If you want to help translating, please concentrate on the core messages.po file first.
|
|
||||||
We will only include translations with a sufficient translated messages.po file.
|
|
||||||
Translations of addons will only be included, when the core file is included as well.
|
|
||||||
|
|
||||||
If you want to get your work into the source tree yourself, feel free to do so and contact us with and question that arises.
|
|
||||||
The process is simple and friendica ships with all the tools necessary.
|
|
||||||
|
|
||||||
The location of the translated files in the source tree is
|
|
||||||
/view/lang/LNG-CODE/
|
|
||||||
where LNG-CODE is the language code used, e.g. de for German or fr for French.
|
|
||||||
The translated strings come as a "message.po" file from transifex which needs to be translated into the PHP file friendica uses.
|
|
||||||
To do so, place the file in the directory mentioned above and use the "po2php" command from the console.
|
|
||||||
*Please note that the console tool has to be called from the base directory of your Friendica installation.*
|
|
||||||
|
|
||||||
Assuming you want to convert the German localization which is placed in view/lang/de/message.po you would do the following.
|
|
||||||
|
|
||||||
1. Navigate at the command prompt to the base directory of your
|
|
||||||
friendica installation
|
|
||||||
|
|
||||||
2. Execute the po2php command, which will place the translation
|
|
||||||
in the strings.php file that is used by friendica.
|
|
||||||
|
|
||||||
$> php bin/console.php po2php view/lang/de/messages.po
|
|
||||||
|
|
||||||
The output of the script will be placed at view/lang/de/strings.php where
|
|
||||||
friendica is expecting it, so you can test your translation immediately.
|
|
||||||
|
|
||||||
3. Visit your friendica page to check if it still works in the language you
|
|
||||||
just translated. If not try to find the error, most likely PHP will give
|
|
||||||
you a hint in the log/warnings.about the error.
|
|
||||||
|
|
||||||
For debugging you can also try to "run" the file with PHP. This should
|
|
||||||
not give any output if the file is ok but might give a hint for
|
|
||||||
searching the bug in the file.
|
|
||||||
|
|
||||||
$> php view/lang/de/strings.php
|
|
||||||
|
|
||||||
4. commit the two files with a meaningful commit message to your git
|
|
||||||
repository, push it to your fork of the friendica repository at github and
|
|
||||||
issue a pull request for that commit.
|
|
||||||
|
|
||||||
You should translate the PO files at Transifex.
|
|
||||||
Otherwise your work might get lost, when the translation from Transifex is included to the Friendica repository after it was updated there.
|
|
||||||
|
|
||||||
Utilities
|
|
||||||
---------
|
|
||||||
|
|
||||||
Additional to the po2php command there are some more utilities for translation in the console.
|
|
||||||
If you only want to translate friendica into another language you wont need any of these tools most likely but it gives you an idea how the translation process of friendica works.
|
|
||||||
|
|
||||||
For further information see the utils/README file.
|
|
||||||
|
|
||||||
Transifex-Client
|
|
||||||
----------------
|
|
||||||
|
|
||||||
Transifex has a client program which let you interact with the translation files in a similar way to git.
|
|
||||||
Help for the client can be found at the [Transifex Help Center] [2].
|
|
||||||
Here we will only cover basic usage.
|
|
||||||
|
|
||||||
After installation of the client, you should have a `tx` command available on your system.
|
|
||||||
To use it, first create a configuration file with your credentials.
|
|
||||||
On Linux this file should be placed into your home directory `~/.transifexrc`.
|
|
||||||
The content of the file should be something like the following:
|
|
||||||
|
|
||||||
[https://www.transifex.com]
|
|
||||||
username = user
|
|
||||||
token =
|
|
||||||
password = p@ssw0rd
|
|
||||||
hostname = https://www.transifex.com
|
|
||||||
|
|
||||||
Since Friendica version 3.5.1 we ship configuration files for the Transifex client in the core repository and the addon repository.
|
|
||||||
To update the translation files after you have translated strings of e.g. Esperanto in the web-UI of transifex you can use `tx` to download the file.
|
|
||||||
|
|
||||||
$> tx pull -l eo
|
|
||||||
|
|
||||||
And then use the `po2php` command described above to convert the `messages.po` file to the `strings.php` file Friendica is loading.
|
|
||||||
|
|
||||||
$> php bin/console.php po2php view/lang/eo/messages.po
|
|
||||||
|
|
||||||
Afterwards, just commit the two changed files to a feature branch of your Friendica repository, push the changes to github and open a pull request for your changes.
|
|
||||||
|
|
||||||
[1]: https://www.transifex.com/projects/p/friendica/
|
|
||||||
[2]: https://docs.transifex.com/client/introduction
|
|
|
@ -6,8 +6,8 @@ server_timezone = "UTC"
|
||||||
public_folder = "/vagrant"
|
public_folder = "/vagrant"
|
||||||
|
|
||||||
Vagrant.configure(2) do |config|
|
Vagrant.configure(2) do |config|
|
||||||
# Set server to Ubuntu 16.04
|
# Set server to Debian 10 / Buster 64bit
|
||||||
config.vm.box = "ubuntu/xenial64"
|
config.vm.box = "debian/buster64"
|
||||||
|
|
||||||
# Disable automatic box update checking. If you disable this, then
|
# Disable automatic box update checking. If you disable this, then
|
||||||
# boxes will only be checked for updates when the user runs
|
# boxes will only be checked for updates when the user runs
|
||||||
|
|
|
@ -0,0 +1,279 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# This script is used for autotesting the Friendica codebase with different
|
||||||
|
# types of tests and environments.
|
||||||
|
#
|
||||||
|
# Currently, there are three types of autotesting possibilities:
|
||||||
|
# - "USEDOCKER=true ./autotest.sh" will start a database docker container for testing
|
||||||
|
# - "./autotest.sh" on the Drone CI environment will use the database container of the drone CI pipeline
|
||||||
|
# - "./autotest.sh" on a local environment will try to use the local database instance for testing
|
||||||
|
#
|
||||||
|
# You can specify a database (mysql, mariadb currently) for the db backend of Friendica ("./autotest.sh mysql")
|
||||||
|
# And you can specify some parameters for the test, like:
|
||||||
|
# - NOCOVERAGE=true ... Don't create a coverage XML (this is only useful if you will send coverage to codecov.io)
|
||||||
|
# - NOINSTALL=true ... Skip the whole Friendica installation process (e.g. you just test Caching drivers)
|
||||||
|
# - TEST_SELECTION= ... Specify which tests are used to run (based on the test-labeling)
|
||||||
|
# - XDEBUG_CONFIG= ... Set some XDEBUG specific environment settings for development
|
||||||
|
|
||||||
|
DATABASENAME=${MYSQL_DATABASE:-test}
|
||||||
|
DATABASEUSER=${MYSQL_USERNAME:-friendica}
|
||||||
|
DATABASEHOST=${MYSQL_HOST:-localhost}
|
||||||
|
BASEDIR=$PWD
|
||||||
|
|
||||||
|
DBCONFIGS="mysql mariadb"
|
||||||
|
TESTS="REDIS MEMCACHE MEMCACHED APCU NODB"
|
||||||
|
|
||||||
|
export MYSQL_DATABASE="$DATABASENAME"
|
||||||
|
export MYSQL_USERNAME="$DATABASEUSER"
|
||||||
|
export MYSQL_PASSWORD="friendica"
|
||||||
|
|
||||||
|
if [ -z "$PHP_EXE" ]; then
|
||||||
|
PHP_EXE=php
|
||||||
|
fi
|
||||||
|
PHP=$(which "$PHP_EXE")
|
||||||
|
# Use the Friendica internal composer
|
||||||
|
COMPOSER="$BASEDIR/bin/composer.phar"
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
_XDEBUG_CONFIG=$XDEBUG_CONFIG
|
||||||
|
unset XDEBUG_CONFIG
|
||||||
|
|
||||||
|
function show_syntax() {
|
||||||
|
echo -e "Syntax: ./autotest.sh [dbconfigname] [testfile]\n" >&2
|
||||||
|
echo -e "\t\"dbconfigname\" can be one of: $DBCONFIGS" >&2
|
||||||
|
echo -e "\t\"testfile\" is the name of a test file, for example lib/template.php" >&2
|
||||||
|
echo -e "\nDatabase environment variables:\n" >&2
|
||||||
|
echo -e "\t\"MYSQL_HOST\" Mysql Hostname (Default: localhost)" >&2
|
||||||
|
echo -e "\t\"MYSQL_USDRNAME\" Mysql Username (Default: friendica)" >&2
|
||||||
|
echo -e "\t\"MYSQL_DATABASE\" Mysql Database (Default: test)" >&2
|
||||||
|
echo -e "\nOther environment variables:\n" >&2
|
||||||
|
echo -e "\t\"TEST_SELECTION\" test a specific group of tests, can be one of: $TESTS" >&2
|
||||||
|
echo -e "\t\"NOINSTALL\" If set to true, skip the db and install process" >&2
|
||||||
|
echo -e "\t\"NOCOVERAGE\" If set to true, don't create a coverage output" >&2
|
||||||
|
echo -e "\t\"USEDOCKER\" If set to true, the DB server will be executed inside a docker container" >&2
|
||||||
|
echo -e "\nExample: NOCOVERAGE=true ./autotest.sh mysql src/Core/Cache/MemcacheTest.php" >&2
|
||||||
|
echo "will run the test suite from \"tests/src/Core/Cache/MemcacheTest.php\" without a Coverage" >&2
|
||||||
|
echo -e "\nIf no arguments are specified, all tests will be run with all database configs" >&2
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ -x "$PHP" ]; then
|
||||||
|
echo "Using PHP executable $PHP"
|
||||||
|
else
|
||||||
|
echo "Could not find PHP executable $PHP_EXE" >&2
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Installing depdendencies"
|
||||||
|
$PHP "$COMPOSER" install
|
||||||
|
|
||||||
|
PHPUNIT="$BASEDIR/vendor/bin/phpunit"
|
||||||
|
|
||||||
|
if [ -x "$PHPUNIT" ]; then
|
||||||
|
echo "Using PHPUnit executable $PHPUNIT"
|
||||||
|
else
|
||||||
|
echo "Could not find PHPUnit executable after composer $PHPUNIT" >&2
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! [ \( -w config -a ! -f config/local.config.php \) -o \( -f config/local.config.php -a -w config/local.config.php \) ]; then
|
||||||
|
echo "Please enable write permissions on config and config/config.php" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ "$1" ]; then
|
||||||
|
FOUND=0
|
||||||
|
for DBCONFIG in $DBCONFIGS; do
|
||||||
|
if [ "$1" = "$DBCONFIG" ]; then
|
||||||
|
FOUND=1
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
if [ $FOUND = 0 ]; then
|
||||||
|
echo -e "Unknown database config name \"$1\"\n" >&2
|
||||||
|
show_syntax
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Back up existing (dev) config if one exists and backup not already there
|
||||||
|
if [ -f config/local.config.php ] && [ ! -f config/local.config-autotest-backup.php ]; then
|
||||||
|
mv config/local.config.php config/local.config-autotest-backup.php
|
||||||
|
fi
|
||||||
|
|
||||||
|
function cleanup_config() {
|
||||||
|
|
||||||
|
if [ -n "$DOCKER_CONTAINER_ID" ]; then
|
||||||
|
echo "Kill the docker $DOCKER_CONTAINER_ID"
|
||||||
|
docker stop "$DOCKER_CONTAINER_ID"
|
||||||
|
docker rm -f "$DOCKER_CONTAINER_ID"
|
||||||
|
fi
|
||||||
|
|
||||||
|
cd "$BASEDIR"
|
||||||
|
|
||||||
|
# Restore existing config
|
||||||
|
if [ -f config/local.config-autotest-backup.php ]; then
|
||||||
|
mv config/local.config-autotest-backup.php config/local.config.php
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
# restore config on exit
|
||||||
|
trap cleanup_config EXIT
|
||||||
|
|
||||||
|
function execute_tests() {
|
||||||
|
DB=$1
|
||||||
|
echo "Setup environment for $DB testing ..."
|
||||||
|
# back to root folder
|
||||||
|
cd "$BASEDIR"
|
||||||
|
|
||||||
|
# backup current config
|
||||||
|
if [ -f config/local.config.php ]; then
|
||||||
|
mv config/local.config.php config/local.config-autotest-backup.php
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$NOINSTALL" ]; then
|
||||||
|
#drop database
|
||||||
|
if [ "$DB" == "mysql" ]; then
|
||||||
|
if [ -n "$USEDOCKER" ]; then
|
||||||
|
echo "Fire up the mysql docker"
|
||||||
|
DOCKER_CONTAINER_ID=$(docker run \
|
||||||
|
-e MYSQL_ROOT_PASSWORD=friendica \
|
||||||
|
-e MYSQL_USER="$DATABASEUSER" \
|
||||||
|
-e MYSQL_PASSWORD=friendica \
|
||||||
|
-e MYSQL_DATABASE="$DATABASENAME" \
|
||||||
|
-d mysql)
|
||||||
|
DATABASEHOST=$(docker inspect --format="{{.NetworkSettings.IPAddress}}" "$DOCKER_CONTAINER_ID")
|
||||||
|
|
||||||
|
else
|
||||||
|
if [ -z "$DRONE" ]; then # no need to drop the DB when we are on CI
|
||||||
|
if [ "mysql" != "$(mysql --version | grep -o mysql)" ]; then
|
||||||
|
echo "Your mysql binary is not provided by mysql"
|
||||||
|
echo "To use the docker container set the USEDOCKER environment variable"
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
|
mysql -u "$DATABASEUSER" -pfriendica -e "DROP DATABASE IF EXISTS $DATABASENAME" -h $DATABASEHOST || true
|
||||||
|
mysql -u "$DATABASEUSER" -pfriendica -e "CREATE DATABASE $DATABASENAME DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci" -h $DATABASEHOST
|
||||||
|
else
|
||||||
|
DATABASEHOST=mysql
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Waiting for MySQL $DATABASEHOST initialization..."
|
||||||
|
if ! bin/wait-for-connection $DATABASEHOST 3306 300; then
|
||||||
|
echo "[ERROR] Waited 300 seconds, no response" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "MySQL is up."
|
||||||
|
fi
|
||||||
|
if [ "$DB" == "mariadb" ]; then
|
||||||
|
if [ -n "$USEDOCKER" ]; then
|
||||||
|
echo "Fire up the mariadb docker"
|
||||||
|
DOCKER_CONTAINER_ID=$(docker run \
|
||||||
|
-e MYSQL_ROOT_PASSWORD=friendica \
|
||||||
|
-e MYSQL_USER="$DATABASEUSER" \
|
||||||
|
-e MYSQL_PASSWORD=friendica \
|
||||||
|
-e MYSQL_DATABASE="$DATABASENAME" \
|
||||||
|
-d mariadb)
|
||||||
|
DATABASEHOST=$(docker inspect --format="{{.NetworkSettings.IPAddress}}" "$DOCKER_CONTAINER_ID")
|
||||||
|
|
||||||
|
else
|
||||||
|
if [ -z "$DRONE" ]; then # no need to drop the DB when we are on CI
|
||||||
|
if [ "MariaDB" != "$(mysql --version | grep -o MariaDB)" ]; then
|
||||||
|
echo "Your mysql binary is not provided by mysql"
|
||||||
|
echo "To use the docker container set the USEDOCKER environment variable"
|
||||||
|
exit 3
|
||||||
|
fi
|
||||||
|
mysql -u "$DATABASEUSER" -pfriendica -e "DROP DATABASE IF EXISTS $DATABASENAME" -h $DATABASEHOST || true
|
||||||
|
mysql -u "$DATABASEUSER" -pfriendica -e "CREATE DATABASE $DATABASENAME DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci" -h $DATABASEHOST
|
||||||
|
else
|
||||||
|
DATABASEHOST=mariadb
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Waiting for MariaDB $DATABASEHOST initialization..."
|
||||||
|
if ! bin/wait-for-connection $DATABASEHOST 3306 300; then
|
||||||
|
echo "[ERROR] Waited 300 seconds, no response" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "MariaDB is up."
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$USEDOCKER" ]; then
|
||||||
|
echo "Initialize database..."
|
||||||
|
docker exec $DOCKER_CONTAINER_ID mysql -u root -pfriendica -e 'CREATE DATABASE IF NOT EXISTS $DATABASENAME;'
|
||||||
|
fi
|
||||||
|
|
||||||
|
export MYSQL_HOST="$DATABASEHOST"
|
||||||
|
|
||||||
|
#call installer
|
||||||
|
echo "Installing Friendica..."
|
||||||
|
"$PHP" ./bin/console.php autoinstall --dbuser="$DATABASEUSER" --dbpass=friendica --dbdata="$DATABASENAME" --dbhost="$DATABASEHOST" --url=https://friendica.local --admin=admin@friendica.local
|
||||||
|
fi
|
||||||
|
|
||||||
|
#test execution
|
||||||
|
echo "Testing..."
|
||||||
|
rm -fr "coverage-html"
|
||||||
|
mkdir "coverage-html"
|
||||||
|
if [[ "$_XDEBUG_CONFIG" ]]; then
|
||||||
|
export XDEBUG_CONFIG=$_XDEBUG_CONFIG
|
||||||
|
fi
|
||||||
|
|
||||||
|
COVER=''
|
||||||
|
if [ -z "$NOCOVERAGE" ]; then
|
||||||
|
COVER="--coverage-clover tests/autotest-clover.xml"
|
||||||
|
else
|
||||||
|
echo "No coverage"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# per default, there is no cache installed
|
||||||
|
GROUP='--exclude-group REDIS,MEMCACHE,MEMCACHED,APCU'
|
||||||
|
if [ "$TEST_SELECTION" == "REDIS" ]; then
|
||||||
|
GROUP="--group REDIS"
|
||||||
|
fi
|
||||||
|
if [ "$TEST_SELECTION" == "MEMCACHE" ]; then
|
||||||
|
GROUP="--group MEMCACHE"
|
||||||
|
fi
|
||||||
|
if [ "$TEST_SELECTION" == "MEMCACHED" ]; then
|
||||||
|
GROUP="--group MEMCACHED"
|
||||||
|
fi
|
||||||
|
if [ "$TEST_SELECTION" == "APCU" ]; then
|
||||||
|
GROUP="--group APCU"
|
||||||
|
fi
|
||||||
|
if [ "$TEST_SELECTION" == "NODB" ]; then
|
||||||
|
GROUP="--exclude-group DB,SLOWDB"
|
||||||
|
fi
|
||||||
|
|
||||||
|
INPUT="$BASEDIR/tests"
|
||||||
|
if [ -n "$2" ]; then
|
||||||
|
INPUT="$INPUT/$2"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "${PHPUNIT[@]}" --configuration tests/phpunit.xml $GROUP $COVER --log-junit "autotest-results.xml" "$INPUT" "$3"
|
||||||
|
"${PHPUNIT[@]}" --configuration tests/phpunit.xml $GROUP $COVER --log-junit "autotest-results.xml" "$INPUT" "$3"
|
||||||
|
RESULT=$?
|
||||||
|
|
||||||
|
if [ -n "$DOCKER_CONTAINER_ID" ]; then
|
||||||
|
echo "Kill the docker $DOCKER_CONTAINER_ID"
|
||||||
|
docker stop $DOCKER_CONTAINER_ID
|
||||||
|
docker rm -f $DOCKER_CONTAINER_ID
|
||||||
|
unset $DOCKER_CONTAINER_ID
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
#
|
||||||
|
# Start the test execution
|
||||||
|
#
|
||||||
|
if [ -z "$1" ] && [ -n "$TEST_SELECTION" ]; then
|
||||||
|
# run all known database configs
|
||||||
|
for DBCONFIG in $DBCONFIGS; do
|
||||||
|
execute_tests "$DBCONFIG"
|
||||||
|
done
|
||||||
|
else
|
||||||
|
FILENAME="$2"
|
||||||
|
if [ -n "$2" ] && [ ! -f "tests/$FILENAME" ] && [ "${FILENAME:0:2}" != "--" ]; then
|
||||||
|
FILENAME="../$FILENAME"
|
||||||
|
fi
|
||||||
|
execute_tests "$1" "$FILENAME" "$3"
|
||||||
|
fi
|
|
@ -32,10 +32,11 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
use Friendica\App;
|
use Dice\Dice;
|
||||||
|
use Friendica\App\Mode;
|
||||||
use Friendica\BaseObject;
|
use Friendica\BaseObject;
|
||||||
use Friendica\Core\Config;
|
|
||||||
use Friendica\Util\ExAuth;
|
use Friendica\Util\ExAuth;
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
|
|
||||||
if (sizeof($_SERVER["argv"]) == 0) {
|
if (sizeof($_SERVER["argv"]) == 0) {
|
||||||
die();
|
die();
|
||||||
|
@ -51,16 +52,16 @@ $directory = realpath($directory . DIRECTORY_SEPARATOR . "..");
|
||||||
|
|
||||||
chdir($directory);
|
chdir($directory);
|
||||||
|
|
||||||
require_once "boot.php";
|
require dirname(__DIR__) . '/vendor/autoload.php';
|
||||||
require_once "include/dba.php";
|
|
||||||
|
|
||||||
$a = new App(dirname(__DIR__));
|
$dice = (new Dice())->addRules(include __DIR__ . '/../static/dependencies.config.php');
|
||||||
BaseObject::setApp($a);
|
$dice = $dice->addRule(LoggerInterface::class,['constructParams' => ['auth_ejabberd']]);
|
||||||
|
|
||||||
@include ".htconfig.php";
|
BaseObject::setDependencyInjection($dice);
|
||||||
dba::connect($db_host, $db_user, $db_pass, $db_data);
|
|
||||||
unset($db_host, $db_user, $db_pass, $db_data);
|
|
||||||
|
|
||||||
|
$appMode = $dice->create(Mode::class);
|
||||||
|
|
||||||
|
if ($appMode->isNormal()) {
|
||||||
$oAuth = new ExAuth();
|
$oAuth = new ExAuth();
|
||||||
|
|
||||||
$oAuth->readStdin();
|
$oAuth->readStdin();
|
||||||
|
}
|
||||||
|
|
|
@ -1,9 +1,12 @@
|
||||||
#!/usr/bin/env php
|
#!/usr/bin/env php
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
include_once dirname(__DIR__) . '/boot.php';
|
use Dice\Dice;
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
|
|
||||||
$a = new Friendica\App(dirname(__DIR__));
|
require dirname(__DIR__) . '/vendor/autoload.php';
|
||||||
\Friendica\BaseObject::setApp($a);
|
|
||||||
|
|
||||||
(new Friendica\Core\Console($argv))->execute();
|
$dice = (new Dice())->addRules(include __DIR__ . '/../static/dependencies.config.php');
|
||||||
|
$dice = $dice->addRule(LoggerInterface::class,['constructParams' => ['console']]);
|
||||||
|
|
||||||
|
(new Friendica\Core\Console($dice, $argv))->execute();
|
||||||
|
|
174
bin/daemon.php
|
@ -6,9 +6,57 @@
|
||||||
*
|
*
|
||||||
* This script was taken from http://php.net/manual/en/function.pcntl-fork.php
|
* This script was taken from http://php.net/manual/en/function.pcntl-fork.php
|
||||||
*/
|
*/
|
||||||
function shutdown() {
|
|
||||||
posix_kill(posix_getpid(), SIGHUP);
|
use Dice\Dice;
|
||||||
|
use Friendica\Core\Config;
|
||||||
|
use Friendica\Core\Logger;
|
||||||
|
use Friendica\Core\Worker;
|
||||||
|
use Friendica\Database\DBA;
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
|
|
||||||
|
// Get options
|
||||||
|
$shortopts = 'f';
|
||||||
|
$longopts = ['foreground'];
|
||||||
|
$options = getopt($shortopts, $longopts);
|
||||||
|
|
||||||
|
// Ensure that daemon.php is executed from the base path of the installation
|
||||||
|
if (!file_exists("boot.php") && (sizeof($_SERVER["argv"]) != 0)) {
|
||||||
|
$directory = dirname($_SERVER["argv"][0]);
|
||||||
|
|
||||||
|
if (substr($directory, 0, 1) != "/") {
|
||||||
|
$directory = $_SERVER["PWD"] . "/" . $directory;
|
||||||
}
|
}
|
||||||
|
$directory = realpath($directory . "/..");
|
||||||
|
|
||||||
|
chdir($directory);
|
||||||
|
}
|
||||||
|
|
||||||
|
require dirname(__DIR__) . '/vendor/autoload.php';
|
||||||
|
|
||||||
|
$dice = (new Dice())->addRules(include __DIR__ . '/../static/dependencies.config.php');
|
||||||
|
$dice = $dice->addRule(LoggerInterface::class,['constructParams' => ['daemon']]);
|
||||||
|
|
||||||
|
\Friendica\BaseObject::setDependencyInjection($dice);
|
||||||
|
$a = \Friendica\BaseObject::getApp();
|
||||||
|
|
||||||
|
if ($a->getMode()->isInstall()) {
|
||||||
|
die("Friendica isn't properly installed yet.\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
Config::load();
|
||||||
|
|
||||||
|
if (empty(Config::get('system', 'pidfile'))) {
|
||||||
|
die(<<<TXT
|
||||||
|
Please set system.pidfile in config/local.config.php. For example:
|
||||||
|
|
||||||
|
'system' => [
|
||||||
|
'pidfile' => '/path/to/daemon.pid',
|
||||||
|
],
|
||||||
|
TXT
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pidfile = Config::get('system', 'pidfile');
|
||||||
|
|
||||||
if (in_array("start", $_SERVER["argv"])) {
|
if (in_array("start", $_SERVER["argv"])) {
|
||||||
$mode = "start";
|
$mode = "start";
|
||||||
|
@ -22,6 +70,8 @@ if (in_array("status", $_SERVER["argv"])) {
|
||||||
$mode = "status";
|
$mode = "status";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$foreground = array_key_exists('f', $options) || array_key_exists('foreground', $options);
|
||||||
|
|
||||||
if (!isset($mode)) {
|
if (!isset($mode)) {
|
||||||
die("Please use either 'start', 'stop' or 'status'.\n");
|
die("Please use either 'start', 'stop' or 'status'.\n");
|
||||||
}
|
}
|
||||||
|
@ -30,28 +80,16 @@ if (empty($_SERVER["argv"][0])) {
|
||||||
die("Unexpected script behaviour. This message should never occur.\n");
|
die("Unexpected script behaviour. This message should never occur.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
// Fetch the base directory
|
$pid = null;
|
||||||
$directory = dirname($_SERVER["argv"][0]);
|
|
||||||
|
|
||||||
if (substr($directory, 0, 1) != "/") {
|
if (is_readable($pidfile)) {
|
||||||
$directory = $_SERVER["PWD"]."/".$directory;
|
$pid = intval(file_get_contents($pidfile));
|
||||||
}
|
|
||||||
$directory = realpath($directory."/..");
|
|
||||||
|
|
||||||
@include($directory."/.htconfig.php");
|
|
||||||
|
|
||||||
if (!isset($pidfile)) {
|
|
||||||
die('Please specify a pid file in the variable $pidfile in the .htconfig.php. For example:'."\n".
|
|
||||||
'$pidfile = "/path/to/daemon.pid";'."\n");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (in_array($mode, array("stop", "status"))) {
|
if (empty($pid) && in_array($mode, ["stop", "status"])) {
|
||||||
$pid = @file_get_contents($pidfile);
|
Config::set('system', 'worker_daemon_mode', false);
|
||||||
|
|
||||||
if (!$pid) {
|
|
||||||
die("Pidfile wasn't found. Is the daemon running?\n");
|
die("Pidfile wasn't found. Is the daemon running?\n");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
if ($mode == "status") {
|
if ($mode == "status") {
|
||||||
if (posix_kill($pid, 0)) {
|
if (posix_kill($pid, 0)) {
|
||||||
|
@ -60,6 +98,7 @@ if ($mode == "status") {
|
||||||
|
|
||||||
unlink($pidfile);
|
unlink($pidfile);
|
||||||
|
|
||||||
|
Config::set('system', 'worker_daemon_mode', false);
|
||||||
die("Daemon process $pid isn't running.\n");
|
die("Daemon process $pid isn't running.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,59 +107,102 @@ if ($mode == "stop") {
|
||||||
|
|
||||||
unlink($pidfile);
|
unlink($pidfile);
|
||||||
|
|
||||||
|
Logger::notice("Worker daemon process was killed", ["pid" => $pid]);
|
||||||
|
|
||||||
|
Config::set('system', 'worker_daemon_mode', false);
|
||||||
die("Worker daemon process $pid was killed.\n");
|
die("Worker daemon process $pid was killed.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
echo "Starting worker daemon.\n";
|
if (!empty($pid) && posix_kill($pid, 0)) {
|
||||||
|
die("Daemon process $pid is already running.\n");
|
||||||
if (isset($a->config['php_path'])) {
|
|
||||||
$php = $a->config['php_path'];
|
|
||||||
} else {
|
|
||||||
$php = "php";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Logger::notice('Starting worker daemon.', ["pid" => $pid]);
|
||||||
|
|
||||||
|
if (!$foreground) {
|
||||||
|
echo "Starting worker daemon.\n";
|
||||||
|
|
||||||
// Switch over to daemon mode.
|
// Switch over to daemon mode.
|
||||||
if ($pid = pcntl_fork())
|
if ($pid = pcntl_fork()) {
|
||||||
return; // Parent
|
return; // Parent
|
||||||
|
}
|
||||||
|
|
||||||
fclose(STDIN); // Close all of the standard
|
fclose(STDIN); // Close all of the standard
|
||||||
fclose(STDOUT); // file descriptors as we
|
|
||||||
fclose(STDERR); // are running as a daemon.
|
// Enabling this seem to block a running php process with 100% CPU usage when there is an outpout
|
||||||
|
// fclose(STDOUT); // file descriptors as we
|
||||||
|
// fclose(STDERR); // are running as a daemon.
|
||||||
|
|
||||||
|
DBA::disconnect();
|
||||||
|
|
||||||
register_shutdown_function('shutdown');
|
register_shutdown_function('shutdown');
|
||||||
|
|
||||||
if (posix_setsid() < 0)
|
if (posix_setsid() < 0) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ($pid = pcntl_fork())
|
if ($pid = pcntl_fork()) {
|
||||||
return; // Parent
|
return; // Parent
|
||||||
|
}
|
||||||
|
|
||||||
$pid = getmypid();
|
$pid = getmypid();
|
||||||
file_put_contents($pidfile, $pid);
|
file_put_contents($pidfile, $pid);
|
||||||
|
|
||||||
// Now running as a daemon.
|
// We lose the database connection upon forking
|
||||||
while (true) {
|
DBA::reconnect();
|
||||||
|
}
|
||||||
|
|
||||||
|
Config::set('system', 'worker_daemon_mode', true);
|
||||||
|
|
||||||
// Just to be sure that this script really runs endlessly
|
// Just to be sure that this script really runs endlessly
|
||||||
set_time_limit(0);
|
set_time_limit(0);
|
||||||
|
|
||||||
// Call the worker
|
$wait_interval = intval(Config::get('system', 'cron_interval', 5)) * 60;
|
||||||
$cmdline = $php.' bin/worker.php';
|
|
||||||
|
|
||||||
$executed = false;
|
$do_cron = true;
|
||||||
|
$last_cron = 0;
|
||||||
|
|
||||||
if (function_exists('proc_open')) {
|
// Now running as a daemon.
|
||||||
$resource = proc_open($cmdline . ' &', array(), $foo, $directory);
|
while (true) {
|
||||||
|
if (!$do_cron && ($last_cron + $wait_interval) < time()) {
|
||||||
|
Logger::info('Forcing cron worker call.', ["pid" => $pid]);
|
||||||
|
$do_cron = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (is_resource($resource)) {
|
Worker::spawnWorker($do_cron);
|
||||||
$executed = true;
|
|
||||||
proc_close($resource);
|
if ($do_cron) {
|
||||||
|
// We force a reconnect of the database connection.
|
||||||
|
// This is done to ensure that the connection don't get lost over time.
|
||||||
|
DBA::reconnect();
|
||||||
|
|
||||||
|
$last_cron = time();
|
||||||
|
}
|
||||||
|
|
||||||
|
Logger::info("Sleeping", ["pid" => $pid]);
|
||||||
|
$start = time();
|
||||||
|
do {
|
||||||
|
$seconds = (time() - $start);
|
||||||
|
|
||||||
|
// logarithmic wait time calculation.
|
||||||
|
// Background: After jobs had been started, they often fork many workers.
|
||||||
|
// To not waste too much time, the sleep period increases.
|
||||||
|
$arg = (($seconds + 1) / ($wait_interval / 9)) + 1;
|
||||||
|
$sleep = round(log10($arg) * 1000000, 0);
|
||||||
|
usleep($sleep);
|
||||||
|
|
||||||
|
$timeout = ($seconds >= $wait_interval);
|
||||||
|
} while (!$timeout && !Worker::IPCJobsExists());
|
||||||
|
|
||||||
|
if ($timeout) {
|
||||||
|
$do_cron = true;
|
||||||
|
Logger::info("Woke up after $wait_interval seconds.", ["pid" => $pid, 'sleep' => $wait_interval]);
|
||||||
|
} else {
|
||||||
|
$do_cron = false;
|
||||||
|
Logger::info("Worker jobs are calling to be forked.", ["pid" => $pid]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$executed) {
|
function shutdown() {
|
||||||
exec($cmdline.' spawn');
|
posix_kill(posix_getpid(), SIGHUP);
|
||||||
}
|
|
||||||
|
|
||||||
// Now sleep for 5 minutes
|
|
||||||
sleep(300);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,241 +0,0 @@
|
||||||
#!/usr/bin/python
|
|
||||||
#
|
|
||||||
# Script to convert Friendica internal template files into Smarty template files
|
|
||||||
# Copyright 2013 Zach Prezkuta
|
|
||||||
# Licensed under GPL v3
|
|
||||||
|
|
||||||
import os, re, string
|
|
||||||
import sys, getopt
|
|
||||||
|
|
||||||
ldelim = '{{'
|
|
||||||
rdelim = '}}'
|
|
||||||
|
|
||||||
addheader = True
|
|
||||||
|
|
||||||
def fToSmarty(matches):
|
|
||||||
match = matches.group(0)
|
|
||||||
if match == '$j':
|
|
||||||
return match
|
|
||||||
match = string.replace(match, '[', '')
|
|
||||||
match = string.replace(match, ']', '')
|
|
||||||
|
|
||||||
ldel = ldelim
|
|
||||||
rdel = rdelim
|
|
||||||
if match.find("'") > -1:
|
|
||||||
match = string.replace(match, "'", '')
|
|
||||||
ldel = "'" + ldel
|
|
||||||
rdel = rdel + "'"
|
|
||||||
elif match.find('"') > -1:
|
|
||||||
match = string.replace(match, '"', '')
|
|
||||||
ldel = '"' + ldel
|
|
||||||
rdel = rdel + '"'
|
|
||||||
|
|
||||||
return ldel + match + rdel
|
|
||||||
|
|
||||||
|
|
||||||
def fix_element(element):
|
|
||||||
# Much of the positioning here is important, e.g. if you do element.find('if ') before you do
|
|
||||||
# element.find('endif'), then you may get some multiply-replaced delimiters
|
|
||||||
|
|
||||||
if element.find('endif') > -1:
|
|
||||||
element = ldelim + '/if' + rdelim
|
|
||||||
return element
|
|
||||||
|
|
||||||
if element.find('if ') > -1:
|
|
||||||
element = string.replace(element, '{{ if', ldelim + 'if')
|
|
||||||
element = string.replace(element, '{{if', ldelim + 'if')
|
|
||||||
element = string.replace(element, ' }}', rdelim)
|
|
||||||
element = string.replace(element, '}}', rdelim)
|
|
||||||
return element
|
|
||||||
|
|
||||||
if element.find('else') > -1:
|
|
||||||
element = ldelim + 'else' + rdelim
|
|
||||||
return element
|
|
||||||
|
|
||||||
if element.find('endfor') > -1:
|
|
||||||
element = ldelim + '/foreach' + rdelim
|
|
||||||
return element
|
|
||||||
|
|
||||||
if element.find('for ') > -1:
|
|
||||||
element = string.replace(element, '{{ for ', ldelim + 'foreach ')
|
|
||||||
element = string.replace(element, '{{for ', ldelim + 'foreach ')
|
|
||||||
element = string.replace(element, ' }}', rdelim)
|
|
||||||
element = string.replace(element, '}}', rdelim)
|
|
||||||
return element
|
|
||||||
|
|
||||||
if element.find('endinc') > -1:
|
|
||||||
element = ''
|
|
||||||
return element
|
|
||||||
|
|
||||||
if element.find('inc ') > -1:
|
|
||||||
parts = element.split(' ')
|
|
||||||
element = ldelim + 'include file="'
|
|
||||||
|
|
||||||
# We need to find the file name. It'll either be in parts[1] if the element was written as {{ inc file.tpl }}
|
|
||||||
# or it'll be in parts[2] if the element was written as {{inc file.tpl}}
|
|
||||||
if parts[0].find('inc') > -1:
|
|
||||||
first = 0
|
|
||||||
else:
|
|
||||||
first = 1
|
|
||||||
|
|
||||||
if parts[first+1][0] == '$':
|
|
||||||
# This takes care of elements where the filename is a variable, e.g. {{ inc $file }}
|
|
||||||
element += ldelim + parts[first+1].rstrip('}') + rdelim
|
|
||||||
else:
|
|
||||||
# This takes care of elements where the filename is a path, e.g. {{ inc file.tpl }}
|
|
||||||
element += parts[first+1].rstrip('}')
|
|
||||||
|
|
||||||
element += '"'
|
|
||||||
|
|
||||||
if len(parts) > first + 1 and parts[first+2] == 'with':
|
|
||||||
# Take care of variable substitutions, e.g. {{ inc file.tpl with $var=this_var }}
|
|
||||||
element += ' ' + parts[first+3].rstrip('}')[1:]
|
|
||||||
|
|
||||||
element += rdelim
|
|
||||||
return element
|
|
||||||
|
|
||||||
|
|
||||||
def convert(filename, tofilename, php_tpl):
|
|
||||||
if addheader:
|
|
||||||
header = ldelim + "*\n *\tAUTOMATICALLY GENERATED TEMPLATE\n *\tDO NOT EDIT THIS FILE, CHANGES WILL BE OVERWRITTEN\n *\n *" + rdelim + "\n"
|
|
||||||
tofilename.write(header)
|
|
||||||
|
|
||||||
for line in filename:
|
|
||||||
newline = ''
|
|
||||||
st_pos = 0
|
|
||||||
brack_pos = line.find('{{')
|
|
||||||
|
|
||||||
if php_tpl:
|
|
||||||
# If php_tpl is True, this script will only convert variables in quotes, like '$variable'
|
|
||||||
# or "$variable". This is for .tpl files that produce PHP scripts, where you don't want
|
|
||||||
# all the PHP variables converted into Smarty variables
|
|
||||||
pattern1 = re.compile(r"""
|
|
||||||
([\'\"]\$\[[a-zA-Z]\w*
|
|
||||||
(\.
|
|
||||||
(\d+|[a-zA-Z][\w-]*)
|
|
||||||
)*
|
|
||||||
(\|[\w\$:\.]*)*
|
|
||||||
\][\'\"])
|
|
||||||
""", re.VERBOSE)
|
|
||||||
pattern2 = re.compile(r"""
|
|
||||||
([\'\"]\$[a-zA-Z]\w*
|
|
||||||
(\.
|
|
||||||
(\d+|[a-zA-Z][\w-]*)
|
|
||||||
)*
|
|
||||||
(\|[\w\$:\.]*)*
|
|
||||||
[\'\"])
|
|
||||||
""", re.VERBOSE)
|
|
||||||
else:
|
|
||||||
# Compile the pattern for bracket-style variables, e.g. $[variable.key|filter:arg1:arg2|filter2:arg1:arg2]
|
|
||||||
# Note that dashes are only allowed in array keys if the key doesn't start
|
|
||||||
# with a number, e.g. $[variable.key-id] is ok but $[variable.12-id] isn't
|
|
||||||
#
|
|
||||||
# Doesn't currently process the argument position key 'x', i.e. filter:arg1:x:arg2 doesn't get
|
|
||||||
# changed to arg1|filter:variable:arg2 like Smarty requires
|
|
||||||
#
|
|
||||||
# Filter arguments can be variables, e.g. $variable, but currently can't have array keys with dashes
|
|
||||||
# like filter:$variable.key-name
|
|
||||||
pattern1 = re.compile(r"""
|
|
||||||
(\$\[[a-zA-Z]\w*
|
|
||||||
(\.
|
|
||||||
(\d+|[a-zA-Z][\w-]*)
|
|
||||||
)*
|
|
||||||
(\|[\w\$:\.]*)*
|
|
||||||
\])
|
|
||||||
""", re.VERBOSE)
|
|
||||||
|
|
||||||
# Compile the pattern for normal style variables, e.g. $variable.key
|
|
||||||
pattern2 = re.compile(r"""
|
|
||||||
(\$[a-zA-Z]\w*
|
|
||||||
(\.
|
|
||||||
(\d+|[a-zA-Z][\w-]*)
|
|
||||||
)*
|
|
||||||
(\|[\w\$:\.]*)*
|
|
||||||
)
|
|
||||||
""", re.VERBOSE)
|
|
||||||
|
|
||||||
while brack_pos > -1:
|
|
||||||
if brack_pos > st_pos:
|
|
||||||
line_segment = line[st_pos:brack_pos]
|
|
||||||
line_segment = pattern2.sub(fToSmarty, line_segment)
|
|
||||||
newline += pattern1.sub(fToSmarty, line_segment)
|
|
||||||
|
|
||||||
end_brack_pos = line.find('}}', brack_pos)
|
|
||||||
if end_brack_pos < 0:
|
|
||||||
print "Error: no matching bracket found"
|
|
||||||
|
|
||||||
newline += fix_element(line[brack_pos:end_brack_pos + 2])
|
|
||||||
st_pos = end_brack_pos + 2
|
|
||||||
|
|
||||||
brack_pos = line.find('{{', st_pos)
|
|
||||||
|
|
||||||
line_segment = line[st_pos:]
|
|
||||||
line_segment = pattern2.sub(fToSmarty, line_segment)
|
|
||||||
newline += pattern1.sub(fToSmarty, line_segment)
|
|
||||||
newline = newline.replace("{#", ldelim + "*")
|
|
||||||
newline = newline.replace("#}", "*" + rdelim)
|
|
||||||
tofilename.write(newline)
|
|
||||||
|
|
||||||
|
|
||||||
def help(pname):
|
|
||||||
print "\nUsage:"
|
|
||||||
print "\t" + pname + " -h\n\n\t\t\tShow this help screen\n"
|
|
||||||
print "\t" + pname + " -p directory\n\n\t\t\tConvert all .tpl files in directory to\n\t\t\tSmarty templates in directory/smarty3/\n"
|
|
||||||
print "\t" + pname + "\n\n\t\t\tInteractive mode\n"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Main script
|
|
||||||
#
|
|
||||||
|
|
||||||
path = ''
|
|
||||||
|
|
||||||
try:
|
|
||||||
opts, args = getopt.getopt(sys.argv[1:], "hp:", ['no-header'])
|
|
||||||
for opt, arg in opts:
|
|
||||||
if opt == '-h':
|
|
||||||
help(sys.argv[0])
|
|
||||||
sys.exit()
|
|
||||||
elif opt == '-p':
|
|
||||||
path = arg
|
|
||||||
elif opt == '--no-header':
|
|
||||||
addheader = False
|
|
||||||
except getopt.GetoptError:
|
|
||||||
help(sys.argv[0])
|
|
||||||
sys.exit(2)
|
|
||||||
|
|
||||||
|
|
||||||
if path == '':
|
|
||||||
path = raw_input('Path to template folder to convert: ')
|
|
||||||
|
|
||||||
if path[-1:] != '/':
|
|
||||||
path = path + '/'
|
|
||||||
|
|
||||||
outpath = path + 'smarty3/'
|
|
||||||
|
|
||||||
if not os.path.exists(outpath):
|
|
||||||
os.makedirs(outpath)
|
|
||||||
|
|
||||||
files = os.listdir(path)
|
|
||||||
for a_file in files:
|
|
||||||
if a_file == 'htconfig.tpl':
|
|
||||||
php_tpl = True
|
|
||||||
else:
|
|
||||||
php_tpl = False
|
|
||||||
|
|
||||||
filename = os.path.join(path,a_file)
|
|
||||||
ext = a_file.split('.')[-1]
|
|
||||||
if os.path.isfile(filename) and ext == 'tpl':
|
|
||||||
f = open(filename, 'r')
|
|
||||||
|
|
||||||
newfilename = os.path.join(outpath,a_file)
|
|
||||||
outf = open(newfilename, 'w')
|
|
||||||
|
|
||||||
print "Converting " + filename + " to " + newfilename
|
|
||||||
convert(f, outf, php_tpl)
|
|
||||||
|
|
||||||
outf.close()
|
|
||||||
f.close()
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
This script will collect the contributors to friendica and its translations from
|
This script will collect the contributors to friendica and its translations from
|
||||||
* the git log of the friendica core and addons repositories
|
* the git log of the friendica core and addons repositories
|
||||||
* the translated messages.po from core and the addons.
|
* the translated messages.po from core and the addons.
|
||||||
The collected names will be saved in /util/credits.txt which is also parsed from
|
The collected names will be saved in CREDITS.txt which is also parsed from
|
||||||
yourfriendica.tld/credits.
|
yourfriendica.tld/credits.
|
||||||
|
|
||||||
The output is not perfect, so remember to open a fresh (re)created credits.txt file
|
The output is not perfect, so remember to open a fresh (re)created credits.txt file
|
||||||
|
@ -23,13 +23,15 @@ import os, glob, subprocess
|
||||||
# not work in some cases.
|
# not work in some cases.
|
||||||
dontinclude = ['root', 'friendica', 'bavatar', 'tony baldwin', 'Taek', 'silke m',
|
dontinclude = ['root', 'friendica', 'bavatar', 'tony baldwin', 'Taek', 'silke m',
|
||||||
'leberwurscht', 'abinoam', 'fabrixxm', 'FULL NAME', 'Hauke Zuehl',
|
'leberwurscht', 'abinoam', 'fabrixxm', 'FULL NAME', 'Hauke Zuehl',
|
||||||
'Michal Supler', 'michal_s', 'Manuel Pérez', 'rabuzarus', 'Alberto Díaz']
|
'Michal Supler', 'michal_s', 'Manuel Pérez', 'rabuzarus',
|
||||||
|
'Alberto Díaz', 'hoergen oostende', 'Friendica', 'vinzv',
|
||||||
|
'Vincent Vindarel']
|
||||||
|
|
||||||
|
|
||||||
# this script is in the /util sub-directory of the friendica installation
|
# this script is in the /bin/dev directory of the friendica installation
|
||||||
# so the friendica path is the 0th argument of calling this script but we
|
# so the friendica path is the 0th argument of calling this script but we
|
||||||
# need to remove the name of the file and the name of the directory
|
# need to remove the name of the file and the name of the directory
|
||||||
path = os.path.abspath(argv[0].split('util/make_credits.py')[0])
|
path = os.path.abspath(argv[0].split('bin/dev/make_credits.py')[0])
|
||||||
print('> base directory is assumed to be: '+path)
|
print('> base directory is assumed to be: '+path)
|
||||||
# a place to store contributors
|
# a place to store contributors
|
||||||
contributors = ["Andi Stadler", "Ratten", "Vít Šesták 'v6ak'"]
|
contributors = ["Andi Stadler", "Ratten", "Vít Šesták 'v6ak'"]
|
||||||
|
@ -88,6 +90,10 @@ for f in glob.glob(path+'/addon/*/lang/*/messages.po'):
|
||||||
for ll in l:
|
for ll in l:
|
||||||
if intrans and ll.strip()=='':
|
if intrans and ll.strip()=='':
|
||||||
intrans = False;
|
intrans = False;
|
||||||
|
# at this point Transifex sometimes includes a "#, fuzzy" we eill
|
||||||
|
# ignore all lines starting with "#," as they do not contains any
|
||||||
|
# "Name email, year" information.
|
||||||
|
if not "#," in ll:
|
||||||
if intrans and ll[0]=='#':
|
if intrans and ll[0]=='#':
|
||||||
name = ll.split('# ')[1].split(',')[0].split(' <')[0]
|
name = ll.split('# ')[1].split(',')[0].split(' <')[0]
|
||||||
if not name in contributors and name not in dontinclude:
|
if not name in contributors and name not in dontinclude:
|
||||||
|
@ -101,7 +107,7 @@ print(' > found %d translators' % (n3-n2))
|
||||||
print('> found a total of %d contributors and translators' % n3)
|
print('> found a total of %d contributors and translators' % n3)
|
||||||
contributors.sort(key=str.lower)
|
contributors.sort(key=str.lower)
|
||||||
|
|
||||||
f = open(path+'/util/credits.txt', 'w')
|
f = open(path+'/CREDITS.txt', 'w')
|
||||||
f.write("\n".join(contributors))
|
f.write("\n".join(contributors))
|
||||||
f.close()
|
f.close()
|
||||||
print('> list saved to util/credits.txt')
|
print('> list saved to CREDITS.txt')
|
||||||
|
|
|
@ -1,64 +0,0 @@
|
||||||
#!/usr/bin/python
|
|
||||||
#
|
|
||||||
# Script to update Smarty template files from all internal templates
|
|
||||||
# Copyright 2013 Zach Prezkuta
|
|
||||||
# Licensed under GPL v3
|
|
||||||
|
|
||||||
|
|
||||||
import os
|
|
||||||
import sys, getopt
|
|
||||||
import subprocess
|
|
||||||
|
|
||||||
|
|
||||||
def help(pname):
|
|
||||||
print "\nUsage:"
|
|
||||||
print "\t" + pname + " -h\n\n\t\t\tShow this help screen\n"
|
|
||||||
print "\t" + pname + " -p directory\n\n\t\t\tConvert all .tpl files in top-level\n\t\t\tFriendica directory to Smarty templates\n"
|
|
||||||
print "\t" + pname + "\n\n\t\t\tInteractive mode\n"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
|
||||||
# Main script
|
|
||||||
#
|
|
||||||
|
|
||||||
path = ''
|
|
||||||
|
|
||||||
try:
|
|
||||||
opts, args = getopt.getopt(sys.argv[1:], "hp:")
|
|
||||||
for opt, arg in opts:
|
|
||||||
if opt == '-h':
|
|
||||||
help(sys.argv[0])
|
|
||||||
sys.exit()
|
|
||||||
elif opt == '-p':
|
|
||||||
path = arg
|
|
||||||
except getopt.GetoptError:
|
|
||||||
help(sys.argv[0])
|
|
||||||
sys.exit(2)
|
|
||||||
|
|
||||||
if path == '':
|
|
||||||
path = raw_input('Path to top-level Friendica directory: ')
|
|
||||||
|
|
||||||
if path[-1:] != '/':
|
|
||||||
path = path + '/'
|
|
||||||
|
|
||||||
tplpaths = ['view/']
|
|
||||||
names = os.listdir(path + 'view/')
|
|
||||||
for name in names:
|
|
||||||
if os.path.isdir(path + 'view/' + name):
|
|
||||||
if name != 'smarty3' and name != 'theme':
|
|
||||||
tplpaths.append('view/' + name + '/')
|
|
||||||
|
|
||||||
names = os.listdir(path + 'view/theme/')
|
|
||||||
for name in names:
|
|
||||||
if os.path.isdir(path + 'view/theme/' + name):
|
|
||||||
tplpaths.append('view/theme/' + name + '/')
|
|
||||||
|
|
||||||
fnull = open(os.devnull, "w")
|
|
||||||
|
|
||||||
for tplpath in tplpaths:
|
|
||||||
print "Converting " + path + tplpath
|
|
||||||
subprocess.call(['python', path + 'util/friendica-to-smarty-tpl.py', '-p', path + tplpath], stdout = fnull)
|
|
||||||
|
|
||||||
fnull.close()
|
|
||||||
|
|
|
@ -48,9 +48,9 @@ sudo systemctl restart apache2
|
||||||
|
|
||||||
#Install mysql
|
#Install mysql
|
||||||
echo ">>> Installing Mysql"
|
echo ">>> Installing Mysql"
|
||||||
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password password root"
|
sudo debconf-set-selections <<< "mariadb-server mariadb-server/root_password password root"
|
||||||
sudo debconf-set-selections <<< "mysql-server mysql-server/root_password_again password root"
|
sudo debconf-set-selections <<< "mariadb-server mariadb-server/root_password_again password root"
|
||||||
sudo apt-get install -qq mysql-server
|
sudo apt-get install -qq mariadb-server
|
||||||
# enable remote access
|
# enable remote access
|
||||||
# setting the mysql bind-address to allow connections from everywhere
|
# setting the mysql bind-address to allow connections from everywhere
|
||||||
sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
|
sed -i "s/bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/my.cnf
|
||||||
|
@ -76,6 +76,9 @@ debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Local Only'
|
||||||
sudo apt-get install -y postfix mailutils libmailutils-dev
|
sudo apt-get install -y postfix mailutils libmailutils-dev
|
||||||
sudo echo -e "friendica1: vagrant\nfriendica2: vagrant\nfriendica3: vagrant\nfriendica4: vagrant\nfriendica5: vagrant" >> /etc/aliases && sudo newaliases
|
sudo echo -e "friendica1: vagrant\nfriendica2: vagrant\nfriendica3: vagrant\nfriendica4: vagrant\nfriendica5: vagrant" >> /etc/aliases && sudo newaliases
|
||||||
|
|
||||||
|
# Friendica needs git for fetching some dependencies
|
||||||
|
sudo apt-get install -y git
|
||||||
|
|
||||||
#make the vagrant directory the docroot
|
#make the vagrant directory the docroot
|
||||||
sudo rm -rf /var/www/
|
sudo rm -rf /var/www/
|
||||||
sudo ln -fs /vagrant /var/www
|
sudo ln -fs /vagrant /var/www
|
||||||
|
@ -83,10 +86,13 @@ sudo ln -fs /vagrant /var/www
|
||||||
# install deps with composer
|
# install deps with composer
|
||||||
sudo apt install unzip
|
sudo apt install unzip
|
||||||
cd /var/www
|
cd /var/www
|
||||||
php bin/composer.phar install
|
sudo -u www-data php bin/composer.phar install
|
||||||
|
|
||||||
# initial config file for friendica in vagrant
|
# initial config file for friendica in vagrant
|
||||||
cp /vagrant/util/htconfig.vagrant.php /vagrant/.htconfig.php
|
cp /vagrant/mods/local.config.vagrant.php /vagrant/config/local.config.php
|
||||||
|
|
||||||
|
# copy the .htaccess-dist file to .htaccess so that rewrite rules work
|
||||||
|
cp /vagrant/.htaccess-dist /vagrant/.htaccess
|
||||||
|
|
||||||
# create the friendica database
|
# create the friendica database
|
||||||
echo "create database friendica DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci" | $MYSQL -u root -proot
|
echo "create database friendica DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci" | $MYSQL -u root -proot
|
||||||
|
|
|
@ -45,10 +45,10 @@ case "$MODE" in
|
||||||
;;
|
;;
|
||||||
'default')
|
'default')
|
||||||
cd "$FULLPATH/.."
|
cd "$FULLPATH/.."
|
||||||
OUTFILE="$FULLPATH/../util/messages.po"
|
OUTFILE="$FULLPATH/../view/lang/C/messages.po"
|
||||||
FINDSTARTDIR="."
|
FINDSTARTDIR="."
|
||||||
# skip addon folder
|
# skip addon folder
|
||||||
FINDOPTS="( -wholename */addon -or -wholename */addons-extra -or -wholename */smarty3 ) -prune -o"
|
FINDOPTS="( -wholename */addon -or -wholename */addons -or -wholename */addons-extra -or -wholename */smarty3 ) -prune -o"
|
||||||
|
|
||||||
F9KVERSION=$(sed -n "s/.*'FRIENDICA_VERSION'.*'\([0-9.]*\)'.*/\1/p" ./boot.php);
|
F9KVERSION=$(sed -n "s/.*'FRIENDICA_VERSION'.*'\([0-9.]*\)'.*/\1/p" ./boot.php);
|
||||||
echo "Friendica version $F9KVERSION"
|
echo "Friendica version $F9KVERSION"
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
#!/usr/bin/php
|
||||||
|
#
|
||||||
|
# This script tries to connect to a database for a given interval
|
||||||
|
# Useful in case of installation e.g. to wait for the database to not generate unnecessary errors
|
||||||
|
#
|
||||||
|
# Usage: php bin/wait-for-connection {HOST} {PORT} [{TIMEOUT}]
|
||||||
|
|
||||||
|
<?php
|
||||||
|
$timeout = 60;
|
||||||
|
switch ($argc) {
|
||||||
|
case 4:
|
||||||
|
$timeout = (float)$argv[3];
|
||||||
|
case 3:
|
||||||
|
$host = $argv[1];
|
||||||
|
$port = (int)$argv[2];
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
fwrite(STDERR, 'Usage: '.$argv[0].' host port [timeout]'."\n");
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
if ($timeout < 0) {
|
||||||
|
fwrite(STDERR, 'Timeout must be greater than zero'."\n");
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
if ($port < 1) {
|
||||||
|
fwrite(STDERR, 'Port must be an integer greater than zero'."\n");
|
||||||
|
exit(2);
|
||||||
|
}
|
||||||
|
$socketTimeout = (float)ini_get('default_socket_timeout');
|
||||||
|
if ($socketTimeout > $timeout) {
|
||||||
|
$socketTimeout = $timeout;
|
||||||
|
}
|
||||||
|
$stopTime = time() + $timeout;
|
||||||
|
do {
|
||||||
|
$sock = @fsockopen($host, $port, $errno, $errstr, $socketTimeout);
|
||||||
|
if ($sock !== false) {
|
||||||
|
fclose($sock);
|
||||||
|
fwrite(STDOUT, "\n");
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
sleep(1);
|
||||||
|
fwrite(STDOUT, '.');
|
||||||
|
} while (time() < $stopTime);
|
||||||
|
fwrite(STDOUT, "\n");
|
||||||
|
exit(1);
|
|
@ -5,62 +5,60 @@
|
||||||
* @brief Starts the background processing
|
* @brief Starts the background processing
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Dice\Dice;
|
||||||
use Friendica\App;
|
use Friendica\App;
|
||||||
use Friendica\BaseObject;
|
use Friendica\BaseObject;
|
||||||
use Friendica\Core\Addon;
|
|
||||||
use Friendica\Core\Config;
|
use Friendica\Core\Config;
|
||||||
|
use Friendica\Core\Update;
|
||||||
use Friendica\Core\Worker;
|
use Friendica\Core\Worker;
|
||||||
|
use Psr\Log\LoggerInterface;
|
||||||
|
|
||||||
|
// Get options
|
||||||
|
$shortopts = 'sn';
|
||||||
|
$longopts = ['spawn', 'no_cron'];
|
||||||
|
$options = getopt($shortopts, $longopts);
|
||||||
|
|
||||||
// Ensure that worker.php is executed from the base path of the installation
|
// Ensure that worker.php is executed from the base path of the installation
|
||||||
if (!file_exists("boot.php") && (sizeof($_SERVER["argv"]) != 0)) {
|
if (!file_exists("boot.php") && (sizeof($_SERVER["argv"]) != 0)) {
|
||||||
$directory = dirname($_SERVER["argv"][0]);
|
$directory = dirname($_SERVER["argv"][0]);
|
||||||
|
|
||||||
if (substr($directory, 0, 1) != "/") {
|
if (substr($directory, 0, 1) != '/') {
|
||||||
$directory = $_SERVER["PWD"]."/".$directory;
|
$directory = $_SERVER["PWD"] . '/' . $directory;
|
||||||
}
|
}
|
||||||
$directory = realpath($directory."/..");
|
$directory = realpath($directory . '/..');
|
||||||
|
|
||||||
chdir($directory);
|
chdir($directory);
|
||||||
}
|
}
|
||||||
|
|
||||||
require_once "boot.php";
|
require dirname(__DIR__) . '/vendor/autoload.php';
|
||||||
require_once "include/dba.php";
|
|
||||||
|
|
||||||
$a = new App(dirname(__DIR__));
|
$dice = (new Dice())->addRules(include __DIR__ . '/../static/dependencies.config.php');
|
||||||
BaseObject::setApp($a);
|
$dice = $dice->addRule(LoggerInterface::class,['constructParams' => ['worker']]);
|
||||||
|
|
||||||
require_once ".htconfig.php";
|
BaseObject::setDependencyInjection($dice);
|
||||||
dba::connect($db_host, $db_user, $db_pass, $db_data);
|
$a = BaseObject::getApp();
|
||||||
unset($db_host, $db_user, $db_pass, $db_data);
|
|
||||||
|
|
||||||
Config::load();
|
|
||||||
|
|
||||||
// Check the database structure and possibly fixes it
|
// Check the database structure and possibly fixes it
|
||||||
check_db(true);
|
Update::check($a->getBasePath(), true, $a->getMode());
|
||||||
|
|
||||||
// Quit when in maintenance
|
// Quit when in maintenance
|
||||||
if (Config::get('system', 'maintenance', false, true)) {
|
if (!$a->getMode()->has(App\Mode::MAINTENANCEDISABLED)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$a->set_baseurl(Config::get('system', 'url'));
|
$a->setBaseURL(Config::get('system', 'url'));
|
||||||
|
|
||||||
Addon::loadHooks();
|
$spawn = array_key_exists('s', $options) || array_key_exists('spawn', $options);
|
||||||
|
|
||||||
$spawn = (($_SERVER["argc"] == 2) && ($_SERVER["argv"][1] == "spawn"));
|
|
||||||
|
|
||||||
if ($spawn) {
|
if ($spawn) {
|
||||||
Worker::spawnWorker();
|
Worker::spawnWorker();
|
||||||
killme();
|
exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
$run_cron = (($_SERVER["argc"] <= 1) || ($_SERVER["argv"][1] != "no_cron"));
|
$run_cron = !array_key_exists('n', $options) && !array_key_exists('no_cron', $options);
|
||||||
|
|
||||||
Worker::processQueue($run_cron);
|
Worker::processQueue($run_cron);
|
||||||
|
|
||||||
Worker::unclaimProcess();
|
Worker::unclaimProcess();
|
||||||
|
|
||||||
Worker::endProcess();
|
Worker::endProcess();
|
||||||
|
|
||||||
killme();
|
|
||||||
|
|
||||||
|
|
|
@ -13,45 +13,79 @@
|
||||||
"issues": "https://github.com/friendica/friendica/issues"
|
"issues": "https://github.com/friendica/friendica/issues"
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"php": ">5.6",
|
"php": ">=7.0",
|
||||||
|
"ext-ctype": "*",
|
||||||
|
"ext-curl": "*",
|
||||||
|
"ext-dom": "*",
|
||||||
|
"ext-fileinfo": "*",
|
||||||
|
"ext-gd": "*",
|
||||||
|
"ext-iconv": "*",
|
||||||
|
"ext-json": "*",
|
||||||
|
"ext-libxml": "*",
|
||||||
|
"ext-mbstring": "*",
|
||||||
|
"ext-openssl": "*",
|
||||||
|
"ext-simplexml": "*",
|
||||||
"ext-xml": "*",
|
"ext-xml": "*",
|
||||||
"asika/simple-console": "^1.0",
|
"asika/simple-console": "^1.0",
|
||||||
|
"bacon/bacon-qr-code": "^1.0",
|
||||||
"divineomega/password_exposed": "^2.4",
|
"divineomega/password_exposed": "^2.4",
|
||||||
"ezyang/htmlpurifier": "~4.7.0",
|
"ezyang/htmlpurifier": "~4.7.0",
|
||||||
"league/html-to-markdown": "~4.4.1",
|
"friendica/json-ld": "^1.0",
|
||||||
|
"league/html-to-markdown": "~4.8.0",
|
||||||
|
"level-2/dice": ">1.0",
|
||||||
"lightopenid/lightopenid": "dev-master",
|
"lightopenid/lightopenid": "dev-master",
|
||||||
"michelf/php-markdown": "^1.7",
|
"michelf/php-markdown": "^1.7",
|
||||||
"mobiledetect/mobiledetectlib": "2.8.*",
|
"mobiledetect/mobiledetectlib": "2.8.*",
|
||||||
"paragonie/random_compat": "^2.0",
|
"monolog/monolog": "^1.24",
|
||||||
"pear/Text_LanguageDetect": "1.*",
|
"nikic/fast-route": "^1.3",
|
||||||
"pear/Text_Highlighter": "dev-master",
|
"paragonie/hidden-string": "^1.0",
|
||||||
|
"pear/console_table": "^1.3",
|
||||||
|
"pear/text_languagedetect": "1.*",
|
||||||
|
"pragmarx/google2fa": "^5.0",
|
||||||
|
"pragmarx/recovery": "^0.1.0",
|
||||||
|
"psr/container": "^1.0",
|
||||||
"seld/cli-prompt": "^1.0",
|
"seld/cli-prompt": "^1.0",
|
||||||
"smarty/smarty": "^3.1",
|
"smarty/smarty": "^3.1",
|
||||||
"fxp/composer-asset-plugin": "~1.3",
|
"fxp/composer-asset-plugin": "~1.3",
|
||||||
"bower-asset/base64": "^1.0",
|
"bower-asset/base64": "^1.0",
|
||||||
"bower-asset/Chart-js": "^2.7",
|
"bower-asset/chart-js": "^2.7",
|
||||||
|
"bower-asset/dompurify": "^1.0",
|
||||||
"bower-asset/perfect-scrollbar": "^0.6",
|
"bower-asset/perfect-scrollbar": "^0.6",
|
||||||
"bower-asset/vue": "^2.5",
|
"bower-asset/vue": "^2.5",
|
||||||
"npm-asset/jquery": "^2.0",
|
"npm-asset/jquery": "^2.0",
|
||||||
"npm-asset/jquery-colorbox": "^1.6",
|
"npm-asset/jquery-colorbox": "^1.6",
|
||||||
"npm-asset/jquery-datetimepicker": "^2.4.0",
|
"npm-asset/jquery-datetimepicker": "^2.4.0",
|
||||||
"npm-asset/jgrowl": "^1.4",
|
"npm-asset/jgrowl": "^1.4",
|
||||||
|
"npm-asset/moment": "^2.20.1",
|
||||||
"npm-asset/fullcalendar": "^3.0.1",
|
"npm-asset/fullcalendar": "^3.0.1",
|
||||||
"npm-asset/cropperjs": "1.2.2"
|
"npm-asset/cropperjs": "1.2.2",
|
||||||
|
"npm-asset/imagesloaded": "4.1.4",
|
||||||
|
"npm-asset/typeahead.js": "^0.11.1",
|
||||||
|
"bower-asset/fork-awesome": "^1.1"
|
||||||
},
|
},
|
||||||
"repositories": [
|
"repositories": [
|
||||||
{
|
{
|
||||||
"type": "vcs",
|
"type": "vcs",
|
||||||
"url": "https://github.com/pear/Text_Highlighter"
|
"url": "https://git.friendi.ca/friendica/php-json-ld"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"autoload": {
|
"autoload": {
|
||||||
"psr-4": {
|
"psr-4": {
|
||||||
"Friendica\\": "src/"
|
"Friendica\\": "src/",
|
||||||
|
"Friendica\\Test\\": "tests/",
|
||||||
|
"Friendica\\Addon\\": "addon/"
|
||||||
},
|
},
|
||||||
"psr-0": {
|
"psr-0": {
|
||||||
"": "library/"
|
"": "library/"
|
||||||
}
|
},
|
||||||
|
"files": [
|
||||||
|
"include/conversation.php",
|
||||||
|
"include/dba.php",
|
||||||
|
"include/enotify.php",
|
||||||
|
"include/items.php",
|
||||||
|
"include/text.php",
|
||||||
|
"boot.php"
|
||||||
|
]
|
||||||
},
|
},
|
||||||
"config": {
|
"config": {
|
||||||
"autoloader-suffix": "Friendica",
|
"autoloader-suffix": "Friendica",
|
||||||
|
@ -66,7 +100,29 @@
|
||||||
},
|
},
|
||||||
"archive": {
|
"archive": {
|
||||||
"exclude": [
|
"exclude": [
|
||||||
"log", "cache", "/photo", "/proxy"
|
"/.*",
|
||||||
|
"/*file",
|
||||||
|
"!/.htaccess-dist",
|
||||||
|
"/tests",
|
||||||
|
"/*.xml",
|
||||||
|
"/composer.*",
|
||||||
|
"/log",
|
||||||
|
"/cache",
|
||||||
|
"/photo",
|
||||||
|
"/proxy",
|
||||||
|
"/addon",
|
||||||
|
"!/vendor",
|
||||||
|
"!/view/asset"
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
"require-dev": {
|
||||||
|
"phpdocumentor/reflection-docblock": "^3.0.2",
|
||||||
|
"phpunit/php-token-stream": "^1.4.2",
|
||||||
|
"mikey179/vfsstream": "^1.6",
|
||||||
|
"mockery/mockery": "^1.2",
|
||||||
|
"johnkary/phpunit-speedtrap": "1.1"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"test": "phpunit"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
// Addon configuration
|
||||||
|
|
||||||
|
// Copy this configuration file to addon.config.php and edit it if you want to configure addons, see below example for the twitter addon
|
||||||
|
|
||||||
|
return [
|
||||||
|
'twitter' => [
|
||||||
|
'consumerkey' => '1234567890',
|
||||||
|
'consumersecret' => 'ABCDEFGHIJKLMONPQRSTUVWXYZ',
|
||||||
|
],
|
||||||
|
];
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
// Local configuration
|
||||||
|
|
||||||
|
/* If automatic system installation fails:
|
||||||
|
*
|
||||||
|
* Copy this file to local.config.php
|
||||||
|
*
|
||||||
|
* Why local.config.php? Because it contains sensitive information which could
|
||||||
|
* give somebody complete control of your database. Apache's default
|
||||||
|
* configuration will interpret any .php file as a script and won't show the values
|
||||||
|
*
|
||||||
|
* Then set the following for your MySQL installation
|
||||||
|
*
|
||||||
|
* If you're unsure about what any of the config keys below do, please check the static/defaults.config.php file for
|
||||||
|
* detailed documentation of their data type and behavior.
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
'database' => [
|
||||||
|
'hostname' => 'localhost',
|
||||||
|
'username' => 'mysqlusername',
|
||||||
|
'password' => 'mysqlpassword',
|
||||||
|
'database' => 'mysqldatabasename',
|
||||||
|
'charset' => 'utf8mb4',
|
||||||
|
],
|
||||||
|
|
||||||
|
// ****************************************************************
|
||||||
|
// The configuration below will be overruled by the admin panel.
|
||||||
|
// Changes made below will only have an effect if the database does
|
||||||
|
// not contain any configuration for the friendica system.
|
||||||
|
// ****************************************************************
|
||||||
|
|
||||||
|
'config' => [
|
||||||
|
'admin_email' => '',
|
||||||
|
'sitename' => 'Friendica Social Network',
|
||||||
|
'register_policy' => \Friendica\Module\Register::OPEN,
|
||||||
|
'register_text' => '',
|
||||||
|
],
|
||||||
|
'system' => [
|
||||||
|
'default_timezone' => 'UTC',
|
||||||
|
'language' => 'en',
|
||||||
|
],
|
||||||
|
];
|
947
database.sql
|
@ -46,6 +46,7 @@ General
|
||||||
* i - Only show ignored contacts
|
* i - Only show ignored contacts
|
||||||
* y - Only show archived contacts
|
* y - Only show archived contacts
|
||||||
* h - Only show hidden contacts
|
* h - Only show hidden contacts
|
||||||
|
* e - Edit contact groups
|
||||||
|
|
||||||
../contacts (single contact view)
|
../contacts (single contact view)
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
@ -79,6 +80,7 @@ General
|
||||||
../settings
|
../settings
|
||||||
---------
|
---------
|
||||||
* o - Account
|
* o - Account
|
||||||
|
* p - Profiles
|
||||||
* t - Additional features
|
* t - Additional features
|
||||||
* w - Social Networks
|
* w - Social Networks
|
||||||
* l - Addons
|
* l - Addons
|
||||||
|
|
|
@ -0,0 +1,204 @@
|
||||||
|
Friendica Storage Backend Addon development
|
||||||
|
===========================================
|
||||||
|
|
||||||
|
* [Home](help)
|
||||||
|
|
||||||
|
Storage backends can be added via addons.
|
||||||
|
A storage backend is implemented as a class, and the plugin register the class to make it avaiable to the system.
|
||||||
|
|
||||||
|
## The Storage Backend Class
|
||||||
|
|
||||||
|
The class must live in `Friendica\Addon\youraddonname` namespace, where `youraddonname` the folder name of your addon.
|
||||||
|
|
||||||
|
The class must implement `Friendica\Model\Storage\IStorage` interface. All method in the interface must be implemented:
|
||||||
|
|
||||||
|
namespace Friendica\Model\Storage;
|
||||||
|
|
||||||
|
```php
|
||||||
|
interface IStorage
|
||||||
|
{
|
||||||
|
public static function get($ref);
|
||||||
|
public static function put($data, $ref = "");
|
||||||
|
public static function delete($ref);
|
||||||
|
public static function getOptions();
|
||||||
|
public static function saveOptions($data);
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
- `get($ref)` returns data pointed by `$ref`
|
||||||
|
- `put($data, $ref)` saves data in `$data` to position `$ref`, or a new position if `$ref` is empty.
|
||||||
|
- `delete($ref)` delete data pointed by `$ref`
|
||||||
|
|
||||||
|
Each storage backend can have options the admin can set in admin page.
|
||||||
|
|
||||||
|
- `getOptions()` returns an array with details about each option to build the interface.
|
||||||
|
- `saveOptions($data)` get `$data` from admin page, validate it and save it.
|
||||||
|
|
||||||
|
The array returned by `getOptions()` is defined as:
|
||||||
|
|
||||||
|
[
|
||||||
|
'option1name' => [ ..info.. ],
|
||||||
|
'option2name' => [ ..info.. ],
|
||||||
|
...
|
||||||
|
]
|
||||||
|
|
||||||
|
An empty array can be returned if backend doesn't have any options.
|
||||||
|
|
||||||
|
The info array for each option is defined as:
|
||||||
|
|
||||||
|
[
|
||||||
|
'type',
|
||||||
|
|
||||||
|
define the field used in form, and the type of data.
|
||||||
|
one of 'checkbox', 'combobox', 'custom', 'datetime', 'input', 'intcheckbox', 'password', 'radio', 'richtext', 'select', 'select_raw', 'textarea', 'yesno'
|
||||||
|
|
||||||
|
'label',
|
||||||
|
|
||||||
|
Translatable label of the field. This label will be shown in admin page
|
||||||
|
|
||||||
|
value,
|
||||||
|
|
||||||
|
Current value of the option
|
||||||
|
|
||||||
|
'help text',
|
||||||
|
|
||||||
|
Translatable description for the field. Will be shown in admin page
|
||||||
|
|
||||||
|
extra data
|
||||||
|
|
||||||
|
Optional. Depends on which 'type' this option is:
|
||||||
|
|
||||||
|
- 'select': array `[ value => label ]` of choices
|
||||||
|
- 'intcheckbox': value of input element
|
||||||
|
- 'select_raw': prebuild html string of `<option >` tags
|
||||||
|
- 'yesno': array `[ 'label no', 'label yes']`
|
||||||
|
|
||||||
|
Each label should be translatable
|
||||||
|
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
See doxygen documentation of `IStorage` interface for details about each method.
|
||||||
|
|
||||||
|
## Register a storage backend class
|
||||||
|
|
||||||
|
Each backend must be registered in the system when the plugin is installed, to be aviable.
|
||||||
|
|
||||||
|
`Friendica\Core\StorageManager::register($name, $class)` is used to register the backend class.
|
||||||
|
The `$name` must be univocal and will be shown to admin.
|
||||||
|
|
||||||
|
When the plugin is uninstalled, registered backends must be unregistered using
|
||||||
|
`Friendica\Core\StorageManager::unregister($class)`.
|
||||||
|
|
||||||
|
## Example
|
||||||
|
|
||||||
|
Here an hypotetical addon which register an unusefull storage backend.
|
||||||
|
Let's call it `samplestorage`.
|
||||||
|
|
||||||
|
This backend will discard all data we try to save and will return always the same image when we ask for some data.
|
||||||
|
The image returned can be set by the administrator in admin page.
|
||||||
|
|
||||||
|
First, the backend class.
|
||||||
|
The file will be `addon/samplestorage/SampleStorageBackend.php`:
|
||||||
|
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
namespace Friendica\Addon\samplestorage;
|
||||||
|
|
||||||
|
use Friendica\Model\Storage\IStorage;
|
||||||
|
|
||||||
|
use Friendica\Core\Config;
|
||||||
|
use Friendica\Core\L10n;
|
||||||
|
|
||||||
|
class SampleStorageBackend implements IStorage
|
||||||
|
{
|
||||||
|
public static function get($ref)
|
||||||
|
{
|
||||||
|
// we return alwais the same image data. Which file we load is defined by
|
||||||
|
// a config key
|
||||||
|
$filename = Config::get("storage", "samplestorage", "sample.jpg");
|
||||||
|
return file_get_contents($filename);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function put($data, $ref = "")
|
||||||
|
{
|
||||||
|
if ($ref === "") {
|
||||||
|
$ref = "sample";
|
||||||
|
}
|
||||||
|
// we don't save $data !
|
||||||
|
return $ref;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function delete($ref)
|
||||||
|
{
|
||||||
|
// we pretend to delete the data
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function getOptions()
|
||||||
|
{
|
||||||
|
$filename = Config::get("storage", "samplestorage", "sample.jpg");
|
||||||
|
return [
|
||||||
|
"filename" => [
|
||||||
|
"input", // will use a simple text input
|
||||||
|
L10n::t("The file to return"), // the label
|
||||||
|
$filename, // the current value
|
||||||
|
L10n::t("Enter the path to a file"), // the help text
|
||||||
|
// no extra data for "input" type..
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function saveOptions($data)
|
||||||
|
{
|
||||||
|
// the keys in $data are the same keys we defined in getOptions()
|
||||||
|
$newfilename = trim($data["filename"]);
|
||||||
|
|
||||||
|
// this function should always validate the data.
|
||||||
|
// in this example we check if file exists
|
||||||
|
if (!file_exists($newfilename)) {
|
||||||
|
// in case of error we return an array with
|
||||||
|
// ["optionname" => "error message"]
|
||||||
|
return ["filename" => "The file doesn't exists"];
|
||||||
|
}
|
||||||
|
|
||||||
|
Config::set("storage", "samplestorage", $newfilename);
|
||||||
|
|
||||||
|
// no errors, return empty array
|
||||||
|
return [];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
Now the plugin main file. Here we register and unregister the backend class.
|
||||||
|
|
||||||
|
The file is `addon/samplestorage/samplestorage.php`
|
||||||
|
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Name: Sample Storage Addon
|
||||||
|
* Description: A sample addon which implements an unusefull storage backend
|
||||||
|
* Version: 1.0.0
|
||||||
|
* Author: Alice <https://alice.social/~alice>
|
||||||
|
*/
|
||||||
|
|
||||||
|
use Friendica\Core\StorageManager;
|
||||||
|
use Friendica\Addon\samplestorage\SampleStorageBackend;
|
||||||
|
|
||||||
|
function samplestorage_install()
|
||||||
|
{
|
||||||
|
// on addon install, we register our class with name "Sample Storage".
|
||||||
|
// note: we use `::class` property, which returns full class name as string
|
||||||
|
// this save us the problem of correctly escape backslashes in class name
|
||||||
|
StorageManager::register("Sample Storage", SampleStorageBackend::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
function samplestorage_unistall()
|
||||||
|
{
|
||||||
|
// when the plugin is uninstalled, we unregister the backend.
|
||||||
|
StorageManager::unregister("Sample Storage");
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
845
doc/Addons.md
|
@ -68,6 +68,10 @@ table.bbcodes > * > tr > th {
|
||||||
<td>[img]https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg[/img]</td>
|
<td>[img]https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg[/img]</td>
|
||||||
<td><img src="https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg" alt="Immagine/foto"></td>
|
<td><img src="https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg" alt="Immagine/foto"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>[img=https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg]The Friendica Logo[/img]</td>
|
||||||
|
<td><img src="https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg" alt="The Friendica Logo"></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>[img=64x32]https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg[/img]<br>
|
<td>[img=64x32]https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg[/img]<br>
|
||||||
<br>Note: provided height is simply discarded.</td>
|
<br>Note: provided height is simply discarded.</td>
|
||||||
|
@ -598,6 +602,9 @@ While taking pictures in the woods I had a really strange encounter...</td>
|
||||||
The [abstract] element is not working with connectors where we post HTML directly, like Tumblr, Wordpress or Pump.io.
|
The [abstract] element is not working with connectors where we post HTML directly, like Tumblr, Wordpress or Pump.io.
|
||||||
For the native connections--that is to e.g. Friendica, Hubzilla, Diaspora or GNU Social--the full posting is used and the contacts instance will display the posting as desired.
|
For the native connections--that is to e.g. Friendica, Hubzilla, Diaspora or GNU Social--the full posting is used and the contacts instance will display the posting as desired.
|
||||||
|
|
||||||
|
For postings that are delivered via ActivityPub, the text from the abstract is placed in the summary field.
|
||||||
|
On Mastodon this field is used for the content warning.
|
||||||
|
|
||||||
## Special
|
## Special
|
||||||
|
|
||||||
<table class="bbcodes">
|
<table class="bbcodes">
|
||||||
|
|
|
@ -0,0 +1,326 @@
|
||||||
|
Config values that can only be set in config/local.config.php
|
||||||
|
==========================================================
|
||||||
|
|
||||||
|
* [Home](help)
|
||||||
|
|
||||||
|
Friendica's configuration is done in two places: in PHP array configuration files and in the `config` database table.
|
||||||
|
Database config values overwrite the same file config values.
|
||||||
|
|
||||||
|
## File configuration
|
||||||
|
|
||||||
|
The configuration format for file configuration is an array returned from a PHP file.
|
||||||
|
This prevents your webserver from displaying your private configuration. It interprets the configuration files and displays nothing.
|
||||||
|
|
||||||
|
A typical configuration file looks like this:
|
||||||
|
|
||||||
|
```php
|
||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Comment block
|
||||||
|
*/
|
||||||
|
|
||||||
|
return [
|
||||||
|
'section1' => [
|
||||||
|
// Comment line
|
||||||
|
'key' => 'value',
|
||||||
|
],
|
||||||
|
'section2' => [
|
||||||
|
'array' => ['value0', 'value1', 'value2'],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
```
|
||||||
|
|
||||||
|
### Configuration location
|
||||||
|
|
||||||
|
The `config` directory holds key configuration files and can have different config files.
|
||||||
|
All of them have to end with `.config.php` and must not include `-sample` in their name.
|
||||||
|
|
||||||
|
Some examples of common known configuration files:
|
||||||
|
- `local.config.php` holds the current node custom configuration.
|
||||||
|
- `addon.config.php` is optional and holds the custom configuration for specific addons.
|
||||||
|
|
||||||
|
Addons can define their own default configuration values in `addon/[addon]/config/[addon].config.php` which is loaded when the addon is activated.
|
||||||
|
|
||||||
|
### Static Configuration location
|
||||||
|
|
||||||
|
The `static` directory holds the codebase default configurations files.
|
||||||
|
They must not be changed by users, because they can get changed from release to release.
|
||||||
|
|
||||||
|
Currently, the following configurations are included:
|
||||||
|
- `defaults.config.php` holds the default values for all the configuration keys that can only be set in `local.config.php`.
|
||||||
|
- `settings.config.php` holds the default values for some configuration keys that are set through the admin settings page.
|
||||||
|
|
||||||
|
#### Migrating from .htconfig.php to config/local.config.php
|
||||||
|
|
||||||
|
The legacy `.htconfig.php` configuration file is still supported, but is deprecated and will be removed in a subsequent Friendica release.
|
||||||
|
|
||||||
|
The migration is pretty straightforward:
|
||||||
|
If you had any addon-specific configuration in your `.htconfig.php`, just copy `config/addon-sample.config.php` to `config/addon.config.php` and move your configuration values.
|
||||||
|
Afterwards, copy `config/local-sample.config.php` to `config/local.config.php`, move the remaining configuration values to it according to the following conversion chart, then rename your `.htconfig.php` to check your node is working as expected before deleting it.
|
||||||
|
|
||||||
|
<style>
|
||||||
|
table.config {
|
||||||
|
margin: 1em 0;
|
||||||
|
background-color: #f9f9f9;
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
border-collapse: collapse;
|
||||||
|
color: #000;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
table.config > tr > th,
|
||||||
|
table.config > tr > td,
|
||||||
|
table.config > * > tr > th,
|
||||||
|
table.config > * > tr > td {
|
||||||
|
border: 1px solid #aaa;
|
||||||
|
padding: 0.2em 0.4em
|
||||||
|
}
|
||||||
|
|
||||||
|
table.config > tr > th,
|
||||||
|
table.config > * > tr > th {
|
||||||
|
background-color: #f2f2f2;
|
||||||
|
text-align: center;
|
||||||
|
width: 50%
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<table class="config">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>.htconfig.php</th>
|
||||||
|
<th>config/local.config.php</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
$db_host = 'localhost';
|
||||||
|
$db_user = 'mysqlusername';
|
||||||
|
$db_pass = 'mysqlpassword';
|
||||||
|
$db_data = 'mysqldatabasename';
|
||||||
|
$a->config["system"]["db_charset"] = 'utf8mb4';
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'database' => [
|
||||||
|
'hostname' => 'localhost',
|
||||||
|
'username' => 'mysqlusername',
|
||||||
|
'password' => 'mysqlpassword',
|
||||||
|
'database' => 'database',
|
||||||
|
'charset' => 'utf8mb4',
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
$a->config["section"]["key"] = "value";
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'section' => [
|
||||||
|
'key' => 'value',
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
$a->config["section"]["key"] = array(
|
||||||
|
"value1",
|
||||||
|
"value2",
|
||||||
|
"value3"
|
||||||
|
);
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'section' => [
|
||||||
|
'key' => ['value1', 'value2', 'value3'],
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
$a->config["key"] = "value";
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'config' => [
|
||||||
|
'key' => 'value',
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
$a->config['register_policy'] = REGISTER_CLOSED;
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'config' => [
|
||||||
|
'register_policy' => \Friendica\Module\Register::CLOSED,
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
$a->path = "value";
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'system' => [
|
||||||
|
'urlpath' => 'value',
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
$default_timezone = "value";
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'system' => [
|
||||||
|
'default_timezone' => 'value',
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
$pidfile = "value";
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'system' => [
|
||||||
|
'pidfile' => 'value',
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
$lang = "value";
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'system' => [
|
||||||
|
'language' => 'value',
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
#### Migrating from config/local.ini.php to config/local.config.php
|
||||||
|
|
||||||
|
The legacy `config/local.ini.php` configuration file is still supported, but is deprecated and will be removed in a subsequent Friendica release.
|
||||||
|
|
||||||
|
The migration is pretty straightforward:
|
||||||
|
If you had any addon-specific configuration in your `config/addon.ini.php`, just copy `config/addon-sample.config.php` to `config/addon.config.php` and move your configuration values.
|
||||||
|
Afterwards, copy `config/local-sample.config.php` to `config/local.config.php`, move the remaining configuration values to it according to the following conversion chart, then rename your `config/local.ini.php` file to check your node is working as expected before deleting it.
|
||||||
|
|
||||||
|
<table class="config">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>config/local.ini.php</th>
|
||||||
|
<th>config/local.config.php</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
[database]
|
||||||
|
hostname = localhost
|
||||||
|
username = mysqlusername
|
||||||
|
password = mysqlpassword
|
||||||
|
database = mysqldatabasename
|
||||||
|
charset = utf8mb4
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'database' => [
|
||||||
|
'hostname' => 'localhost',
|
||||||
|
'username' => 'mysqlusername',
|
||||||
|
'password' => 'mysqlpassword',
|
||||||
|
'database' => 'database',
|
||||||
|
'charset' => 'utf8mb4',
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
[section]
|
||||||
|
key = value
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'section' => [
|
||||||
|
'key' => 'value',
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
[config]
|
||||||
|
register_policty = REGISTER_CLOSED
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'config' => [
|
||||||
|
'register_policy' => \Friendica\Module\Register::CLOSED,
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><pre>
|
||||||
|
[section]
|
||||||
|
key[] = value1
|
||||||
|
key[] = value2
|
||||||
|
key[] = value3
|
||||||
|
</pre></td>
|
||||||
|
<td><pre>
|
||||||
|
'section' => [
|
||||||
|
'key' => ['value1', 'value2', 'value3'],
|
||||||
|
],
|
||||||
|
</pre></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Database Settings
|
||||||
|
|
||||||
|
The configuration variables database.hostname, database.username, database.password, database.database and database.charset are holding your credentials for the database connection.
|
||||||
|
If you need to specify a port to access the database, you can do so by appending ":portnumber" to the database.hostname variable.
|
||||||
|
|
||||||
|
'database' => [
|
||||||
|
'hostname' => 'your.mysqlhost.com:123456',
|
||||||
|
]
|
||||||
|
|
||||||
|
If all of the following environment variables are set, Friendica will use them instead of the previously configured variables for the db:
|
||||||
|
|
||||||
|
MYSQL_HOST
|
||||||
|
MYSQL_PORT
|
||||||
|
MYSQL_USERNAME
|
||||||
|
MYSQL_PASSWORD
|
||||||
|
MYSQL_DATABASE
|
||||||
|
|
||||||
|
## Config values that can only be set in config/local.config.php
|
||||||
|
|
||||||
|
There are some config values that haven't found their way into the administration page.
|
||||||
|
This has several reasons.
|
||||||
|
Maybe they are part of a current development that isn't considered stable and will be added later in the administration page when it is considered safe.
|
||||||
|
Or it triggers something that isn't expected to be of public interest.
|
||||||
|
Or it is for testing purposes only.
|
||||||
|
|
||||||
|
**Attention:** Please be warned that you shouldn't use one of these values without the knowledge what it could trigger.
|
||||||
|
Especially don't do that with undocumented values.
|
||||||
|
|
||||||
|
These configurations keys and their default value are listed in `static/defaults.config.php` and should be overwritten in `config/local.config.php`.
|
||||||
|
|
||||||
|
## Administrator Options
|
||||||
|
|
||||||
|
Enabling the admin panel for an account, and thus making the account holder admin of the node, is done by setting the variable
|
||||||
|
|
||||||
|
'config' => [
|
||||||
|
'admin_email' => 'someone@example.com',
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
Where you have to match the email address used for the account with the one you enter to the `config/local.config.php` file.
|
||||||
|
If more then one account should be able to access the admin panel, separate the email addresses with a comma.
|
||||||
|
|
||||||
|
'config' => [
|
||||||
|
'admin_email' => 'someone@example.com,someoneelse@example.com',
|
||||||
|
]
|
||||||
|
|
||||||
|
If you want to have a more personalized closing line for the notification emails you can set a variable for the `admin_name`.
|
||||||
|
|
||||||
|
'config' => [
|
||||||
|
'admin_name' => 'Marvin',
|
||||||
|
]
|
|
@ -33,7 +33,7 @@ If you don't want to translate the UI, or it is already done to your satisfactio
|
||||||
Are you good at designing things?
|
Are you good at designing things?
|
||||||
If you have seen Friendica you probably have ideas to improve it, haven't you?
|
If you have seen Friendica you probably have ideas to improve it, haven't you?
|
||||||
|
|
||||||
* If you would like to work with us on enhancing the user interface, please join the [UX Watchdogs forum](https://fc.oscp.info/profile/ux-watchdogs)
|
* If you would like to work with us on enhancing the user interface, please join the [forum for Friendica development](https://forum.friendi.ca/profile/developers).
|
||||||
* Make plans for a better Friendica interface design and share them with us.
|
* Make plans for a better Friendica interface design and share them with us.
|
||||||
* Tell us if you are able to realize your ideas or what kind of help you need.
|
* Tell us if you are able to realize your ideas or what kind of help you need.
|
||||||
We can't promise we have the right skills in the group but we'll try.
|
We can't promise we have the right skills in the group but we'll try.
|
||||||
|
@ -81,6 +81,7 @@ Here's a few primers if you are new to Friendica or to the PSR-2 coding standard
|
||||||
* No closing PHP tag
|
* No closing PHP tag
|
||||||
* No trailing spaces
|
* No trailing spaces
|
||||||
* Array declarations use the new square brackets syntax
|
* Array declarations use the new square brackets syntax
|
||||||
|
* Quoting style is single quotes by default, except for needed string interpolation, SQL query strings by convention and comments that should stay in natural language.
|
||||||
|
|
||||||
Don't worry, you don't have to know by heart the PSR-2 coding standards to start contributing to Friendica.
|
Don't worry, you don't have to know by heart the PSR-2 coding standards to start contributing to Friendica.
|
||||||
There are a few tools you can use to check or fix your files before you commit.
|
There are a few tools you can use to check or fix your files before you commit.
|
||||||
|
@ -111,10 +112,10 @@ If the command-line tools `diff` and `patch` are unavailabe for you, `phpcbf` ca
|
||||||
### Code documentation
|
### Code documentation
|
||||||
|
|
||||||
If you are interested in having the documentation of the Friendica code outside of the code files, you can use [Doxygen](http://doxygen.org) to generate it.
|
If you are interested in having the documentation of the Friendica code outside of the code files, you can use [Doxygen](http://doxygen.org) to generate it.
|
||||||
The configuration file for Doxygen is located in the `util` directory of the project sources.
|
The configuration file for Doxygen is located in the base directory of the project sources.
|
||||||
Run
|
Run
|
||||||
|
|
||||||
$> doxygen util/Doxyfile
|
$> doxygen Doxyfile
|
||||||
|
|
||||||
to generate the files which will be located in the `doc/html` subdirectory in the Friendica directory.
|
to generate the files which will be located in the `doc/html` subdirectory in the Friendica directory.
|
||||||
You can browse these files with any browser.
|
You can browse these files with any browser.
|
||||||
|
@ -149,7 +150,7 @@ As Friendica is using a [Twitter/GNU Social compatible API](help/api) any of the
|
||||||
Furthermore there are several client projects, especially for use with Friendica.
|
Furthermore there are several client projects, especially for use with Friendica.
|
||||||
If you are interested in improving those clients, please contact the developers of the clients directly.
|
If you are interested in improving those clients, please contact the developers of the clients directly.
|
||||||
|
|
||||||
* Android / LinageOS: **Friendiqa** [src](https://github.com/LubuWest/Friendiqa) developed by [Marco R](https://freunde.ma-nic.de/profile/marco)
|
* Android / LinageOS: **Friendiqa** [src](https://git.friendi.ca/lubuwest/Friendiqa)/[Google Play](https://play.google.com/store/apps/details?id=org.qtproject.friendiqa) developed by [Marco R](https://freunde.ma-nic.de/profile/marco)
|
||||||
* iOS: *currently no client*
|
* iOS: *currently no client*
|
||||||
* SailfishOS: **Friendiy** [src](https://kirgroup.com/projects/fabrixxm/harbour-friendly) - developed by [Fabio](https://kirgroup.com/profile/fabrixxm/?tab=profile)
|
* SailfishOS: **Friendiy** [src](https://kirgroup.com/projects/fabrixxm/harbour-friendly) - developed by [Fabio](https://kirgroup.com/profile/fabrixxm/?tab=profile)
|
||||||
* Windows: **Friendica Mobile** for Windows versions [before 8.1](http://windowsphone.com/s?appid=e3257730-c9cf-4935-9620-5261e3505c67) and [Windows 10](https://www.microsoft.com/store/apps/9nblggh0fhmn) - developed by [Gerhard Seeber](http://mozartweg.dyndns.org/friendica/profile/gerhard/?tab=profile)
|
* Windows: **Friendica Mobile** for Windows versions [before 8.1](http://windowsphone.com/s?appid=e3257730-c9cf-4935-9620-5261e3505c67) and [Windows 10](https://www.microsoft.com/store/apps/9nblggh0fhmn) - developed by [Gerhard Seeber](http://mozartweg.dyndns.org/friendica/profile/gerhard/?tab=profile)
|
||||||
|
|
55
doc/FAQ.md
|
@ -8,6 +8,7 @@ User
|
||||||
* **[Why do I getting warnings about certificates?](help/FAQ#ssl)**
|
* **[Why do I getting warnings about certificates?](help/FAQ#ssl)**
|
||||||
* **[How can I upload images, files, links, videos and sound files to posts?](help/FAQ#upload)**
|
* **[How can I upload images, files, links, videos and sound files to posts?](help/FAQ#upload)**
|
||||||
* **[Is it possible to have different avatars per profile?](help/FAQ#avatars)**
|
* **[Is it possible to have different avatars per profile?](help/FAQ#avatars)**
|
||||||
|
* **[How can I view Friendica in a certain language?](help/FAQ#language)**
|
||||||
* **[What is the difference between blocked|ignored|archived|hidden contacts?](help/FAQ#contacts)**
|
* **[What is the difference between blocked|ignored|archived|hidden contacts?](help/FAQ#contacts)**
|
||||||
* **[What happens when an account is removed? Is it truly deleted?](help/FAQ#removed)**
|
* **[What happens when an account is removed? Is it truly deleted?](help/FAQ#removed)**
|
||||||
* **[Can I subscribe to a hashtag?](help/FAQ#hashtag)**
|
* **[Can I subscribe to a hashtag?](help/FAQ#hashtag)**
|
||||||
|
@ -75,6 +76,33 @@ On your Edit/Manage Profiles page, you will find a "change profile photo" link.
|
||||||
Clicking this will take you to a page where you can upload a photograph and select which profile it will be associated with.
|
Clicking this will take you to a page where you can upload a photograph and select which profile it will be associated with.
|
||||||
To avoid privacy leakage, we only display the photograph associated with your default profile as the avatar in your posts.
|
To avoid privacy leakage, we only display the photograph associated with your default profile as the avatar in your posts.
|
||||||
|
|
||||||
|
<a name="language"></a>
|
||||||
|
### How can I view Friendica in a certain language?
|
||||||
|
|
||||||
|
You can do this by adding the `lang` parameter to the url in your url bar.
|
||||||
|
The data in the parameter is a [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) code.
|
||||||
|
A question mark is required for the separation between url and parameters.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
https://social.example.com/profile/example
|
||||||
|
|
||||||
|
in German:
|
||||||
|
|
||||||
|
https://social.example.com/profile/example?lang=de.
|
||||||
|
|
||||||
|
If the question mark is already in the url you need to do it using a ampersand.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
https://social.example.com/profile/example?tab=profile
|
||||||
|
|
||||||
|
in German:
|
||||||
|
|
||||||
|
https://social.example.com/profile/example?tab=profile&lang=de.
|
||||||
|
|
||||||
|
When a certain language is forced, the language remains until session is closed.
|
||||||
|
|
||||||
<a name="contacts"></a>
|
<a name="contacts"></a>
|
||||||
### What is the difference between blocked|ignored|archived|hidden contacts?
|
### What is the difference between blocked|ignored|archived|hidden contacts?
|
||||||
|
|
||||||
|
@ -98,16 +126,15 @@ A **hidden contact** will not be displayed in any "friend list" (except to you).
|
||||||
However a hidden contact will appear normally in conversations and this may expose his/her hidden status to anybody who can see the conversation.
|
However a hidden contact will appear normally in conversations and this may expose his/her hidden status to anybody who can see the conversation.
|
||||||
|
|
||||||
<a name="removed"></a>
|
<a name="removed"></a>
|
||||||
### What happens when an account is removed? Is it truly deleted?
|
### What happens when an account is removed?
|
||||||
|
|
||||||
If you delete your account, we will immediately remove all your content on **your** server.
|
If you remove your account, it will be scheduled for permanent deletion in *seven days*.
|
||||||
|
As soon as you activate the deletion process you won't be able to login any more.
|
||||||
|
Only the administrator of your node can halt this process prior to permanent deletion.
|
||||||
|
|
||||||
Then Friendica issues requests to all your contacts to remove you.
|
After the elapsed time of seven days, all your posts, messages, photos, and personal information stored on your node will be deleted.
|
||||||
This will also remove you from the global directory.
|
Your node will also issue removal requests to all your contacts; this will also remove your profile from the global directory if you are listed.
|
||||||
Doing this requires your account and profile still to be "partially" available for up to 24 hours in order to establish contact with all your friends.
|
Your username cannot be reissued for future sign-ups for security reasons.
|
||||||
We can block it in several ways so that it appears empty and all profile information erased, but will then wait for 24 hours (or after all of your contacts have been notified) before we can physically remove it.
|
|
||||||
|
|
||||||
After that, your account is deleted.
|
|
||||||
|
|
||||||
<a name="hashtag"></a>
|
<a name="hashtag"></a>
|
||||||
### Can I follow a hashtag?
|
### Can I follow a hashtag?
|
||||||
|
@ -140,11 +167,13 @@ Example: Friendica Support
|
||||||
<a name="clients"></a>
|
<a name="clients"></a>
|
||||||
### Are there any clients for friendica I can use?
|
### Are there any clients for friendica I can use?
|
||||||
|
|
||||||
Friendica is using a [Twitter/GNU Social compatible API](help/api), which means you can use any Twitter/GNU Social client for your plattform as long as you can change the API path in its settings.
|
Friendica is using a [Twitter/GNU Social compatible API](help/api), which means you can use any Twitter/GNU Social client for your platform as long as you can change the API path in its settings.
|
||||||
Here is a list of known working clients:
|
Here is a list of known working clients:
|
||||||
|
|
||||||
* Android
|
* Android
|
||||||
* [Friendiqa](https://github.com/lubuwest/friendiqa) (available in Google Playstore or from a binary repository you can add to [F-Droid](https://freunde.ma-nic.de/display/3e98eba8185a13c5bdbf3d1539646854))
|
* [Friendiqa](https://git.friendi.ca/lubuwest/Friendiqa) (available in Google Playstore or from a binary repository you can add to [F-Droid](https://freunde.ma-nic.de/display/3e98eba8185a13c5bdbf3d1539646854))
|
||||||
|
* [Fedilab](https://gitlab.com/tom79/mastalab) (available in F-Droid and Google stores)
|
||||||
|
* [DiCa](https://dica.mixi.cool/)
|
||||||
* AndStatus
|
* AndStatus
|
||||||
* Twidere
|
* Twidere
|
||||||
* Mustard and Mustard-Mod
|
* Mustard and Mustard-Mod
|
||||||
|
@ -187,7 +216,7 @@ No, this function is no longer supported as of Friendica 3.3 onwards.
|
||||||
<a name="sources"></a>
|
<a name="sources"></a>
|
||||||
### Where can I find the source code of friendica, addons and themes?
|
### Where can I find the source code of friendica, addons and themes?
|
||||||
|
|
||||||
You can find the main respository [here](https://github.com/friendica/friendica).
|
You can find the main repository [here](https://github.com/friendica/friendica).
|
||||||
There you will always find the current stable version of friendica.
|
There you will always find the current stable version of friendica.
|
||||||
|
|
||||||
Addons are listed at [this page](https://github.com/friendica/friendica-addons).
|
Addons are listed at [this page](https://github.com/friendica/friendica-addons).
|
||||||
|
@ -197,14 +226,14 @@ If you are searching for new themes, you can find them at [Friendica-Themes.com]
|
||||||
<a name="adminaccount1"></a>
|
<a name="adminaccount1"></a>
|
||||||
### I've changed my email address now the admin panel is gone?
|
### I've changed my email address now the admin panel is gone?
|
||||||
|
|
||||||
Have a look into your <tt>.htconfig.php</tt> and fix your email address there.
|
Have a look into your <tt>config/local.config.php</tt> and fix your email address there.
|
||||||
|
|
||||||
<a name="adminaccount2"></a>
|
<a name="adminaccount2"></a>
|
||||||
### Can there be more then one admin for a node?
|
### Can there be more then one admin for a node?
|
||||||
|
|
||||||
Yes.
|
Yes.
|
||||||
You just have to list more then one email address in the
|
You just have to list more then one email address in the
|
||||||
<tt>.htconfig.php</tt> file.
|
<tt>config/local.config.php</tt> file.
|
||||||
The listed emails need to be separated by a comma.
|
The listed emails need to be separated by a comma.
|
||||||
|
|
||||||
<a name="dbupdate">
|
<a name="dbupdate">
|
||||||
|
|
|
@ -40,7 +40,7 @@ You are not required to do this, but the alternative is to log out and log back
|
||||||
This could get cumbersome if you manage several different forums/identities.
|
This could get cumbersome if you manage several different forums/identities.
|
||||||
|
|
||||||
You may also appoint a delegate to manage your forum.
|
You may also appoint a delegate to manage your forum.
|
||||||
Do this by visiting the [Delegation Setup Page](delegate).
|
Do this by visiting the [Delegation Setup Page](settings/delegation).
|
||||||
This will provide you with a list of contacts on this system under "Potential Delegates".
|
This will provide you with a list of contacts on this system under "Potential Delegates".
|
||||||
Selecting one or more persons will give them access to manage your forum.
|
Selecting one or more persons will give them access to manage your forum.
|
||||||
They will be able to edit contacts, profiles, and all content for this account/page.
|
They will be able to edit contacts, profiles, and all content for this account/page.
|
||||||
|
|
|
@ -32,8 +32,9 @@ Friendica Documentation and Resources
|
||||||
* [Installing Connectors (Twitter/GNU Social)](help/Installing-Connectors)
|
* [Installing Connectors (Twitter/GNU Social)](help/Installing-Connectors)
|
||||||
* [Install an ejabberd server (XMPP chat) with synchronized credentials](help/install-ejabberd)
|
* [Install an ejabberd server (XMPP chat) with synchronized credentials](help/install-ejabberd)
|
||||||
* [Using SSL with Friendica](help/SSL)
|
* [Using SSL with Friendica](help/SSL)
|
||||||
* [Config values that can only be set in .htconfig.php](help/htconfig)
|
* [Config values that can only be set in config/local.config.php](help/Config)
|
||||||
* [Improve Performance](help/Improve-Performance)
|
* [Improve Performance](help/Improve-Performance)
|
||||||
|
* [Administration Tools](help/tools)
|
||||||
|
|
||||||
**Developer Manual**
|
**Developer Manual**
|
||||||
|
|
||||||
|
@ -46,15 +47,17 @@ Friendica Documentation and Resources
|
||||||
* [Addon Development](help/Addons)
|
* [Addon Development](help/Addons)
|
||||||
* [Theme Development](help/themes)
|
* [Theme Development](help/themes)
|
||||||
* [Smarty 3 Templates](help/smarty3-templates)
|
* [Smarty 3 Templates](help/smarty3-templates)
|
||||||
|
* [Storage backend addon](help/AddonStorageBackend)
|
||||||
* How To
|
* How To
|
||||||
* [Translate Friendica](help/translations)
|
* [Translate Friendica](help/translations)
|
||||||
* [Use Composer](help/Composer)
|
* [Use Composer](help/Composer)
|
||||||
* [Move classes to `src`](help/Developer-How-To-Move-Classes-to-src)
|
* [Move classes to `src`](help/Developer-How-To-Move-Classes-to-src)
|
||||||
|
* [Run tests](help/Tests)
|
||||||
* Reference
|
* Reference
|
||||||
* [Twitter/GNU Social API Functions](help/api)
|
* [Twitter/GNU Social API Functions](help/api)
|
||||||
* [Code (Doxygen generated - sets cookies)](doc/html/)
|
* [Code (Doxygen generated - sets cookies)](doc/html/)
|
||||||
* [Protocol Documentation](help/Protocol)
|
* [Protocol Documentation](help/Protocol)
|
||||||
* [Database schema documantation](help/database)
|
* [Database schema documentation](help/database)
|
||||||
* [Class Autoloading](help/autoloader)
|
* [Class Autoloading](help/autoloader)
|
||||||
|
|
||||||
**External Resources**
|
**External Resources**
|
||||||
|
@ -71,4 +74,3 @@ Friendica Documentation and Resources
|
||||||
|
|
||||||
* [Site/Version Info](friendica)
|
* [Site/Version Info](friendica)
|
||||||
* [Friendica Credits](credits)
|
* [Friendica Credits](credits)
|
||||||
|
|
||||||
|
|
411
doc/Install.md
|
@ -1,60 +1,87 @@
|
||||||
Friendica Installation
|
# Friendica Installation
|
||||||
===============
|
|
||||||
|
|
||||||
We've tried very hard to ensure that Friendica will run on commodity hosting platforms - such as those used to host Wordpress blogs and Drupal websites.
|
We've tried very hard to ensure that Friendica will run on commodity hosting platforms - such as those used to host Wordpress blogs and Drupal websites.
|
||||||
We offer a manual and an automatic installation.
|
We offer a manual and an automatic installation.
|
||||||
But be aware that Friendica is more than a simple web application.
|
But be aware that Friendica is more than a simple web application.
|
||||||
|
|
||||||
It is a complex communications system which more closely resembles an email server than a web server.
|
It is a complex communications system which more closely resembles an email server than a web server.
|
||||||
For reliability and performance, messages are delivered in the background and are queued for later delivery when sites are down.
|
For reliability and performance, messages are delivered in the background and are queued for later delivery when sites are down.
|
||||||
This kind of functionality requires a bit more of the host system than the typical blog.
|
This kind of functionality requires a bit more of the host system than the typical blog.
|
||||||
|
|
||||||
Not every PHP/MySQL hosting provider will be able to support Friendica.
|
Not every PHP/MySQL hosting provider will be able to support Friendica.
|
||||||
Many will.
|
Many will.
|
||||||
But **please** review the requirements and confirm these with your hosting provider prior to installation.
|
|
||||||
|
|
||||||
Also if you encounter installation issues, please let us know via the [helper](http://forum.friendi.ca/profile/helpers) or the [developer](https://forum.friendi.ca/profile/developers) forum or [file an issue](https://github.com/friendica/friendica/issues).
|
But **please** review the [requirements](#1_2_1) and confirm these with your hosting provider prior to installation.
|
||||||
|
|
||||||
|
## Support
|
||||||
|
If you encounter installation issues, please let us know via the [helper](http://forum.friendi.ca/profile/helpers) or the [developer](https://forum.friendi.ca/profile/developers) forum or [file an issue](https://github.com/friendica/friendica/issues).
|
||||||
|
|
||||||
Please be as clear as you can about your operating environment and provide as much detail as possible about any error messages you may see, so that we can prevent it from happening in the future.
|
Please be as clear as you can about your operating environment and provide as much detail as possible about any error messages you may see, so that we can prevent it from happening in the future.
|
||||||
Due to the large variety of operating systems and PHP platforms in existence we may have only limited ability to debug your PHP installation or acquire any missing modules - but we will do our best to solve any general code issues.
|
Due to the large variety of operating systems and PHP platforms in existence we may have only limited ability to debug your PHP installation or acquire any missing modules - but we will do our best to solve any general code issues.
|
||||||
|
|
||||||
If you do not have a Friendica account yet, you can register a temporary one at [tryfriendica.de](https://tryfriendica.de) and join the forums mentioned above from there.
|
If you do not have a Friendica account yet, you can register a temporary one at [tryfriendica.de](https://tryfriendica.de) and join the forums mentioned above from there.
|
||||||
The account will expire after 7 days, but you can ask the server admin to keep your account longer, should the problem not be resolved after that.
|
The account will expire after 7 days, but you can ask the server admin to keep your account longer, should the problem not be resolved after that.
|
||||||
|
|
||||||
Before you begin: Choose a domain name or subdomain name for your server.
|
## Prerequisites
|
||||||
Put some thought into this. Changing it after installation is currently not supported.
|
|
||||||
Things will break, and some of your friends may have difficulty communicating with you.
|
|
||||||
We plan to address this limitation in a future release.
|
|
||||||
|
|
||||||
|
* Choose a domain name or subdomain name for your server. Put some thought into this. While changing it after installation is supported, things still might break.
|
||||||
|
* Setup HTTPS on your domain.
|
||||||
|
|
||||||
Requirements
|
### Requirements
|
||||||
---
|
|
||||||
|
|
||||||
* Apache with mod-rewrite enabled and "Options All" so you can use a local .htaccess file
|
* Apache with mod-rewrite enabled and "Options All" so you can use a local .htaccess file
|
||||||
* PHP 5.6+ (PHP 7 is recommended for performance)
|
* PHP 7+ (PHP 7.1+ is recommended for performance and official support)
|
||||||
* PHP *command line* access with register_argc_argv set to true in the php.ini file
|
* PHP *command line* access with register_argc_argv set to true in the php.ini file
|
||||||
* Curl, GD, PDO, MySQLi, hash, xml, zip and OpenSSL extensions
|
* Curl, GD, PDO, MySQLi, hash, xml, zip and OpenSSL extensions
|
||||||
* The POSIX module of PHP needs to be activated (e.g. [RHEL, CentOS](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) have disabled it)
|
* The POSIX module of PHP needs to be activated (e.g. [RHEL, CentOS](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) have disabled it)
|
||||||
* some form of email server or email gateway such that PHP mail() works
|
* some form of email server or email gateway such that PHP mail() works
|
||||||
* Mysql 5.5.3+ or an equivalant alternative for MySQL (MariaDB, Percona Server etc.)
|
* MySQL 5.6+ or an equivalent alternative for MySQL (MariaDB, Percona Server etc.)
|
||||||
* the ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks (Windows) (Note: other options are presented in Section 7 of this document.)
|
* ability to schedule jobs with cron (Linux/Mac) or Scheduled Tasks (Windows)
|
||||||
* Installation into a top-level domain or sub-domain (without a directory/path component in the URL) is preferred. Directory paths will not be as convenient to use and have not been thoroughly tested.
|
* installation into a top-level domain or sub-domain (without a directory/path component in the URL) is RECOMMENDED. Directory paths will not be as convenient to use and have not been thoroughly tested. This is REQUIRED if you wish to communicate with the Diaspora network.
|
||||||
* If your hosting provider doesn't allow Unix shell access, you might have trouble getting everything to work.
|
|
||||||
|
|
||||||
Installation procedure
|
**If your hosting provider doesn't allow Unix shell access, you might have trouble getting everything to work.**
|
||||||
---
|
|
||||||
|
For alternative server configurations (such as Nginx server and MariaDB database engine), refer to the [Friendica wiki](https://github.com/friendica/friendica/wiki).
|
||||||
|
|
||||||
|
### Optional
|
||||||
|
|
||||||
|
* PHP ImageMagick extension (php-imagick) for animated GIF support.
|
||||||
|
* [Composer](https://getcomposer.org/) for a git install
|
||||||
|
|
||||||
|
## Installation procedure
|
||||||
|
|
||||||
|
### Alternative Installation Methods
|
||||||
|
|
||||||
|
This guide will walk you through the manual installation process of Friendica.
|
||||||
|
If this is nothing for you, you might be interested in
|
||||||
|
|
||||||
|
* the [Friendica Docker image](https://github.com/friendica/docker) or
|
||||||
|
* how to [install Friendica with YunoHost](https://github.com/YunoHost-Apps/friendica_ynh).
|
||||||
|
|
||||||
### Get Friendica
|
### Get Friendica
|
||||||
|
|
||||||
Unpack the Friendica files into the root of your web server document area.
|
Unpack the Friendica files into the root of your web server document area.
|
||||||
If you are able to do so, we recommend using git to clone the source repository rather than to use a packaged tar or zip file.
|
|
||||||
|
If you copy the directory tree to your webserver, make sure that you also copy
|
||||||
|
`.htaccess-dist` - as "dot" files are often hidden and aren't normally copied.
|
||||||
|
|
||||||
|
**OR**
|
||||||
|
|
||||||
|
Clone the [friendica/friendica GitHub repository](https://github.com/friendica/friendica) and import dependencies.
|
||||||
This makes the software much easier to update.
|
This makes the software much easier to update.
|
||||||
|
|
||||||
The Linux commands to clone the repository into a directory "mywebsite" would be
|
The Linux commands to clone the repository into a directory "mywebsite" would be
|
||||||
|
|
||||||
git clone https://github.com/friendica/friendica.git mywebsite
|
git clone https://github.com/friendica/friendica.git -b master mywebsite
|
||||||
cd mywebsite
|
cd mywebsite
|
||||||
bin/composer.phar install
|
bin/composer.phar install --no-dev
|
||||||
|
|
||||||
Make sure the folder *view/smarty3* exists and is writable by the webserver user
|
Make sure the folder *view/smarty3* exists and is writable by the webserver user, in this case *www-data*
|
||||||
|
|
||||||
mkdir view/smarty3
|
mkdir view/smarty3
|
||||||
chmod 777 view/smarty3
|
chown www-data:www-data view/smarty3
|
||||||
|
chmod 775 view/smarty3
|
||||||
|
|
||||||
Get the addons by going into your website folder.
|
Get the addons by going into your website folder.
|
||||||
|
|
||||||
|
@ -62,9 +89,18 @@ Get the addons by going into your website folder.
|
||||||
|
|
||||||
Clone the addon repository (separately):
|
Clone the addon repository (separately):
|
||||||
|
|
||||||
git clone https://github.com/friendica/friendica-addons.git addon
|
git clone https://github.com/friendica/friendica-addons.git -b master addon
|
||||||
|
|
||||||
If you copy the directory tree to your webserver, make sure that you also copy .htaccess - as "dot" files are often hidden and aren't normally copied.
|
If you want to use the development version of Friendica you can switch to the develop branch in the repository by running
|
||||||
|
|
||||||
|
git checkout develop
|
||||||
|
bin/composer.phar install
|
||||||
|
cd addon
|
||||||
|
git checkout develop
|
||||||
|
|
||||||
|
**Be aware that the develop branch is unstable and may break your Friendica node at any time.**
|
||||||
|
You should have a recent backup before updating.
|
||||||
|
If you encounter a bug, please let us know.
|
||||||
|
|
||||||
### Create a database
|
### Create a database
|
||||||
|
|
||||||
|
@ -72,15 +108,9 @@ Create an empty database and note the access details (hostname, username, passwo
|
||||||
|
|
||||||
Friendica needs the permission to create and delete fields and tables in its own database.
|
Friendica needs the permission to create and delete fields and tables in its own database.
|
||||||
|
|
||||||
With newer releases of MySQL (5.7.17 or newer), you might need to set the sql_mode to '' (blank).
|
Please check the [troubleshooting](#1_6) section if running on MySQL 5.7.17 or newer.
|
||||||
Use this setting when the installer is unable to create all the needed tables due to a timestamp format problem.
|
|
||||||
In this case find the [mysqld] section in your my.cnf file and add the line :
|
|
||||||
|
|
||||||
sql_mode = ''
|
### Option A: Run the installer
|
||||||
|
|
||||||
Restart mysql and you should be fine.
|
|
||||||
|
|
||||||
### Option A: Run the manual installer
|
|
||||||
|
|
||||||
Point your web browser to the new site and follow the instructions.
|
Point your web browser to the new site and follow the instructions.
|
||||||
Please note any error messages and correct these before continuing.
|
Please note any error messages and correct these before continuing.
|
||||||
|
@ -89,41 +119,137 @@ If you need to specify a port for the connection to the database, you can do so
|
||||||
|
|
||||||
*If* the manual installation fails for any reason, check the following:
|
*If* the manual installation fails for any reason, check the following:
|
||||||
|
|
||||||
* Does ".htconfig.php" exist? If not, edit htconfig.php and change the system settings. Rename to .htconfig.php
|
* Does `config/local.config.php` exist? If not, edit `config/local-sample.config.php` and change the system settings.
|
||||||
* Is the database is populated? If not, import the contents of "database.sql" with phpmyadmin or the mysql command line.
|
* Rename to `config/local.config.php`.
|
||||||
|
* Is the database populated? If not, import the contents of `database.sql` with phpmyadmin or the mysql command line.
|
||||||
|
|
||||||
At this point visit your website again, and register your personal account.
|
At this point visit your website again, and register your personal account.
|
||||||
Registration errors should all be recoverable automatically.
|
Registration errors should all be recoverable automatically.
|
||||||
If you get any *critical* failure at this point, it generally indicates the database was not installed correctly.
|
If you get any *critical* failure at this point, it generally indicates the database was not installed correctly.
|
||||||
You might wish to move/rename .htconfig.php to another name and empty (called 'dropping') the database tables, so that you can start fresh.
|
You might wish to move/rename `config/local.config.php` to another name and empty (called 'dropping') the database tables, so that you can start fresh.
|
||||||
|
|
||||||
### Option B: Run the automatic install script
|
### Option B: Run the automatic install script
|
||||||
|
|
||||||
Open the file htconfig.php in the main Friendica directory with a text editor.
|
You have the following options to automatically install Friendica:
|
||||||
Remove the `die('...');` line and edit the lines to suit your installation (MySQL, language, theme etc.).
|
- creating a prepared config file (f.e. `prepared.config.php`)
|
||||||
Then save the file (do not rename it).
|
- using environment variables (f.e. `MYSQL_HOST`)
|
||||||
|
- using options (f.e. `--dbhost <host>`)
|
||||||
|
|
||||||
Navigate to the main Friendica directory and execute the following command:
|
You can combine environment variables and options, but be aware that options are prioritized over environment variables.
|
||||||
|
|
||||||
bin/console autoinstall
|
|
||||||
|
|
||||||
Or if you wish to include all optional checks, execute this statement instead:
|
|
||||||
|
|
||||||
bin/console autoinstall -a
|
|
||||||
|
|
||||||
At this point visit your website again, and register your personal account.
|
|
||||||
|
|
||||||
*If* the automatic installation fails for any reason, check the following:
|
|
||||||
|
|
||||||
* Does ".htconfig.php" already exist? If yes, the automatic installation won't start
|
|
||||||
* Are the settings inside "htconfig.php" correct? If not, edit the file again.
|
|
||||||
* Is the empty MySQL-database created? If not, create it.
|
|
||||||
|
|
||||||
For more information during the installation, you can use this command line option
|
For more information during the installation, you can use this command line option
|
||||||
|
|
||||||
bin/console autoinstall -v
|
bin/console autoinstall -v
|
||||||
|
|
||||||
### Set up the worker
|
If you wish to include all optional checks, use `-a` like this statement:
|
||||||
|
|
||||||
|
bin/console autoinstall -a
|
||||||
|
|
||||||
|
*If* the automatic installation fails for any reason, check the following:
|
||||||
|
|
||||||
|
* Does `config/local.config.php` already exist? If yes, the automatic installation won't start
|
||||||
|
* Are the options in the `config/local.config.php` correct? If not, edit them directly.
|
||||||
|
* Is the empty MySQL-database created? If not, create it.
|
||||||
|
|
||||||
|
#### B.1: Config file
|
||||||
|
|
||||||
|
You can use a prepared config file like [local-sample.config.php](/config/local-sample.config.php).
|
||||||
|
|
||||||
|
Navigate to the main Friendica directory and execute the following command:
|
||||||
|
|
||||||
|
bin/console autoinstall -f <prepared.config.php>
|
||||||
|
|
||||||
|
#### B.2: Environment variables
|
||||||
|
|
||||||
|
There are two types of environment variables.
|
||||||
|
- those you can use in normal mode too (Currently just **database credentials**)
|
||||||
|
- those you can only use during installation (because Friendica will normally ignore it)
|
||||||
|
|
||||||
|
You can use the options during installation too and skip some of the environment variables.
|
||||||
|
|
||||||
|
**Database credentials**
|
||||||
|
|
||||||
|
if you don't use the option `--savedb` during installation, the DB credentials will **not** be saved in the `config/local.config.php`.
|
||||||
|
|
||||||
|
- `MYSQL_HOST` The host of the mysql/mariadb database
|
||||||
|
- `MYSQL_PORT` The port of the mysql/mariadb database
|
||||||
|
- `MYSQL_USERNAME` The username of the mysql database login (used for mysql)
|
||||||
|
- `MYSQL_USER` The username of the mysql database login (used for mariadb)
|
||||||
|
- `MYSQL_PASSWORD` The password of the mysql/mariadb database login
|
||||||
|
- `MYSQL_DATABASE` The name of the mysql/mariadb database
|
||||||
|
|
||||||
|
**Friendica settings**
|
||||||
|
|
||||||
|
This variables wont be used at normal Friendica runtime.
|
||||||
|
Instead, they get saved into `config/local.config.php`.
|
||||||
|
|
||||||
|
- `FRIENDICA_URL_PATH` The URL path of Friendica (f.e. '/friendica')
|
||||||
|
- `FRIENDICA_PHP_PATH` The path of the PHP binary
|
||||||
|
- `FRIENDICA_ADMIN_MAIL` The admin email address of Friendica (this email will be used for admin access)
|
||||||
|
- `FRIENDICA_TZ` The timezone of Friendica
|
||||||
|
- `FRIENDICA_LANG` The language of Friendica
|
||||||
|
|
||||||
|
Navigate to the main Friendica directory and execute the following command:
|
||||||
|
|
||||||
|
bin/console autoinstall [--savedb]
|
||||||
|
|
||||||
|
#### B.3: Execution options
|
||||||
|
|
||||||
|
All options will be saved in the `config/local.config.php` and are overruling the associated environment variables.
|
||||||
|
|
||||||
|
- `-H|--dbhost <host>` The host of the mysql/mariadb database (env `MYSQL_HOST`)
|
||||||
|
- `-p|--dbport <port>` The port of the mysql/mariadb database (env `MYSQL_PORT`)
|
||||||
|
- `-U|--dbuser <username>` The username of the mysql/mariadb database login (env `MYSQL_USER` or `MYSQL_USERNAME`)
|
||||||
|
- `-P|--dbpass <password>` The password of the mysql/mariadb database login (env `MYSQL_PASSWORD`)
|
||||||
|
- `-d|--dbdata <database>` The name of the mysql/mariadb database (env `MYSQL_DATABASE`)
|
||||||
|
- `-u|--urlpath <url_path>` The URL path of Friendica - f.e. '/friendica' (env `FRIENDICA_URL_PATH`)
|
||||||
|
- `-b|--phppath <php_path>` The path of the PHP binary (env `FRIENDICA_PHP_PATH`)
|
||||||
|
- `-A|--admin <mail>` The admin email address of Friendica (env `FRIENDICA_ADMIN_MAIL`)
|
||||||
|
- `-T|--tz <timezone>` The timezone of Friendica (env `FRIENDICA_TZ`)
|
||||||
|
- `-L|--lang <language>` The language of Friendica (env `FRIENDICA_LANG`)
|
||||||
|
|
||||||
|
Navigate to the main Friendica directory and execute the following command:
|
||||||
|
|
||||||
|
bin/console autoinstall [options]
|
||||||
|
|
||||||
|
### Prepare .htaccess file
|
||||||
|
|
||||||
|
Copy `.htaccess-dist` to `.htaccess` (be careful under Windows) to have working mod-rewrite again. If you have installed Friendica into a sub directory, like */friendica/* set this path in `RewriteBase` accordingly.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
cp .htacces-dist .htaccess
|
||||||
|
|
||||||
|
*Note*: Do **not** rename the `.htaccess-dist` file as it is tracked by GIT and renaming will cause a dirty working directory.
|
||||||
|
|
||||||
|
### Verify the "host-meta" page is working
|
||||||
|
|
||||||
|
Friendica should respond automatically to important addresses under the */.well-known/* rewrite path.
|
||||||
|
One critical URL would look like, for example: https://example.com/.well-known/host-meta
|
||||||
|
It must be visible to the public and must respond with an XML file that is automatically customized to your site.
|
||||||
|
|
||||||
|
If that URL is not working, it is possible that some other software is using the /.well-known/ path.
|
||||||
|
Other symptoms may include an error message in the Admin settings that says "host-meta is not reachable on your system.
|
||||||
|
This is a severe configuration issue that prevents server to server communication."
|
||||||
|
Another common error related to host-meta is the "Invalid profile URL."
|
||||||
|
|
||||||
|
Check for a `.well-known` directory that did not come with Friendica.
|
||||||
|
The preferred configuration is to remove the directory, however this is not always possible.
|
||||||
|
If there is any /.well-known/.htaccess file, it could interfere with this Friendica core requirement.
|
||||||
|
You should remove any RewriteRules from that file, or remove that whole file if appropriate.
|
||||||
|
It may be necessary to chmod the /.well-known/.htaccess file if you were not given write permissions by default.
|
||||||
|
|
||||||
|
## Register the admin account
|
||||||
|
|
||||||
|
At this point visit your website again, and register your personal account with the same email as in the `config.admin_email` config value.
|
||||||
|
Registration errors should all be recoverable automatically.
|
||||||
|
|
||||||
|
If you get any *critical* failure at this point, it generally indicates the database was not installed correctly.
|
||||||
|
You might wish to delete/rename `config/local.config.php` to another name and drop all the database tables so that you can start fresh.
|
||||||
|
|
||||||
|
## Post Install Configuration
|
||||||
|
|
||||||
|
### (REQUIRED) Background tasks
|
||||||
|
|
||||||
Set up a cron job or scheduled task to run the worker once every 5-10 minutes in order to perform background processing.
|
Set up a cron job or scheduled task to run the worker once every 5-10 minutes in order to perform background processing.
|
||||||
Example:
|
Example:
|
||||||
|
@ -132,6 +258,8 @@ Example:
|
||||||
|
|
||||||
Change "/base/directory", and "/path/to/php" as appropriate for your situation.
|
Change "/base/directory", and "/path/to/php" as appropriate for your situation.
|
||||||
|
|
||||||
|
#### cron job for worker
|
||||||
|
|
||||||
If you are using a Linux server, run "crontab -e" and add a line like the
|
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:
|
one shown, substituting for your unique paths and settings:
|
||||||
|
|
||||||
|
@ -143,13 +271,182 @@ Friendica will not work correctly if you cannot perform this step.
|
||||||
|
|
||||||
If it is not possible to set up a cron job then please activate the "frontend worker" in the administration interface.
|
If it is not possible to set up a cron job then please activate the "frontend worker" in the administration interface.
|
||||||
|
|
||||||
Once you have installed Friendica and created an admin account as part of the process, you can access the admin panel of your installation and do most of the server wide configuration from there
|
Once you have installed Friendica and created an admin account as part of the process, you can access the admin panel of your installation and do most of the server wide configuration from there.
|
||||||
|
|
||||||
### Set up a backup plan
|
#### worker alternative: daemon
|
||||||
|
Otherwise, you’ll need to use the command line on your remote server and start the Friendica daemon (background task) using the following command:
|
||||||
|
|
||||||
|
cd /path/to/friendica; php bin/daemon.php start
|
||||||
|
|
||||||
|
Once started, you can check the daemon status using the following command:
|
||||||
|
|
||||||
|
cd /path/to/friendica; php bin/daemon.php status
|
||||||
|
|
||||||
|
After a server restart or any other failure, the daemon needs to be restarted.
|
||||||
|
This could be achieved by a cronjob.
|
||||||
|
|
||||||
|
### (RECOMMENDED) Logging & Log Rotation
|
||||||
|
|
||||||
|
At this point it is recommended that you set up logging and logrotation.
|
||||||
|
To do so please visit [Settings](help/Settings) and search the 'Logs' section for more information.
|
||||||
|
|
||||||
|
### (RECOMMENDED) Set up a backup plan
|
||||||
|
|
||||||
Bad things will happen.
|
Bad things will happen.
|
||||||
Let there be a hardware failure, a corrupted database or whatever you can think of.
|
Let there be a hardware failure, a corrupted database or whatever you can think of.
|
||||||
So once the installation of your Friendica node is done, you should make yourself a backup plan.
|
So once the installation of your Friendica node is done, you should make yourself a backup plan.
|
||||||
|
|
||||||
The most important file is the `.htconfig.php` file in the base directory.
|
The most important file is the `config/local.config.php` file.
|
||||||
As it stores all your data, you should also have a recent dump of your Friendica database at hand, should you have to recover your node.
|
As it stores all your data, you should also have a recent dump of your Friendica database at hand, should you have to recover your node.
|
||||||
|
|
||||||
|
### (OPTIONAL) Reverse-proxying and HTTPS
|
||||||
|
|
||||||
|
Friendica looks for some well-known HTTP headers indicating a reverse-proxy
|
||||||
|
terminating an HTTPS connection.
|
||||||
|
While the standard from RFC 7239 specifies the use of the `Forwarded` header.
|
||||||
|
|
||||||
|
Forwarded: for=192.0.2.1; proto=https; by=192.0.2.2
|
||||||
|
|
||||||
|
Friendica also supports a number on non-standard headers in common use.
|
||||||
|
|
||||||
|
X-Forwarded-Proto: https
|
||||||
|
|
||||||
|
Front-End-Https: on
|
||||||
|
|
||||||
|
X-Forwarded-Ssl: on
|
||||||
|
|
||||||
|
It is however preferable to use the standard approach if configuring a new server.
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### "System is currently unavailable. Please try again later"
|
||||||
|
|
||||||
|
Check your database settings.
|
||||||
|
It usually means your database could not be opened or accessed.
|
||||||
|
If the database resides on the same machine, check that the database server name is "localhost".
|
||||||
|
|
||||||
|
### 500 Internal Error
|
||||||
|
|
||||||
|
This could be the result of one of our Apache directives not being supported by your version of Apache. Examine your apache server logs.
|
||||||
|
You might remove the line "Options -Indexes" from the .htaccess file if you are using a Windows server as this has been known to cause problems.
|
||||||
|
Also check your file permissions. Your website and all contents must generally be world-readable.
|
||||||
|
|
||||||
|
It is likely that your web server reported the source of the problem in its error log files.
|
||||||
|
Please review these system error logs to determine what caused the problem.
|
||||||
|
Often this will need to be resolved with your hosting provider or (if self-hosted) your web server configuration.
|
||||||
|
|
||||||
|
### 400 and 4xx "File not found" errors
|
||||||
|
|
||||||
|
First check your file permissions.
|
||||||
|
Your website and all contents must generally be world-readable.
|
||||||
|
|
||||||
|
Ensure that mod-rewite is installed and working, and that your `.htaccess` file
|
||||||
|
is being used. To verify the latter, create a file `test.out` containing the
|
||||||
|
word "test" in the top directory of Friendica, make it world readable and point
|
||||||
|
your web browser to
|
||||||
|
|
||||||
|
http://yoursitenamehere.com/test.out
|
||||||
|
|
||||||
|
This file should be blocked. You should get a permission denied message.
|
||||||
|
|
||||||
|
If you see the word "test" your Apache configuration is not allowing your
|
||||||
|
`.htaccess` file to be used (there are rules in this file to block access to any
|
||||||
|
file with .out at the end, as these are typically used for system logs).
|
||||||
|
|
||||||
|
Make certain the `.htaccess` file exists and is readable by everybody, then look
|
||||||
|
for the existence of "AllowOverride None" in the Apache server configuration for your site.
|
||||||
|
This will need to be changed to "AllowOverride All".
|
||||||
|
|
||||||
|
If you do not see the word "test", your `.htaccess` is working, but it is likely
|
||||||
|
that mod-rewrite is not installed in your web server or is not working.
|
||||||
|
|
||||||
|
On most Linux flavors:
|
||||||
|
|
||||||
|
% a2enmod rewrite
|
||||||
|
% /etc/init.d/apache2 restart
|
||||||
|
|
||||||
|
Consult your hosting provider, experts on your particular Linux distribution or
|
||||||
|
(if Windows) the provider of your Apache server software if you need to change
|
||||||
|
either of these and can not figure out how. There is a lot of help available on
|
||||||
|
the web. Search "mod-rewrite" along with the name of your operating system
|
||||||
|
distribution or Apache package (if using Windows).
|
||||||
|
|
||||||
|
### Unable to write the file config/local.config.php due to permissions issues
|
||||||
|
|
||||||
|
Create an empty `config/local.config.php`file and apply world-write permission.
|
||||||
|
|
||||||
|
On Linux:
|
||||||
|
|
||||||
|
% touch config/local.config.php
|
||||||
|
% chmod 664 config/local.config.php
|
||||||
|
|
||||||
|
Retry the installation. As soon as the database has been created,
|
||||||
|
|
||||||
|
******* this is important *********
|
||||||
|
|
||||||
|
% chmod 644 config/local.config.php
|
||||||
|
|
||||||
|
### Suhosin issues
|
||||||
|
|
||||||
|
Some configurations with "suhosin" security are configured without an ability to
|
||||||
|
run external processes. Friendica requires this ability. Following are some notes
|
||||||
|
provided by one of our members.
|
||||||
|
|
||||||
|
> On my server I use the php protection system Suhosin [http://www.hardened-php.net/suhosin/].
|
||||||
|
> One of the things it does is to block certain functions like proc_open, as
|
||||||
|
> configured in `/etc/php5/conf.d/suhosin.ini`:
|
||||||
|
>
|
||||||
|
> suhosin.executor.func.blacklist = proc_open, ...
|
||||||
|
>
|
||||||
|
> For those sites like Friendica that really need these functions they can be
|
||||||
|
> enabled, e.g. in `/etc/apache2/sites-available/friendica`:
|
||||||
|
>
|
||||||
|
> <Directory /var/www/friendica/>
|
||||||
|
> php_admin_value suhosin.executor.func.blacklist none
|
||||||
|
> php_admin_value suhosin.executor.eval.blacklist none
|
||||||
|
> </Directory>
|
||||||
|
>
|
||||||
|
> This enables every function for Friendica if accessed via browser, but not for
|
||||||
|
> the cronjob that is called via php command line. I attempted to enable it for
|
||||||
|
> cron by using something like:
|
||||||
|
>
|
||||||
|
> */10 * * * * cd /var/www/friendica/friendica/ && sudo -u www-data /usr/bin/php \
|
||||||
|
> -d suhosin.executor.func.blacklist=none \
|
||||||
|
> -d suhosin.executor.eval.blacklist=none -f bin/worker.php
|
||||||
|
>
|
||||||
|
> This worked well for simple test cases, but the friendica-cron still failed
|
||||||
|
> with a fatal error:
|
||||||
|
>
|
||||||
|
> suhosin[22962]: ALERT - function within blacklist called: proc_open()
|
||||||
|
> (attacker 'REMOTE_ADDR not set', file '/var/www/friendica/friendica/boot.php',
|
||||||
|
> line 1341)
|
||||||
|
>
|
||||||
|
> After a while I noticed, that `bin/worker.php` calls further PHP script via `proc_open`.
|
||||||
|
> These scripts themselves also use `proc_open` and fail, because they are NOT
|
||||||
|
> called with `-d suhosin.executor.func.blacklist=none`.
|
||||||
|
>
|
||||||
|
> So the simple solution is to put the correct parameters into `config/local.config.php`:
|
||||||
|
>
|
||||||
|
> 'config' => [
|
||||||
|
> //Location of PHP command line processor
|
||||||
|
> 'php_path' => '/usr/bin/php -d suhosin.executor.func.blacklist=none \
|
||||||
|
> -d suhosin.executor.eval.blacklist=none',
|
||||||
|
> ],
|
||||||
|
>
|
||||||
|
> This is obvious as soon as you notice that the friendica-cron uses `proc_open`
|
||||||
|
> to execute PHP scripts that also use `proc_open`, but it took me quite some time to find that out.
|
||||||
|
> I hope this saves some time for other people using suhosin with function blacklists.
|
||||||
|
|
||||||
|
### Unable to create all mysql tables on MySQL 5.7.17 or newer
|
||||||
|
|
||||||
|
If the setup fails to create all the database tables and/or manual creation from
|
||||||
|
the command line fails, with this error:
|
||||||
|
|
||||||
|
ERROR 1067 (42000) at line XX: Invalid default value for 'created'
|
||||||
|
|
||||||
|
You need to adjust your my.cnf and add the following setting under the [mysqld]
|
||||||
|
section:
|
||||||
|
|
||||||
|
sql_mode = '';
|
||||||
|
|
||||||
|
After that, restart mysql and try again.
|
||||||
|
|
|
@ -4,7 +4,7 @@ Installing Connectors (Twitter/GNU Social)
|
||||||
* [Home](help)
|
* [Home](help)
|
||||||
|
|
||||||
|
|
||||||
Friendica uses addons to provide connectivity to some networks, such as Twitter or App.net.
|
Friendica uses addons to provide connectivity to some networks, such as Twitter.
|
||||||
|
|
||||||
There is also a addon to post through to an existing account on a GNU Social service.
|
There is also a addon to post through to an existing account on a GNU Social service.
|
||||||
You only need this to post to an already existing GNU Social account, but not to communicate with GNU Social members in general.
|
You only need this to post to an already existing GNU Social account, but not to communicate with GNU Social members in general.
|
||||||
|
@ -19,7 +19,7 @@ Addons must be installed by the site administrator before they can be used.
|
||||||
This is accomplished through the site administration panel.
|
This is accomplished through the site administration panel.
|
||||||
|
|
||||||
Each of the connectors also requires an "API key" from the service you wish to connect with.
|
Each of the connectors also requires an "API key" from the service you wish to connect with.
|
||||||
Some addons allow you to enter this information in the site administration pages, while others may require you to edit your configuration file (.htconfig.php).
|
Some addons allow you to enter this information in the site administration pages, while others may require you to edit your configuration file (config/local.config.php).
|
||||||
The ways to obtain these keys vary between the services, but they all require an existing account on the target service.
|
The ways to obtain these keys vary between the services, but they all require an existing account on the target service.
|
||||||
Once installed, these API keys can usually be shared by all site members.
|
Once installed, these API keys can usually be shared by all site members.
|
||||||
|
|
||||||
|
@ -39,10 +39,11 @@ You can get it from [Twitter](https://twitter.com/apps).
|
||||||
Register your Friendica site as "Client" application with "Read & Write" access.
|
Register your Friendica site as "Client" application with "Read & Write" access.
|
||||||
We do not need "Twitter as login".
|
We do not need "Twitter as login".
|
||||||
When you've registered the app you get a key pair with an OAuth Consumer key and a secret key for your application/site.
|
When you've registered the app you get a key pair with an OAuth Consumer key and a secret key for your application/site.
|
||||||
Add this key pair to your global .htconfig.php:
|
Add this key pair to your config/local.config.php:
|
||||||
|
|
||||||
$a->config['twitter']['consumerkey'] = 'your consumer_key here';
|
[twitter]
|
||||||
$a->config['twitter']['consumersecret'] = 'your consumer_secret here';
|
consumerkey = your consumer_key here
|
||||||
|
consumersecret = your consumer_secret here
|
||||||
|
|
||||||
After this, your users can configure their Twitter account settings from "Settings -> Connector Settings".
|
After this, your users can configure their Twitter account settings from "Settings -> Connector Settings".
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ How to move your account between servers
|
||||||
* Go to "Settings" -> "[Export personal data](uexport)"
|
* Go to "Settings" -> "[Export personal data](uexport)"
|
||||||
* Click on "Export account" to save your account data.
|
* Click on "Export account" to save your account data.
|
||||||
* **Save the file in a secure place!** It contains your details, your contacts, groups, and personal settings. It also contains your secret keys to authenticate yourself to your contacts.
|
* **Save the file in a secure place!** It contains your details, your contacts, groups, and personal settings. It also contains your secret keys to authenticate yourself to your contacts.
|
||||||
* Go to your new server, and open *http://newserver.com/uimport* (there is not a direct link to this page at the moment).
|
* Go to your new server, and open *http://newserver.com/uimport* (there is not a direct link to this page at the moment). Please consider that this is only possible on servers with open registration. On other systems only the administrator can add accounts with an uploaded file.
|
||||||
* Do NOT create a new account prior to importing your old settings - uimport should be used *instead* of register.
|
* Do NOT create a new account prior to importing your old settings - uimport should be used *instead* of register.
|
||||||
* Load your saved account file and click "Import".
|
* Load your saved account file and click "Import".
|
||||||
* After the move, the account on the old server will not work reliably anymore, and should be not used.
|
* After the move, the account on the old server will not work reliably anymore, and should be not used.
|
||||||
|
|
|
@ -15,6 +15,6 @@ Remember the link at the top of this page will bring you back here.
|
||||||
|
|
||||||
Once you've added some groups, <a href="help/Quick-Start-andfinally">move on to the next section</a>.
|
Once you've added some groups, <a href="help/Quick-Start-andfinally">move on to the next section</a>.
|
||||||
|
|
||||||
<iframe src="http://dir.friendica.com/directory/forum" width="950" height="600"></iframe>
|
<iframe src="https://dir.friendica.social/forum" width="950" height="600"></iframe>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -3,17 +3,19 @@ If you're not already logged in, do so in the frame below.
|
||||||
|
|
||||||
Once you've logged in (or if you are already logged in), you'll now be looking at your profile page.
|
Once you've logged in (or if you are already logged in), you'll now be looking at your profile page.
|
||||||
|
|
||||||
This is a bit like your Facebook wall.
|
This is a bit like a Facebook wall.
|
||||||
It's where all your status messgages are kept, and where your friends come to post on your wall.
|
It's where all your status messgages are kept, and where your friends come to post on your wall.
|
||||||
To write your status, simply click in the box that says "share".
|
|
||||||
When you do this, the box will expand.
|
To write your status, simply click on the Pencil & Paper icon in the top right (in the Frio theme), or click in the box that says "share" (other themes).
|
||||||
You can see some formatting options at the top such as Bold, Italics and Underline, as well as ways to add links and pictures.
|
When you do this, the posting dialog box will appear or the share box will expand.
|
||||||
At the bottom you'll find some more links.
|
|
||||||
|
You can see some formatting options such as Bold, Italics and Underline, as well as ways to add links, pictures (dependent on the theme), and a paperclip icon to attach or embed content.
|
||||||
You can use these to upload pictures and files from your computer, share websites with a bit of preview text, or embed video and audio files from elsewhere on the web.
|
You can use these to upload pictures and files from your computer, share websites with a bit of preview text, or embed video and audio files from elsewhere on the web.
|
||||||
|
With the Frio theme, the browser tab can be used to upload and post media from your account.
|
||||||
You can also set your post location here.
|
You can also set your post location here.
|
||||||
|
|
||||||
Once you've finished writing your post, click on the padlock icon to select who can see it.
|
Once you've finished writing your post, click on the padlock icon or permissions tab to select who can see it.
|
||||||
If you do not use the padlock icon, your post will be public.
|
If you do not change anything, your post will be public.
|
||||||
This means it will appear to anybody who views your profile, and in the community tab if your site has it enabled, as well as in the network tab of any of your contacts.
|
This means it will appear to anybody who views your profile, and in the community tab if your site has it enabled, as well as in the network tab of any of your contacts.
|
||||||
|
|
||||||
Play around with this a bit, then when you're ready to move on, we'll take a look at the <a href="help/Quick-Start-network">Network Tab</a>
|
Play around with this a bit, then when you're ready to move on, we'll take a look at the <a href="help/Quick-Start-network">Network Tab</a>
|
||||||
|
|
|
@ -11,13 +11,13 @@ with your web browser.
|
||||||
You will need to be logged in at the time.
|
You will need to be logged in at the time.
|
||||||
|
|
||||||
You will be asked for your password to confirm the request.
|
You will be asked for your password to confirm the request.
|
||||||
If this matches your stored password, your account will immediately be blocked to all probing.
|
If this matches your stored password, your account will immediately be marked as deleted.
|
||||||
Unlike some social networks we do **not** hold onto it for a grace period in case you change your mind.
|
There is no grace period, this action cannot be reverted.
|
||||||
All your content and user data, etc is instantly removed.
|
Most of your content and user data will be deleted shortly in the background.
|
||||||
For all intents and purposes, the account is gone in moments.
|
|
||||||
|
|
||||||
We then send out an "unfriend" signal to all of your contacts.
|
We then send out a notification about the account removal to all of your contacts so that they can do the same with their copy of your data.
|
||||||
This signal deletes all content on those networks.
|
|
||||||
Unfortunately, due to limitations of the other networks, this only works well with Friendica contacts.
|
For technical reasons some of your user data is still needed to transmit this removal message.
|
||||||
We allow four days for this, in case some servers were down and the unfriend signal was queued.
|
This remaining data will be deleted after a period of around seven days.
|
||||||
After this, we finish off deleting the account.
|
|
||||||
|
To disallow impersonation we have to save your used nickname, so that it can't be used again to register on this node.
|
||||||
|
|
|
@ -73,7 +73,7 @@ With Apache, enable the modules rewrite and ssl (with a shared hosting provider,
|
||||||
|
|
||||||
sudo a2enmod rewrite ssl
|
sudo a2enmod rewrite ssl
|
||||||
|
|
||||||
Add the following lines to the .htaccess file in the root folder of your Friendica instance (thanks to [url=https://github.com/AlfredSK]AlfredSK[/url]):
|
Add the following lines to the .htaccess file in the root folder of your Friendica instance (thanks to [AlfredSK](https://github.com/AlfredSK)):
|
||||||
|
|
||||||
RewriteEngine On
|
RewriteEngine On
|
||||||
RewriteCond %{SERVER_PORT} 80
|
RewriteCond %{SERVER_PORT} 80
|
||||||
|
|
134
doc/Settings.md
|
@ -2,23 +2,28 @@
|
||||||
|
|
||||||
* [Home](help)
|
* [Home](help)
|
||||||
|
|
||||||
If you are the admin of a Friendica node, you have access to the so called **Admin Panel** where you can configure your Friendica node.
|
If you are the admin of a Friendica node, you have access to the **Admin Panel** where you can configure your Friendica node.
|
||||||
|
|
||||||
On the front page of the admin panel you will see a summary of information about your node.
|
## Overview
|
||||||
These information include the amount of messages currently being processed in the queues.
|
|
||||||
The first number is the number of messages which could not been delivered for various reasons.
|
In the main page of the admin panel you will see an information summary about your node.
|
||||||
They will be resend later.
|
|
||||||
You can have a quick glance into that second queus in the "Inspect Queue" section of the admin panel.
|
### Queues
|
||||||
The second number represents the current number of jobs for the background workers.
|
|
||||||
These worker tasks are prioritised and are done accordingly.
|
The three numbers shown are respectively:
|
||||||
|
- The retry queue: These outgoing messages couldn't be received by the remote host, and will be resent at longer intervals before being dropped entirely after 30 days.
|
||||||
|
- The deferred queue: These internal tasks failed and will be retried at most 14 times.
|
||||||
|
- The task queue: These internal tasks are queued for execution during the next background worker run.
|
||||||
|
|
||||||
|
### Additional information
|
||||||
|
|
||||||
Then you get an overview of the accounts on your node, which can be moderated in the "Users" section of the panel.
|
Then you get an overview of the accounts on your node, which can be moderated in the "Users" section of the panel.
|
||||||
As well as an overview of the currently active addons
|
As well as an overview of the currently active addons.
|
||||||
The list is linked, so you can have quick access to the Addon settings.
|
The list is linked, so you can have quick access to the Addon settings.
|
||||||
And finally you are informed about the version of Friendica you have installed.
|
And finally you are informed about the version of Friendica you have installed.
|
||||||
If you contact the devs with a bug or problem, please also mention the version of your node.
|
If you contact the developers with a bug or problem, please also mention the version of your node.
|
||||||
|
|
||||||
The admin panel is seperated into subsections accessible from the side bar of the panel.
|
The admin panel is separated into subsections accessible from the side bar of the panel.
|
||||||
|
|
||||||
## Site
|
## Site
|
||||||
|
|
||||||
|
@ -42,17 +47,17 @@ This option will set the default language for the node.
|
||||||
It is used as fall back setting should Friendica fail to recognize the visitors preferences and can be overwritten by user settings.
|
It is used as fall back setting should Friendica fail to recognize the visitors preferences and can be overwritten by user settings.
|
||||||
|
|
||||||
The Friendica community offers some translations.
|
The Friendica community offers some translations.
|
||||||
Some more compleate then others.
|
Some more complete then others.
|
||||||
See [this help page](/help/translations) for more information about the translation process.
|
See [this help page](/help/translations) for more information about the translation process.
|
||||||
|
|
||||||
#### System Theme
|
#### System Theme
|
||||||
|
|
||||||
Choose a theme to be the default system theme.
|
Choose a theme to be the default system theme.
|
||||||
This can be over-ridden by user profiles.
|
This can be over-ridden by user profiles.
|
||||||
Default theme is "duepunto zero" at the moment.
|
Default theme is `vier` at the moment.
|
||||||
|
|
||||||
You may also want to set a special theme for mobile interfaces.
|
You may also want to set a special theme for mobile interfaces.
|
||||||
Which may or may not be neccessary depending of the mobile friendlyness of the desktop theme you have chosen.
|
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.
|
The `vier` theme for instance is mobile friendly.
|
||||||
|
|
||||||
### Registration
|
### Registration
|
||||||
|
@ -68,8 +73,8 @@ You can chose between the following modes:
|
||||||
|
|
||||||
##### Invitation based registry
|
##### Invitation based registry
|
||||||
|
|
||||||
Additionally to the setting in the admin panel, you can devide if registrations are only possible using an invitation code or not.
|
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 in the [.htconfig.php](/help/htconfig) file.
|
To enable invitation based registration, you have to set the `invitation_only` setting in the [config/local.config.php](/help/Config) file.
|
||||||
If you want to use this method, the registration policy has to be set to either *open* or *requires approval*.
|
If you want to use this method, the registration policy has to be set to either *open* or *requires approval*.
|
||||||
|
|
||||||
#### Check Full Names
|
#### Check Full Names
|
||||||
|
@ -91,11 +96,37 @@ The ability to create "Pages" requires a person to register more than once.
|
||||||
Your site configuration can block registration (or require approval to register).
|
Your site configuration can block registration (or require approval to register).
|
||||||
By default, logged in users can register additional accounts for use as pages.
|
By default, logged in users can register additional accounts for use as pages.
|
||||||
These will still require approval if the registration policy is set to *require approval*
|
These will still require approval if the registration policy is set to *require approval*
|
||||||
You may prohibit logged in users from creating additional accounts by setting *block multible registrations* to true.
|
You may prohibit logged in users from creating additional accounts by setting *block multiple registrations* to true.
|
||||||
Default is false.
|
Default is false.
|
||||||
|
|
||||||
### File upload
|
### File upload
|
||||||
|
|
||||||
|
#### File storage backend
|
||||||
|
|
||||||
|
Set the backend used by Friendica to store uploaded file data.
|
||||||
|
Two storage backends are avaiable with Friendica:
|
||||||
|
|
||||||
|
- **Database** : Data is stored in a dedicated table in database (`storage`)
|
||||||
|
- **Filesystem** : Data is stored as file on the filesystem.
|
||||||
|
|
||||||
|
More storage backends can be avaiable from third-party addons.
|
||||||
|
If you use those, please refer to the documentation of those addons for further information.
|
||||||
|
|
||||||
|
Default value is 'Database (legacy)': it's the legacy way used to store data directly in database.
|
||||||
|
|
||||||
|
Existing data can be moved to the current active backend using the ['storage move' console command](help/tools)
|
||||||
|
|
||||||
|
If selected backend has configurable options, new fields are shown here.
|
||||||
|
|
||||||
|
##### Filesystem: Storage base path
|
||||||
|
|
||||||
|
The base path where Filesystem storage backend saves data.
|
||||||
|
|
||||||
|
For maximum security, this path should be outside the folder tree served by the web server: this way files can't be downloaded bypassing the privacy checks.
|
||||||
|
|
||||||
|
Default value is `storage`, that is the `storage` folder in Friendica code root folder.
|
||||||
|
|
||||||
|
|
||||||
#### Maximum Image Size
|
#### Maximum Image Size
|
||||||
|
|
||||||
Maximum size in bytes of uploaded images.
|
Maximum size in bytes of uploaded images.
|
||||||
|
@ -138,17 +169,15 @@ Your local users will always have access to both pages.
|
||||||
|
|
||||||
Comma separated list of domains which are allowed to establish friendships with this site.
|
Comma separated list of domains which are allowed to establish friendships with this site.
|
||||||
Wildcards are accepted.
|
Wildcards are accepted.
|
||||||
(Wildcard support on Windows platforms requires PHP5.3).
|
|
||||||
By default, any (valid) domain may 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, cooperations and similar communities that don't want to commuicate with the rest of the network.
|
This is useful if you want to setup a closed network for educational groups, cooperatives and similar communities that don't want to communicate with the rest of the network.
|
||||||
|
|
||||||
#### Allowed Email Domains
|
#### Allowed Email Domains
|
||||||
|
|
||||||
Comma separated list of domains which are allowed in email addresses for registrations to this site.
|
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.
|
This can lockout those who are not part of this organisation from registering here.
|
||||||
Wildcards are accepted.
|
Wildcards are accepted.
|
||||||
(Wildcard support on Windows platforms requires PHP5.3).
|
|
||||||
By default, any (valid) email address is allowed in registrations.
|
By default, any (valid) email address is allowed in registrations.
|
||||||
|
|
||||||
#### Allow Users to set remote_self
|
#### Allow Users to set remote_self
|
||||||
|
@ -162,6 +191,14 @@ It is disabled by default, as it causes additional load on the server and may be
|
||||||
As admin of the node you can also set this flag directly in the database.
|
As admin of the node you can also set this flag directly in the database.
|
||||||
Before doing so, you should be sure you know what you do and have a backup of the database.
|
Before doing so, you should be sure you know what you do and have a backup of the database.
|
||||||
|
|
||||||
|
#### Explicit Content
|
||||||
|
|
||||||
|
If you are running a node with explicit content, you can announce this with this option.
|
||||||
|
When checked an information flag will be set in the published information about your node.
|
||||||
|
(Should *Publish Server Information* be enabled.)
|
||||||
|
|
||||||
|
Additionally a note will be displayed on the registration page for new users.
|
||||||
|
|
||||||
### Advanced
|
### Advanced
|
||||||
|
|
||||||
#### Proxy Configuration Settings
|
#### Proxy Configuration Settings
|
||||||
|
@ -176,7 +213,7 @@ Value is in seconds.
|
||||||
Default is 60 seconds.
|
Default is 60 seconds.
|
||||||
Set to 0 for unlimited (not recommended).
|
Set to 0 for unlimited (not recommended).
|
||||||
|
|
||||||
#### Verify SSL Certitificates
|
#### Verify SSL Certificates
|
||||||
|
|
||||||
By default Friendica allows SSL communication between websites that have "self-signed" SSL certificates.
|
By default Friendica allows SSL communication between websites that have "self-signed" SSL certificates.
|
||||||
For the widest compatibility with browsers and other networks we do not recommend using self-signed certificates, but we will not prevent you from using them.
|
For the widest compatibility with browsers and other networks we do not recommend using self-signed certificates, but we will not prevent you from using them.
|
||||||
|
@ -209,7 +246,7 @@ 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 *fastlane*.
|
To guarantee that important tasks are executed even though the system has a lot of work to do, it is useful to enable the *fastlane*.
|
||||||
|
|
||||||
Should you not be able to run a cron job on your server, you can also activate the *frontend* worker.
|
Should you not be able to run a cron job on your server, you can also activate the *frontend* worker.
|
||||||
If you have done so, you can call `example.com/worker` (replace example.com with your actual domain name) on a regular basis from an external servie.
|
If you have done so, you can call `example.com/worker` (replace example.com with your actual domain name) on a regular basis from an external service.
|
||||||
This will then trigger the execution of the background process.
|
This will then trigger the execution of the background process.
|
||||||
|
|
||||||
### Relocate
|
### Relocate
|
||||||
|
@ -226,13 +263,13 @@ You can sort the user list by name, email, registration date, date of last login
|
||||||
Here the admin can also block/unblock users from accessing the node or delete the accounts entirely.
|
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 node.
|
In the last section of the page admins can create new accounts on the node.
|
||||||
The password for the new account will be send by email to the choosen email address.
|
The password for the new account will be send by email to the chosen email address.
|
||||||
|
|
||||||
## Addons
|
## Addons
|
||||||
|
|
||||||
This page is for selecting and configuration of extensions for Friendica which have to be placed into the `/addon` subdirectory of your Friendica installation.
|
This page is for selecting and configuration of extensions for Friendica which have to be placed into the `/addon` subdirectory of your Friendica installation.
|
||||||
You are presented with a long list of available addons.
|
You are presented with a long list of available addons.
|
||||||
The name of each addon is linked to a separate page for that addon which offers more informations and configuration possibilities.
|
The name of each addon is linked to a separate page for that addon which offers more information and configuration possibilities.
|
||||||
Also shown is the version of the addon and an indicator if the addon is currently active or not.
|
Also shown is the version of the addon and an indicator if the addon is currently active or not.
|
||||||
|
|
||||||
When you update your node and the addons they may have to be reloaded.
|
When you update your node and the addons they may have to be reloaded.
|
||||||
|
@ -255,16 +292,16 @@ In this section of the admin panel you can select a default setting for your nod
|
||||||
## DB Updates
|
## DB Updates
|
||||||
|
|
||||||
Should the database structure of Friendica change, it will apply the changes automatically.
|
Should the database structure of Friendica change, it will apply the changes automatically.
|
||||||
In case you are suspecious that the update might not have worked, you can use this section of the admin panel to check the situation.
|
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
|
## Inspect Queue
|
||||||
|
|
||||||
In the admin panel summary there are two numbers for the message queues.
|
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.
|
The second number represents messages which could not be delivered and are queued for later retry.
|
||||||
If this number goes sky-rocking you might ask yourself which receopiant is not receiving.
|
If this number goes sky-rocking you might 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.
|
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 receipiant name so identifying potential broken communication lines should be simple.
|
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.
|
These lines might be broken for various reasons.
|
||||||
The receiving end might be off-line, there might be a high system load and so on.
|
The receiving end might be off-line, there might be a high system load and so on.
|
||||||
|
|
||||||
|
@ -280,7 +317,7 @@ Matching is exact, blocking a domain doesn't block subdomains.
|
||||||
## Federation Statistics
|
## Federation Statistics
|
||||||
|
|
||||||
The federation statistics page gives you a short summery of the nodes/servers/pods of the decentralized social network federation your node knows.
|
The federation statistics page gives you a short summery of the nodes/servers/pods of the decentralized social network federation your node knows.
|
||||||
These numbers are not compleate and only contain nodes from networks Friendica federates directly with.
|
These numbers are not complete and only contain nodes from networks Friendica federates directly with.
|
||||||
|
|
||||||
## Delete Item
|
## Delete Item
|
||||||
|
|
||||||
|
@ -296,7 +333,7 @@ All those addons will be listed in this area of the admin panels side bar with t
|
||||||
|
|
||||||
## Logs
|
## Logs
|
||||||
|
|
||||||
The log section of the admin panel is seperated into two pages.
|
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.
|
On the first, following the "log" link, you can configure how much Friendica shall log.
|
||||||
And on the second you can read the log.
|
And on the second you can read the log.
|
||||||
|
|
||||||
|
@ -305,7 +342,7 @@ If you have to, and you are using the default configuration from Apache, you sho
|
||||||
Should you use another web server, please make sure that you have the correct access rules in place so that your log files are not accessible.
|
Should you use another web server, please make sure that you have the correct access rules in place so that your log files are not accessible.
|
||||||
|
|
||||||
There are five different log levels: Normal, Trace, Debug, Data and All.
|
There are five different log levels: Normal, Trace, Debug, Data and All.
|
||||||
Specifying different verbosities of information and data written out to the log file.
|
Specifying different verbosity of information and data written out to the log file.
|
||||||
Normally you should not need to log at all.
|
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.
|
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.
|
In the *ALL* level Friendica will log everything to the file.
|
||||||
|
@ -316,8 +353,8 @@ You should set up some kind of [log rotation](https://en.wikipedia.org/wiki/Log_
|
||||||
|
|
||||||
**Known Issues**: The filename ``friendica.log`` can cause problems depending on your server configuration (see [issue 2209](https://github.com/friendica/friendica/issues/2209)).
|
**Known Issues**: The filename ``friendica.log`` can cause problems depending on your server configuration (see [issue 2209](https://github.com/friendica/friendica/issues/2209)).
|
||||||
|
|
||||||
By default PHP warnings and error messages are supressed.
|
By default PHP warnings and error messages are suppressed.
|
||||||
If you want to enable those, you have to activate them in the ``.htconfig.php`` file.
|
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.
|
Use the following settings to redirect PHP errors to a file.
|
||||||
|
|
||||||
Config:
|
Config:
|
||||||
|
@ -337,7 +374,7 @@ If you encounter a blank (white) page when using the application, view the PHP l
|
||||||
|
|
||||||
## Diagnostics
|
## Diagnostics
|
||||||
|
|
||||||
In this section of the admin panel you find two tools to investigate what Friendica sees for certain ressources.
|
In this section of the admin panel you find two tools to investigate what Friendica sees for certain resources.
|
||||||
These tools can help to clarify communication problems.
|
These tools can help to clarify communication problems.
|
||||||
|
|
||||||
For the *probe address* Friendica will display information for the address provided.
|
For the *probe address* Friendica will display information for the address provided.
|
||||||
|
@ -351,12 +388,15 @@ These are the data base settings, the admin account settings, the path of PHP an
|
||||||
|
|
||||||
## DB Settings
|
## DB Settings
|
||||||
|
|
||||||
With the following settings, you specify the data base server, the username and passwort for Friendica and the database to use.
|
With the following settings, you specify the data base server, the username and password for Friendica and the database to use.
|
||||||
|
|
||||||
$db_host = 'your.db.host';
|
'database' => [
|
||||||
$db_user = 'db_username';
|
'hostname' => 'localhost',
|
||||||
$db_pass = 'db_password';
|
'username' => 'mysqlusername',
|
||||||
$db_data = 'database_name';
|
'password' => 'mysqlpassword',
|
||||||
|
'database' => 'mysqldatabasename',
|
||||||
|
'charset' => 'utf8mb4',
|
||||||
|
],
|
||||||
|
|
||||||
## Admin users
|
## Admin users
|
||||||
|
|
||||||
|
@ -365,24 +405,30 @@ By default this will be the one account you create during the installation proce
|
||||||
But you can expand the list of email addresses by any used email address you want.
|
But you can expand the list of email addresses by any used email address you want.
|
||||||
Registration of new accounts with a listed email address is not possible.
|
Registration of new accounts with a listed email address is not possible.
|
||||||
|
|
||||||
$a->config['admin_email'] = 'you@example.com, buddy@example.com';
|
'config' => [
|
||||||
|
'admin_email' => 'you@example.com, buddy@example.com',
|
||||||
|
],
|
||||||
|
|
||||||
## PHP Path
|
## PHP Path
|
||||||
|
|
||||||
Some of Friendicas processes are running in the background.
|
Some of Friendica's processes are running in the background.
|
||||||
For this you need to specify the path to the PHP binary to be used.
|
For this you need to specify the path to the PHP binary to be used.
|
||||||
|
|
||||||
$a->config['php_path'] = '{{$phpath}}';
|
'config' => [
|
||||||
|
'php_path' => '/usr/bin/php',
|
||||||
|
],
|
||||||
|
|
||||||
## Subdirectory configuration
|
## Subdirectory configuration
|
||||||
|
|
||||||
It is possible to install Friendica into a subdirectory of your web server.
|
It is possible to install Friendica into a subdirectory of your web server.
|
||||||
We strongly discurage you from doing so, as this will break federation to other networks (e.g. Diaspora, GNU Socia, Hubzilla)
|
We strongly discourage you from doing so, as this will break federation to other networks (e.g. Diaspora, GNU Social, Hubzilla)
|
||||||
Say you have a subdirectory for tests and put Friendica into a further subdirectory, the config would be:
|
Say you have a subdirectory for tests and put Friendica into a further subdirectory, the config would be:
|
||||||
|
|
||||||
$a->path = 'tests/friendica';
|
'system' => [
|
||||||
|
'urlpath' => 'tests/friendica',
|
||||||
|
],
|
||||||
|
|
||||||
## Other exceptions
|
## Other exceptions
|
||||||
|
|
||||||
Furthermore there are some experimental settings, you can read-up in the [Config values that can only be set in .htconfig.php](help/htconfig) section of the documentation.
|
Furthermore there are some experimental settings, you can read-up in the [Config values that can only be set in config/local.config.php](help/Config) section of the documentation.
|
||||||
|
|
||||||
|
|
|
@ -23,16 +23,19 @@ You can tag a person on a different network or one that is **not in your social
|
||||||
|
|
||||||
Unless their system blocks unsolicited "mentions", the person tagged will likely receive a "Mention" post/activity or become a direct participant in the conversation in the case of public posts.
|
Unless their system blocks unsolicited "mentions", the person tagged will likely receive a "Mention" post/activity or become a direct participant in the conversation in the case of public posts.
|
||||||
Friendica blocks incoming “mentions” from people with no relationship to you.
|
Friendica blocks incoming “mentions” from people with no relationship to you.
|
||||||
The exception is an ongiong conversation started from a contact of both you and the 3rd person or a conversation in a forum where you are a member of.
|
The exception is an ongoing conversation started from a contact of both you and the 3rd person or a conversation in a forum where you are a member of.
|
||||||
This is a spam prevention measure.
|
This is a spam prevention measure.
|
||||||
|
|
||||||
Remote mentions are delivered using the OStatus protocol.
|
Remote mentions are delivered using the OStatus protocol.
|
||||||
This protocol is used by Friendica and GNU Social and several other systems, but is not currently implemented in Diaspora.
|
This protocol is used by Friendica and GNU Social and several other systems like Mastodon, but is not currently implemented in Diaspora.
|
||||||
As the OStatus protocol allows this Friendica user can be @-mentioned by users from platforms using this protocol in conversations if the "Enable OStatus support" is activated on the Friendica node.
|
As the OStatus protocol allows this Friendica user can be @-mentioned by users from platforms using this protocol in conversations if the "Enable OStatus support" is activated on the Friendica node.
|
||||||
These @-mentions wont be blocked, even if there is no relationship between the sender and the receiver of the message.
|
These @-mentions wont be blocked, even if there is no relationship between the sender and the receiver of the message.
|
||||||
|
|
||||||
Friendica makes no distinction between people and forums for the purpose of tagging.
|
Friendica makes no distinction between people and forums for the purpose of tagging.
|
||||||
(Some other networks use !forum to indicate a forum.)
|
You can use @-mentions for forums like for other accounts to tag the forum.
|
||||||
|
If you want to post something exclusively to a forum (e.g. the support forum) please use the bang-notation instead of the @tag.
|
||||||
|
So !helpers will be an exclusive posting to the support forum if you are connected with the forum.
|
||||||
|
If you select a forum from the ACL a !-mention will be added automatically to your posting.
|
||||||
|
|
||||||
If you sort your contacts into groups, you cannot @-mention these groups.
|
If you sort your contacts into groups, you cannot @-mention these groups.
|
||||||
But you can select the group in the access control when creating a new posting, to allow (or disallow) a certain group of people to see the posting.
|
But you can select the group in the access control when creating a new posting, to allow (or disallow) a certain group of people to see the posting.
|
||||||
|
@ -40,11 +43,14 @@ See [Groups and Privacy](help/Groups-and-Privacy) for more details about groupin
|
||||||
|
|
||||||
**Topical Tags**
|
**Topical Tags**
|
||||||
|
|
||||||
Topical tags are indicated by preceding the tag name with the # character. This will create a link in the post to a generalised site search for the term provided. For example, #cars will provide a search link for all posts mentioning 'cars' on your site. Topical tags are generally a minimum of three characters in length. Shorter search terms are not likely to yield any search results, although this depends on the database configuration. The same rules apply as with names that spaces within tags are represented by the underscore character. It is therefore not possible to create a tag whose target contains an underscore.
|
Topical tags are indicated by preceding the tag name with the # character.
|
||||||
|
This will create a link in the post to a generalised site search for the term provided.
|
||||||
Topical tags are also not linked if they are purely numeric, e.g. #1. If you wish to use a numerica hashtag, please add some descriptive text such as #2012-elections.
|
For example, #cars will provide a search link for all posts mentioning 'cars' on your site.
|
||||||
|
Topical tags are generally a minimum of three characters in length.
|
||||||
|
Shorter search terms are not likely to yield any search results, although this depends on the database configuration.
|
||||||
|
The same rules apply as with names that spaces within tags are represented by the underscore character.
|
||||||
|
It is therefore not possible to create a tag whose target contains an underscore.
|
||||||
|
|
||||||
|
Topical tags are also not linked if they are purely numeric, e.g. #1.
|
||||||
|
If you wish to use a numerica hashtag, please add some descriptive text such as #2012-elections.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
# Themes
|
||||||
|
|
||||||
|
* [Home](help)
|
||||||
|
|
||||||
|
You can run unit tests with [PHPUnit](https://phpunit.de/):
|
||||||
|
|
||||||
|
```bash
|
||||||
|
phpunit
|
||||||
|
```
|
||||||
|
|
||||||
|
Some tests require access to a MySQL database.
|
||||||
|
You can specify the database credentials in environment variables:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
USER=database_user PASS=database_password DB=database_name phpunit
|
||||||
|
```
|
||||||
|
|
||||||
|
**Warning**: This will empty all the tables! Never use this on a production database.
|
|
@ -11,71 +11,85 @@ Creating posts
|
||||||
|
|
||||||
Here you can find an overview of the different ways to create and edit your post.
|
Here you can find an overview of the different ways to create and edit your post.
|
||||||
|
|
||||||
One click on "Share" text box on top of your Home or Network page, and the post editor shows up:
|
One click on the Pencil & Paper icon in the top right of your Home or Network page, or the "Share" text box, and the post editor shows up.
|
||||||
|
Below are examples of the post editor in 3 of Friendica's common themes:
|
||||||
|
|
||||||
<figure>
|
<figure>
|
||||||
<img src="doc/img/friendica_editor.png" alt="default editor">
|
<img src="doc/img/editor_frio.png" alt="frio editor">
|
||||||
<figcaption>Default post editor, with default Friendica theme (duepuntozero)</figcaption>
|
<figcaption>Post editor, with the <b>Frio</b> (popular default) theme.</figcaption>
|
||||||
|
</figure>
|
||||||
|
<p style="clear:both;"></p>
|
||||||
|
<figure>
|
||||||
|
<img src="doc/img/editor_vier.png" alt="vier editor" width="675">
|
||||||
|
<figcaption>Post editor, with the <b>Vier</b> theme.</figcaption>
|
||||||
|
</figure>
|
||||||
|
<p style="clear:both;"></p>
|
||||||
|
<figure>
|
||||||
|
<img src="doc/img/editor_dpzero.png" alt="duepuntozero editor">
|
||||||
|
<figcaption>Post editor, with the <b>Duepuntozero</b> theme.</figcaption>
|
||||||
</figure>
|
</figure>
|
||||||
|
|
||||||
Post title is optional, you can set it clicking on "Set title".
|
Post title is optional, you can set it by clicking on "Set title".
|
||||||
|
|
||||||
Posts can optionally be in one or more categories. Write categories name separated by a comma to file your new post.
|
Posts can optionally be in one or more categories. Write category names separated by a comma to file your new post.
|
||||||
|
|
||||||
The Big Empty Textarea is where you write your new post.
|
The Big Empty Textarea is where you write your new post.
|
||||||
You can simply enter your text there and click "Share" button, and your new post will be public on your profile page and shared to your contact.
|
You can simply enter your text there and click the "Share" button, and your new post will be public on your profile page and shared to your contact.
|
||||||
|
|
||||||
If plain text is not so exciting to you, Friendica understands BBCode to spice up your posts: bold, italic, images, links, lists..
|
If plain text is not so exciting to you, Friendica understands BBCode to spice up your posts: bold, italic, images, links, lists..
|
||||||
See [BBCode tags reference](help/BBCode) page to see all what you can do.
|
See [BBCode tags reference](help/BBCode) page to see all what you can do.
|
||||||
|
|
||||||
The icons under the text area are there to help you to write posts quickly:
|
The icons under the text area are there to help you to write posts quickly, but vary depending on the theme:
|
||||||
|
|
||||||
<img src="doc/img/camera.png" width="32" height="32" alt="editor" align="left" style="padding-bottom: 20px;"> Upload a picture from your computer. The image will be uploaded and correct bbcode tag will be added to your post.*
|
With the Frio theme, the Underline, Italics and Bold buttons should be self-explanatory.
|
||||||
|
|
||||||
|
<img src="doc/img/camera.png" width="32" height="32" alt="editor" align="left"> Upload a picture from your computer. The image will be uploaded and correct bbcode tag will be added to your post.* In the Frio theme, use the <b>Browser</b> tab instead to Upload and/or attach content to your post.
|
||||||
<p style="clear:both;"></p>
|
<p style="clear:both;"></p>
|
||||||
|
|
||||||
<img src="doc/img/paper_clip.png" width="32" height="32" alt="paper_clip" align="left"> Add files from your computer. Same as picture, but for generic attachment to the post.*
|
<img src="doc/img/paper_clip.png" width="32" height="32" alt="paper_clip" align="left"> This depends on the theme: For Frio, this is to attach remote content - put in a URL to embed in your post, including video or audio content. For other themes: Add files from your computer. Same as picture, but for generic attachment to the post.*
|
||||||
<p style="clear:both;"></p>
|
<p style="clear:both;"></p>
|
||||||
|
|
||||||
<img src="doc/img/chain.png" width="32" height="32" alt="chain" align="left"> Add a web address (url). Enter an url and Friendica will add to your post a link to the url and an excerpt from the web site, if possible.
|
<img src="doc/img/chain.png" width="32" height="32" alt="chain" align="left"> Add a web address (url). Enter a URL and Friendica will add to your post a link to the url and an excerpt from the web site, if possible.
|
||||||
<p style="clear:both;"></p>
|
<p style="clear:both;"></p>
|
||||||
|
|
||||||
<img src="doc/img/video.png" width="32" height="32" alt="video" align="left"> Add a video. Enter the url to a video (ogg) or to a video page on youtube or vimeo, and it will be embedded in your post with a preview. Friendica is using [HTML5](http://en.wikipedia.org/wiki/HTML5_video) for embedding content. Therefore, the supported files are depending on your browser and operating system (OS). Some filetypes are WebM, MP4 and OGG.*
|
<img src="doc/img/video.png" width="32" height="32" alt="video" align="left"> Add a video. Enter the url to a video (ogg) or to a video page on youtube or vimeo, and it will be embedded in your post with a preview. (In the Frio theme, this is done with the paperclip as mentioned above.) Friendica is using [HTML5](http://en.wikipedia.org/wiki/HTML5_video) for embedding content. Therefore, the supported files are depending on your browser and operating system (OS). Some filetypes are WebM, MP4 and OGG.*
|
||||||
<p style="clear:both;"></p>
|
<p style="clear:both;"></p>
|
||||||
|
|
||||||
<img src="doc/img/mic.png" width="32" height="32" alt="mic" align="left" style="padding-bottom: 20px;"> Add an audio. Same as video, but for audio. Depending on your browser and operation system MP3, OGG and AAC are supported. Additionally, you are able to add URLs from audiohosters like Soundcloud.
|
<img src="doc/img/mic.png" width="32" height="32" alt="mic" align="left"> Add an audio. Same as video, but for audio. Depending on your browser and operation system MP3, OGG and AAC are supported. Additionally, you are able to add URLs from audiohosters like Soundcloud.
|
||||||
|
|
||||||
<p style="clear:both;"></p>
|
<p style="clear:both;"></p>
|
||||||
|
|
||||||
<img src="doc/img/globe.png" width="32" height="32" alt="globe" align="left"> Set your geographic location. This location will be added into a Google Maps search. That's why a note like "New York" or "10004" is already enough.
|
<img src="doc/img/globe.png" width="32" height="32" alt="globe" align="left"> <b>Or</b> <img src="doc/img/frio_location.png" width="32" height="32" alt="location" align="none"> Set your geographic location. This location will be added into a Google Maps search. That's why a note like "New York" or "10004" is already enough.
|
||||||
|
<p style="clear:both;"></p>
|
||||||
|
<br />
|
||||||
|
|
||||||
<p style="clear:both;"></p>
|
<p style="clear:both;"></p>
|
||||||
|
|
||||||
<i>* how to [upload](help/FAQ#upload) files</i>
|
These icons can change depending on the theme. Some examples:
|
||||||
|
|
||||||
Those icons can change with themes. Some examples:
|
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Darkbubble: </td>
|
<td>Vier: </td>
|
||||||
|
<td><img src="doc/img/vier_icons.png" alt="vier.png" style="vertical-align:middle;"></td>
|
||||||
|
<td> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>Smoothly: </td>
|
||||||
<td><img src="doc/img/editor_darkbubble.png" alt="darkbubble.png" style="vertical-align:middle;"></td>
|
<td><img src="doc/img/editor_darkbubble.png" alt="darkbubble.png" style="vertical-align:middle;"></td>
|
||||||
<td><i>(inkl. smoothly, testbubble)</i></td>
|
<td> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>Frost: </td>
|
<td>Frost: </td>
|
||||||
<td><img src="doc/img/editor_frost.png" alt="frost.png" style="vertical-align:middle;"> </td>
|
<td><img src="doc/img/editor_frost.png" alt="frost.png" style="vertical-align:middle;"> </td>
|
||||||
<td> </td>
|
<td> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>Vier: </td>
|
|
||||||
<td><img src="doc/img/editor_vier.png" alt="vier.png" style="vertical-align:middle;"></td>
|
|
||||||
<td><i>(inkl. dispy)</i></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
</table>
|
||||||
<p style="clear:both;"> </p>
|
<i><b>*</b> how to [upload](help/FAQ#upload) files</i>
|
||||||
<p style="clear:both;"> </p>
|
<p style="clear:both;"> </p>
|
||||||
|
|
||||||
**<img src="doc/img/lock.png" width="32" height="32" alt="lock icon" style="vertical-align:middle;"> The lock**
|
**<img src="doc/img/lock.png" width="32" height="32" alt="lock icon" style="vertical-align:middle;"> The Lock / Permissions**
|
||||||
|
|
||||||
The last button, the Lock, is the most important feature in Friendica. If the lock is open, your post will be public, and will shows up on your profile page when strangers visit it.
|
In Frio, the Permissions tab, or in other themes, the Lock button, is the most important feature in Friendica. If the lock is open, your post will be public, and will show up on your profile page when strangers visit it.
|
||||||
|
|
||||||
Click on it and the *Permission settings* window (aka "*Access Control Selector*" or "*ACL Selector*") pops up. There you can select who can see the post.
|
Click on it and the *Permission settings* window (aka "*Access Control Selector*" or "*ACL Selector*") pops up. There you can select who can see the post.
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,74 @@
|
||||||
|
# Configuring two-factor authentication
|
||||||
|
|
||||||
|
* [Home](help)
|
||||||
|
|
||||||
|
You can configure two-factor authentication using a mobile app.
|
||||||
|
A time-based one-time password (TOTP) application automatically generates an authentication code that changes after a certain period of time.
|
||||||
|
|
||||||
|
**Tip**: To configure authentication via TOTP on multiple devices, during setup, scan the QR code using each device at the same time.
|
||||||
|
If 2FA is already enabled and you want to add another device, you must re-configure 2FA from your security settings.
|
||||||
|
|
||||||
|
## Enabling two-factor authentication
|
||||||
|
|
||||||
|
### 1. Download an authenticator app
|
||||||
|
|
||||||
|
Any authenticator app should work with Friendica.
|
||||||
|
Notheless, we recommend:
|
||||||
|
|
||||||
|
- For iOS, [Matt Rubin's MIT-licensed Authenticator app](https://mattrubin.me/authenticator).
|
||||||
|
- For Android, [andOTP](https://github.com/andOTP/andOTP).
|
||||||
|
|
||||||
|
### 2. Record your one-use recovery codes
|
||||||
|
|
||||||
|
From your [two-factor authentication user settings](/settings/2fa), enter your password and click on "Enable two-factor authentication".
|
||||||
|
|
||||||
|
You will be presented with a list of one-use recovery codes.
|
||||||
|
Please save those in the same place you are saving your Friendica password (ideally, in a password manager like [KeePass](https://keepass.info)).
|
||||||
|
|
||||||
|
When you're done, click on "Next".
|
||||||
|
|
||||||
|
### 3. Setup your authenticator app
|
||||||
|
|
||||||
|
You have three methods to setup your authenticator app:
|
||||||
|
|
||||||
|
1. Scan the QR Code with your device camera.
|
||||||
|
This will automatically configure your account on the app.
|
||||||
|
2. Click/tap on the provided **totp://** URl.
|
||||||
|
Ideally your authenticator app should be called with this URL and set up your account.
|
||||||
|
3. Enter your account settings manually.
|
||||||
|
Friendica is using default settings for token type, code digit count and hashing algorithm but you may be required to enter them in your app.
|
||||||
|
|
||||||
|
**Tip**: If you have multiple devices, configure them all at this point.
|
||||||
|
|
||||||
|
Then verify your app is correctly configured by submitting a code provided by your app.
|
||||||
|
This will conclude two-factor authentication configuration.
|
||||||
|
|
||||||
|
**Note:** If you leave this screen at any point without having submitted a verification code, two-factor authentication won't be enabled on your account.
|
||||||
|
To complete the configuration, just come back to your [two-factor authentication user settings](/settings/2fa) and click on "Finish configuration" after entering your current password.
|
||||||
|
|
||||||
|
## Disabling two-factor authentication
|
||||||
|
|
||||||
|
You can disable two-factor authentication at any time by going to your [two-factor authentication user settings](/settings/2fa) and click on "Disable two-factor authentication" after entering your current password.
|
||||||
|
|
||||||
|
You should remove your Friendica account from your authenticator app as it won't work again even if you reenable two-factor authentication.
|
||||||
|
In this case you will have to configure your authenticator app again using the process above.
|
||||||
|
|
||||||
|
## Managing your one-time recovery codes
|
||||||
|
|
||||||
|
When two-factor authentication is enabled, you can show your recovery codes, including the ones you've already used.
|
||||||
|
|
||||||
|
You can freely regenerate a new set of fresh recovery codes, just be sure to replace the previous ones where you saved them as they won't be active anymore.
|
||||||
|
|
||||||
|
## Third-party applications and API
|
||||||
|
|
||||||
|
Third-party applications using the Friendica API can't accept two-factor time-based authentication codes.
|
||||||
|
Instead, if you enabled two-factor authentication, you have to generate app-specific randomly generated long passwords to use in your apps instead of your regular account password.
|
||||||
|
|
||||||
|
**Note**: Your regular password won't work at all when prompted in third-party apps if you enabled two-factor authentication.
|
||||||
|
|
||||||
|
You can generate as many app-specific passwords as you want, they will be shown once to you just after you generated it.
|
||||||
|
Just copy and paste it in your third-party app in the Friendica account password input field at this point.
|
||||||
|
We recommend generating a single app-specific password for each separate third-party app you are using, using a meaningul description of the target app (like "Frienqa on my Fairphone 2").
|
||||||
|
|
||||||
|
You can also revoke any and all app-specific password you generated this way.
|
||||||
|
This may log you out of the third-party application(s) you used the revoked app-specific password to log in with.
|
|
@ -6,8 +6,9 @@ Updating Friendica
|
||||||
## Using a Friendica archive
|
## Using a Friendica archive
|
||||||
|
|
||||||
If you installed Friendica in the ``path/to/friendica`` folder:
|
If you installed Friendica in the ``path/to/friendica`` folder:
|
||||||
|
|
||||||
1. Unpack the new Friendica archive in ``path/to/friendica_new``.
|
1. Unpack the new Friendica archive in ``path/to/friendica_new``.
|
||||||
2. Copy ``.htconfig.php``, ``photo/`` and ``proxy/`` from ``path/to/friendica`` to ``path/to/friendica_new``.
|
2. Copy ``config/local.config.php``, ``photo/`` and ``proxy/`` from ``path/to/friendica`` to ``path/to/friendica_new``.
|
||||||
3. Rename the ``path/to/friendica`` folder to ``path/to/friendica_old``.
|
3. Rename the ``path/to/friendica`` folder to ``path/to/friendica_old``.
|
||||||
4. Rename the ``path/to/friendica_new`` folder to ``path/to/friendica``.
|
4. Rename the ``path/to/friendica_new`` folder to ``path/to/friendica``.
|
||||||
5. Check your site. Note: it may go into maintenance mode to update the database schema.
|
5. Check your site. Note: it may go into maintenance mode to update the database schema.
|
||||||
|
@ -21,7 +22,7 @@ You can get the latest changes at any time with
|
||||||
|
|
||||||
cd path/to/friendica
|
cd path/to/friendica
|
||||||
git pull
|
git pull
|
||||||
bin/composer.phar install
|
bin/composer.phar install --no-dev
|
||||||
|
|
||||||
The addon tree has to be updated separately like so:
|
The addon tree has to be updated separately like so:
|
||||||
|
|
||||||
|
|
|
@ -42,7 +42,7 @@ This will not delete the virtual machine.
|
||||||
9. To ultimately delete the virtual machine run
|
9. To ultimately delete the virtual machine run
|
||||||
|
|
||||||
$> vagrant destroy
|
$> vagrant destroy
|
||||||
$> rm /vagrant/.htconfig.php
|
$> rm /vagrant/config/local.config.php
|
||||||
|
|
||||||
to make sure that you can start from scratch with another "vagrant up".
|
to make sure that you can start from scratch with another "vagrant up".
|
||||||
|
|
||||||
|
@ -53,6 +53,6 @@ You will then have the following accounts to login:
|
||||||
* friendica1, password friendica1
|
* friendica1, password friendica1
|
||||||
* friendica2, password friendica2 and so on until friendica5
|
* friendica2, password friendica2 and so on until friendica5
|
||||||
* friendica1 is connected to all others. friendica1 has two groups: group1 with friendica2 and friendica4, group2 with friendica3 and friendica5.
|
* friendica1 is connected to all others. friendica1 has two groups: group1 with friendica2 and friendica4, group2 with friendica3 and friendica5.
|
||||||
* friendica2 and friendica3 are conntected. friendica4 and friendica5 are connected.
|
* friendica2 and friendica3 are connected. friendica4 and friendica5 are connected.
|
||||||
|
|
||||||
For further documentation of vagrant, please see [the vagrant*docs*](https://docs.vagrantup.com/v2/).
|
For further documentation of vagrant, please see [the vagrant*docs*](https://docs.vagrantup.com/v2/).
|
||||||
|
|
111
doc/api.md
|
@ -379,6 +379,39 @@ Friendica doesn't allow showing the friends of other users.
|
||||||
|
|
||||||
* media: image data
|
* media: image data
|
||||||
|
|
||||||
|
#### Return values
|
||||||
|
|
||||||
|
Object of:
|
||||||
|
|
||||||
|
* media_id: a media identifier (integer)
|
||||||
|
* media_id_string: a media identifier (string)
|
||||||
|
* size: size in byte
|
||||||
|
* image.w: image width
|
||||||
|
* image.h: image height
|
||||||
|
* image.image_type: image mime type
|
||||||
|
* image.friendica_preview_url: image preview url
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### media/metadata/create (POST,PUT; AUTH)
|
||||||
|
|
||||||
|
#### Parameters
|
||||||
|
|
||||||
|
Parameters are sent as JSON object:
|
||||||
|
|
||||||
|
```
|
||||||
|
{
|
||||||
|
"media_id":"1234",
|
||||||
|
"alt_text": {
|
||||||
|
"text":"Here comes the description"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Return values
|
||||||
|
|
||||||
|
None
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### oauth/request_token (*)
|
### oauth/request_token (*)
|
||||||
|
@ -433,6 +466,7 @@ Friendica doesn't allow showing the friends of other users.
|
||||||
#### Parameters
|
#### Parameters
|
||||||
|
|
||||||
* include_entities: "true" shows entities for pictures and links (Default: false)
|
* include_entities: "true" shows entities for pictures and links (Default: false)
|
||||||
|
* count: how many items should be shown (Default: 20)
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -633,6 +667,80 @@ Friendica doesn't allow showing the friends of other users.
|
||||||
* trim_user
|
* trim_user
|
||||||
* contributor_details
|
* contributor_details
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Return values for statuses/* api calls
|
||||||
|
|
||||||
|
Returned status object is conform to GNU Social/Twitter api.
|
||||||
|
|
||||||
|
Friendica adds some addictional fields:
|
||||||
|
|
||||||
|
- author: a user object, it's the author of the item. In case of a reshare for legacy reasons the "user" field doesn't show the real author. This field always contains the real author of a post.
|
||||||
|
- owner: a user object, it's the owner of the item.
|
||||||
|
- private: boolean, true if the item is marked as private
|
||||||
|
- activities: map with activities related to the item. Every activity is a list of user objects.
|
||||||
|
- comments: comment numbers
|
||||||
|
|
||||||
|
This properties are prefixed with "friendica_" in JSON responses and namespaced under "http://friendi.ca/schema/api/1/" in XML responses
|
||||||
|
|
||||||
|
JSON:
|
||||||
|
|
||||||
|
```json
|
||||||
|
[
|
||||||
|
{
|
||||||
|
// ...
|
||||||
|
'friendica_author' : {
|
||||||
|
// user object
|
||||||
|
},
|
||||||
|
'friendica_owner' : {
|
||||||
|
// user object
|
||||||
|
},
|
||||||
|
'friendica_private' : true,
|
||||||
|
'friendica_activities': {
|
||||||
|
'like': [
|
||||||
|
{
|
||||||
|
// user object
|
||||||
|
},
|
||||||
|
// ...
|
||||||
|
],
|
||||||
|
'dislike': [],
|
||||||
|
'attendyes': [],
|
||||||
|
'attendno': [],
|
||||||
|
'attendmaybe': []
|
||||||
|
},
|
||||||
|
'friendica_comments': 12
|
||||||
|
},
|
||||||
|
// ...
|
||||||
|
]
|
||||||
|
```
|
||||||
|
|
||||||
|
XML:
|
||||||
|
|
||||||
|
```xml
|
||||||
|
<statuses xmlns="http://api.twitter.com" xmlns:statusnet="http://status.net/schema/api/1/" xmlns:friendica="http://friendi.ca/schema/api/1/" xmlns:georss="http://www.georss.org/georss">
|
||||||
|
<status>
|
||||||
|
<!-- ... -->
|
||||||
|
<friendica:owner><!-- user object --></friendica:owner>
|
||||||
|
<friendica:private>true</friendica:private>
|
||||||
|
<friendica:activities>
|
||||||
|
<friendica:like>
|
||||||
|
<user>
|
||||||
|
<!-- user object -->
|
||||||
|
</user>
|
||||||
|
<!-- ... --->
|
||||||
|
</friendica:like>
|
||||||
|
<friendica:dislike/>
|
||||||
|
<friendica:attendyes/>
|
||||||
|
<friendica:attendno/>
|
||||||
|
<friendica:attendmaybe/>
|
||||||
|
</friendica:activities>
|
||||||
|
<friendica:comments>21</friendica:comments>
|
||||||
|
</status>
|
||||||
|
<!-- ... -->
|
||||||
|
</statuses>
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### statusnet/config (*)
|
### statusnet/config (*)
|
||||||
|
@ -676,6 +784,7 @@ Friendica doesn't allow showing followers of other users.
|
||||||
* count: alias for the rpp parameter
|
* count: alias for the rpp parameter
|
||||||
* since_id: returns statuses with ids greater than the given id
|
* since_id: returns statuses with ids greater than the given id
|
||||||
* max_id: returns statuses with ids lower or equal to the given id
|
* max_id: returns statuses with ids lower or equal to the given id
|
||||||
|
* exclude_replies: don't show replies (default: false)
|
||||||
|
|
||||||
#### Unsupported parameters
|
#### Unsupported parameters
|
||||||
|
|
||||||
|
@ -993,7 +1102,7 @@ possibile scale value are:
|
||||||
* 1: image with or height at <= 640
|
* 1: image with or height at <= 640
|
||||||
* 2: image with or height at <= 320
|
* 2: image with or height at <= 320
|
||||||
* 3: thumbnail 160x160
|
* 3: thumbnail 160x160
|
||||||
* 4: Profile image at 175x175
|
* 4: Profile image at 300x300
|
||||||
* 5: Profile image at 80x80
|
* 5: Profile image at 80x80
|
||||||
* 6: Profile image at 48x48
|
* 6: Profile image at 48x48
|
||||||
|
|
||||||
|
|
|
@ -4,71 +4,73 @@ Account - Basics
|
||||||
* [Zur Startseite der Hilfe](help)
|
* [Zur Startseite der Hilfe](help)
|
||||||
|
|
||||||
|
|
||||||
**Registrierung**
|
## Registrierung
|
||||||
|
|
||||||
Nicht alle Friendica-Knoten bieten die Möglichkeit zur Registrierung.
|
Viele, aber nicht alle Friendica-Knoten (Server) bieten die Möglichkeit zur Registrierung an.
|
||||||
Wenn die Registrierung möglich ist, wird ein "Registrieren"-Link unter dem Login-Feld auf der Startseite angezeigt, der zur Registrierungsseite führt.
|
Falls der Friendica-Knoten, den Du besuchst, keine Registrierung anbietet, oder Du glaubst, dass Dir ein anderer Knoten möglicherweise besser gefällt, dann findest Du hier eine [Liste von öffentlichen Friendica-Knoten](https://dir.friendica.social/servers), aus der Du Dir eine netten Knoten heraussuchen kannst.
|
||||||
Die Stärke unseres Netzwerks ist, dass die verschiedenen Knoten komplett kompatibel zueinander sind.
|
|
||||||
Wenn der Knoten, den Du besuchst, keine Registrierung anbietet, oder wenn Du glaubst, dass Dir eine andere Seite möglicherweise besser gefällt, dann kannst Du hier eine <a href="https://dir.friendica.social/servers">Liste von öffentlichen Servern (Knoten)</a> finden und den Knoten heraus suchen, der am Besten zu Deinen Anforderungen passt.
|
|
||||||
|
|
||||||
Wenn Du Deinen eigenen Server aufsetzen willst, kannst Du das ebenfalls machen.
|
Auf der Startseite des Knotens wird unter dem Login-Feld ein "Registrieren"-Link angezeigt.
|
||||||
Besuche <a href="http://friendi.ca">die Friendica-Webseite</a>, um den Code mit den Installationsanleitungen herunterzuladen.
|
Dieser Link führt dann direkt auf das Registrierungsformular.
|
||||||
Es ist ein einfacher Installationsprozess, den jeder mit ein wenig Erfahrungen im Webseiten-Hosting oder mit grundlegenden Linux-Erfahrungen einfach handhaben kann.
|
|
||||||
|
|
||||||
|
### OpenID
|
||||||
|
|
||||||
*OpenID*
|
Falls du keine [OpenID-Adresse](https://de.wikipedia.org/wiki/OpenID">OpenID-Adresse) hast, kannst du diesen Punkt ignorieren.
|
||||||
|
|
||||||
Das erste Feld auf der Registrierungsseite ist für eine OpenID-Adresse.
|
Solltest du eine OpenID Adresse haben, kannst Du sie im ersten Feld eintragen und "Registrieren" klicken.
|
||||||
Wenn Du keine OpenID-Adresse hast oder nicht wünschst, diese zu nutzen, dann lasse das Feld frei.
|
|
||||||
Wenn Du einen OpenID-Account hast und diesen nutzen willst, gib die Adresse in das Feld ein und klicke auf "Registrieren".
|
|
||||||
Friendica wird versuchen, so viele Informationen wie möglich von Deinem OpenID-Provider zu übernehmen, um diese in Dein Profil auf dieser Seite einzutragen.
|
Friendica wird versuchen, so viele Informationen wie möglich von Deinem OpenID-Provider zu übernehmen, um diese in Dein Profil auf dieser Seite einzutragen.
|
||||||
|
|
||||||
|
|
||||||
*Dein vollständiger Name*
|
### Dein vollständiger Name
|
||||||
|
|
||||||
Bitte trage Deinen vollständigen Namen **so ein, wie Du ihn im System anzeigen lassen willst**.
|
Bitte trage bei "vollständiger Name" Deinen **gewünschten Namen** ein, wie er über deinen Beiträgen angezeigt werden soll.
|
||||||
Viele Leute nutzen ihren richtigen Namen hierfür, allerdings besteht für dich keine Pflicht, das auch so zu machen.
|
Du kannst deinen echten Namen eintragen, kannst Dir aber auch einen Namen ausdenken. Einen Zwang zu dem sogenannten Klarnamen gibt es nicht.
|
||||||
|
|
||||||
|
|
||||||
*Email-Adresse*
|
|
||||||
|
### Email-Adresse
|
||||||
|
|
||||||
Bitte trage eine richtige Email-Adresse ein.
|
Bitte trage eine richtige Email-Adresse ein.
|
||||||
Deine Email-Adresse wird **niemals** veröffentlicht.
|
|
||||||
Wir benötigen diese, um Dir Account-Informationen und die Login-Daten zu schicken.
|
|
||||||
Du erhältst zudem von Zeit zu Zeit Benachrichtigungen über eingegangene Nachrichten oder Punkte, die Deine Aufmerksamkeit benötigen.
|
|
||||||
Du hast aber auch die Möglichkeit, diese Nachrichten in Deinen Account-Einstellungen komplett abzuschalten.
|
|
||||||
|
|
||||||
Du musst nicht Deine Haupt-Email-Adresse sein, jedoch wird eine funktionierende Adresse benötigt.
|
|
||||||
Ohne dieses kannst Du weder Dein Initialpasswort erhalten, noch Dein Passwort zurücksetzen.
|
|
||||||
Dies ist die einzige persönliche Information, die korrekt sein muss.
|
Dies ist die einzige persönliche Information, die korrekt sein muss.
|
||||||
|
Deine Email-Adresse wird **niemals** veröffentlicht.
|
||||||
|
|
||||||
|
Wir benötigen diese, um Dir Account-Informationen, das Initialpasswort und die Login-Daten zu schicken. Oder z.B. Dein Passwort zurückzusetzen.
|
||||||
|
|
||||||
*Spitzname/Nickname*
|
Du erhältst zudem von Zeit zu Zeit Benachrichtigungen über eingegangene Nachrichten oder Punkte, die Deine Aufmerksamkeit benötigen.
|
||||||
|
Diese Nachrichten sind in den Einstellungen jederzeit an- oder abschaltbar.
|
||||||
|
|
||||||
Der Spitzname wird benötigt, um eine Webadresse für viele Deiner persönlichen Seiten zu erstellen.
|
### Spitzname/Nickname
|
||||||
|
|
||||||
|
Der Spitzname wird benötigt, um eine Webadresse (Profiladresse) für viele Deiner persönlichen Seiten zu erstellen.
|
||||||
Auch wird dieser wie eine Email-Adresse genutzt, wenn eine Verbindung zu anderen Personen hergestellt werden soll.
|
Auch wird dieser wie eine Email-Adresse genutzt, wenn eine Verbindung zu anderen Personen hergestellt werden soll.
|
||||||
Durch die Art, wie der Spitzname genutzt wird, gibt es bestimmte Einschränkungen. Er darf nur US-ASCII-Textzeichen und Nummern enthalten und er muss zudem mit einem Buchstaben beginnen.
|
Durch die Art, wie der Spitzname genutzt wird, gibt es bestimmte Einschränkungen:
|
||||||
Er muss außerdem einzigartig im System sein.
|
|
||||||
Dieser Spitzname wird an vielen Stellen genutzt, um Deinen Account zu identifizieren, und kann daher später nicht mehr geändert werden.
|
* **er muss mit einem Buchstaben beginnen**
|
||||||
|
* **er darf nur US-ASCII-Textzeichen und Nummern enthalten**
|
||||||
|
* **er muss einzigartig auf diesem Friendica-Knoten sein**
|
||||||
|
* **er kann später nicht mehr geändert werden**
|
||||||
|
|
||||||
|
Dieser Spitzname wird an vielen Stellen genutzt, um Deinen Account zu identifizieren, daher ist es nicht möglich ihn später zu ändern.
|
||||||
|
|
||||||
|
|
||||||
*Verzeichnis-Eintrag*
|
### Verzeichnis-Eintrag
|
||||||
|
|
||||||
|
Das Registrierungsformular erlaubt es dir, direkt auszuwählen, ob Du im [Onlineverzeichnis](https://dir.friendica.social/) (Friendica Directory) aufgelistet wirst oder nicht.
|
||||||
|
Das ist wie ein Telefonbuch und Du entscheidest, ob du darin eingetragen werden möchtest, oder nicht.
|
||||||
|
|
||||||
|
* Wir bitten dich, "Ja" zu wählen, damit Andere Dich finden können, so wie Du sie finden kannst
|
||||||
|
* Wählst Du "Nein", bist Du für Andere *nicht einfach auffindbar*
|
||||||
|
|
||||||
Das Registrierungsformular erlaubt es dir, direkt auszuwählen, ob Du im Onlineverzeichnis aufgelistet wirst oder nicht.
|
|
||||||
Das ist wie ein Telefonbuch und Du kannst entscheiden, nicht aufgeführt zu werden.
|
|
||||||
Wir bitten dich, "Ja" zu wählen, so dass dich andere Leute (Freunde, Familie etc.) finden können.
|
|
||||||
Wenn Du "Nein" wählst, wirst Du hauptsächlich unsichtbar sein und nur wenige Möglichkeiten zur Interaktion haben.
|
|
||||||
Was auch immer Du wählst, kann jederzeit nach dem Login in Deinen Account-Einstellungen geändert werden.
|
Was auch immer Du wählst, kann jederzeit nach dem Login in Deinen Account-Einstellungen geändert werden.
|
||||||
|
|
||||||
|
|
||||||
*Registrierung*
|
### Registrierung
|
||||||
|
|
||||||
Sobald Du die nötigen Informationen eingegeben hast, klicke auf "Registrieren".
|
Sobald Du die nötigen Informationen eingegeben hast, klicke auf "Registrieren".
|
||||||
Eine Email mit den Registrierungsdetails und Deinem Initialpasswort wird an die hinterlegte Email-Adresse geschickt.
|
Eine Email mit den Registrierungsdetails und Deinem Initialpasswort wird an die hinterlegte Email-Adresse geschickt.
|
||||||
Bitte prüfe den Posteingang (inkl. dem Spam-Ordner).
|
Bitte prüfe den Posteingang (inkl. dem Spam-Ordner).
|
||||||
|
|
||||||
|
|
||||||
**Login-Seite**
|
## Login-Seite
|
||||||
|
|
||||||
Gib auf der "Login"-Seite die Informationen ein, die Du mit der oben genannten Email erhalten hast.
|
Gib auf der "Login"-Seite die Informationen ein, die Du mit der oben genannten Email erhalten hast.
|
||||||
Du kannst entweder Deinen Spitznamen oder die Email-Adresse als Login-Namen nutzen.
|
Du kannst entweder Deinen Spitznamen oder die Email-Adresse als Login-Namen nutzen.
|
||||||
|
@ -83,25 +85,29 @@ Das Passwort muss genau so geschrieben werden, wie es in der Email steht; Groß-
|
||||||
Falls Du Schwierigkeiten beim Login hast, prüfe bitte, ob z. B. Deine Feststelltaste aktiv ist.
|
Falls Du Schwierigkeiten beim Login hast, prüfe bitte, ob z. B. Deine Feststelltaste aktiv ist.
|
||||||
|
|
||||||
|
|
||||||
**Passwort ändern**
|
### Passwort ändern
|
||||||
|
|
||||||
Besuche nach Deinem ersten Login bitte die Einstellungsseite und wechsle das Passwort in eines, dass Du Dir merken kannst.
|
Besuche nach Deinem ersten Login bitte die Einstellungsseite und wechsle das Passwort in eines, dass Du Dir merken kannst.
|
||||||
|
|
||||||
|
|
||||||
**Der Anfang**
|
## Die ersten Schritte
|
||||||
|
|
||||||
|
### Persönliche Daten exportieren
|
||||||
|
|
||||||
|
Du solltest dir als erstes Deinen neu erstellen [Account exportieren](uexport) unter Einstellungen/Persönliche Daten exportieren und an einem sicheren Ort verwahren.
|
||||||
|
In diesem Export (JSON-Datei) sind enthalten
|
||||||
|
|
||||||
|
* Deine Identität, die mit kryptographischen Schlüsseln ausgestattet ist
|
||||||
|
* Deine Kontakte
|
||||||
|
|
||||||
|
Dies ist z.B. dann nützlich wenn du mit deinem Account auf einen anderen Friendica Knoten umziehen willst, oder musst.
|
||||||
|
|
||||||
|
### Hilfe für Neulinge
|
||||||
|
|
||||||
Ein ['Tipp für neue Mitglieder'](newmember)-Link zeigt sich in den ersten beiden Wochen auf Deiner Startseite, um Dir erste Informationen zum Start zu bieten.
|
Ein ['Tipp für neue Mitglieder'](newmember)-Link zeigt sich in den ersten beiden Wochen auf Deiner Startseite, um Dir erste Informationen zum Start zu bieten.
|
||||||
|
|
||||||
|
|
||||||
**Persönliche Daten exportieren**
|
## Schau Dir ebenfalls folgende Seiten an
|
||||||
|
|
||||||
Du kannst eine Kopie Deiner persönlichen Daten in einer JSON-Datei exportieren.
|
|
||||||
Gehe hierzu in Deinen Einstellungen auf "Persönliche Daten exportieren".
|
|
||||||
|
|
||||||
Dies ist z.B. dann nützlich wenn du mit deinem Account auf einen anderen Friendica Knoten umziehen möchstest.
|
|
||||||
Ein Grund hierfür könnte sein, dass der Server auf dem dieser Friendica Knoten läuft dauerhaft wegen eines Hardware Problems ausfällt.
|
|
||||||
|
|
||||||
**Schau Dir ebenfalls folgende Seiten an**
|
|
||||||
|
|
||||||
* [Profile](help/Profiles)
|
* [Profile](help/Profiles)
|
||||||
|
|
||||||
|
@ -109,3 +115,10 @@ Ein Grund hierfür könnte sein, dass der Server auf dem dieser Friendica Knoten
|
||||||
|
|
||||||
* [Account löschen](help/Remove-Account)
|
* [Account löschen](help/Remove-Account)
|
||||||
|
|
||||||
|
### Der eigene Friendica-Knoten
|
||||||
|
Wenn Du Deinen eigenen Friendica-Knoten auf einem Server aufsetzen willst, kannst Du das ebenfalls machen.
|
||||||
|
Besuche die [Friendica-Webseite](https://friendi.ca), um den Code mit den Installationsanleitungen herunterzuladen.
|
||||||
|
Es ist ein einfacher Installationsprozess, den jeder mit ein wenig technischen Erfahrungen im Webseiten-Hosting oder mit grundlegenden Linux-Erfahrungen handhaben kann.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
272
doc/de/Addons.md
|
@ -26,7 +26,7 @@ Addons sollten einen Kommentarblock mit den folgenden vier Parametern enthalten:
|
||||||
|
|
||||||
Registriere deine Addon-Hooks während der Installation.
|
Registriere deine Addon-Hooks während der Installation.
|
||||||
|
|
||||||
Addon::registerHook($hookname, $file, $function);
|
\Friendica\Core\Hook::register($hookname, $file, $function);
|
||||||
|
|
||||||
$hookname ist ein String und entspricht einem bekannten Friendica-Hook.
|
$hookname ist ein String und entspricht einem bekannten Friendica-Hook.
|
||||||
|
|
||||||
|
@ -193,298 +193,294 @@ Eine komplette Liste aller Hook-Callbacks mit den zugehörigen Dateien (am 01-Ap
|
||||||
|
|
||||||
### index.php
|
### index.php
|
||||||
|
|
||||||
Addon::callHooks('init_1');
|
Hook::callAll('init_1');
|
||||||
Addon::callHooks('app_menu', $arr);
|
Hook::callAll('app_menu', $arr);
|
||||||
Addon::callHooks('page_content_top', $a->page['content']);
|
Hook::callAll('page_content_top', $a->page['content']);
|
||||||
Addon::callHooks($a->module.'_mod_init', $placeholder);
|
Hook::callAll($a->module.'_mod_init', $placeholder);
|
||||||
Addon::callHooks($a->module.'_mod_init', $placeholder);
|
Hook::callAll($a->module.'_mod_init', $placeholder);
|
||||||
Addon::callHooks($a->module.'_mod_post', $_POST);
|
Hook::callAll($a->module.'_mod_post', $_POST);
|
||||||
Addon::callHooks($a->module.'_mod_afterpost', $placeholder);
|
Hook::callAll($a->module.'_mod_afterpost', $placeholder);
|
||||||
Addon::callHooks($a->module.'_mod_content', $arr);
|
Hook::callAll($a->module.'_mod_content', $arr);
|
||||||
Addon::callHooks($a->module.'_mod_aftercontent', $arr);
|
Hook::callAll($a->module.'_mod_aftercontent', $arr);
|
||||||
Addon::callHooks('page_end', $a->page['content']);
|
Hook::callAll('page_end', $a->page['content']);
|
||||||
|
|
||||||
### include/api.php
|
### include/api.php
|
||||||
|
|
||||||
Addon::callHooks('logged_in', $a->user);
|
Hook::callAll('logged_in', $a->user);
|
||||||
Addon::callHooks('authenticate', $addon_auth);
|
Hook::callAll('authenticate', $addon_auth);
|
||||||
Addon::callHooks('logged_in', $a->user);
|
Hook::callAll('logged_in', $a->user);
|
||||||
|
|
||||||
### include/enotify.php
|
### include/enotify.php
|
||||||
|
|
||||||
Addon::callHooks('enotify', $h);
|
Hook::callAll('enotify', $h);
|
||||||
Addon::callHooks('enotify_store', $datarray);
|
Hook::callAll('enotify_store', $datarray);
|
||||||
Addon::callHooks('enotify_mail', $datarray);
|
Hook::callAll('enotify_mail', $datarray);
|
||||||
Addon::callHooks('check_item_notification', $notification_data);
|
Hook::callAll('check_item_notification', $notification_data);
|
||||||
|
|
||||||
### include/conversation.php
|
### include/conversation.php
|
||||||
|
|
||||||
Addon::callHooks('conversation_start', $cb);
|
Hook::callAll('conversation_start', $cb);
|
||||||
Addon::callHooks('render_location', $locate);
|
Hook::callAll('render_location', $locate);
|
||||||
Addon::callHooks('display_item', $arr);
|
Hook::callAll('display_item', $arr);
|
||||||
Addon::callHooks('display_item', $arr);
|
Hook::callAll('display_item', $arr);
|
||||||
Addon::callHooks('item_photo_menu', $args);
|
Hook::callAll('item_photo_menu', $args);
|
||||||
Addon::callHooks('jot_tool', $jotplugins);
|
Hook::callAll('jot_tool', $jotplugins);
|
||||||
|
|
||||||
### include/security.php
|
|
||||||
|
|
||||||
Addon::callHooks('logged_in', $a->user);
|
|
||||||
|
|
||||||
### include/text.php
|
### include/text.php
|
||||||
|
|
||||||
Addon::callHooks('contact_block_end', $arr);
|
Hook::callAll('contact_block_end', $arr);
|
||||||
Addon::callHooks('poke_verbs', $arr);
|
Hook::callAll('poke_verbs', $arr);
|
||||||
Addon::callHooks('prepare_body_init', $item);
|
Hook::callAll('put_item_in_cache', $hook_data);
|
||||||
Addon::callHooks('prepare_body_content_filter', $hook_data);
|
Hook::callAll('prepare_body_init', $item);
|
||||||
Addon::callHooks('prepare_body', $hook_data);
|
Hook::callAll('prepare_body_content_filter', $hook_data);
|
||||||
Addon::callHooks('prepare_body_final', $hook_data);
|
Hook::callAll('prepare_body', $hook_data);
|
||||||
|
Hook::callAll('prepare_body_final', $hook_data);
|
||||||
|
|
||||||
### include/items.php
|
### include/items.php
|
||||||
|
|
||||||
Addon::callHooks('page_info_data', $data);
|
Hook::callAll('page_info_data', $data);
|
||||||
|
|
||||||
### mod/directory.php
|
### mod/directory.php
|
||||||
|
|
||||||
Addon::callHooks('directory_item', $arr);
|
Hook::callAll('directory_item', $arr);
|
||||||
|
|
||||||
### mod/xrd.php
|
### mod/xrd.php
|
||||||
|
|
||||||
Addon::callHooks('personal_xrd', $arr);
|
Hook::callAll('personal_xrd', $arr);
|
||||||
|
|
||||||
### mod/ping.php
|
### mod/ping.php
|
||||||
|
|
||||||
Addon::callHooks('network_ping', $arr);
|
Hook::callAll('network_ping', $arr);
|
||||||
|
|
||||||
### mod/parse_url.php
|
### mod/parse_url.php
|
||||||
|
|
||||||
Addon::callHooks("parse_link", $arr);
|
Hook::callAll("parse_link", $arr);
|
||||||
|
|
||||||
### mod/manage.php
|
### src/Module/Delegation.php
|
||||||
|
|
||||||
Addon::callHooks('home_init', $ret);
|
Hook::callAll('home_init', $ret);
|
||||||
|
|
||||||
### mod/acl.php
|
### mod/acl.php
|
||||||
|
|
||||||
Addon::callHooks('acl_lookup_end', $results);
|
Hook::callAll('acl_lookup_end', $results);
|
||||||
|
|
||||||
### mod/network.php
|
### mod/network.php
|
||||||
|
|
||||||
Addon::callHooks('network_content_init', $arr);
|
Hook::callAll('network_content_init', $arr);
|
||||||
Addon::callHooks('network_tabs', $arr);
|
Hook::callAll('network_tabs', $arr);
|
||||||
|
|
||||||
### mod/friendica.php
|
### mod/friendica.php
|
||||||
|
|
||||||
Addon::callHooks('about_hook', $o);
|
Hook::callAll('about_hook', $o);
|
||||||
|
|
||||||
### mod/subthread.php
|
### mod/subthread.php
|
||||||
|
|
||||||
Addon::callHooks('post_local_end', $arr);
|
Hook::callAll('post_local_end', $arr);
|
||||||
|
|
||||||
### mod/profiles.php
|
### mod/profiles.php
|
||||||
|
|
||||||
Addon::callHooks('profile_post', $_POST);
|
Hook::callAll('profile_post', $_POST);
|
||||||
Addon::callHooks('profile_edit', $arr);
|
Hook::callAll('profile_edit', $arr);
|
||||||
|
|
||||||
### mod/settings.php
|
### mod/settings.php
|
||||||
|
|
||||||
Addon::callHooks('addon_settings_post', $_POST);
|
Hook::callAll('addon_settings_post', $_POST);
|
||||||
Addon::callHooks('connector_settings_post', $_POST);
|
Hook::callAll('connector_settings_post', $_POST);
|
||||||
Addon::callHooks('display_settings_post', $_POST);
|
Hook::callAll('display_settings_post', $_POST);
|
||||||
Addon::callHooks('settings_post', $_POST);
|
Hook::callAll('settings_post', $_POST);
|
||||||
Addon::callHooks('addon_settings', $settings_addons);
|
Hook::callAll('addon_settings', $settings_addons);
|
||||||
Addon::callHooks('connector_settings', $settings_connectors);
|
Hook::callAll('connector_settings', $settings_connectors);
|
||||||
Addon::callHooks('display_settings', $o);
|
Hook::callAll('display_settings', $o);
|
||||||
Addon::callHooks('settings_form', $o);
|
Hook::callAll('settings_form', $o);
|
||||||
|
|
||||||
### mod/photos.php
|
### mod/photos.php
|
||||||
|
|
||||||
Addon::callHooks('photo_post_init', $_POST);
|
Hook::callAll('photo_post_init', $_POST);
|
||||||
Addon::callHooks('photo_post_file', $ret);
|
Hook::callAll('photo_post_file', $ret);
|
||||||
Addon::callHooks('photo_post_end', $foo);
|
Hook::callAll('photo_post_end', $foo);
|
||||||
Addon::callHooks('photo_post_end', $foo);
|
Hook::callAll('photo_post_end', $foo);
|
||||||
Addon::callHooks('photo_post_end', $foo);
|
Hook::callAll('photo_post_end', $foo);
|
||||||
Addon::callHooks('photo_post_end', $foo);
|
Hook::callAll('photo_post_end', $foo);
|
||||||
Addon::callHooks('photo_post_end', intval($item_id));
|
Hook::callAll('photo_post_end', intval($item_id));
|
||||||
Addon::callHooks('photo_upload_form', $ret);
|
Hook::callAll('photo_upload_form', $ret);
|
||||||
|
|
||||||
### mod/profile.php
|
### mod/profile.php
|
||||||
|
|
||||||
Addon::callHooks('profile_advanced', $o);
|
Hook::callAll('profile_advanced', $o);
|
||||||
|
|
||||||
### mod/home.php
|
### mod/home.php
|
||||||
|
|
||||||
Addon::callHooks('home_init', $ret);
|
Hook::callAll('home_init', $ret);
|
||||||
Addon::callHooks("home_content", $content);
|
Hook::callAll("home_content", $content);
|
||||||
|
|
||||||
### mod/poke.php
|
### mod/poke.php
|
||||||
|
|
||||||
Addon::callHooks('post_local_end', $arr);
|
Hook::callAll('post_local_end', $arr);
|
||||||
|
|
||||||
### mod/contacts.php
|
### mod/contacts.php
|
||||||
|
|
||||||
Addon::callHooks('contact_edit_post', $_POST);
|
Hook::callAll('contact_edit_post', $_POST);
|
||||||
Addon::callHooks('contact_edit', $arr);
|
Hook::callAll('contact_edit', $arr);
|
||||||
|
|
||||||
### mod/tagger.php
|
### mod/tagger.php
|
||||||
|
|
||||||
Addon::callHooks('post_local_end', $arr);
|
Hook::callAll('post_local_end', $arr);
|
||||||
|
|
||||||
### mod/lockview.php
|
### mod/lockview.php
|
||||||
|
|
||||||
Addon::callHooks('lockview_content', $item);
|
Hook::callAll('lockview_content', $item);
|
||||||
|
|
||||||
### mod/uexport.php
|
### mod/uexport.php
|
||||||
|
|
||||||
Addon::callHooks('uexport_options', $options);
|
Hook::callAll('uexport_options', $options);
|
||||||
|
|
||||||
### mod/register.php
|
### mod/register.php
|
||||||
|
|
||||||
Addon::callHooks('register_post', $arr);
|
Hook::callAll('register_post', $arr);
|
||||||
Addon::callHooks('register_form', $arr);
|
Hook::callAll('register_form', $arr);
|
||||||
|
|
||||||
### mod/item.php
|
### mod/item.php
|
||||||
|
|
||||||
Addon::callHooks('post_local_start', $_REQUEST);
|
Hook::callAll('post_local_start', $_REQUEST);
|
||||||
Addon::callHooks('post_local', $datarray);
|
Hook::callAll('post_local', $datarray);
|
||||||
Addon::callHooks('post_local_end', $datarray);
|
Hook::callAll('post_local_end', $datarray);
|
||||||
|
|
||||||
### mod/editpost.php
|
### mod/editpost.php
|
||||||
|
|
||||||
Addon::callHooks('jot_tool', $jotplugins);
|
Hook::callAll('jot_tool', $jotplugins);
|
||||||
|
|
||||||
### src/Network/FKOAuth1.php
|
### src/Network/FKOAuth1.php
|
||||||
|
|
||||||
Addon::callHooks('logged_in', $a->user);
|
Hook::callAll('logged_in', $a->user);
|
||||||
|
|
||||||
### src/Render/FriendicaSmartyEngine.php
|
### src/Render/FriendicaSmartyEngine.php
|
||||||
|
|
||||||
Addon::callHooks("template_vars", $arr);
|
Hook::callAll("template_vars", $arr);
|
||||||
|
|
||||||
### src/Model/Item.php
|
### src/Model/Item.php
|
||||||
|
|
||||||
Addon::callHooks('post_local', $item);
|
Hook::callAll('post_local', $item);
|
||||||
Addon::callHooks('post_remote', $item);
|
Hook::callAll('post_remote', $item);
|
||||||
Addon::callHooks('post_local_end', $posted_item);
|
Hook::callAll('post_local_end', $posted_item);
|
||||||
Addon::callHooks('post_remote_end', $posted_item);
|
Hook::callAll('post_remote_end', $posted_item);
|
||||||
Addon::callHooks('tagged', $arr);
|
Hook::callAll('tagged', $arr);
|
||||||
Addon::callHooks('post_local_end', $new_item);
|
Hook::callAll('post_local_end', $new_item);
|
||||||
|
|
||||||
### src/Model/Contact.php
|
### src/Model/Contact.php
|
||||||
|
|
||||||
Addon::callHooks('contact_photo_menu', $args);
|
Hook::callAll('contact_photo_menu', $args);
|
||||||
Addon::callHooks('follow', $arr);
|
Hook::callAll('follow', $arr);
|
||||||
|
|
||||||
### src/Model/Profile.php
|
### src/Model/Profile.php
|
||||||
|
|
||||||
Addon::callHooks('profile_sidebar_enter', $profile);
|
Hook::callAll('profile_sidebar_enter', $profile);
|
||||||
Addon::callHooks('profile_sidebar', $arr);
|
Hook::callAll('profile_sidebar', $arr);
|
||||||
Addon::callHooks('profile_tabs', $arr);
|
Hook::callAll('profile_tabs', $arr);
|
||||||
Addon::callHooks('zrl_init', $arr);
|
Hook::callAll('zrl_init', $arr);
|
||||||
|
|
||||||
### src/Model/Event.php
|
### src/Model/Event.php
|
||||||
|
|
||||||
Addon::callHooks('event_updated', $event['id']);
|
Hook::callAll('event_updated', $event['id']);
|
||||||
Addon::callHooks("event_created", $event['id']);
|
Hook::callAll("event_created", $event['id']);
|
||||||
|
|
||||||
### src/Model/User.php
|
### src/Model/User.php
|
||||||
|
|
||||||
Addon::callHooks('register_account', $uid);
|
Hook::callAll('register_account', $uid);
|
||||||
Addon::callHooks('remove_user', $user);
|
Hook::callAll('remove_user', $user);
|
||||||
|
|
||||||
### src/Content/Text/BBCode.php
|
### src/Content/Text/BBCode.php
|
||||||
|
|
||||||
Addon::callHooks('bbcode', $text);
|
Hook::callAll('bbcode', $text);
|
||||||
Addon::callHooks('bb2diaspora', $text);
|
Hook::callAll('bb2diaspora', $text);
|
||||||
|
|
||||||
### src/Content/Text/HTML.php
|
### src/Content/Text/HTML.php
|
||||||
|
|
||||||
Addon::callHooks('html2bbcode', $message);
|
Hook::callAll('html2bbcode', $message);
|
||||||
|
|
||||||
### src/Content/Smilies.php
|
### src/Content/Smilies.php
|
||||||
|
|
||||||
Addon::callHooks('smilie', $params);
|
Hook::callAll('smilie', $params);
|
||||||
|
|
||||||
### src/Content/Feature.php
|
### src/Content/Feature.php
|
||||||
|
|
||||||
Addon::callHooks('isEnabled', $arr);
|
Hook::callAll('isEnabled', $arr);
|
||||||
Addon::callHooks('get', $arr);
|
Hook::callAll('get', $arr);
|
||||||
|
|
||||||
### src/Content/ContactSelector.php
|
### src/Content/ContactSelector.php
|
||||||
|
|
||||||
Addon::callHooks('network_to_name', $nets);
|
Hook::callAll('network_to_name', $nets);
|
||||||
Addon::callHooks('gender_selector', $select);
|
Hook::callAll('gender_selector', $select);
|
||||||
Addon::callHooks('sexpref_selector', $select);
|
Hook::callAll('sexpref_selector', $select);
|
||||||
Addon::callHooks('marital_selector', $select);
|
Hook::callAll('marital_selector', $select);
|
||||||
|
|
||||||
### src/Content/OEmbed.php
|
### src/Content/OEmbed.php
|
||||||
|
|
||||||
Addon::callHooks('oembed_fetch_url', $embedurl, $j);
|
Hook::callAll('oembed_fetch_url', $embedurl, $j);
|
||||||
|
|
||||||
### src/Content/Nav.php
|
### src/Content/Nav.php
|
||||||
|
|
||||||
Addon::callHooks('page_header', $a->page['nav']);
|
Hook::callAll('page_header', $a->page['nav']);
|
||||||
Addon::callHooks('nav_info', $nav);
|
Hook::callAll('nav_info', $nav);
|
||||||
|
|
||||||
|
### src/Core/Authentication.php
|
||||||
|
|
||||||
|
Hook::callAll('logged_in', $a->user);
|
||||||
|
|
||||||
### src/Worker/Directory.php
|
### src/Worker/Directory.php
|
||||||
|
|
||||||
Addon::callHooks('globaldir_update', $arr);
|
Hook::callAll('globaldir_update', $arr);
|
||||||
|
|
||||||
### src/Worker/Notifier.php
|
### src/Worker/Notifier.php
|
||||||
|
|
||||||
Addon::callHooks('notifier_end', $target_item);
|
Hook::callAll('notifier_end', $target_item);
|
||||||
|
|
||||||
### src/Worker/Queue.php
|
|
||||||
|
|
||||||
Addon::callHooks('queue_predeliver', $r);
|
|
||||||
Addon::callHooks('queue_deliver', $params);
|
|
||||||
|
|
||||||
### src/Module/Login.php
|
### src/Module/Login.php
|
||||||
|
|
||||||
Addon::callHooks('authenticate', $addon_auth);
|
Hook::callAll('authenticate', $addon_auth);
|
||||||
Addon::callHooks('login_hook', $o);
|
Hook::callAll('login_hook', $o);
|
||||||
|
|
||||||
### src/Module/Logout.php
|
### src/Module/Logout.php
|
||||||
|
|
||||||
Addon::callHooks("logging_out");
|
Hook::callAll("logging_out");
|
||||||
|
|
||||||
### src/Object/Post.php
|
### src/Object/Post.php
|
||||||
|
|
||||||
Addon::callHooks('render_location', $locate);
|
Hook::callAll('render_location', $locate);
|
||||||
Addon::callHooks('display_item', $arr);
|
Hook::callAll('display_item', $arr);
|
||||||
|
|
||||||
### src/Core/ACL.php
|
### src/Core/ACL.php
|
||||||
|
|
||||||
Addon::callHooks('contact_select_options', $x);
|
Hook::callAll('contact_select_options', $x);
|
||||||
Addon::callHooks($a->module.'_pre_'.$selname, $arr);
|
Hook::callAll($a->module.'_pre_'.$selname, $arr);
|
||||||
Addon::callHooks($a->module.'_post_'.$selname, $o);
|
Hook::callAll($a->module.'_post_'.$selname, $o);
|
||||||
Addon::callHooks($a->module.'_pre_'.$selname, $arr);
|
Hook::callAll($a->module.'_pre_'.$selname, $arr);
|
||||||
Addon::callHooks($a->module.'_post_'.$selname, $o);
|
Hook::callAll($a->module.'_post_'.$selname, $o);
|
||||||
Addon::callHooks('jot_networks', $jotnets);
|
Hook::callAll('jot_networks', $jotnets);
|
||||||
|
|
||||||
### src/Core/Worker.php
|
### src/Core/Worker.php
|
||||||
|
|
||||||
Addon::callHooks("proc_run", $arr);
|
Hook::callAll("proc_run", $arr);
|
||||||
|
|
||||||
### src/Util/Emailer.php
|
### src/Util/Emailer.php
|
||||||
|
|
||||||
Addon::callHooks('emailer_send_prepare', $params);
|
Hook::callAll('emailer_send_prepare', $params);
|
||||||
Addon::callHooks("emailer_send", $hookdata);
|
Hook::callAll("emailer_send", $hookdata);
|
||||||
|
|
||||||
### src/Util/Map.php
|
### src/Util/Map.php
|
||||||
|
|
||||||
Addon::callHooks('generate_map', $arr);
|
Hook::callAll('generate_map', $arr);
|
||||||
Addon::callHooks('generate_named_map', $arr);
|
Hook::callAll('generate_named_map', $arr);
|
||||||
Addon::callHooks('Map::getCoordinates', $arr);
|
Hook::callAll('Map::getCoordinates', $arr);
|
||||||
|
|
||||||
### src/Util/Network.php
|
### src/Util/Network.php
|
||||||
|
|
||||||
Addon::callHooks('avatar_lookup', $avatar);
|
Hook::callAll('avatar_lookup', $avatar);
|
||||||
|
|
||||||
### src/Util/ParseUrl.php
|
### src/Util/ParseUrl.php
|
||||||
|
|
||||||
Addon::callHooks("getsiteinfo", $siteinfo);
|
Hook::callAll("getsiteinfo", $siteinfo);
|
||||||
|
|
||||||
### src/Protocol/DFRN.php
|
### src/Protocol/DFRN.php
|
||||||
|
|
||||||
Addon::callHooks('atom_feed_end', $atom);
|
Hook::callAll('atom_feed_end', $atom);
|
||||||
Addon::callHooks('atom_feed_end', $atom);
|
Hook::callAll('atom_feed_end', $atom);
|
||||||
|
|
|
@ -68,6 +68,10 @@ table.bbcodes > * > tr > th {
|
||||||
<td>[img]https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg[/img]</td>
|
<td>[img]https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg[/img]</td>
|
||||||
<td><img src="https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg" alt="Immagine/foto"></td>
|
<td><img src="https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg" alt="Immagine/foto"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>[img=https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg]Das Friendica Logo[/img]</td>
|
||||||
|
<td><img src="https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg" alt="Das Friendica Logo"></td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td>[img=64x32]https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg[/img]<br>
|
<td>[img=64x32]https://raw.githubusercontent.com/friendica/friendica/master/images/friendica-32.jpg[/img]<br>
|
||||||
<br>Note: provided height is simply discarded.</td>
|
<br>Note: provided height is simply discarded.</td>
|
||||||
|
@ -576,6 +580,9 @@ Für Verbindungen zu Netzwerken, zu denen Friendica den HTML Code postet, wi
|
||||||
Bei nativen Verbindungen; das heißt zu z.B. Friendica, Hubzilla, Diaspora oder GNU Social Kontakten; wird der ungekürzte Beitrag übertragen.
|
Bei nativen Verbindungen; das heißt zu z.B. Friendica, Hubzilla, Diaspora oder GNU Social Kontakten; wird der ungekürzte Beitrag übertragen.
|
||||||
Die Instanz des Kontakts kümmert sich um die Darstellung.
|
Die Instanz des Kontakts kümmert sich um die Darstellung.
|
||||||
|
|
||||||
|
Wird ein Beitrag über das ActivityPub Protokoll übermittelt, wird der Text des Abstracts für das "summary" (Zusammenfassung) Feld verwendet.
|
||||||
|
Dieses Feld wird von Mastodon für die Inhaltswarnung (content warning) verwendet.
|
||||||
|
|
||||||
## Special
|
## Special
|
||||||
|
|
||||||
<table class="bbcodes">
|
<table class="bbcodes">
|
||||||
|
|
|
@ -8,6 +8,7 @@ Nutzer
|
||||||
* **[Warum erhalte ich Warnungen über fehlende Zertifikate?](help/FAQ#ssl)**
|
* **[Warum erhalte ich Warnungen über fehlende Zertifikate?](help/FAQ#ssl)**
|
||||||
* **[Wie kann ich Bilder, Dateien, Links, Video und Audio in Beiträge einfügen?](help/FAQ#upload)**
|
* **[Wie kann ich Bilder, Dateien, Links, Video und Audio in Beiträge einfügen?](help/FAQ#upload)**
|
||||||
* **[Ist es möglich, bei mehreren Profilen verschiedene Avatare (Nutzerbilder) zu haben?](help/FAQ#avatars)**
|
* **[Ist es möglich, bei mehreren Profilen verschiedene Avatare (Nutzerbilder) zu haben?](help/FAQ#avatars)**
|
||||||
|
* **[Wie kann ich Friendica in einer bestimmten Sprache ansehen?](help/FAQ#language)**
|
||||||
* **[Was ist der Unterschied zwischen blockierten|ignorierten|archivierten|versteckten Kontakten?](help/FAQ#contacts)**
|
* **[Was ist der Unterschied zwischen blockierten|ignorierten|archivierten|versteckten Kontakten?](help/FAQ#contacts)**
|
||||||
* **[Was passiert, wenn ein Account gelöscht ist? Ist dieser richtig gelöscht?](help/FAQ#removed)**
|
* **[Was passiert, wenn ein Account gelöscht ist? Ist dieser richtig gelöscht?](help/FAQ#removed)**
|
||||||
* **[Kann ich einem Hashtag folgen?](help/FAQ#hashtag)**
|
* **[Kann ich einem Hashtag folgen?](help/FAQ#hashtag)**
|
||||||
|
@ -90,6 +91,31 @@ Anschließend siehst Du eine Seite mit allen Infos zu diesem Profil.
|
||||||
Klicke nun oben auf den Link "Profilbild ändern" und lade im nächsten Fenster ein Bild von Deinem PC hoch.
|
Klicke nun oben auf den Link "Profilbild ändern" und lade im nächsten Fenster ein Bild von Deinem PC hoch.
|
||||||
Um Deine privaten Daten zu schützen, wird in Beiträgen nur das Bild aus Deinem öffentlichen Profil angezeigt.
|
Um Deine privaten Daten zu schützen, wird in Beiträgen nur das Bild aus Deinem öffentlichen Profil angezeigt.
|
||||||
|
|
||||||
|
<a name="language"></a>
|
||||||
|
### Wie kann ich Friendica in einer bestimmten Sprache ansehen?
|
||||||
|
|
||||||
|
Die Sprache des Friendica Interfaces kann durch den `lang` Parameter un der URL beeinflusst werden.
|
||||||
|
Das Argument des Parameters ist ein [ISO 639-1](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) Code.
|
||||||
|
Zwischen der URL und dem Parameter muss ein Fragezeichen als Trennzeichen verwendet werden.
|
||||||
|
|
||||||
|
Ein Beispiel:
|
||||||
|
|
||||||
|
https://social.example.com/profile/example
|
||||||
|
|
||||||
|
auf Deutsch:
|
||||||
|
|
||||||
|
https://social.example.com/profile/example?lang=de.
|
||||||
|
|
||||||
|
Wenn das Fragezeichen bereits in der URL verwendet wird, werden die einzelnen URL Parameter mit einem kaufmännischen Und getrennt werden.
|
||||||
|
|
||||||
|
Ein Beispiel:
|
||||||
|
|
||||||
|
https://social.example.com/profile/example?tab=profile
|
||||||
|
|
||||||
|
auf Deutsch:
|
||||||
|
|
||||||
|
https://social.example.com/profile/example?tab=profile&lang=de.
|
||||||
|
|
||||||
<a name="contacts"></a>
|
<a name="contacts"></a>
|
||||||
### Was ist der Unterschied zwischen blockierten|ignorierten|archivierten|versteckten Kontakten?
|
### Was ist der Unterschied zwischen blockierten|ignorierten|archivierten|versteckten Kontakten?
|
||||||
|
|
||||||
|
@ -162,7 +188,9 @@ Das bedeutet, dass du jeden Twitter/GNU Social Client verwenden kannst in dem du
|
||||||
Hier ist eine Liste von Clients bei denen dies möglich ist, bzw. die speziell für Friendica entwickelt werden:
|
Hier ist eine Liste von Clients bei denen dies möglich ist, bzw. die speziell für Friendica entwickelt werden:
|
||||||
|
|
||||||
* Android
|
* Android
|
||||||
* [Friendiqa](https://github.com/lubuwest/friendiqa) (Gibt es im Google Playstore oder als [binary Repository](https://freunde.ma-nic.de/display/3e98eba8185a13c5bdbf3d1539646854) für F-Droid)
|
* [Friendiqa](https://git.friendi.ca/lubuwest/Friendiqa) (Gibt es im Google Playstore oder als [binary Repository](https://freunde.ma-nic.de/display/3e98eba8185a13c5bdbf3d1539646854) für F-Droid)
|
||||||
|
* [Fedilab](https://gitlab.com/tom79/mastalab) (Gibt es im F-Droid und dem Google Play Store)
|
||||||
|
* [DiCa](https://dica.mixi.cool/) (Gibt es bei Google Play)
|
||||||
* AndStatus
|
* AndStatus
|
||||||
* Twidere
|
* Twidere
|
||||||
* Mustard and Mustard-Mod
|
* Mustard and Mustard-Mod
|
||||||
|
@ -180,7 +208,7 @@ Hier ist eine Liste von Clients bei denen dies möglich ist, bzw. die speziell f
|
||||||
<a name="help"></a>
|
<a name="help"></a>
|
||||||
### Wo finde ich Hilfe?
|
### Wo finde ich Hilfe?
|
||||||
|
|
||||||
Wenn Du Probleme mit Deiner Friendica-Seite hast, dann kannst Du die Community in der [Friendica-Support-Gruppe](https://forum.friendi.ca/profile/helpers) oder im [deutschen Friendica-Support-Forum](http://toktan.org/profile/wiki) fragen oder Dir das [deutsche Wiki](http://wiki.toktan.org/doku.php) anschauen.
|
Wenn Du Probleme mit Deiner Friendica-Seite hast, dann kannst Du die Community in der [Friendica-Support-Gruppe](https://forum.friendi.ca/profile/helpers) fragen oder Dir das [deutsche Wiki](https://friendica-wiki.de/) anschauen.
|
||||||
Wenn Du Deinen Account nicht nutzen kannst, kannst Du entweder einen [Testaccount](https://tryfriendica.de) bzw. einen Account auf einer öffentlichen Seite ([Liste](https://dir.friendica.social/servers)) nutzen.
|
Wenn Du Deinen Account nicht nutzen kannst, kannst Du entweder einen [Testaccount](https://tryfriendica.de) bzw. einen Account auf einer öffentlichen Seite ([Liste](https://dir.friendica.social/servers)) nutzen.
|
||||||
|
|
||||||
Wenn du dir keinen weiteren Friendica Account einrichten willst, kannst du auch gerne über einen der folgenden alternativen Kanäle Hilfe suchen:
|
Wenn du dir keinen weiteren Friendica Account einrichten willst, kannst du auch gerne über einen der folgenden alternativen Kanäle Hilfe suchen:
|
||||||
|
@ -199,7 +227,7 @@ Admin
|
||||||
|
|
||||||
Ja, das ist möglich.
|
Ja, das ist möglich.
|
||||||
Es ist allerdings nicht möglich, eine Datenbank durch zwei Domains zu nutzen.
|
Es ist allerdings nicht möglich, eine Datenbank durch zwei Domains zu nutzen.
|
||||||
Solange Du Deine .htconfig.php allerdings so einrichtest, dass das System nicht versucht, eine Installation durchzuführen, kannst Du die richtige Config-Datei in include/$hostname/.htconfig.php hinterlegen.
|
Solange Du Deine config/local.config.php allerdings so einrichtest, dass das System nicht versucht, eine Installation durchzuführen, kannst Du die richtige Config-Datei in include/$hostname/config/local.config.php hinterlegen.
|
||||||
Alle Cache-Aspekte und der Zugriffsschutz können pro Instanz konfiguriert werden.
|
Alle Cache-Aspekte und der Zugriffsschutz können pro Instanz konfiguriert werden.
|
||||||
|
|
||||||
<a name="sources"></a>
|
<a name="sources"></a>
|
||||||
|
@ -216,13 +244,13 @@ Wenn Du neue Themen suchst, findest Du sie auf [Friendica-Themes.com](http://fri
|
||||||
<a name="adminaccount1"></a>
|
<a name="adminaccount1"></a>
|
||||||
### Ich habe meine E-Mail Adresse geändern und jetzt ist das Admin Panel verschwunden?
|
### Ich habe meine E-Mail Adresse geändern und jetzt ist das Admin Panel verschwunden?
|
||||||
|
|
||||||
Bitte aktualisiere deine E-Mail Adresse in der <tt>.htconfig.php</tt> Datei.
|
Bitte aktualisiere deine E-Mail Adresse in der <tt>config/local.config.php</tt> Datei.
|
||||||
|
|
||||||
<a name="adminaccount2"></a>
|
<a name="adminaccount2"></a>
|
||||||
### Kann es mehr als einen Admin auf einer Friendica Instanz geben?
|
### Kann es mehr als einen Admin auf einer Friendica Instanz geben?
|
||||||
|
|
||||||
Ja.
|
Ja.
|
||||||
Du kannst in der <tt>.htconfig.php</tt> Datei mehrere E-Mail Adressen auflisten.
|
Du kannst in der <tt>config/local.config.php</tt> Datei mehrere E-Mail Adressen auflisten.
|
||||||
Die aufgelisteten Adressen werden mit Kommata von einander getrennt.
|
Die aufgelisteten Adressen werden mit Kommata von einander getrennt.
|
||||||
|
|
||||||
<a name="dbupdate">
|
<a name="dbupdate">
|
||||||
|
|
|
@ -38,7 +38,7 @@ Du musst das nicht machen, die Alternative ist allerdings, Dich immer wieder aus
|
||||||
Und das kann umständlich sein, wenn Du mehrere verschiedene Foren/Identitäten verwaltest.
|
Und das kann umständlich sein, wenn Du mehrere verschiedene Foren/Identitäten verwaltest.
|
||||||
|
|
||||||
Du kannst ebenso jemanden wählen, der Dein Forum verwaltet.
|
Du kannst ebenso jemanden wählen, der Dein Forum verwaltet.
|
||||||
Mach das, indem Du die [Delegations-Setup-Seite](/delegate) besuchst.
|
Mach das, indem Du die [Delegations-Setup-Seite](/settings/delegation) besuchst.
|
||||||
Dort wird Dir eine Liste an "Potentiellen Bevollmächtigen" angezeigt.
|
Dort wird Dir eine Liste an "Potentiellen Bevollmächtigen" angezeigt.
|
||||||
Die Auswahl einer oder mehrerer Personen gibt diesen die Möglichkeit, Dein Forum zu verwalten.
|
Die Auswahl einer oder mehrerer Personen gibt diesen die Möglichkeit, Dein Forum zu verwalten.
|
||||||
Sie können Kontakte, Profile und alle Inhalte Deines Accounts/deiner Seite bearbeiten.
|
Sie können Kontakte, Profile und alle Inhalte Deines Accounts/deiner Seite bearbeiten.
|
||||||
|
|
|
@ -34,8 +34,9 @@ Friendica - Dokumentation und Ressourcen
|
||||||
* [Konnektoren (Connectors) installieren (Twitter/GNU Social)](help/Installing-Connectors)
|
* [Konnektoren (Connectors) installieren (Twitter/GNU Social)](help/Installing-Connectors)
|
||||||
* [Installation eines ejabberd Servers (XMPP-Chat) mit synchronisierten Anmeldedaten](help/install-ejabberd) (EN)
|
* [Installation eines ejabberd Servers (XMPP-Chat) mit synchronisierten Anmeldedaten](help/install-ejabberd) (EN)
|
||||||
* [Betreibe deine Seite mit einem SSL-Zertifikat](help/SSL)
|
* [Betreibe deine Seite mit einem SSL-Zertifikat](help/SSL)
|
||||||
* [Konfigurationswerte, die nur in der .htconfig.php gesetzt werden können](help/htconfig) (EN)
|
* [Konfigurationswerte, die nur in der config/local.config.php gesetzt werden können](help/Config) (EN)
|
||||||
* [Performance verbessern](help/Improve-Performance)
|
* [Performance verbessern](help/Improve-Performance)
|
||||||
|
* [Administration Werkzeuge](help/tools) (EN)
|
||||||
|
|
||||||
**Dokumentation für Entwickler**
|
**Dokumentation für Entwickler**
|
||||||
|
|
||||||
|
@ -55,11 +56,12 @@ Friendica - Dokumentation und Ressourcen
|
||||||
* [Code-Referenz (mit doxygen generiert - setzt Cookies)](doc/html/)
|
* [Code-Referenz (mit doxygen generiert - setzt Cookies)](doc/html/)
|
||||||
* [Twitter/GNU Social API Functions](help/api) (EN)
|
* [Twitter/GNU Social API Functions](help/api) (EN)
|
||||||
* [Translation of Friendica](help/translations) (EN)
|
* [Translation of Friendica](help/translations) (EN)
|
||||||
|
* [Run tests](help/Tests) (EN)
|
||||||
|
|
||||||
**Externe Ressourcen**
|
**Externe Ressourcen**
|
||||||
|
|
||||||
* [Haupt-Webseite](https://friendi.ca)
|
* [Haupt-Webseite](https://friendi.ca)
|
||||||
* [Deutsches Friendica-Wiki](http://wiki.toktan.org/doku.php)
|
* [Deutsches Friendica-Wiki](https://friendica-wiki.de)
|
||||||
* Support Kanäle
|
* Support Kanäle
|
||||||
* [Friendica Support Forum](https://forum.friendi.ca/~helpers)
|
* [Friendica Support Forum](https://forum.friendi.ca/~helpers)
|
||||||
* [Mailing Listen Archiv](http://mailman.friendi.ca/mailman/listinfo/support-friendi.ca) zum Abonnieren der Liste eine E-Mail an ``support-request(at)friendi.ca?subject=subscribe`` senden
|
* [Mailing Listen Archiv](http://mailman.friendi.ca/mailman/listinfo/support-friendi.ca) zum Abonnieren der Liste eine E-Mail an ``support-request(at)friendi.ca?subject=subscribe`` senden
|
||||||
|
@ -71,4 +73,3 @@ Friendica - Dokumentation und Ressourcen
|
||||||
|
|
||||||
* [Seite/Friendica-Version](friendica)
|
* [Seite/Friendica-Version](friendica)
|
||||||
* [Mitwirkenden bei Friendica](credits)
|
* [Mitwirkenden bei Friendica](credits)
|
||||||
|
|
||||||
|
|
|
@ -28,18 +28,26 @@ Requirements
|
||||||
---
|
---
|
||||||
|
|
||||||
* Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst
|
* Apache mit einer aktiverten mod-rewrite-Funktion und dem Eintrag "Options All", so dass du die lokale .htaccess-Datei nutzen kannst
|
||||||
* PHP 5.6+ (PHP 7 ist aufgrund der Performance empfohlen)
|
* PHP 7+ (PHP 7.1+ wird für Performance und offiziellen Support empfohlen)
|
||||||
* PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei
|
* PHP *Kommandozeilen*-Zugang mit register_argc_argv auf "true" gesetzt in der php.ini-Datei
|
||||||
* Curl, GD, PDO, MySQLi, xml, zip und OpenSSL-Erweiterung
|
* Curl, GD, PDO, MySQLi, xml, zip und OpenSSL-Erweiterung
|
||||||
* Das POSIX Modul muss aktiviert sein ([CentOS, RHEL](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) haben dies z.B. deaktiviert)
|
* Das POSIX Modul muss aktiviert sein ([CentOS, RHEL](http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7http://www.bigsoft.co.uk/blog/index.php/2014/12/08/posix-php-commands-not-working-under-centos-7) haben dies z.B. deaktiviert)
|
||||||
* etwas in der Art eines Email-Servers oder eines Gateways wie PHP mail()
|
* etwas in der Art eines Email-Servers oder eines Gateways wie PHP mail()
|
||||||
* Mysql 5.5.3+ (oder eine äquivalente Alternative: MariaDB, Percona Server etc.)
|
* Mysql 5.6+ (oder eine äquivalente Alternative: MariaDB, Percona Server etc.)
|
||||||
* die Möglichkeit, wiederkehrende Aufgaben mit cron (Linux/Mac) oder "Scheduled Tasks" einzustellen (Windows) [Beachte: andere Optionen sind in Abschnitt 7 dieser Dokumentation zu finden]
|
* die Möglichkeit, wiederkehrende Aufgaben mit cron (Linux/Mac) oder "Scheduled Tasks" einzustellen (Windows) [Beachte: andere Optionen sind in Abschnitt 7 dieser Dokumentation zu finden]
|
||||||
* Installation in einer Top-Level-Domain oder Subdomain (ohne eine Verzeichnis/Pfad-Komponente in der URL) wird bevorzugt. Verzeichnispfade sind für diesen Zweck nicht so günstig und wurden auch nicht ausführlich getestet.
|
* Installation in einer Top-Level-Domain oder Subdomain (ohne eine Verzeichnis/Pfad-Komponente in der URL) wird bevorzugt. Verzeichnispfade sind für diesen Zweck nicht so günstig und wurden auch nicht ausführlich getestet.
|
||||||
|
|
||||||
Installation
|
Installation
|
||||||
---
|
---
|
||||||
|
|
||||||
|
### Alternative Wege um Friendica zu Installieren
|
||||||
|
|
||||||
|
Diese Anleitung wird dir Schritt-für-Schritt zeigen wie du Friendica auf deinem Server installieren kannst.
|
||||||
|
Falls du an automatischen Möglichkeiten interesse hast, wirf doch einen Blick auf
|
||||||
|
|
||||||
|
* das [Docker image für Friendica](https://github.com/friendica/docker) oder
|
||||||
|
* die [Installation von Friendica auf YunoHost](https://github.com/YunoHost-Apps/friendica_ynh).
|
||||||
|
|
||||||
### Friendica
|
### Friendica
|
||||||
|
|
||||||
Entpacke die Friendica-Daten in das Quellverzeichnis (root) des Dokumentenbereichs deines Webservers.
|
Entpacke die Friendica-Daten in das Quellverzeichnis (root) des Dokumentenbereichs deines Webservers.
|
||||||
|
@ -47,14 +55,14 @@ Wenn du die Möglichkeit hierzu hast, empfehlen wir dir "git" zu nutzen, um die
|
||||||
Das macht die Aktualisierung wesentlich einfacher.
|
Das macht die Aktualisierung wesentlich einfacher.
|
||||||
Der Linux-Code, mit dem man die Dateien direkt in ein Verzeichnis wie "meinewebseite" kopiert, ist
|
Der Linux-Code, mit dem man die Dateien direkt in ein Verzeichnis wie "meinewebseite" kopiert, ist
|
||||||
|
|
||||||
git clone https://github.com/friendica/friendica.git mywebsite
|
git clone https://github.com/friendica/friendica.git -b master mywebsite
|
||||||
cd mywebsite
|
cd mywebsite
|
||||||
bin/composer.phar install
|
bin/composer.phar install
|
||||||
|
|
||||||
Stelle sicher, dass der Ordner *view/smarty3* existiert and von dem Webserver-Benutzer beschreibbar ist
|
Stelle sicher, dass der Ordner *view/smarty3* existiert and von dem Webserver-Benutzer beschreibbar ist
|
||||||
|
|
||||||
mkdir view/smarty3
|
mkdir view/smarty3
|
||||||
chmod 777 view/smarty3
|
chmod 775 view/smarty3
|
||||||
|
|
||||||
Falls Addons installiert werden sollen: Gehe in den Friendica-Ordner
|
Falls Addons installiert werden sollen: Gehe in den Friendica-Ordner
|
||||||
|
|
||||||
|
@ -62,7 +70,7 @@ Falls Addons installiert werden sollen: Gehe in den Friendica-Ordner
|
||||||
|
|
||||||
Und die Addon Repository klonst:
|
Und die Addon Repository klonst:
|
||||||
|
|
||||||
git clone https://github.com/friendica/friendica-addons.git addon
|
git clone https://github.com/friendica/friendica-addons.git -b master addon
|
||||||
|
|
||||||
Um das Addon-Verzeichnis aktuell zu halten, solltest du in diesem Pfad ein "git pull"-Befehl eintragen
|
Um das Addon-Verzeichnis aktuell zu halten, solltest du in diesem Pfad ein "git pull"-Befehl eintragen
|
||||||
|
|
||||||
|
@ -71,7 +79,18 @@ Um das Addon-Verzeichnis aktuell zu halten, solltest du in diesem Pfad ein "git
|
||||||
|
|
||||||
Wenn du den Verzeichnispfad auf deinen Webserver kopierst, dann stelle sicher, dass du auch die .htaccess kopierst, da "Punkt"-Dateien oft versteckt sind und normalerweise nicht direkt kopiert werden.
|
Wenn du den Verzeichnispfad auf deinen Webserver kopierst, dann stelle sicher, dass du auch die .htaccess kopierst, da "Punkt"-Dateien oft versteckt sind und normalerweise nicht direkt kopiert werden.
|
||||||
|
|
||||||
### Erselle eine Datenbank
|
Wenn du die Entwickler Version von Friendica verwenden möchtest kannst du auf den develop Branch im git Repository wechseln.
|
||||||
|
Dies tust du mit den folgenden Befehlen
|
||||||
|
|
||||||
|
git checkout develop
|
||||||
|
bin/composer.phar install
|
||||||
|
cd addon
|
||||||
|
git checkout develop
|
||||||
|
|
||||||
|
Die Entwickler Version kann nach einem fehlerhaften Commit vorübergehend Probleme haben oder gar nicht mehr funktionieren.
|
||||||
|
Sollte dir so etwas passieren, lass es uns bitte wissen, damit der Fehler behoben werden kann.
|
||||||
|
|
||||||
|
### Erstelle eine Datenbank
|
||||||
|
|
||||||
Erstelle eine leere Datenbank und notiere alle Zugangsdaten (Adresse der Datenbank, Nutzername, Passwort, Datenbankname).
|
Erstelle eine leere Datenbank und notiere alle Zugangsdaten (Adresse der Datenbank, Nutzername, Passwort, Datenbankname).
|
||||||
|
|
||||||
|
@ -93,37 +112,96 @@ Bitte beachte jeden Fehler und korrigiere diese, bevor du fortfährst.
|
||||||
Falls du einen Port für die Datenbankverbindung angeben musst, kannst du diesen in der Host-Eingabe Zeile angeben.
|
Falls du einen Port für die Datenbankverbindung angeben musst, kannst du diesen in der Host-Eingabe Zeile angeben.
|
||||||
|
|
||||||
*Wenn* die manuelle Installation aus irgendeinem Grund fehlschlägt, dann prüfe das Folgende:
|
*Wenn* die manuelle Installation aus irgendeinem Grund fehlschlägt, dann prüfe das Folgende:
|
||||||
* ".htconfig.php" existiert ... wenn nicht, bearbeite die „htconfig.php“ und ändere die Systemeinstellungen. Benenne sie um in „.htconfig.php".
|
* "config/local.config.php" existiert ... wenn nicht, bearbeite die „config/local-sample.config.php“ und ändere die Systemeinstellungen. Benenne sie um in „config/local.config.php".
|
||||||
* die Datenbank beinhaltet Daten. ... wenn nicht, importiere den Inhalt der Datei "database.sql" mit phpmyadmin oder per mysql-Kommandozeile.
|
* die Datenbank beinhaltet Daten. ... wenn nicht, importiere den Inhalt der Datei "database.sql" mit phpmyadmin oder per mysql-Kommandozeile.
|
||||||
|
|
||||||
Besuche deine Seite an diesem Punkt wieder und registriere deinen persönlichen Account.
|
Besuche deine Seite an diesem Punkt wieder und registriere deinen persönlichen Account.
|
||||||
Alle Registrierungsprobleme sollten automatisch behebbar sein.
|
Alle Registrierungsprobleme sollten automatisch behebbar sein.
|
||||||
Wenn du irgendwelche **kritischen** Fehler zu diesen Zeitpunkt erhalten solltest, deutet das darauf hin, dass die Datenbank nicht korrekt installiert wurde.
|
Wenn du irgendwelche **kritischen** Fehler zu diesen Zeitpunkt erhalten solltest, deutet das darauf hin, dass die Datenbank nicht korrekt installiert wurde.
|
||||||
Du kannst bei Bedarf die Datei .htconfig.php verschieben/umbenennen und die Datenbank leeren (als „Dropping“ bezeichnet), so dass du mit einem sauberen System neu starten kannst.
|
Du kannst bei Bedarf die Datei config/local.config.php verschieben/umbenennen und die Datenbank leeren (als „Dropping“ bezeichnet), so dass du mit einem sauberen System neu starten kannst.
|
||||||
|
|
||||||
### Option B: Starte das manuelle Installationsscript
|
### Option B: Starte das automatische Installationsscript
|
||||||
|
|
||||||
Öffne die Datei htconfig.php im Friendica-Hauptordner mit einem Text-Editor.
|
Es existieren folgende Varianten zur automatischen Installation von Friendica:
|
||||||
Entferne die `die('...');` Zeile und bearbeite die Einstellungen so, das sie zu deinem System passen (MySQL, Sprache, Theme etc.).
|
- Eine vorgefertigte Konfigurationsdatei erstellen (z.B. `prepared.config.php`)
|
||||||
Dann speichere die Datei (jedoch nicht umbenennen).
|
- Verwendung von Umgebungsvariablen (z.B. `MYSQL_HOST`)
|
||||||
|
- Verwendung von Optionen (z.B. `--dbhost <host>`)
|
||||||
|
|
||||||
Gehe in den Friendica-Hauptordner und führe den Kommandozeilen Befehl aus:
|
Umgebungsvariablen und Optionen können auch kombiniert werden.
|
||||||
|
Dabei ist jedoch darauf zu achten, dass etwaige Optionen immer die zugehörigen Umgebungsvariablen überschreiben.
|
||||||
bin/console autoinstall
|
|
||||||
|
|
||||||
Oder falls du alle optionalen Checks ausfürehn lassen möchtest, benutze diese Option:
|
|
||||||
|
|
||||||
bin/console autoinstall -a
|
|
||||||
|
|
||||||
*Wenn* die automatisierte Installation aus irgendeinem Grund fehlschlägt, dann prüfe das Folgende:
|
|
||||||
* Existiert die `.htconfig.php`? Falls ja, wird die automatisierte Installation nicht gestartet.
|
|
||||||
* Sind Einstellungen in der `.htconfig.php` korrekt? Falls nicht, bitte bearbeite diese Datei erneut.
|
|
||||||
* Ist die leere MySQL-Datenbank erstellt? Falls nicht, erstelle diese.
|
|
||||||
|
|
||||||
Für mehr Informationen kannst du diese Option verwenden:
|
Für mehr Informationen kannst du diese Option verwenden:
|
||||||
|
|
||||||
bin/console autoinstall -v
|
bin/console autoinstall -v
|
||||||
|
|
||||||
|
Falls du alle optionalen Checks ausfürehn lassen möchtest, benutze diese Option:
|
||||||
|
|
||||||
|
bin/console autoinstall -a
|
||||||
|
|
||||||
|
*Wenn* die automatisierte Installation aus irgendeinem Grund fehlschlägt, dann prüfe das Folgende:
|
||||||
|
* Existiert die `config/local.config.php`? Falls ja, wird die automatisierte Installation nicht gestartet.
|
||||||
|
* Sind Einstellungen in der `config/local.config.php` korrekt? Falls nicht, bitte bearbeite diese Datei erneut.
|
||||||
|
* Ist die leere MySQL-Datenbank erstellt? Falls nicht, erstelle diese.
|
||||||
|
|
||||||
|
#### B.1: Konfigurationsdatei
|
||||||
|
|
||||||
|
Für diese Variante muss ein Konfigurationsdatei bereits vor der Installation fertig definiert sein (z.B. [local-sample.config.php](config/local-sample.config.php).
|
||||||
|
|
||||||
|
Gehe im Anschluss in den Friendica-Hauptordner und führe den Kommandozeilen Befehl aus:
|
||||||
|
|
||||||
|
bin/console autoinstall -f <prepared.config.php>
|
||||||
|
|
||||||
|
#### B.2: Umgebungsvariablen
|
||||||
|
|
||||||
|
Es existieren Zwei Arten von Umgebungsvariablen in Friendica:
|
||||||
|
- Jene, die auch im normalen Betrieb verwendet werden können (derzeit ausschließlich **Datenbank Einstellungen**)
|
||||||
|
- Jene, die nur während der Installation verwedent werden können (im normalen Betrieb werden sie ignoriert)
|
||||||
|
|
||||||
|
Umgebungsvariablen können auch durch adäquate Optionen (z.B. `--dbhost <hostname>`)übersteuert werden.
|
||||||
|
|
||||||
|
**Datenbank Einstellungen**
|
||||||
|
|
||||||
|
Nur wenn die Option `--savedb` gesetzt ist, werden diese Umgebungsvariablen auch in `config/local.config.php` gespeichert!
|
||||||
|
|
||||||
|
- `MYSQL_HOST` Der Host der MySQL/MariaDB Datenbank
|
||||||
|
- `MYSQL_PORT` Der Port der MySQL/MariaDB Datenbank
|
||||||
|
- `MYSQL_USERNAME` Der Benutzername des MySQL Datenbanklogins (MySql - Variante)
|
||||||
|
- `MYSQL_USER` Der Benutzername des MariaDB Datenbanklogins (MariaDB-Variante)
|
||||||
|
- `MYSQL_PASSWORD` Das Passwort der MySQL/MariaDB Datenbanklogins
|
||||||
|
- `MYSQL_DATABASE` Der Name der MySQL/MariaDB Datenbank
|
||||||
|
|
||||||
|
**Friendica Einstellungen**
|
||||||
|
|
||||||
|
Diese Umgebungsvariablen können nicht während des normalen Friendica Betriebs verwendet werden.
|
||||||
|
Sie werden stattdessen direkt in `config/local.config.php` gespeichert.
|
||||||
|
|
||||||
|
- `FRIENDICA_PHP_PATH` Der Pfad zur PHP-Datei
|
||||||
|
- `FRIENDICA_ADMIN_MAIL` Die Admin E-Mail Adresse dieses Friendica Knotens (wird auch für den Admin-Zugang benötigt)
|
||||||
|
- `FRIENDICA_TZ` Die Zeitzone von Friendica
|
||||||
|
- `FRIENDICA_LANG` Die Sprache von Friendica
|
||||||
|
|
||||||
|
Gehe im Anschluss in den Friendica-Hauptordner und führe den Kommandozeilen Befehl aus:
|
||||||
|
|
||||||
|
bin/console autoinstall [--savedb]
|
||||||
|
|
||||||
|
#### B.3: Optionen
|
||||||
|
|
||||||
|
Alle Optionen werden in `config/local.config.php` gespeichert und überschreiben etwaige, zugehörige Umgebungsvariablen.
|
||||||
|
|
||||||
|
- `-H|--dbhost <host>` Der Host der MySQL/MariaDB Datenbank (env `MYSQL_HOST`)
|
||||||
|
- `-p|--dbport <port>` Der Port der MySQL/MariaDB Datenbank (env `MYSQL_PORT`)
|
||||||
|
- `-U|--dbuser <username>` Der Benutzername des MySQL/MariaDB Datenbanklogins (env `MYSQL_USER` or `MYSQL_USERNAME`)
|
||||||
|
- `-P|--dbpass <password>` Das Passwort der MySQL/MariaDB Datenbanklogins (env `MYSQL_PASSWORD`)
|
||||||
|
- `-d|--dbdata <database>` Der Name der MySQL/MariaDB Datenbank (env `MYSQL_DATABASE`)
|
||||||
|
- `-b|--phppath <path>` Der Pfad zur PHP-Datei (env `FRIENDICA_PHP_PATH`)
|
||||||
|
- `-A|--admin <mail>` Die Admin E-Mail Adresse dieses Friendica Knotens (env `FRIENDICA_ADMIN_MAIL`)
|
||||||
|
- `-T|--tz <timezone>` Die Zeitzone von Friendica (env `FRIENDICA_TZ`)
|
||||||
|
- `-L|--lang <language>` Die Sprache von Friendica (env `FRIENDICA_LANG`)
|
||||||
|
|
||||||
|
Gehe in den Friendica-Hauptordner und führe den Kommandozeilen Befehl aus:
|
||||||
|
|
||||||
|
bin/console autoinstall [options]
|
||||||
|
|
||||||
### Einen Worker einrichten
|
### Einen Worker einrichten
|
||||||
|
|
||||||
Erstelle einen Cron job oder einen regelmäßigen Task, um den Poller alle 5-10 Minuten im Hintergrund ablaufen zu lassen.
|
Erstelle einen Cron job oder einen regelmäßigen Task, um den Poller alle 5-10 Minuten im Hintergrund ablaufen zu lassen.
|
||||||
|
@ -149,5 +227,5 @@ Es werden schlimme Dinge geschehen.
|
||||||
Sei es nun ein Hardwareversagen oder eine kaputte Datenbank.
|
Sei es nun ein Hardwareversagen oder eine kaputte Datenbank.
|
||||||
Deshalb solltest du dir, nachdem die Installation deines Friendica Knotens abgeschlossen ist, einen Backup Plan erstellen.
|
Deshalb solltest du dir, nachdem die Installation deines Friendica Knotens abgeschlossen ist, einen Backup Plan erstellen.
|
||||||
|
|
||||||
Die wichtigste Datei ist die `.htconfig.php` im Stammverzeichnis deiner Friendica Installation.
|
Die wichtigste Datei ist die `config/local.config.php` im Stammverzeichnis deiner Friendica Installation.
|
||||||
Und da alle Daten in der Datenbank gespeichert werden, solltest du einen nicht all zu alten Dump der Friendica Datenbank zur Hand haben, solltest du deinen Knoten wieder herstellen müssen.
|
Und da alle Daten in der Datenbank gespeichert werden, solltest du einen nicht all zu alten Dump der Friendica Datenbank zur Hand haben, solltest du deinen Knoten wieder herstellen müssen.
|
||||||
|
|
|
@ -18,7 +18,7 @@ Erweiterung müssen vom Administrator installiert werden, bevor sie genutzt werd
|
||||||
Dieses kann über das Administrationsmenü erstellt werden.
|
Dieses kann über das Administrationsmenü erstellt werden.
|
||||||
|
|
||||||
Jeder der Konnektoren benötigt zudem einen API-Schlüssel vom Service, der verbunden werden soll.
|
Jeder der Konnektoren benötigt zudem einen API-Schlüssel vom Service, der verbunden werden soll.
|
||||||
Einige Erweiterung erlaube es, diese Informationen auf den Administrationsseiten einzustellen, wohingegen andere eine direkte Bearbeitung der Konfigurationsdatei ".htconfig.php" erfordern.
|
Einige Erweiterung erlaube es, diese Informationen auf den Administrationsseiten einzustellen, wohingegen andere eine direkte Bearbeitung der Konfigurationsdatei "config/local.config.php" erfordern.
|
||||||
Der Weg, um diese Schlüssel zu erhalten, variiert stark, jedoch brauchen fast alle einen bestehenden Account im gewünschten Service.
|
Der Weg, um diese Schlüssel zu erhalten, variiert stark, jedoch brauchen fast alle einen bestehenden Account im gewünschten Service.
|
||||||
Einmal installiert, können diese Schlüssel von allen Seitennutzern genutzt werden.
|
Einmal installiert, können diese Schlüssel von allen Seitennutzern genutzt werden.
|
||||||
|
|
||||||
|
@ -37,11 +37,12 @@ Um dieses Erweiterung zu nutzen, benötigst du einen OAuth Consumer-Schlüsselpa
|
||||||
|
|
||||||
Registriere deine Friendica-Seite als "Client"-Anwendung mit "Read&Write"-Zugriff. Wir benötigen "Twitter als Login" nicht. Sobald du deine Anwendung installiert hast, erhältst du das Schlüsselpaar für deine Seite.
|
Registriere deine Friendica-Seite als "Client"-Anwendung mit "Read&Write"-Zugriff. Wir benötigen "Twitter als Login" nicht. Sobald du deine Anwendung installiert hast, erhältst du das Schlüsselpaar für deine Seite.
|
||||||
|
|
||||||
Trage dieses Schlüsselpaar in deine globale ".htconfig.php"-Datei ein.
|
Trage dieses Schlüsselpaar in deine globale "config/local.config.php"-Datei ein.
|
||||||
|
|
||||||
```
|
```
|
||||||
$a->config['twitter']['consumerkey'] = 'your consumer_key here';
|
[twitter]
|
||||||
$a->config['twitter']['consumersecret'] = 'your consumer_secret here';
|
consumerkey = your consumer_key here
|
||||||
|
consumersecret = your consumer_secret here
|
||||||
```
|
```
|
||||||
|
|
||||||
Anschließend kann der Nutzer deiner Seite die Twitter-Einstellungen selbst eintragen: "Einstellungen -> Connector Einstellungen".
|
Anschließend kann der Nutzer deiner Seite die Twitter-Einstellungen selbst eintragen: "Einstellungen -> Connector Einstellungen".
|
||||||
|
|
|
@ -17,6 +17,10 @@ Außerdem enthält sie deinen geheimen Schlüssel mit dem du dich deinen Kontakt
|
||||||
|
|
||||||
Rufe nun dem neuen Server die Seite *http://newserver.com/uimport* auf (es gibt derzeit keinen direkten Link auf diese Seite).
|
Rufe nun dem neuen Server die Seite *http://newserver.com/uimport* auf (es gibt derzeit keinen direkten Link auf diese Seite).
|
||||||
|
|
||||||
|
Bitte beachte, dass dies nur auf Servern möglich ist, an denen man sich offen anmelden kann.
|
||||||
|
Bei Servern, bei denen der Administrator Accounts freigeben muss, ist das Hochladen nicht möglich.
|
||||||
|
Hier kann dies nur der Administrator selber durchführen.
|
||||||
|
|
||||||
Lege auf dem neuen Server auf keinen Fall einen gleichnamigen Account an!
|
Lege auf dem neuen Server auf keinen Fall einen gleichnamigen Account an!
|
||||||
uimport muss anstelle des Registrierens verwendet werden.
|
uimport muss anstelle des Registrierens verwendet werden.
|
||||||
|
|
||||||
|
|
|
@ -21,6 +21,6 @@ Solltest Du beim Stöbern durch die vielen Gruppen nicht wieder hierher zurück
|
||||||
|
|
||||||
Wenn Du einige Gruppen hinzugefügt hast, gehe <a href="help/Quick-Start-andfinally">weiter zum nächsten Schritt</a>.
|
Wenn Du einige Gruppen hinzugefügt hast, gehe <a href="help/Quick-Start-andfinally">weiter zum nächsten Schritt</a>.
|
||||||
|
|
||||||
<iframe src="https://dir.friendica.social/home" width="950" height="600"></iframe>
|
<iframe src="https://dir.friendica.social/forum" width="950" height="600"></iframe>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -10,24 +10,14 @@ Wir freuen uns nicht, wenn Leute Friendica verlassen, aber wenn du deinen Accoun
|
||||||
in deinem Webbrowser. Du musst dabei eingeloggt sein.
|
in deinem Webbrowser. Du musst dabei eingeloggt sein.
|
||||||
|
|
||||||
Du wirst nach deinem Passwort gefragt, um die Anfrage zu bestätigen.
|
Du wirst nach deinem Passwort gefragt, um die Anfrage zu bestätigen.
|
||||||
Wenn dieses mit deinem gespeichertem Passwort übereinstimmt, dann wird dein Account sofort gelöscht.
|
Wenn dieses mit deinem gespeichertem Passwort übereinstimmt, dann wird dein Account als "gelöscht" markiert.
|
||||||
Anders als andere Netzwerke, behalten wir die Daten **nicht** für eine gewisse Zeit, falls du deine Meinung noch änderst.
|
Dies passiert sofort und kann nicht rückgängig gemacht werden.
|
||||||
Deine Nutzerdetails, deine Unterhaltungen, deine Photos, deine Freunde - alles; wird sofort gelöscht und du wirst ausgeloggt.
|
Die meisten Deiner Inhalte und Benutzerdaten werden kurzfristig danach durch Hintergrundprozesse gelöscht.
|
||||||
|
|
||||||
Wenn Beiträge ablaufen, schicken wir Mitteilungen an Friendica, um diese zu löschen.
|
Parallel dazu senden wir eine Mitteilung an die Server deiner Kontakte, damit sie deine dort vorliegenden Daten ebenfalls löschen.
|
||||||
Diaspora hat keine automatische Löschfunktion, so dass diese Funktion in dem Netzwerk deaktiviert ist.
|
Wir haben keinen Einfluss darauf, wie sorgfältig und ob überhaupt diese Systeme der Löschaufforderung nachgehen.
|
||||||
Und hoffentlich ist klar, dass das Löschen auch in anderen Netzwerken nicht funktioniert.
|
|
||||||
Wenn du manuell einen Beitrag bzw. eine Reihe von Beiträgen löschst, dann senden wir individuelle Mitteilungen zu Friendica und Diaspora für jeden gelöschten Post.
|
|
||||||
|
|
||||||
Diaspora versäumt dieses oft.
|
Aus technischen Gründen benötigen wir für die Übetragung dieser Mitteilung ein paar Benutzerdaten.
|
||||||
|
Diese Daten werden dann nach einer Frist von etwa sieben Tagen ebenfalls gelöscht.
|
||||||
|
|
||||||
Wenn du einen Beitrag löscht, aber jemand diesem Beitrag folgt, wird es trotzdem gelöscht.
|
Wir speichern deinen Benutzernamen dauerhaft, damit sich niemand einen Account unter deinem Spitznamen anlegen kann.
|
||||||
Dein Wunsch hat Priorität.
|
|
||||||
|
|
||||||
Wenn du deinen Account löscht, dann löschen wir alle Beiträge, dein Profil, die Nutzerdaten etc. sofort.
|
|
||||||
|
|
||||||
Um einen Gesamtlöschauftrag zu versenden, bräuchten wir zunächst noch deinen Account; auch, um deinen Freunden zu zeigen, wer diese Anfrage stellt.
|
|
||||||
Das können wir nicht tun, wenn du keinen Account mehr hast.
|
|
||||||
|
|
||||||
Deine Freunde können möglicherweise noch deine Beiträge sehen, wenn dein Account gelöscht wurde, aber es gibt keinen öffentlichen Ort in Friendica mehr, wo diese angeschaut werden können.
|
|
||||||
Wenn du Freunde bei Diaspora hast, kann es sein, dass deine Beiträge weiterhin vorhanden und für andere aus diesem Netzwerk sichtbar sind.
|
|
||||||
|
|
|
@ -47,7 +47,7 @@ Mehr Informationen zum Übersetzungsprozess von Friendica findest du [auf dieser
|
||||||
|
|
||||||
Hier kann das Theme bestimmt werden, welches standardmäßig zum Anzeigen der Seite verwendet werden soll.
|
Hier kann das Theme bestimmt werden, welches standardmäßig zum Anzeigen der Seite verwendet werden soll.
|
||||||
Nutzer können in ihren Einstellungen andere Themes wählen.
|
Nutzer können in ihren Einstellungen andere Themes wählen.
|
||||||
Derzeit ist das "duepunto zero" Theme das vorausgewählte Theme.
|
Derzeit ist das "vier" Theme das vorausgewählte Theme.
|
||||||
|
|
||||||
Für mobile Geräte kannst du ein spezielles Theme wählen, wenn das Standardtheme ungeeignet für mobile Geräte sein sollte.
|
Für mobile Geräte kannst du ein spezielles Theme wählen, wenn das Standardtheme ungeeignet für mobile Geräte sein sollte.
|
||||||
Das `vier` Theme z.B. unterstützt kleine Anzeigen und benötigt kein zusätzliches mobiles Theme.
|
Das `vier` Theme z.B. unterstützt kleine Anzeigen und benötigt kein zusätzliches mobiles Theme.
|
||||||
|
@ -66,7 +66,7 @@ Dabei kannst du zwischen den folgenden Optionen wählen:
|
||||||
##### Einladungen
|
##### Einladungen
|
||||||
|
|
||||||
Zusätzlich zu den oben genannten Möglichkeiten, kann die Registrierung eines neuen Nutzerkontos an eine Einladung durch einen bestehenden Nutzer gekoppelt werden.
|
Zusätzlich zu den oben genannten Möglichkeiten, kann die Registrierung eines neuen Nutzerkontos an eine Einladung durch einen bestehenden Nutzer gekoppelt werden.
|
||||||
Hierzu muss in der [.htconfig.php](/help/htconfig) Datei die Option `invitation_only` aktiviert und als Registrierungsmethode entweder *Offen* oder *Bedarf der Zustimmung* gewählt werden.
|
Hierzu muss in der [config/local.config.php](/help/Config) Datei die Option `invitation_only` aktiviert und als Registrierungsmethode entweder *Offen* oder *Bedarf der Zustimmung* gewählt werden.
|
||||||
|
|
||||||
#### Namen auf Vollständigkeit überprüfen
|
#### Namen auf Vollständigkeit überprüfen
|
||||||
|
|
||||||
|
@ -92,6 +92,32 @@ Standardmäßig ist hier "false" gesetzt.
|
||||||
|
|
||||||
### Datei hochladen
|
### Datei hochladen
|
||||||
|
|
||||||
|
#### Datenspeicher Backend
|
||||||
|
|
||||||
|
Legt das Datenspeicher Backend fest, mit dem Friendica hoch geladene Daten speichert.
|
||||||
|
Zwei Speicher Backends sind standardmäßig bei Friendica verfügbar:
|
||||||
|
|
||||||
|
- **Database** : Die Daten werden in einer speziellen Tabelle in der Datenbank (`storage`) gespeichert.
|
||||||
|
- **Filesystem** : Die Daten werden als Dateien im Dateisystem gespeichert.
|
||||||
|
|
||||||
|
Weitere Speicher Backends können als Addons von Drittanbietern verfügbar sein.
|
||||||
|
Falls ein solches verwendet wird, sei an dieser Stelle nur auf deren Dokumentation für weitere Informationen verwiesen.
|
||||||
|
|
||||||
|
Die Grundeinstellung ist 'Datenbank (legacy)': Dies ist die alte Methode von Friendica Daten direkt in der Datenbank abzulegen.
|
||||||
|
|
||||||
|
Bestehende Daten können zum aktuell ausgewählten Backend verschoben werden.
|
||||||
|
Hierfür kann der ['storage move'](help/tools) Befehl der Friendica Konsole verwendet werden.
|
||||||
|
|
||||||
|
Sollte das ausgewählte Speicher Backand zusätzliche Konfigurationsparameter besitzen, werden nach der Auswahl des Backends hier weitere Felder angezeigt.
|
||||||
|
|
||||||
|
##### Dateipfad zum Speicher
|
||||||
|
|
||||||
|
Der Basispfad unter dem das Filesystem Datenspeicher Backend die Daten speichern soll.
|
||||||
|
|
||||||
|
Um zu verhindern, dass Daten unter Umgehung der Privatsphären-Einstellungen herunter geladen werden, sollte dieser Pfad außerhalb der Verzeichnisstruktur des Webservers liegen.
|
||||||
|
|
||||||
|
Die Grundeinstellung ist `storage`, das ist das `storage` Unterverzeichnis innerhalb des Friendica Verzeichnisses.
|
||||||
|
|
||||||
#### Maximale Bildgröße
|
#### Maximale Bildgröße
|
||||||
|
|
||||||
Maximale Bild-Dateigröße in Byte. Standardmäßig ist 0 gesetzt, was bedeutet, dass kein Limit gesetzt ist.
|
Maximale Bild-Dateigröße in Byte. Standardmäßig ist 0 gesetzt, was bedeutet, dass kein Limit gesetzt ist.
|
||||||
|
@ -134,7 +160,7 @@ Angemeldete Nutzer des Knotens können grundsätzlich beide Seiten verwenden.
|
||||||
#### Erlaubte Domains für Kontakte
|
#### Erlaubte Domains für Kontakte
|
||||||
|
|
||||||
Kommagetrennte Liste von Domains, welche eine Freundschaft mit dieser Seite eingehen dürfen.
|
Kommagetrennte Liste von Domains, welche eine Freundschaft mit dieser Seite eingehen dürfen.
|
||||||
Wildcards werden akzeptiert (Wildcard-Unterstützung unter Windows benötigt PHP5.3) Standardmäßig sind alle gültigen Domains erlaubt.
|
Wildcards werden akzeptiert Standardmäßig sind alle gültigen Domains erlaubt.
|
||||||
|
|
||||||
Mit dieser Option kann man einfach geschlossene Netzwerke, z.B. im schulischen Bereich aufbauen, aus denen nicht mit dem Rest des Netzwerks kommuniziert werden soll.
|
Mit dieser Option kann man einfach geschlossene Netzwerke, z.B. im schulischen Bereich aufbauen, aus denen nicht mit dem Rest des Netzwerks kommuniziert werden soll.
|
||||||
|
|
||||||
|
@ -142,7 +168,7 @@ Mit dieser Option kann man einfach geschlossene Netzwerke, z.B. im schulischen B
|
||||||
|
|
||||||
Kommagetrennte Liste von Domains, welche bei der Registrierung als Part der Email-Adresse erlaubt sind.
|
Kommagetrennte Liste von Domains, welche bei der Registrierung als Part der Email-Adresse erlaubt sind.
|
||||||
Das grenzt Leute aus, die nicht Teil der Gruppe oder Organisation sind.
|
Das grenzt Leute aus, die nicht Teil der Gruppe oder Organisation sind.
|
||||||
Wildcards werden akzeptiert (Wildcard-Unterstützung unter Windows benötigt PHP5.3) Standardmäßig sind alle gültigen Email-Adressen erlaubt.
|
Wildcards werden akzeptiert Standardmäßig sind alle gültigen Email-Adressen erlaubt.
|
||||||
|
|
||||||
#### Nutzern erlauben das remote_self Flag zu setzen
|
#### Nutzern erlauben das remote_self Flag zu setzen
|
||||||
|
|
||||||
|
@ -156,6 +182,14 @@ Außerdem könnte es durch Nutzer als Spam Verteiler missbraucht werden.
|
||||||
Als Administrator der Friendica-Instanz kannst du diese Einstellungen ansonsten nur direkt in der Datenbank vornehmen.
|
Als Administrator der Friendica-Instanz kannst du diese Einstellungen ansonsten nur direkt in der Datenbank vornehmen.
|
||||||
Bevor du das tust solltest du sicherstellen, dass du ein Backup der Datenbank hast und genau weißt was die Änderungen an der Datenbank bewirken, die du vornehmen willst.
|
Bevor du das tust solltest du sicherstellen, dass du ein Backup der Datenbank hast und genau weißt was die Änderungen an der Datenbank bewirken, die du vornehmen willst.
|
||||||
|
|
||||||
|
#### Explizite Inhalte
|
||||||
|
|
||||||
|
Wenn Sie einen Knoten mit explizitem, nicht jugendfreien Inhalt betreiben, können Sie dies mit dieser Option ankündigen.
|
||||||
|
Ist diese Option aktiviert, wird ein Informationsflag in den veröffentlichten Informationen zu Ihrem Knoten gesetzt.
|
||||||
|
(Sollte *Server Informationen veröffentlichen* aktiviert sein.)
|
||||||
|
|
||||||
|
Zusätzlich wird auf der Registrierungsseite für neue Benutzer ein Hinweis angezeigt.
|
||||||
|
|
||||||
### Erweitert
|
### Erweitert
|
||||||
|
|
||||||
#### Proxy Einstellungen
|
#### Proxy Einstellungen
|
||||||
|
@ -305,7 +339,7 @@ Du solltest deshalb einen Dienst zur [log rotation](https://en.wikipedia.org/wik
|
||||||
**Bekannte Probleme**: Der Dateiname `friendica.log` kann bei speziellen Server Konfigurationen zu Problemen führen (siehe [issue 2209](https://github.com/friendica/friendica/issues/2209)).
|
**Bekannte Probleme**: Der Dateiname `friendica.log` kann bei speziellen Server Konfigurationen zu Problemen führen (siehe [issue 2209](https://github.com/friendica/friendica/issues/2209)).
|
||||||
|
|
||||||
Normalerweise werden Fehler- und Warnmeldungen von PHP unterdrückt.
|
Normalerweise werden Fehler- und Warnmeldungen von PHP unterdrückt.
|
||||||
Wenn du sie aktivieren willst, musst du folgendes in der `.htconfig.php` Datei eintragen um die Meldungen in die Datei `php.out` zu speichern
|
Wenn du sie aktivieren willst, musst du folgendes in der `config/local.config.php` Datei eintragen um die Meldungen in die Datei `php.out` zu speichern
|
||||||
|
|
||||||
error_reporting(E_ERROR | E_WARNING | E_PARSE );
|
error_reporting(E_ERROR | E_WARNING | E_PARSE );
|
||||||
ini_set('error_log','php.out');
|
ini_set('error_log','php.out');
|
||||||
|
@ -339,10 +373,21 @@ Dies sind die Datenbank Einstellungen, die Administrator Accounts, der PHP Pfad
|
||||||
|
|
||||||
Mit den folgenden Einstellungen kannst du die Zugriffsdaten für den Datenbank Server festlegen.
|
Mit den folgenden Einstellungen kannst du die Zugriffsdaten für den Datenbank Server festlegen.
|
||||||
|
|
||||||
$db_host = 'your.db.host';
|
'database' => [
|
||||||
$db_user = 'db_username';
|
'hostname' => 'localhost',
|
||||||
$db_pass = 'db_password';
|
'username' => 'mysqlusername',
|
||||||
$db_data = 'database_name';
|
'password' => 'mysqlpassword',
|
||||||
|
'database' => 'mysqldatabasename',
|
||||||
|
'charset' => 'utf8mb4',
|
||||||
|
],
|
||||||
|
|
||||||
|
Sollten alle der folgenden Environment-Variablen gesetzt sein, wird Friendica diese anstatt der vorher konfigurierten Werte nutzen.
|
||||||
|
|
||||||
|
MYSQL_HOST
|
||||||
|
MYSQL_PORT
|
||||||
|
MYSQL_USERNAME
|
||||||
|
MYSQL_PASSWORD
|
||||||
|
MYSQL_DATABASE
|
||||||
|
|
||||||
## Administratoren
|
## Administratoren
|
||||||
|
|
||||||
|
@ -351,14 +396,18 @@ Normalerweise trifft dies auf den ersten Account zu, der nach der Installation a
|
||||||
Die Liste der E-Mail Adressen kann aber einfach erweitert werden.
|
Die Liste der E-Mail Adressen kann aber einfach erweitert werden.
|
||||||
Mit keiner der angegebenen E-Mail Adressen können weitere Accounts registriert werden.
|
Mit keiner der angegebenen E-Mail Adressen können weitere Accounts registriert werden.
|
||||||
|
|
||||||
$a->config['admin_email'] = 'you@example.com, buddy@example.com';
|
'config' => [
|
||||||
|
'admin_email' => 'you@example.com, buddy@example.com',
|
||||||
|
],
|
||||||
|
|
||||||
## PHP Pfad
|
## PHP Pfad
|
||||||
|
|
||||||
Einige Prozesse von Friendica laufen im Hintergrund.
|
Einige Prozesse von Friendica laufen im Hintergrund.
|
||||||
Für diese Prozesse muss der Pfad zu der PHP Version gesetzt sein, die verwendet werden soll.
|
Für diese Prozesse muss der Pfad zu der PHP Version gesetzt sein, die verwendet werden soll.
|
||||||
|
|
||||||
$a->config['php_path'] = '/pfad/zur/php-version';
|
'config' => [
|
||||||
|
'php_path' => '/usr/bin/php',
|
||||||
|
],
|
||||||
|
|
||||||
## Unterverzeichnis Konfiguration
|
## Unterverzeichnis Konfiguration
|
||||||
|
|
||||||
|
@ -366,9 +415,11 @@ Man kann Friendica in ein Unterverzeichnis des Webservers installieren.
|
||||||
Wir raten allerdings dringen davon ab, da es die Interoperabilität mit anderen Netzwerken (z.B. Diaspora, GNU Social, Hubzilla) verhindert.
|
Wir raten allerdings dringen davon ab, da es die Interoperabilität mit anderen Netzwerken (z.B. Diaspora, GNU Social, Hubzilla) verhindert.
|
||||||
Mal angenommen, du hast ein Unterverzeichnis tests und willst Friendica in ein weiteres Unterverzeichnis installieren, dann lautet die Konfiguration hierfür:
|
Mal angenommen, du hast ein Unterverzeichnis tests und willst Friendica in ein weiteres Unterverzeichnis installieren, dann lautet die Konfiguration hierfür:
|
||||||
|
|
||||||
$a->path = 'tests/friendica';
|
'system' => [
|
||||||
|
'urlpath' => 'tests/friendica',
|
||||||
|
],
|
||||||
|
|
||||||
## Weitere Ausnahmen
|
## Weitere Ausnahmen
|
||||||
|
|
||||||
Es gibt noch einige experimentelle Einstellungen, die nur in der ``.htconfig.php`` Datei konfiguriert werden können.
|
Es gibt noch einige experimentelle Einstellungen, die nur in der ``config/local.config.php`` Datei konfiguriert werden können.
|
||||||
Im [Konfigurationswerte, die nur in der .htconfig.php gesetzt werden können (EN)](help/htconfig) Artikel kannst du mehr darüber erfahren.
|
Im [Konfigurationswerte, die nur in der config/local.config.php gesetzt werden können (EN)](help/Config) Artikel kannst du mehr darüber erfahren.
|
||||||
|
|
128
doc/htconfig.md
|
@ -1,128 +0,0 @@
|
||||||
Config values that can only be set in .htconfig.php
|
|
||||||
===================================================
|
|
||||||
|
|
||||||
* [Home](help)
|
|
||||||
|
|
||||||
There are some config values that haven't found their way into the administration page.
|
|
||||||
This has several reasons.
|
|
||||||
Maybe they are part of a current development that isn't considered stable and will be added later in the administration page when it is considered safe.
|
|
||||||
Or it triggers something that isn't expected to be of public interest.
|
|
||||||
Or it is for testing purposes only.
|
|
||||||
|
|
||||||
**Attention:** Please be warned that you shouldn't use one of these values without the knowledge what it could trigger.
|
|
||||||
Especially don't do that with undocumented values.
|
|
||||||
|
|
||||||
The header of the section describes the category, the value is the parameter.
|
|
||||||
Example: To set the automatic database cleanup process add this line to your .htconfig.php:
|
|
||||||
|
|
||||||
$a->config['system']['dbclean'] = true;
|
|
||||||
|
|
||||||
## jabber ##
|
|
||||||
* **debug** (Boolean) - Enable debug level for the jabber account synchronisation.
|
|
||||||
* **lockpath** - Must be writable by the ejabberd process. if set then it will prevent the running of multiple processes.
|
|
||||||
|
|
||||||
## system ##
|
|
||||||
|
|
||||||
* **allowed_link_protocols** (Array) - Allowed protocols in links URLs, add at your own risk. http is always allowed.
|
|
||||||
* **always_show_preview** (Boolean) - Only show small preview picures. Default value is false.
|
|
||||||
* **archival_days** (Integer) - Number of days that we try to deliver content before we archive a contact. Defaults to 32.
|
|
||||||
* **auth_cookie_lifetime** (Integer) - Number of days that should pass without any activity before a user who chose "Remember me" when logging in is considered logged out. Defaults to 7.
|
|
||||||
* **block_local_dir** (Boolean) - Blocks the access to the directory of the local users.
|
|
||||||
* **config_adapter** (jit|preload) - Allow to switch the configuration adapter to improve performances at the cost of memory consumption. Default value is "jit"
|
|
||||||
* **curl_range_bytes** - Maximum number of bytes that should be fetched. Default is 0, which mean "no limit".
|
|
||||||
* **db_log** - Name of a logfile to log slow database queries
|
|
||||||
* **db_loglimit** - If a database call lasts longer than this value it is logged
|
|
||||||
* **db_log_index** - Name of a logfile to log queries with bad indexes
|
|
||||||
* **db_log_index_watch** - Watchlist of indexes to watch
|
|
||||||
* **db_loglimit_index** - Number of index rows needed to be logged for indexes on the watchlist
|
|
||||||
* **db_loglimit_index_high** - Number of index rows to be logged anyway (for any index)
|
|
||||||
* **db_log_index_blacklist** - Blacklist of indexes that shouldn't be watched
|
|
||||||
* **dbclean** (Boolean) - Enable the automatic database cleanup process
|
|
||||||
* **dbclean-expire-days** (Integer) - Days after which remote items will be deleted. Own items, and marked or filed items are kept.
|
|
||||||
* **diaspora_test** (Boolean) - For development only. Disables the message transfer.
|
|
||||||
* **disable_email_validation** (Boolean) - Disables the check if a mail address is in a valid format and can be resolved via DNS.
|
|
||||||
* **disable_url_validation** (Boolean) - Disables the DNS lookup of an URL.
|
|
||||||
* **disable_password_exposed** (Boolean) - Disable the exposition check against the remote haveibeenpwned API on password change. Default value is false.
|
|
||||||
* **dlogfile - location of the developer log file
|
|
||||||
* **dlogip - restricts develop log writes to requests originating from this IP address
|
|
||||||
* **frontend_worker_timeout** - Value in minutes after we think that a frontend task was killed by the webserver. Default value is 10.
|
|
||||||
* **hsts** (Boolean) - Enables the sending of HTTP Strict Transport Security headers
|
|
||||||
* **ignore_cache** (Boolean) - For development only. Disables the item cache.
|
|
||||||
* **instances_social_key** - Key to the API of https://instances.social which retrieves data about mastodon servers. See https://instances.social/api/token to get an API key.
|
|
||||||
* **ipv4_resolve** (Boolean) - Resolve IPV4 addresses only. Don't resolve to IPV6. Default value is false.
|
|
||||||
* **invitation_only** (Boolean) - If set true registration is only possible after a current member of the node has send an invitation. Default is false.
|
|
||||||
* **like_no_comment** (Boolean) - Don't update the "commented" value of an item when it is liked.
|
|
||||||
* **local_block** (Boolean) - Used in conjunction with "block_public".
|
|
||||||
* **local_search** (Boolean) - Blocks search for users who are not logged in to prevent crawlers from blocking your system.
|
|
||||||
* **local_tags** (Boolean) - If activated, all hashtags will point to the local server.
|
|
||||||
* **max_connections** - The maximum number of database connections which can be in use before the worker process is deferred to it's next interval. When the system can't detect the maximum numbers of connection then this value can be used.
|
|
||||||
* **max_connections_level** - The maximum level of connections that are allowed to let the worker start. It is a percentage value. Default value is 75.
|
|
||||||
* **max_contact_queue** - Default value is 500.
|
|
||||||
* **max_batch_queue** - Default value is 1000.
|
|
||||||
* **max_processes_backend** - Maximum number of concurrent database processes for background tasks. Default value is 5.
|
|
||||||
* **max_processes_frontend** - Maximum number of concurrent database processes for foreground tasks. Default value is 20.
|
|
||||||
* **min_poll_interval** - minimal distance in minutes between two polls for a contact. Default is 1. Reasonable values are between 1 and 59.
|
|
||||||
* **session_handler** (database|cache|native) - Whether to use Cache to store session data or to use PHP native session storage. Default value is `database`.
|
|
||||||
* **cache_driver** (database|memcache|memcached) - Whether to use Memcache or Memcached to store temporary cache. Default value is `database`.
|
|
||||||
* **memcache_host** - Host name of the memcache daemon. Default is '127.0.0.1'.
|
|
||||||
* **memcache_port** - Port number of the memcache daemon. Default is 11211.
|
|
||||||
* **memcached_hosts** - Array of Memcached servers info `[host, port(, weight)]`. Default value is `[['127.0.0.1', 11211]]`.
|
|
||||||
* **no_count** (Boolean) - Don't do count calculations (currently only when showing albums)
|
|
||||||
* **no_oembed** (Boolean) - Don't use OEmbed to fetch more information about a link.
|
|
||||||
* **no_smilies** (Boolean) - Don't show smilies.
|
|
||||||
* **no_view_full_size** (Boolean) - Don't add the link "View full size" under a resized image.
|
|
||||||
* **optimize_items** (Boolean) - Triggers an SQL command to optimize the item table before expiring items.
|
|
||||||
* **ostatus_poll_timeframe** - Defines how old an item can be to try to complete the conversation with it.
|
|
||||||
* **paranoia** (Boolean) - Log out users if their IP address changed.
|
|
||||||
* **permit_crawling** (Boolean) - Restricts the search for not logged in users to one search per minute.
|
|
||||||
* **queue_no_dead_check** (Boolean) - Ignore if the target contact or server seems to be dead during queue delivery.
|
|
||||||
* **worker_debug** (Boolean) - If enabled, it prints out the number of running processes split by priority.
|
|
||||||
* **worker_fetch_limit** - Number of worker tasks that are fetched in a single query. Default is 1.
|
|
||||||
* **profiler** (Boolean) - Enable internal timings to help optimize code. Needed for "rendertime" addon. Default is false.
|
|
||||||
* **free_crawls** - Number of "free" searches when "permit_crawling" is activated (Default value is 10)
|
|
||||||
* **crawl_permit_period** - Period in seconds between allowed searches when the number of free searches is reached and "permit_crawling" is activated (Default value is 60)
|
|
||||||
* **png_quality** - Default value is 8.
|
|
||||||
* **proc_windows** (Boolean) - Should be enabled if Friendica is running under Windows.
|
|
||||||
* **proxy_cache_time** - Time after which the cache is cleared. Default value is one day.
|
|
||||||
* **pushpoll_frequency** -
|
|
||||||
* **qsearch_limit** - Default value is 100.
|
|
||||||
* **remove_multiplicated_lines** (Boolean) - If enabled, multiple linefeeds in items are stripped to a single one.
|
|
||||||
* **show_unsupported_addons** (Boolean) - Show all addons including the unsupported ones.
|
|
||||||
* **show_unsupported_themes** (Boolean) - Show all themes including the unsupported ones.
|
|
||||||
* **show_global_community_hint** (Boolean) - When the global community page is enabled, use this option to display a hint above the stream, that this is a collection of all public top-level postings that arrive on your node.
|
|
||||||
* **throttle_limit_day** - Maximum number of posts that a user can send per day with the API.
|
|
||||||
* **throttle_limit_week** - Maximum number of posts that a user can send per week with the API.
|
|
||||||
* **throttle_limit_month** - Maximum number of posts that a user can send per month with the API.
|
|
||||||
* **wall-to-wall_share** (Boolean) - Displays forwarded posts like "wall-to-wall" posts.
|
|
||||||
* **worker_cooldown** - Cooldown time after each worker function call. Default value is 0 seconds.
|
|
||||||
* **xrd_timeout** - Timeout for fetching the XRD links. Default value is 20 seconds.
|
|
||||||
|
|
||||||
## experimental ##
|
|
||||||
|
|
||||||
* **exp_themes** (Boolean) - Show experimental themes as well.
|
|
||||||
|
|
||||||
## theme ##
|
|
||||||
|
|
||||||
* **hide_eventlist** (Boolean) - Don't show the birthdays and events on the profile and network page
|
|
||||||
|
|
||||||
# Administrator Options #
|
|
||||||
|
|
||||||
Enabling the admin panel for an account, and thus making the account holder admin of the node, is done by setting the variable
|
|
||||||
|
|
||||||
$a->config['admin_email'] = "someone@example.com";
|
|
||||||
|
|
||||||
Where you have to match the email address used for the account with the one you enter to the .htconfig file.
|
|
||||||
If more then one account should be able to access the admin panel, seperate the email addresses with a comma.
|
|
||||||
|
|
||||||
$a->config['admin_email'] = "someone@example.com,someonelese@example.com";
|
|
||||||
|
|
||||||
If you want to have a more personalized closing line for the notification emails you can set a variable for the admin_name.
|
|
||||||
|
|
||||||
$a->config['admin_name'] = "Marvin";
|
|
||||||
|
|
||||||
## Database Settings
|
|
||||||
|
|
||||||
The configuration variables db_host, db_user, db_pass and db_data are holding your credentials for the database connection.
|
|
||||||
If you need to specify a port to access the database, you can do so by appending ":portnumber" to the db_host variable.
|
|
||||||
|
|
||||||
$db_host = 'your.mysqlhost.com:123456';
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
To get the Doxygen API Documentation you must render it with the program <a href="http://www.doxygen.org">Doxygen</a> (included in most distributions).
|
To get the Doxygen API Documentation you must render it with the program <a href="http://www.doxygen.org">Doxygen</a> (included in most distributions).
|
||||||
<pre>
|
<pre>
|
||||||
$ doxygen util/Doxyfile
|
$ doxygen Doxyfile
|
||||||
</pre>
|
</pre>
|
||||||
<br>
|
<br>
|
||||||
<a href="javascript:history.back()">back</a>
|
<a href="javascript:history.back()">back</a>
|
||||||
|
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 895 B After Width: | Height: | Size: 596 B |
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 3.2 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 3.6 KiB After Width: | Height: | Size: 3.1 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 9.4 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 2.6 KiB After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 7.8 KiB |
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 6.5 KiB |
After Width: | Height: | Size: 336 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 806 B After Width: | Height: | Size: 796 B |
Before Width: | Height: | Size: 670 B After Width: | Height: | Size: 448 B |
Before Width: | Height: | Size: 488 B After Width: | Height: | Size: 452 B |
Before Width: | Height: | Size: 572 B After Width: | Height: | Size: 483 B |
Before Width: | Height: | Size: 739 B After Width: | Height: | Size: 560 B |
Before Width: | Height: | Size: 444 B After Width: | Height: | Size: 422 B |
Before Width: | Height: | Size: 612 B After Width: | Height: | Size: 482 B |
Before Width: | Height: | Size: 521 B After Width: | Height: | Size: 489 B |
Before Width: | Height: | Size: 508 B After Width: | Height: | Size: 484 B |