Cómo instalar MODX Revolution en un CentOS 7 LAMP VPS
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
Matrix es un protocolo de comunicación estándar abierto para la comunicación descentralizada en tiempo real. Matrix se implementa como servidores domésticos que se distribuyen a través de Internet; por lo tanto, no hay un único punto de control o falla. Matrix proporciona una API HTTP RESTful para crear y administrar los servidores de chat distribuidos que incluye enviar y recibir mensajes, invitar y administrar miembros de la sala de chat, mantener cuentas de usuario y proporcionar funciones de chat avanzadas como VoIP y videollamadas, etc. Matrix también establece un sincronización segura entre servidores domésticos que se distribuyen en todo el mundo.
Synapse es la implementación del servidor doméstico Matrix escrito por el equipo de Matrix. El ecosistema Matrix consiste en la red de muchos servidores domésticos federados distribuidos en todo el mundo. Un usuario de Matrix usa un cliente de chat para conectarse al servidor doméstico, que a su vez se conecta a la red de Matrix. Homeserver almacena el historial de chat y la información de inicio de sesión de ese usuario en particular.
En este tutorial, lo utilizaremos matrix.example.com
como el nombre de dominio utilizado para Matrix Synapse. Reemplace todas las apariciones matrix.example.com
con su nombre de dominio real que desea usar para su servidor doméstico Synapse.
Actualice su sistema base utilizando la guía Cómo actualizar CentOS 7 . Una vez que su sistema esté actualizado, proceda a instalar Python.
Matrix Synapse necesita Python 2.7 para funcionar. Python 2.7 viene preinstalado en todas las instancias del servidor CentOS. Puede verificar la versión instalada de Python.
python -V
Deberías obtener una salida similar.
[user@vultr ~]$ python -V
Python 2.7.5
Cambiar la versión predeterminada de Python puede romper el administrador de repositorio de YUM. Sin embargo, si desea la versión más reciente de Python, puede realizar una instalación alternativa, sin reemplazar el Python predeterminado.
Instale los paquetes en el Development tools
grupo necesarios para compilar los archivos del instalador.
sudo yum groupinstall -y "Development tools"
Instale algunas dependencias más requeridas.
sudo yum -y install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel redhat-rpm-config python-virtualenv libffi-devel openssl-devel
Instalar Python pip. Pip es el administrador de dependencias para los paquetes de Python.
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
Cree un entorno virtual para su aplicación Synapse. El entorno virtual de Python se usa para crear un entorno virtual aislado para un proyecto de Python. Un entorno virtual contiene sus propios directorios de instalación y no comparte bibliotecas con entornos virtuales globales y de otro tipo.
sudo virtualenv -p python2.7 /opt/synapse
Proporcionar la propiedad del directorio al usuario actual.
sudo chown -R $USER:$USER /opt/synapse/
Ahora active el entorno virtual.
source /opt/synapse/bin/activate
Asegúrese de tener la última versión de pip
y setuptools
.
pip install --upgrade pip
pip install --upgrade setuptools
Instale la última versión de Synapse usando pip.
pip install https://github.com/matrix-org/synapse/tarball/master
El comando anterior tardará un tiempo en ejecutarse ya que extrae e instala la última versión de Synapse y todas las dependencias del repositorio de Github.
Synapse usa SQLite como la base de datos predeterminada. SQLite almacena los datos en una base de datos que se guarda como un archivo plano en el disco. Usar SQLite es muy simple, pero no se recomienda para la producción, ya que es muy lento en comparación con PostgreSQL.
PostgreSQL es un sistema de base de datos relacional de objetos. Deberá agregar el repositorio PostgreSQL en su sistema, ya que la aplicación no está disponible en el repositorio predeterminado de YUM.
sudo rpm -Uvh https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
Instale el servidor de base de datos PostgreSQL.
sudo yum -y install postgresql96-server postgresql96-contrib
Inicializar la base de datos.
sudo /usr/pgsql-9.6/bin/postgresql96-setup initdb
Edite /var/lib/pgsql/9.6/data/pg_hba.conf
para habilitar la autenticación basada en MD5.
sudo nano /var/lib/pgsql/9.6/data/pg_hba.conf
Encuentra las siguientes líneas y cambia peer
a trust
y idnet
para md5
.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 idnet
# IPv6 local connections:
host all all ::1/128 idnet
Una vez actualizada, la configuración debería verse así.
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
Inicie el servidor PostgreSQL y permita que se inicie automáticamente en el arranque.
sudo systemctl start postgresql-9.6
sudo systemctl enable postgresql-9.6
Cambie la contraseña para el usuario predeterminado de PostgreSQL.
sudo passwd postgres
Iniciar sesión.
sudo su - postgres
Cree un nuevo usuario de PostgreSQL para Synapse.
createuser synapse
PostgreSQL proporciona el psql
shell para ejecutar consultas en la base de datos. Cambie al shell PostgreSQL ejecutando.
psql
Establezca una contraseña para el usuario recién creado para la base de datos Synapse.
ALTER USER synapse WITH ENCRYPTED password 'DBPassword';
Reemplácelo DBPassword
con una contraseña segura y anótelo, ya que usaremos la contraseña más adelante. Cree una nueva base de datos para la base de datos PostgreSQL.
CREATE DATABASE synapse ENCODING 'UTF8' LC_COLLATE='C' LC_CTYPE='C' template=template0 OWNER synapse;
Salga de la psql
cáscara.
\q
Cambiar al sudo
usuario del postgres
usuario actual .
exit
También deberá instalar los paquetes necesarios para que Synapse se comunique con el servidor de base de datos PostgreSQL.
sudo yum -y install postgresql-devel libpqxx-devel.x86_64
source /opt/synapse/bin/activate
pip install psycopg2
Synapse requiere un archivo de configuración antes de que pueda iniciarse. El archivo de configuración almacena la configuración del servidor. Cambie al entorno virtual y genere la configuración para Synapse.
source /opt/synapse/bin/activate
cd /opt/synapse
python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
Reemplace matrix.example.com
con su nombre de dominio real y asegúrese de que el nombre del servidor se pueda resolver en la dirección IP de su instancia de Vultr. Proporcione --report-stats=yes
si desea que los servidores generen los informes, proporcione --report-stats=no
desactivar la generación de informes y estadísticas.
Deberías ver una salida similar.
(synapse)[user@vultr synapse]$ python -m synapse.app.homeserver --server-name matrix.example.com --config-path homeserver.yaml --generate-config --report-stats=yes
A config file has been generated in 'homeserver.yaml' for server name 'matrix.example.com' with corresponding SSL keys and self-signed certificates. Please review this file and customise it to your needs.
If this server name is incorrect, you will need to regenerate the SSL certificates
Por defecto, el homeserver.yaml
está configurado para usar una base de datos SQLite. Necesitamos modificarlo para usar la base de datos PostgreSQL que hemos creado anteriormente.
Edite el recién creado homeserver.yaml
.
nano homeserver.yaml
Encuentre la configuración de base de datos existente que usa SQLite3. Comente las líneas como se muestra a continuación. Además, agregue la nueva configuración de base de datos para PostgreSQL. Asegúrese de utilizar las credenciales de base de datos correctas.
# Database configuration
#database:
# The database engine name
#name: "sqlite3"
# Arguments to pass to the engine
#args:
# Path to the database
#database: "/opt/synapse/homeserver.db"
database:
name: psycopg2
args:
user: synapse
password: DBPassword
database: synapse
host: localhost
cp_min: 5
cp_max: 10
El registro de un nuevo usuario desde una interfaz web está deshabilitado de forma predeterminada. Para habilitar el registro, puede establecerlo enable_registration
en True
. También puede establecer una clave de registro secreta, que permite a cualquier persona registrarse que tenga la clave secreta, incluso si el registro está desactivado.
enable_registration: False
registration_shared_secret: "YPPqCPYqCQ-Rj,ws~FfeLS@maRV9vz5MnnV^r8~pP.Q6yNBDG;"
Guarde el archivo y salga del editor. Ahora deberá registrar su primer usuario. Sin embargo, antes de poder registrar un nuevo usuario, primero deberá iniciar la aplicación.
source /opt/synapse/bin/activate && cd /opt/synapse
synctl start
Deberías ver las siguientes líneas.
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - SynapseSite starting on 8008
2017-09-05 11:10:41,921 - twisted - 131 - INFO - - Starting factory <synapse.http.site.SynapseSite instance at 0x44bbc68>
2017-09-05 11:10:41,921 - synapse.app.homeserver - 201 - INFO - - Synapse now listening on port 8008
2017-09-05 11:10:41,922 - synapse.app.homeserver - 442 - INFO - - Scheduling stats reporting for 3 hour intervals
started synapse.app.homeserver('homeserver.yaml')
Registre un nuevo usuario de Matrix.
register_new_matrix_user -c homeserver.yaml https://localhost:8448
Deberías ver lo siguiente.
(synapse)[user@vultr synapse]$ register_new_matrix_user -c homeserver.yaml https://localhost:8448
New user localpart [user]: admin
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success.
Finalmente, antes de poder usar Homeserver, deberá permitir el puerto 8448 a través del Firewall. El puerto 8448
se utiliza como puerto de federación seguro. Los servidores domésticos utilizan este puerto para comunicarse entre sí de forma segura. También puede usar el cliente de chat web Matrix incorporado a través de este puerto.
sudo firewall-cmd --permanent --zone=public --add-port=8448/tcp
sudo firewall-cmd --reload
Ahora puede iniciar sesión en el cliente de chat web de Matrix accediendo a https://matrix.example.com:8448
su navegador favorito. Verá una advertencia sobre el certificado SSL ya que los certificados utilizados son autofirmados. No utilizaremos este cliente de chat web, ya que está desactualizado y ya no se mantiene. Solo trata de verificar si puedes iniciar sesión con la cuenta de usuario que acabas de crear.
En lugar de usar un certificado autofirmado para proteger el puerto de federación, podemos usar Let's Encrypt SSL gratis. Let's Encrypt SSL gratis se puede obtener a través del cliente oficial Let's Encrypt llamado Certbot.
Instalar Certbot.
sudo yum -y install certbot
Ajuste la configuración de su firewall para permitir el estándar HTTP
y los HTTPS
puertos a través del firewall. Certbot necesita hacer una HTTP
conexión para verificar la autoridad del dominio.
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload
Para obtener certificados de Let's Encrypt CA, debe asegurarse de que el dominio para el que desea generar los certificados apunte hacia el servidor. Si no es así, realice los cambios necesarios en los registros DNS de su dominio y espere a que se propague el DNS antes de volver a solicitar el certificado. Certbot verifica la autoridad del dominio antes de proporcionar los certificados.
Ahora use el servidor web incorporado en Certbot para generar los certificados para su dominio.
sudo certbot certonly --standalone -d matrix.example.com
Es probable que los certificados generados se almacenen en /etc/letsencrypt/live/matrix.example.com/
. El certificado SSL se almacenará como fullchain.pem
y la clave privada se almacenará como privkey.pem
.
Copia los certificados.
sudo cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
sudo cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem
Deberá cambiar la ruta a los certificados y claves del homeserver.yaml
archivo. Edite la configuración.
nano /opt/synapse/homeserver.yaml
Encuentra las siguientes líneas y modifica la ruta.
tls_certificate_path: "/opt/synapse/letsencrypt-fullchain.pem"
# PEM encoded private key for TLS
tls_private_key_path: "/opt/synapse/letsencrypt-privkey.pem"
Guarde el archivo y salga del editor. Reinicie el servidor Synapse para que los cambios surtan efecto.
source /opt/synapse/bin/activate && cd /opt/synapse
synctl restart
Encriptemos los certificados que vencen en 90 días, por lo que se recomienda que configure la renovación automática para los certificados mediante trabajos cron. Cron es un servicio del sistema que se utiliza para ejecutar tareas periódicas.
Cree un nuevo script para renovar certificados y copie los certificados renovados en el directorio de Synapse.
sudo nano /opt/renew-letsencypt.sh
Rellene el archivo.
#!/bin/sh
/usr/bin/certbot renew --quiet --nginx
cp /etc/letsencrypt/live/matrix.example.com/fullchain.pem /opt/synapse/letsencrypt-fullchain.pem
cp /etc/letsencrypt/live/matrix.example.com/privkey.pem /opt/synapse/letsencrypt-privkey.pem
Proporcione el permiso de ejecución.
sudo chmod +x /opt/renew-letsencypt.sh
Abra el archivo de trabajo cron.
sudo crontab -e
Agregue la siguiente línea al final del archivo.
30 5 * * 1 /opt/renew-letsencypt.sh
El trabajo cron anterior se ejecutará todos los lunes a las 5:30 a.m. Si el certificado expira, los renovará automáticamente.
Ahora puedes visitar https://matrix.example.com:8448
. Verá que no hay advertencia SSL antes de la conexión.
Además del puerto de federación seguro 8448
, Synapse también escucha el puerto de cliente no seguro 8008
. Ahora configuraremos Nginx como un proxy inverso para la aplicación Synapse.
sudo yum -y install nginx
Crea un nuevo archivo de configuración.
sudo nano /etc/nginx/conf.d/synapse.conf
Rellene el archivo con el siguiente contenido.
server {
listen 80;
server_name matrix.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name matrix.example.com;
ssl_certificate /etc/letsencrypt/live/matrix.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/matrix.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
access_log /var/log/nginx/synapse.access.log;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Reinicie y habilite Nginx para que se inicie automáticamente en el momento del arranque.
sudo systemctl restart nginx
sudo systemctl enable nginx
Finalmente, puede verificar si se puede acceder a Synapse a través del proxy inverso.
curl https://matrix.example.com/_matrix/key/v2/server/auto
Deberías obtener un resultado similar.
[user@vultr ~]$ curl https://matrix.example.com/_matrix/key/v2/server/auto
{"old_verify_keys":{},"server_name":"matrix.example.com","signatures":{"matrix.example.com":{"ed25519:a_ffMf":"T/Uq/UN5vyc4w7v0azALjPIJeZx1vQ+HC6ohUGkTSqiFI4WI/ojGpb2763arwSSQLr/tP/2diCi1KLU2DEnOCQ"}},"tls_fingerprints":[{"sha256":"eorhQj/kubI2PEQZyBZvGV7K1x3EcQ7j/AO2MtZMplw"}],"valid_until_ts":1504876080512,"verify_keys":{"ed25519:a_ffMf":{"key":"Gc1hxkpPmQv71Cvjyk+uzR5UtrpmgV/UwlsLtosawEs"}}}
Se recomienda utilizar el servicio Systemd para administrar el proceso del servidor Synapse. El uso de Systemd garantizará que el servidor se inicie automáticamente en el inicio del sistema y las fallas.
Cree un nuevo archivo de servicio Systemd.
sudo nano /etc/systemd/system/matrix-synapse.service
Rellene el archivo.
[Unit]
Description=Matrix Synapse service
After=network.target
[Service]
Type=forking
WorkingDirectory=/opt/synapse/
ExecStart=/opt/synapse/bin/synctl start
ExecStop=/opt/synapse/bin/synctl stop
ExecReload=/opt/synapse/bin/synctl restart
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=synapse
[Install]
WantedBy=multi-user.target
Ahora puede iniciar rápidamente el servidor Synapse.
sudo systemctl start matrix-synapse
Para detener o reiniciar el servidor con los siguientes comandos.
sudo systemctl stop matrix-synapse
sudo systemctl restart matrix-synapse
Puede verificar el estado del servicio.
sudo systemctl status matrix-synapse
El servidor Matrix Synapse ahora está instalado y configurado en su servidor. Como el cliente web incorporado para Matrix está desactualizado, puede elegir entre la variedad de aplicaciones de cliente disponibles para el chat. Riot es el cliente de chat más popular, que está disponible en casi todas las plataformas. Puede usar la versión alojada del cliente de chat web de Riot, o también puede alojar una copia en su propio servidor. Además de esto, también puede utilizar los clientes de chat móviles y de escritorio de Riot, que están disponibles para Windows, Mac, Linux, IOS y Android.
Si desea alojar su propia copia del cliente web de Riot, puede seguir leyendo las instrucciones para instalar Riot en su servidor. Para el cliente alojado, de escritorio y móvil, puede usar su nombre de usuario y contraseña para iniciar sesión directamente en su servidor doméstico. Simplemente elija my Matrix ID
del menú desplegable de la Sign In
opción y proporcione el nombre de usuario y la contraseña que creó durante el registro de un nuevo usuario. Haga clic en Custom server
y use el nombre de dominio de su instancia de Synapse. Como ya hemos configurado Nginx, solo podemos usarlo https://matrix.example.com
como servidor de inicio y https://matrix.org
como URL del servidor de identidad.
Ejemplo de inicio de sesión de Riot
Riot también es de código abierto y gratuito para alojar en su propio servidor. No requiere ninguna base de datos o dependencias. Como ya tenemos un servidor Nginx ejecutándose, podemos alojarlo en el mismo servidor.
El dominio o subdominio que está utilizando para Synapse y Riot debe ser diferente para evitar secuencias de comandos entre sitios. Sin embargo, puede usar dos subdominios del mismo dominio. En este tutorial, lo utilizaremos
riot.example.com
como dominio para la aplicación Riot. Reemplace todas las ocurrenciasriot.example.com
con su dominio o subdominio real para la aplicación Riot.
Descarga Riot en tu servidor.
cd /opt/
sudo wget https://github.com/vector-im/riot-web/releases/download/v0.12.3/riot-v0.12.3.tar.gz
Siempre puede encontrar el enlace a la última versión en Riot's Github .
Extraer el archivo.
sudo tar -xzf riot-v*.tar.gz
Cambie el nombre del directorio por conveniencia de manejo.
sudo mv riot-v*/ riot/
Como ya hemos instalado Certbot, podemos generar los certificados directamente. Asegúrese de que el dominio o subdominio que está utilizando apunte hacia el servidor.
sudo systemctl stop nginx
sudo certbot certonly --standalone -d riot.example.com
Es probable que los certificados generados se almacenen en el /etc/letsencrypt/live/riot.example.com/
directorio.
Cree un host virtual para la aplicación Riot.
sudo nano /etc/nginx/conf.d/riot.conf
Rellene el archivo.
server {
listen 80;
server_name riot.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443;
server_name riot.example.com;
ssl_certificate /etc/letsencrypt/live/riot.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/riot.example.com/privkey.pem;
ssl on;
ssl_session_cache builtin:1000 shared:SSL:10m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
root /opt/riot;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
access_log /var/log/nginx/riot.access.log;
}
Copie el archivo de configuración de muestra.
sudo cp /opt/riot/config.sample.json /opt/riot/config.json
Ahora edite el archivo de configuración para hacer algunos cambios.
sudo nano /opt/riot/config.json
Encuentra las siguientes líneas.
"default_hs_url": "https://matrix.org",
"default_is_url": "https://vector.im",
Reemplace el valor de la URL predeterminada del servidor doméstico con la URL de su servidor Matrix. Para la URL del servidor de identidad, puede usar la opción predeterminada, o también puede proporcionar su valor al servidor de identidad Matrix, que es https://matrix.org
.
"default_hs_url": "https://matrix.example.com",
"default_is_url": "https://matrix.org",
Guarda el archivo y cierra. Proporcione la propiedad de los archivos al usuario de Nginx.
sudo chown -R nginx:nginx /opt/riot/
Reinicia Nginx.
sudo systemctl restart nginx
Puedes acceder a Riot en https://riot.example.com
. Ahora puede iniciar sesión con el nombre de usuario y la contraseña que creó anteriormente. Puede conectarse utilizando el servidor predeterminado ya que ya hemos cambiado el servidor Matrix predeterminado para nuestra aplicación.
Ahora tiene un servidor doméstico Matrix Synapse en funcionamiento. También tiene una copia alojada de Riot, que puede usar para enviar un mensaje a otras personas utilizando su Matrix ID, correo electrónico o número de teléfono móvil. Comience creando una sala de chat en su servidor e invite a sus amigos en Matrix a unirse a la sala de chat que ha creado.
¿Usando un sistema diferente? MODX Revolution es un sistema de gestión de contenido (CMS) de nivel empresarial rápido, flexible, escalable, gratuito y de código abierto escrito i
Vultr le ofrece una increíble conectividad de red privada para servidores que se ejecutan en la misma ubicación. Pero a veces quieres dos servidores en diferentes países.
Using a Different System? Introduction CyberPanel is one of the first control panels on the market that is both open source and uses OpenLiteSpeed. What thi
Using a Different System? ESpeak can generate text-to-speech (TTS) audio files. These can be useful for many reasons, such as creating your own Turin
¿Usando un sistema diferente? Thelia es una herramienta de código abierto para crear sitios web de comercio electrónico y administrar contenido en línea, escrito en PHP. Código fuente de Thelia i
¿Usando un sistema diferente? LibreNMS es un completo sistema de monitoreo de red de código abierto. Utiliza SNMP para obtener los datos de diferentes dispositivos. Una variedad
Cacti es una herramienta de gráficos y monitoreo de red de código abierto y libre escrita en PHP. Con la ayuda de RRDtool (herramienta de base de datos Round-Robin), Cacti se puede usar t
Usar un usuario sudo para acceder a un servidor y ejecutar comandos a nivel raíz es una práctica muy común entre Linux y Unix Systems Administrator. El uso de un sud
¿Usando un sistema diferente? Zabbix es un software gratuito y de código abierto listo para empresas que se utiliza para monitorear la disponibilidad de sistemas y componentes de red.
MODX es un sistema de gestión de contenido gratuito y de código abierto escrito en PHP. Utiliza MySQL o MariaDB para almacenar su base de datos. MODX está diseñado para el negocio i
YOURLS (Your Own URL Shortener) es una aplicación de análisis de datos y acortamiento de URL de código abierto. En este artículo, cubriremos el proceso de instalación
Using a Different System? RTMP is great for serving live content. When RTMP is paired with FFmpeg, streams can be converted into various qualities. Vultr i
LimeSurvey es una herramienta de encuestas en línea gratuita y de código abierto que se utiliza ampliamente para publicar encuestas en línea y para recopilar comentarios de encuestas. En este artículo, voy a
¿Usando un sistema diferente? Vanilla forum es una aplicación de foro de código abierto escrita en PHP. Es totalmente personalizable, fácil de usar y admite dispositivos externos.
¿Usando un sistema diferente? Netdata es una estrella en ascenso en el campo del monitoreo de métricas del sistema en tiempo real. En comparación con otras herramientas del mismo tipo, Netdata:
En este tutorial, aprende bien cómo configurar un servidor multijugador Just Cause 2. Requisitos previos Asegúrese de que el sistema esté completamente actualizado antes de comenzar
¿Usando un sistema diferente? En este tutorial, explicaré cómo configurar un servidor Starbound en CentOS 7. Requisitos previos Necesitas tener este juego contigo
ZNC es un enlace IRC gratuito y de código abierto que permanece permanentemente conectado a una red para que los clientes puedan recibir mensajes enviados mientras están desconectados. Thi
Django es un marco de Python popular para escribir aplicaciones web. Con Django, puede crear aplicaciones más rápido, sin reinventar la rueda. Si tu quieres
ionCube Loader es una extensión PHP que permite que un servidor web ejecute archivos PHP que han sido codificados usando ionCube Encoder y es necesario para ejecutar
Los ataques de ransomware van en aumento, pero ¿puede la IA ayudar a lidiar con el último virus informático? ¿Es la IA la respuesta? Lea aquí, sepa que la IA es una bendición o una perdición
ReactOS, un sistema operativo de código abierto y gratuito, está aquí con la última versión. ¿Puede satisfacer las necesidades de los usuarios de Windows de hoy en día y acabar con Microsoft? Averigüemos más sobre este estilo antiguo, pero una experiencia de sistema operativo más nueva.
Whatsapp finalmente lanzó la aplicación de escritorio para usuarios de Mac y Windows. Ahora puede acceder a Whatsapp desde Windows o Mac fácilmente. Disponible para Windows 8+ y Mac OS 10.9+
Lea esto para saber cómo la Inteligencia Artificial se está volviendo popular entre las empresas de pequeña escala y cómo está aumentando las probabilidades de hacerlas crecer y dar ventaja a sus competidores.
Recientemente, Apple lanzó macOS Catalina 10.15.4, una actualización complementaria para solucionar problemas, pero parece que la actualización está causando más problemas que conducen al bloqueo de las máquinas Mac. Lee este artículo para obtener más información
13 Herramientas comerciales de extracción de datos de Big Data
Nuestra computadora almacena todos los datos de una manera organizada conocida como sistema de archivos de diario. Es un método eficiente que permite a la computadora buscar y mostrar archivos tan pronto como presiona buscar.
A medida que la ciencia evoluciona a un ritmo rápido, asumiendo muchos de nuestros esfuerzos, también aumentan los riesgos de someternos a una singularidad inexplicable. Lea, lo que la singularidad podría significar para nosotros.
Una mirada a 26 técnicas analíticas de Big Data: Parte 1
La IA en la salud ha dado grandes pasos desde las últimas décadas. Por tanto, el futuro de la IA en el sector sanitario sigue creciendo día a día.