gnusocial.md 35 KB

GNU social 2.0.2

Guía de instalación y configuración de GNU social.

Instalación

Descargar y preparar GNU social:

sudo su
cd /var/lib
git clone https://notabug.org/gnusocialjp/gnusocial.git
chmod 750 gnusocial
cd gnusocial
mkdir -p file/avatar file/sessions run
make -j"$(nproc)" translations
chown -R nobody:nogroup /var/lib/gnusocial
mkdir -p /var/merecat/www/htdocs
ln -s /var/lib/gnusocial/public /var/merecat/www/htdocs/gnusocial
chown nobody:nogroup -R /var/merecat/www/htdocs
exit

Crear una base de datos y un usuario asignado:

mysql -u root -p
CREATE DATABASE gnusocial CHARACTER SET = 'utf8mb4' COLLATE = 'utf8mb4_general_ci';
CREATE USER 'gnusersocial'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON gnusocial.* TO 'gnusersocial'@'localhost';
FLUSH PRIVILEGES;

Comenzar la instalación:

Tipos de instancia:

  • Community: solo permite el registro de usuarios por invitación y la instancia es federada.
  • Public: el registro de usuarios es libre y la instancia es federada.
  • Single User: registra un único usuario y la instancia es federada.
  • Private: solo permite el registro de usuarios por invitación y la instancia no es federada.

Configuración

Listar todas las opciones de configuración:

php scripts/setconfig.php -a

El archivo de configuración de GNU social se encuentra en config.php.

site

Opciones de configuración del sitio web:

Opción Valor por defecto Descripción
name ---- (obligatorio) Nombre de la instancia.
server ---- (obligatorio) Dominio o dirección IP de la instancia.
path '' (raíz) Ruta relativa de la carpeta de GNU social si se instaló en una subcarpeta.
fancy false (deshabilitado) Habilita las URLs amigables (requiere reescritura de URLs).
logfile ---- (syslog) Ruta del archivo de registros.
logdebug false (deshabilitado) Habilita los registros en modo depuración.
locale_path /gnusocial/locale/ Ruta de la carpeta de los archivos de traducción.
language en Idioma predeterminado de la instancia (configurable por usuario).
languages ---- Array de idiomas soportados en la instancia.
theme neo-quitter Tema visual de la instancia.
email ---- (obligatorio) Email de contacto de la instancia.
broughtby ---- Nombre de la organización o persona que provee la instancia y que será mostrado en el footer del sitio web.
broughtbyurl ---- URL de contacto de la organización o persona que provee la instancia.
timezone UTC Zona horario predeterminada para mostrar la hora de los mensajes (configurable por usuario).
closed false (deshabilitado) Deshabilita el registro de usuarios de la instancia.
inviteonly false (deshabilitado) Permite el registro de usuarios de la instancia si solo fueron invitados por un usuario existente.
private false (deshabilitado) Permite el consumo de contenido de la instancia únicamente a usuarios registros.
notice ---- Mensaje informativo que será mostrado en todas las páginas de la instancia.
logo ---- (el del tema) URL del logo de la instancia (reemplaza el del tema).
ssllogo ---- (el del tema) URL del logo de la instancia en modo seguro (https).
ssl never Utilizar siempre https (always), no utilizar https (never) o utiliza https en páginas con información sensible (sometimes).
sslproxy false Si utiliza un dominio o una dirección IP diferente en modo seguro (https).
sslserver ---- Dominio o dirección IP de la instancia en modo seguro (https).
dupelimit 60 Tiempo mínimo en segundos para que un usuario pueda publicar lo mismo 2 veces.
textlimit 1000 Número máximo de caracteres para los textos de la instancia (avisos, mensajes, biografías de perfiles y descripción de grupos).
favicon /favicon.ico Ruta desde la raíz del favicon respecto a la carpeta public/.
x-static-delivery ---- Envía directamente contenido estático a los usuarios sin pasar por el servidor web. X-Sendfile (para apache y otros) y X-Accel-Redirect (para nginx).

db

Opciones de configuración de la base de datos:

Opción Valor por defecto Descripción
database ---- (obligatorio) DSN de la base de datos de GNU social.
ini_yourdbname ---- Nombre real de la base de datos si no fue nombrado como statusnet.
type ---- (mysql o pgsql) Tipo de base de datos (utilizado para optimizaciones del programa).
mirror ---- Array de DSNs de bases de datos espejo para GNU social.
utf8 true (habilitado) Utiliza UTF-8 para el cliente de la base de datos.
schemacheck runtime Permite a los plugins verificar la base de datos para modificarla en tiempo de ejecución por petición (runtime) o de manera manual (script).
foreign_keys false (deshabilitado) Habilita las restricciones de las llaves foráneas.

syslog

Opciones de configuración de los registros cuando se utiliza syslog:

Opción Valor por defecto Descripción
appname statusnet Nombre del programa que registra el mensaje.
facility LOG_USER Tipo de programa que registra el mensaje.

queue

Existen 2 tipos de mecanismos para la cola de tareas:

  • Plugin OpportunisticQM:
    • Habilitado por defecto.
    • No requiere acceso a la terminal.
    • No se preocupa por procesos de PHP de larga duración.
    • Para instancias con poco tráfico.
  • Script queuedaemon:
    • Requiere acceso a la terminal.
    • Mayor rendimiento para instancias de gran volumen.

Opciones de configuración de la cola de tareas en segundo plano:

Opción Valor por defecto Descripción
enabled true (habilitado) Habilita la cola o pila de tareas en segundo plano para tareas que requieran mucho tiempo.
daemon false (deshabilitado) Habilita el mecanismo de script queuedaemon.
subsystem db Tipo de servidor de cola de tareas. db, stomp y redis.
threads ---- (nproc en tipo UNIX y 1 en otros) Número de procesos a utilizar.
items_to_handle ---- (ilimitado) Número de elementos a manejar antes de finalizar el proceso de un demonio.
stomp_server ---- Servidor stomp si se utiliza stomp como tipo de servidor de cola de tareas.
queue_basename /queue/statusnet/ Nombre raíz que utilizará el servidor stomp en la cola de tareas.
stomp_username ---- Usuario para conectarse al servidor stomp.
stomp_password ---- Contraseña de acceso para conectarse al servidor stomp.
stomp_persistent true (habilitado) Mantener los elementos en la cola de tareas al reiniciar el servidor stomp. Deshabilitarlo si no se utiliza Apache ActiveMQ.
stomp_transactions true (habilitado) Habilita las transacciones en el servidor stomp para mejorar la detección de errores. Deshabilitarlo si no se utiliza Apache ActiveMQ.
stomp_acks true (habilitado) Recibir acuses de recibido cuando el proceso de la cola de tareas funciona correctamente. Deshabilitarlo si no se utiliza Apache ActiveMQ.
softlimit 90 Porcentaje de memoria máxima a utilizar.
inboxes true (habilitado) Utiliza la cola de tareas para enviar mensajes en la bandeja de entrada de los usuarios.
breakout ---- Un array de colas de tareas para ejecutarlos en procesos separados en el servidor stomp.
max_retries 10 Número máximo de intentos fallidos antes de eliminar los mensajes en el servidor stomp.
dead_letter_dir false (deshabilitado) Directorio que almacena datos sobre eventos fallidos del servidor stomp.
stomp_no_transactions false (deshabilitado) Deshabilita las transacciones en el servidor stomp.
stomp_no_acks false (deshabilitado) Deshabilita los acuses de recibido en el servidor stomp.

license

Opciones de configuración de la licencia para los mensajes informativos de la instancia:

Opción Valor por defecto Descripción
type cc Tipo de licencia. cc (Creative Commons), allrightsreserved (todo los derechos reservados) y private (información privada y confidencial).
owner ---- Para allrightsreserved o private, titular de los derechos de autor.
url https://creativecommons.org/licenses/by/3.0/ URL de la licencia.
title Creative Commons Attribution 3.0 Título de la licencia.
image /theme/licenses/cc_by_3.0_80x15.png URL de la imagen o logo de la licencia.

mail

Opciones de configuración del mecanismos de envío de emails:

Opción Valor por defecto Descripción
backend mail Tipo de mecanismo de envío de emails con PEAR. mail, sendmail y smtp.
params ---- Un array de parámetros enviados al mecanismo de envío de emails.
templates_path /gnusocial/mail-src/ Ruta de la carpeta de temas para los mensajes de email.

nickname

Opciones de configuración de los nombres de usuarios:

Opción Valor por defecto Descripción
blacklist ---- Un array de nombres de usuarios que no pueden ser registrados.
featured ---- Un array de nombres de usuarios destacados dentro de la instancia.

avatar

Opciones de configuración de los avatares de los usuarios:

Opción Valor por defecto Descripción
dir /gnusocial/file/avatar/ Ruta de la carpeta de los avatares de los usuarios.
path /avatar/ Ruta de la URL de los avatares de los usuarios.
maxsize 300 Tamaño máximo en kilobytes de subida para los avatares.
server ---- Servidor si los avatares de los usuarios se almacenan en otro lugar.
ssl ---- (utiliza $config['site']['ssl']) Acceder a los avatares de los usuarios utilizando https.

public

Opciones de configuración de la línea pública de la instancia:

Opción Valor por defecto Descripción
localonly false (deshabilitado) Mostrar solo los mensajes publicados por los usuarios registrados en la línea pública de la instancia.
blacklist ---- Un array de IDs de usuarios registrados para ocultar sus publicaciones en la línea pública de la instancia.
autosource ---- Un array de fuentes (URLs) de publicaciones a ocultar en la línea pública de la instancia.

theme

Opciones de configuración de los temas visuales de la instancia:

Opción Valor por defecto Descripción
server ---- Servidor si los archivos de los temas de la instancia se encuentran en otro lugar.
dir /gnusocial/public/theme/ Ruta de la carpeta de los archivos de los temas de la instancia.
path /theme/ Ruta de la URL de los archivos de los temas de la instancia.
ssl ---- (utiliza $config['site']['ssl']) Acceder a los elementos del tema de la instancia utilizando https.
sslserver ---- (utiliza $config['site']['sslserver']) Si se utiliza una dirección IP o dominio diferente en modo seguro (https) para los archivos de los temas de la instancia.
sslpath ---- Ruta de la URL a utilizar para los archivos de los temas de la instancia en el servidor https.

javascript

Opciones de configuración de los archivos de javascript de la instancia:

Opción Valor por defecto Descripción
server ---- Servidor si los archivos de javascript de la instancia se encuentran en otro lugar.
path /js/ Ruta de la URL de los archivos de javascript de la instancia.
ssl ---- (utiliza $config['site']['ssl']) Acceder a los archivos de javascript utilizando https.
sslserver ---- (utiliza $config['site']['sslserver']) Si se utiliza una dirección IP o dominio diferente en modo seguro (https) para los archivos de javascript de la instancia.
sslpath ---- Ruta de la URL a utilizar para los archivos de javascript de la instancia en el servidor https.
bustframes true (habilitado) No utiliza framesets de HTML (iframe) en la instancia.

xmpp

Opciones de configuración del subsistema de XMPP:

Opción Valor por defecto Descripción
enabled false (deshabilitado) Habilita el envío de mensajes por XMPP.
server ---- Dominio o dirección IP del servidor XMPP.
port 5222 Puerto de conexión al servidor XMPP.
user ---- Usuario para conectarse al servidor XMPP.
password ---- Contraseña de acceso para conectarse al servidor XMPP.
resource ---- Nombre o identificador único que representará la conexión con el servidor XMPP.
host ---- Dominio o dirección IP del servidor XMPP.
encryption true (habilitado) Cifrar la conexión entre GNU social y el servidor XMPP.
debug false (deshabilitado) Habilita el envío de mensajes en modo depuración.
public ---- Un array de identificadores Jabber (JID) para enviar todas las notificaciones.

invite

Opciones de configuración de las invitaciones:

Opción Valor por defecto Descripción
enabled true (habilitado) Permite a los usuarios enviar invitaciones de registro a la instancia.

tag

Opciones de configuración de las etiquetas:

Opción Valor por defecto Descripción
dropoff 864000 Intervalo en segundos para actualizar la lista de etiquetas.

popular

Opciones de configuración de la página de "popular":

Opción Valor por defecto Descripción
dropoff 864000 Intervalo en segundos para actualizar la página de "popular".

daemon

Opciones de configuración de los procesos de los demonios:

Opción Valor por defecto Descripción
piddir /tmp/ Ruta de la carpeta para almacenar los PIDs de los procesos de los demonios.
user false (deshabilitado) Cambiar el usuario que ejecuta los procesos de los demonios.
group false (deshabilitado) Cambiar el grupo que ejecuta los procesos de los demonios.

emailpost

Opciones de configuración de las notificaciones por email:

Opción Valor por defecto Descripción
enabled false (deshabilitado) Habilita el envío de notificaciones por email.

sms

Opciones de configuración de las notificaciones por SMS:

Opción Valor por defecto Descripción
enabled false (deshabilitado) Habilita el envío de notificaciones por SMS.

integration

Opciones de configuración de las integraciones con otros sistemas:

Opción Valor por defecto Descripción
taguri /tag/ Ruta de la URL de las etiquetas (tags).

inboxes

Opciones de configuración de la bandeja de entrada:

Opción Valor por defecto Descripción
enabled true (habilitado) Habilita la bandeja de entrada.

throttle

Opciones de configuración del limitador de publicaciones:

Opción Valor por defecto Descripción
enabled false (deshabilitado) Habilita el limitador de publicaciones.
count 20 Número de publicaciones que se permite publicar en un cierto intervalo de segundos.
timespan 600 Intervalo de segundos que se permite publicar en un cierto número de publicaciones.

profile

Opciones de configuración del perfil del usuario:

Opción Valor por defecto Descripción
biolimit ---- (utiliza $config['site']['textlimit']) Número máximo de caracteres para la biografía del perfil del usuario.
changenick false (deshabilitado) Permite a los usuarios modificar su nombre de usuario.
allowprivate false (deshabilitado) Permite a los usuarios configurar su perfil como privado.
backup false (deshabilitado) Permite a los usuarios realizar copias de seguridad de su perfil.
restore false (deshabilitado) Permite a los usuarios restaurar su perfil desde una copia de seguridad.
delete false (deshabilitado) Permite a los usuarios eliminar su perfil.
move true (habilitado) Permite a los usuarios migrar su cuenta de perfil a otro servidor.

newuser

Opciones de configuración para nuevos usuarios:

Opción Valor por defecto Descripción
default ---- Nombre de usuario a seguir de manera automática.
welcome ---- Nombre de usuario que envía mensajes de bienvenida a los nuevos usuarios.

attachments

Opciones de configuración de los archivos subidos por los usuarios de la instancia:

Opción Valor por defecto Descripción
supported ---- Un array de mime types soportados en la instancia.
uploads true (habilitado) Habilita la subida de archivos dentro de las publicaciones.
extblacklist ---- Un array de extensiones de archivos no permitidos o renombrados.
process_links true (habilitado) Mantener la información de los archivos en las redirecciones.
file_quota ---- (utiliza upload_max_filesize de PHP) Tamaño máximo en bytes de subida de un solo archivo.
user_quota 50000000 (~ 50 MB) Cuota total en bytes que un usuario puede almacenar en el servidor.
monthly_quota 15000000 (~ 15 MB) Cuota máxima por mes en bytes que un usuario puede almacenar en el servidor.
dir /gnusocial/file/ Ruta de la carpeta de los archivos subidos por los usuarios de la instancia.
server ---- Servidor si los archivos subidos por los usuarios se encuentran en otro lugar.
path /file/ Ruta de la URL de los archivos subidos por los usuarios de la instancia.
ssl ---- (utiliza $config['site']['ssl']) Acceder a los archivos subidos por los usuarios utilizando https.
sslserver ---- (utiliza $config['site']['sslserver']) Si se utiliza una dirección IP o dominio diferente en modo seguro (https) para los archivos subidos por los usuarios.
sslpath ---- Ruta de la URL a utilizar para los archivos subidos por los usuarios en el servidor https.
show_thumbs true (habilitado) Mostrar previsualización de imágenes y vídeos externos.
show_html false (deshabilitado) Mostrar archivos HTML adjuntos o HTML incrustado.
filename_base hash Nombrar los archivos subidos por hash aleatorio o utilizar el nombre real del archivo (upload).
memory_limit 1024M Cantidad de memoria máxima que un script de PHP pude utilizar para manejar imágenes.
prefer_remote ---- Redirigir los archivos subidos por los usuarios con la primera URL conocida.

Configurar las siguientes opciones en el archivo php.ini:

  • upload_max_filesize: Tamaño máximo de subida de un solo archivo.
  • max_file_uploads: Número máximo de archivos que se pueden subir de manera simultanea.
  • post_max_size: Tamaño máximo de datos permitidos con el método POST.
  • memory_limit: Cantidad de memoria máxima que un script de PHP puede utilizar.
  • max_execution_time: Tiempo máximo en segundos que un script de PHP puede durar en ejecutarse.
  • max_input_time: Tiempo máximo en segundos que un script de PHP puede recibir información.
  • upload_tmp_dir: Ruta de la carpeta temporal para almacenar archivos de subida.
  • output_buffering: Tamaño máximo en bytes del buffer de salida de un script de PHP.

thumbnail

Opciones de configuración de la previsualización de los archivos subidos por los usuarios:

Opción Valor por defecto Descripción
dir /gnusocial/file/thumb/ Ruta de la carpeta de la previsualización de los archivos subidos por los usuarios.
path ---- Ruta de la URL de la previsualización de los archivos subidos por los usuarios.
server ---- Servidor si la previsualización de los archivos subidos por los usuarios se encuentran en otro lugar.
crop false (deshabilitado) Recortar el tamaño de la previsualización sin conservar la relación de aspecto.
maxsize 1000 Limite en píxeles para no generar un marco bordado sobre la previsualización.
width 450 Ancho máximo en píxeles de la previsualización.
height 600 Alto máximo en píxeles de la previsualización.
upscale false (deshabilitado) Redimensionar la previsualización de los archivos al ancho y alto definidos.
animated false (deshabilitado) Generar previsualizaciones animadas para los archivos de imagen animados.

group

Opciones de configuración de los grupos:

Opción Valor por defecto Descripción
maxaliases 3 Número máximo de alias que puede tener un grupo.
desclimit ---- (utiliza $config['site']['textlimit']) Número máximo de caracteres para la descripción del grupo.
addtag true (habilitado) Agregar una etiqueta a cada publicación del grupo con el apodo del grupo.

search

Opciones de configuración de las búsquedas:

Opción Valor por defecto Descripción
type fulltext Tipo de búsqueda por texto completo (fulltext) o utilizando la sentencia LIKE de SQL (like). Ignorado si PostgreSQL o Sphinx están habilitados.

sessions

Opciones de configuración de las sesiones:

Opción Valor por defecto Descripción
handle false (deshabilitado) Habilita el mecanismo de sesiones desde la base de datos.
debug false (deshabilitado) Habilita las sesiones en modo depuración.

ping

Opciones de configuración de las notificaciones de actualización a terceros:

Opción Valor por defecto Descripción
notify ---- Un array de URLs de servidores de terceros para notificar actualizaciones de la instancia.

notice

Opciones de configuración de las publicaciones:

Opción Valor por defecto Descripción
contentlimit ---- (utiliza $config['site']['textlimit']) Número máximo de caracteres para las publicaciones.
allowprivate false (deshabilitado) Permite a los usuarios publicar de manera privada.
defaultscope ---- (utiliza $config['site']['private']) Solo los usuarios registrados pueden ver las publicaciones de la instancia.

message

Opciones de configuración de envío de mensajes por XMPP:

Opción Valor por defecto Descripción
contentlimit ---- (utiliza $config['site']['textlimit']) Número máximo de caracteres para los mensajes.

logincommand

Opciones de configuración del comando de inicio de sesión:

Opción Valor por defecto Descripción
disabled true (habilitado) Deshabilita el envío del enlace de inicio de sesión utilizando la palabra "login" para los canales XMPP o SMS.

singleuser

Opciones de configuración de un solo usuario:

Opción Valor por defecto Descripción
enabled false (deshabilitado) Permite un solo usuario a la instancia.
nickname ---- (usuario administrador) Nombre del usuario único.

robotstxt

Opciones de configuración del robots.txt de la instancia:

Opción Valor por defecto Descripción
crawldelay 0 Tiempo de espera en segundos para que el analizador acceda a cada página de la instancia.
disallow ['main', 'search', 'message', 'settings', 'admin'] Un array de carpetas para no seguir en el robots.txt.

api

Opciones de configuración de la API:

Opción Valor por defecto Descripción
realm ---- Tipo de autenticación de la API de GNU social.

nofollow

Opciones de configuración del atributo rel="nofollow" de los enlaces de la instancia:

Opción Valor por defecto Descripción
subscribers true (habilitado) No seguir enlaces de los suscriptores de la página de un perfil o usuario.
members true (habilitado) No seguir enlaces de los integrantes de la página de un grupo.
peopletag true (habilitado) No seguir enlaces de usuarios etiquetados dentro de una publicación en la página de etiquetas de un usuario.
external sometimes No seguir enlaces externos (always), seguir enlaces externos (never) o no seguir enlaces externos en la página de perfil, publicaciones y favoritos (sometimes).

url

Opciones de configuración de las URLs de la instancia:

Opción Valor por defecto Descripción
shortener internal Utilizar el servicio de acortamiento de URLs por defecto (internal) o configurable por usuario (individually).
maxurllength 100 Número máximo de caracteres para recortar una URL (configurable por usuario).
maxnoticelength -1 Recortar la URL de las publicaciones si supera el limite de caracteres (configurable por usuario).

router

Opciones de configuración del enrutador de URLs a código:

Opción Valor por defecto Descripción
cache true (habilitado) Almacenar en caché el enrutador de URLs a código.

http

Opciones de configuración del cliente HTTP:

Opción Valor por defecto Descripción
ssl_cafile false (deshabilitado) Ruta del certificado SSL para el cliente HTTP.
curl false (deshabilitado) Utilizar el cliente cURL para realizar peticiones HTTP.
proxy_host ---- Dominio o dirección IP si el cliente HTTP utilizará un servidor proxy HTTP.
proxy_port ---- Puerto de conexión al servidor proxy HTTP.
proxy_user ---- Usuario para conectarse al servidor proxy HTTP.
proxy_password ---- Contraseña de acceso para conectarse al servidor proxy HTTP.
proxy_auth_scheme ---- Esquema de autenticación para conectarse al servidor proxy HTTP.

plugins

Opciones de configuración de los plugins de la instancia:

Opción Valor por defecto Descripción
default ---- Un array de plugins habilitados por defecto.
locale_path /gnusocial/public/plugins/ Ruta de la carpeta de los archivos de los plugins.
server ---- Servidor si los archivos de los plugins de la instancia se encuentran en otro lugar.
path /plugins/ Ruta de la URL de los archivos de los plugins de la instancia.
sslserver ---- (utiliza $config['site']['sslserver']) Si se utiliza una dirección IP o dominio diferente en modo seguro (https) para los archivos de los plugins de la instancia.
sslpath ---- Ruta de la URL a utilizar para los archivos de los plugins de la instancia en el servidor https.

performance

Opciones de configuración de optimizaciones:

Opción Valor por defecto Descripción
high false (deshabilitado) Habilita el modo de alto rendimiento (deshabilita código de alta demanda en la instancia).

oldschool

Opciones de configuración antiguas de GNU social:

Opción Valor por defecto Descripción
enabled false (deshabilitado) Habilita las opciones antiguas de GNU social para usuarios.

Referencias