ZPanel y Sentora en CentOS 6 x64
ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.
Buildbot es una herramienta de integración continua basada en Python de código abierto para automatizar la creación, prueba e implementación de software. Buildbot consta de uno o más maestros Buildbot y varios trabajadores. Buildbot master o Buildmaster tiene el comando central del sistema. Es responsable de administrar el entorno de construcción, los trabajadores y toma todas las decisiones sobre el envío de trabajos a los trabajadores. Buildmaster detecta cambios en el repositorio de código y envía los comandos o trabajos a los trabajadores para que los ejecuten. Los trabajadores ejecutan los trabajos y devuelven el resultado al Buildmaster. Buildmaster luego notifica a los desarrolladores a través de múltiples canales compatibles. En este tutorial, instalaremos el maestro y el trabajador de Buildbot en CentOS 7. También configuraremos la autenticación y Nginx como un proxy inverso seguro.
Para este tutorial, lo utilizaremos 192.168.1.1
como la dirección IP pública y ci.example.com
como el nombre de dominio que apunta hacia la instancia de Vultr. Asegúrese de reemplazar todas las apariciones del nombre de dominio de ejemplo y la dirección IP con la actual.
Actualice su sistema base utilizando la guía Cómo actualizar CentOS 7 . Una vez que su sistema ha sido actualizado, proceda a instalar PostgreSQL.
Instale Pip, que es un administrador de paquetes para Python.
sudo yum -y install epel-release
sudo yum -y install python-pip gcc python-devel git
sudo pip install --upgrade pip
Buildbot admite múltiples tipos de servidores de bases de datos como MySQL, PostgreSQL y SQLite. En este tutorial, utilizaremos PostgreSQL para alojar el servidor de base de datos Buildbot.
PostgreSQL es un sistema de base de datos relacional de objetos, conocido por su estabilidad y velocidad. El yum
repositorio predeterminado contiene una versión anterior de PostgreSQL, por lo tanto, agregue el repositorio PostgreSQL.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Instale el servidor de base de datos PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Inicializar la base de datos.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Inicie el servidor PostgreSQL y permita que se inicie automáticamente en el momento del arranque.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Cambie la contraseña para el usuario predeterminado de PostgreSQL.
sudo passwd postgres
Inicie sesión como usuario de PostgreSQL.
sudo su - postgres
Cree un nuevo usuario de PostgreSQL para Buildbot.
createuser bb_user
Puede usar cualquier nombre de usuario en lugar de bb_user
, si lo prefiere. PostgreSQL proporciona el psql
shell para ejecutar consultas en la base de datos. Cambie al shell PostgreSQL.
psql
Establezca una contraseña para el usuario recién creado.
ALTER USER bb_user WITH ENCRYPTED password 'DBPassword';
Reemplazar DBPassword
con una contraseña segura.
Cree una nueva base de datos para la instalación de Buildbot.
CREATE DATABASE buildbot OWNER bb_user;
Salga de la psql
cáscara.
\q
Cambiar al sudo
usuario.
exit
Edite el pg_hba.conf
archivo para habilitar la autenticación basada en MD5.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Encuentre las siguientes líneas y cambie los valores peer
y ident
, en la METHOD
columna, a trust
y md5
, respectivamente.
# 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 ident
# IPv6 local connections:
host all all ::1/128 ident
Una vez actualizada, la configuración se verá como el siguiente texto.
# 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
Guarde el archivo y salga del editor. Instale el adaptador de base de datos PostgreSQL para Python.
sudo pip install psycopg2
Reinicie PostgreSQL para que los cambios surtan efecto.
sudo systemctl restart postgresql-10
Instale Buildbot usando Pip.
sudo pip install 'buildbot[bundle]' pyopenssl service_identity
El comando anterior se instalará junto con Buildbot buildbot-www
, buildbot-worker
y varios plugins web como buildbot-waterfall-view
.
Para asegurarse de que Buildbot se haya instalado correctamente, puede verificarlo verificando la versión de Buildbot.
buildbot --version
El resultado debe parecerse al siguiente texto.
[user@vultr ~]$ buildbot --version
Buildbot version: 0.9.15.post1
Twisted version: 17.9.0
Modifique las reglas de su firewall para permitir el puerto 8010
. Buildbot usa este puerto para escuchar las solicitudes web.
sudo firewall-cmd --zone=public --add-port=8010/tcp --permanent
sudo firewall-cmd --reload
Cree un nuevo usuario sin privilegios para ejecutar los procesos de maestro y trabajador de Buildbot. No se recomienda ejecutar los servicios maestros de Buildbot como root
usuario.
sudo adduser buildbot
sudo passwd buildbot
Inicie sesión como el buildbot
usuario recién creado .
sudo su - buildbot
Configure el maestro Buildbot en el /home/buildbot/master
directorio. Este directorio contendrá la configuración, el estado y los archivos de registro de cada compilación.
buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
Asegúrese de reemplazar las credenciales del usuario de la base de datos en el comando anterior.
Nota: Si desea utilizar la base de datos SQLite en lugar de PostgreSQL, simplemente omita la --db 'postgresql://bb_user:DBpassword@localhost/buildbot'
opción. La base de datos SQLite se creará en el mismo directorio.
El comando anterior creará el ~/master
directorio para almacenar los archivos Buildmaster. También escribirá los datos en la base de datos PostgreSQL. Obtendrá el siguiente resultado.
[buildbot@vultr ~]$ buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
mkdir /home/buildbot/master
creating /home/buildbot/master/master.cfg.sample
creating database (postgresql://bb_user:DBPassword@localhost/buildbot)
buildmaster configured in /home/buildbot/master
Copie el archivo de configuración de muestra en un archivo de configuración en vivo.
cp ~/master/master.cfg.sample ~/master/master.cfg
Edite el archivo de configuración.
nano ~/master/master.cfg
Encuentra las siguientes líneas.
c['workers'] = [worker.Worker("example-worker", "pass")]
...
c['builders'].append(
util.BuilderConfig(name="runtests",
workernames=["example-worker"],
factory=factory))
...
c['title'] = "Hello World CI"
c['titleURL'] = "https://buildbot.github.io/hello-world/"
...
c['buildbotURL'] = "http://localhost:8010/"
...
c['db'] = {
'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}
La configuración anterior tiene una entrada para un trabajador de muestra. Modificaremos la entrada de muestra para el trabajador en el que correremos localhost
. Cambie el example-worker
nombre a cualquier nombre adecuado para el localhost
trabajador y cambie el nombre pass
a otra contraseña. Anote el nombre y la contraseña del trabajador, ya que lo solicitaremos más adelante en el tutorial. Cambie el nombre del trabajador en la lista de constructores. Cambie el nombre de la aplicación y la URL del proyecto de acuerdo con sus necesidades.
Cambie la URL de Buildbot localhost
a su nombre de dominio real o dirección IP pública. Además, verifique que la información de la base de datos en el archivo de configuración coincida con sus credenciales de base de datos reales.
Al final del archivo, agregue c['buildbotNetUsageData'] = None
. Este parámetro deshabilitará el envío de la información de la versión del software y los detalles de uso del complemento a los desarrolladores. Sin embargo, para habilitar el envío de la información de usos, cambie la opción a Full
.
La configuración debería parecerse al siguiente texto.
c['workers'] = [worker.Worker("localhost-worker", "Password123")]
...
c['builders'].append(
util.BuilderConfig(name="runtests",
workernames=["localhost-worker"],
factory=factory))
...
c['title'] = "My Application CI"
c['titleURL'] = "https://example.com/my-app"
...
c['buildbotURL'] = "http://192.168.1.1:8010/"
...
c['db'] = {
'db_url' : "postgresql://bb_user:DBpassword@localhost/buildbot",
}
...
c['buildbotNetUsageData'] = None
Guarde el archivo y salga del editor. Verifique el archivo de configuración en busca de errores.
buildbot checkconfig ~/master
Si el archivo de configuración no tiene errores, verá el siguiente resultado.
[buildbot@vultr ~]$ buildbot checkconfig ~/master
Config file is good!
Ahora que todo está configurado correctamente, puede iniciar el maestro Buildbot.
buildbot start ~/master
Verá el siguiente resultado.
[buildbot@vultr ~]$ buildbot start ~/master
Following twistd.log until startup finished..
The buildmaster appears to have (re)started correctly.
Ahora que el maestro Buildbot se ha iniciado correctamente, se puede acceder a la interfaz de usuario web en http://192.168.1.1:8010
. Debería ver la siguiente interfaz de Buildbot.
Como ya hemos modificado la configuración del trabajador en ~/master/master.cfg
, podemos proceder a crear un nuevo trabajador.
buildbot-worker create-worker ~/worker localhost localhost-worker Password123
Asegúrese de utilizar exactamente el mismo nombre y contraseña de trabajador como se menciona en el ~/master/master.cfg
archivo. Si hay una falta de coincidencia en el nombre o la contraseña del trabajador, el trabajador no podrá conectarse al maestro Buildbot. Verá el siguiente resultado después de una ejecución exitosa.
[buildbot@vultr ~]$ buildbot-worker create-worker ~/worker localhost example-worker pass
mkdir /home/buildbot/worker
mkdir /home/buildbot/worker/info
Creating info/admin, you need to edit it appropriately.
Creating info/host, you need to edit it appropriately.
Not creating info/access_uri - add it if you wish
Please edit the files in /home/buildbot/worker/info appropriately.
worker configured in /home/buildbot/worker
La información sobre el trabajador se almacena en el /info
directorio. Edite la información administrativa sobre el desarrollador.
nano ~/worker/info/admin
Reemplace el nombre del ejemplo con su nombre real y correo electrónico.
Your Name <[email protected]>
Ahora, abra el archivo que contiene información sobre el host.
nano ~/worker/info/host
Reemplace la instrucción de ejemplo con la información real sobre el sistema host.
Localhost, CentOS 7
La información de administrador y host del trabajador solo se usa para informar a los usuarios sobre el sistema. También puede agregar información adicional sobre el sistema, como la versión Buildbot y la versión Twisted.
Comience el trabajador.
buildbot-worker start ~/worker
La salida se verá como el siguiente texto.
[buildbot@vultr ~]$ buildbot-worker start ~/worker
Following twistd.log until startup finished..
The buildbot-worker appears to have (re)started correctly.
Para verificar si el trabajador está registrado, diríjase a la interfaz web de Buildbot y navegue Builds >> Workers
desde la navegación izquierda. Debería ver que el trabajador está listo y listo para construir.
Para ejecutar una compilación de muestra, para verificar si el trabajador de Buildbot se está ejecutando correctamente, vaya a Builds >> Builders
. Haga clic en el runtests
nombre del generador para abrir la interfaz del generador y haga clic en el Force
botón para forzar una compilación. Proporcione su nombre y haga clic en el Start Build
botón para iniciar la compilación. Dado que es una prueba de compilación de muestra para verificar el entorno Buildbot, finalizará en un par de segundos. Recibirá un mensaje de éxito y el resultado de la compilación.
Aunque el maestro y el trabajador de Buildbot pueden iniciarse fácilmente utilizando los comandos anteriores, se recomienda usar unidades Systemd para ejecutar y administrar los servicios de Buildbot. Esto asegurará que se inicien automáticamente al reiniciar el sistema y las fallas.
Nota: Cambie al sudo
usuario nuevamente ejecutando exit
o su <username>
. A partir de ahora, todos los comandos deben ser ejecutados por el sudo
usuario.
Detenga el trabajador de Buildbot y el servicio maestro en ejecución.
sudo su buildbot -c "buildbot stop /home/buildbot/master"
sudo su buildbot -c "buildbot-worker stop ~/worker"
Cree un nuevo archivo de unidad Systemd para el maestro Buildbot.
sudo nano /etc/systemd/system/buildbot.service
Rellene el archivo.
[Unit]
Description=BuildBot master service
After=network.target
[Service]
Type=forking
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/master
ExecStart=/usr/bin/buildbot start
ExecStop=/usr/bin/buildbot stop
ExecReload=/usr/bin/buildbot restart
[Install]
WantedBy=multi-user.target
Inicie el maestro Buildbot y permita que se inicie automáticamente en el momento del arranque.
sudo systemctl start buildbot
sudo systemctl enable buildbot
Cree un nuevo archivo de unidad Systemd para el trabajador de Buildbot.
sudo nano /etc/systemd/system/buildbot-worker.service
Rellene el archivo.
[Unit]
Description=BuildBot worker service
After=network.target
[Service]
Type=forking
User=buildbot
Group=buildbot
WorkingDirectory=/home/buildbot/worker
ExecStart=/usr/bin/buildbot-worker start
ExecStop=/usr/bin/buildbot-worker stop
ExecReload=/usr/bin/buildbot-worker restart
[Install]
WantedBy=multi-user.target
Inicie el trabajador Buildbot y permita que se inicie automáticamente en el momento del arranque.
sudo systemctl start buildbot-worker
sudo systemctl enable buildbot-worker
Puede verificar el estado de los servicios.
sudo systemctl status buildbot buildbot-worker
Si los servicios se ejecutan sin problemas, lo verá en la salida.
[user@vultr ~]$ sudo systemctl status buildbot buildbot-worker
● buildbot.service - BuildBot master service
...
Active: active (running) since Fri 2018-01-12 16:00:59 UTC; 1min 25s ago
...
Jan 12 16:00:59 vultr.guest systemd[1]: Started BuildBot master service.
● buildbot-worker.service - BuildBot worker service
...
Active: active (running) since Fri 2018-01-12 16:02:00 UTC; 24s ago
...
Jan 12 16:02:00 vultr.guest systemd[1]: Started BuildBot worker service.
Por defecto, la autenticación no está habilitada en la interfaz web de Buildbot. Para los sitios con acceso a Internet, se recomienda encarecidamente configurar la autenticación para que solo los usuarios autorizados puedan realizar tareas administrativas. Para configurar la autenticación, vuelva a abrir el archivo de configuración maestro Buildbot.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Agregue las siguientes líneas al final del archivo.
c['www']['authz'] = util.Authz(
allowRules = [
util.AnyEndpointMatcher(role="admins")
],
roleMatchers = [
util.RolesFromUsername(roles=['admins'], usernames=['admin_user'])
]
)
c['www']['auth'] = util.UserPasswordAuth({'admin_user': 'AdminPassword'})
Reemplace ambas ocurrencias admin_user
con el nombre de usuario real que desea usar y AdminPassword
con una contraseña segura.
Verifique si hay errores en el archivo de configuración.
sudo su buildbot -c "buildbot checkconfig /home/buildbot/master"
Reinicie el servicio maestro Buildbot para que los cambios surtan efecto.
sudo systemctl restart buildbot
Vuelva a explorar la interfaz web para ver que los usuarios anónimos solo pueden ver los detalles básicos sobre el servidor de compilación. Ahora, inicie sesión con las credenciales establecidas en el master.cfg
archivo y verá que todas las demás funciones administrativas solo están disponibles para el usuario administrador que inició sesión.
De forma predeterminada, Buildbot escucha el puerto 8010
en conexiones no seguras. HTTPS
Se recomienda asegurar la interfaz web para garantizar que los datos estén seguros durante el transporte desde el navegador al servidor. En esta sección del tutorial, instalaremos y aseguraremos Nginx con los certificados SSL gratuitos Let's Encrypt. El servidor web Nginx funcionará como un proxy inverso para reenviar las solicitudes entrantes al punto final HTTP de Buildbot.
Instala Nginx.
sudo yum -y install nginx
Inicie Nginx y permita que se inicie automáticamente en el momento del arranque.
sudo systemctl start nginx
sudo systemctl enable nginx
Instale Certbot, que es la aplicación cliente para Let's Encrypt CA.
sudo yum -y install certbot
Antes de poder solicitar los certificados, deberá permitir puertos 80
y / 443
o estándares HTTP
y HTTPS
servicios a través del firewall. Además, elimine el puerto 8010
, que escucha las conexiones no seguras.
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --zone=public --remove-port=8010/tcp --permanent
sudo firewall-cmd --reload
Nota: Para obtener certificados de Let's Encrypt CA, el dominio para el que se generarán los certificados debe apuntar hacia el servidor. De lo contrario, realice los cambios necesarios en los registros DNS del 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.
Generar los certificados SSL.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com
Es probable que los certificados generados se almacenen en el /etc/letsencrypt/live/ci.example.com/
directorio. El certificado SSL se almacenará como fullchain.pem
y la clave privada se almacenará como privkey.pem
.
Encriptemos los certificados caducan en 90 días, por lo tanto, se recomienda configurar la renovación automática de los certificados utilizando trabajos Cron.
Abra el archivo de trabajo cron para el root
usuario.
sudo crontab -e
Agregue la siguiente línea al final del archivo.
30 5 * * * /usr/bin/certbot renew --quiet
El trabajo cron anterior se ejecutará todos los días a las 5:30 a.m. Si el certificado vence, los renovará automáticamente.
Ahora, cambie el archivo de configuración predeterminado de Nginx para eliminar la default_server
línea.
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Cree un nuevo archivo de configuración para la interfaz web Buildbot.
sudo nano /etc/nginx/conf.d/buildbot.conf
Rellene el archivo.
upstream buildbot {
server 127.0.0.1:8010;
}
server {
listen 80 default_server;
server_name ci.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl http2 default_server;
server_name ci.example.com;
root html;
index index.html index.htm;
ssl on;
ssl_certificate /etc/letsencrypt/live/ci.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/ci.example.com/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 1440m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000; includeSubdomains;";
access_log /var/log/nginx/buildbot.access.log;
proxy_set_header HOST $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Host $host;
location / {
proxy_pass http://buildbot;
}
location /sse/ {
proxy_buffering off;
proxy_pass http://buildbot/sse/;
}
location /ws {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://buildbot/ws;
proxy_read_timeout 6000s;
}
}
Verifique los errores en el nuevo archivo de configuración.
sudo nginx -t
Si ve el siguiente resultado, la configuración está libre de errores.
[user@vultr ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Si ha recibido algún tipo de error, asegúrese de verificar la ruta a los certificados SSL. Reinicie el servidor web Nginx para implementar el cambio en la configuración.
sudo systemctl restart nginx
Abra el archivo de configuración de Buildmaster.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Localiza la siguiente línea.
c['buildbotURL'] = "http://192.168.1.1:8010/"
Cambie la URL de acuerdo con el nombre de dominio que está utilizando.
c['buildbotURL'] = "https://ci.example.com/"
Reinicie el servicio maestro Buildbot.
sudo systemctl restart buildbot
Ahora puede acceder al panel de Buildbot en https://ci.example.com
. Verá que las conexiones a Buildbot ahora están protegidas con SSL.
Inicie sesión con las credenciales de administrador y agregue su primer canal para comenzar a construir su aplicación.
ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.
Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.
¿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
ZPanel, un panel de control de alojamiento web popular, se bifurcó en 2014 a un nuevo proyecto llamado Sentora. Aprende a instalar Sentora en tu servidor con este tutorial.
Aprende cómo instalar Vtiger CRM, una aplicación de gestión de relaciones con el cliente, en CentOS 7 para aumentar tus ventas y mejorar el servicio al cliente.
Esta guía completa le mostrará cómo configurar un servidor Counter-Strike 1.6 en Linux, optimizando el rendimiento y la seguridad para el mejor juego. Aprende los pasos más recientes aquí.
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.