Comment installer MODX Revolution sur un VPS CentOS 7 LAMP
Vous utilisez un système différent? MODX Revolution est un système de gestion de contenu (CMS) de niveau entreprise rapide, flexible, évolutif, gratuit et open source écrit i
Buildbot est un outil d'intégration continue open source, basé sur Python, pour automatiser la création, les tests et le déploiement de logiciels. Buildbot se compose d'un ou plusieurs maîtres Buildbot et d'un certain nombre de travailleurs. Buildbot master ou Buildmaster a la commande centrale du système. Il est responsable de la gestion de l'environnement de construction, des travailleurs et prend toutes les décisions concernant l'envoi d'emplois aux travailleurs. Buildmaster détecte les modifications dans le référentiel de code et envoie les commandes ou les travaux aux travailleurs pour les exécuter. Les ouvriers exécutent les travaux et retournent le résultat au Buildmaster. Buildmaster notifie ensuite les développeurs via plusieurs canaux pris en charge. Dans ce tutoriel, nous allons installer Buildbot maître et travailleur sur CentOS 7. Nous allons également configurer l'authentification et Nginx en tant que proxy inverse sécurisé.
Pour ce didacticiel, nous utiliserons 192.168.1.1
comme adresse IP publique et ci.example.com
comme nom de domaine pointé vers l'instance Vultr. Veuillez vous assurer de remplacer toutes les occurrences de l'exemple de nom de domaine et de l'adresse IP par celui-ci.
Mettez à jour votre système de base à l'aide du guide Comment mettre à jour CentOS 7 . Une fois votre système mis à jour, installez PostgreSQL.
Installez Pip, qui est un gestionnaire de packages pour Python.
sudo yum -y install epel-release
sudo yum -y install python-pip gcc python-devel git
sudo pip install --upgrade pip
Buildbot prend en charge plusieurs types de serveurs de bases de données tels que MySQL, PostgreSQL et SQLite. Dans ce tutoriel, nous utiliserons PostgreSQL pour héberger le serveur de base de données Buildbot.
PostgreSQL est un système de base de données relationnelle objet, connu pour sa stabilité et sa vitesse. Le yum
référentiel par défaut contient une ancienne version de PostgreSQL, alors ajoutez le référentiel PostgreSQL.
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
Installez le serveur de base de données PostgreSQL.
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
Initialisez la base de données.
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
Démarrez le serveur PostgreSQL et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
Modifiez le mot de passe de l'utilisateur PostgreSQL par défaut.
sudo passwd postgres
Connectez-vous en tant qu'utilisateur PostgreSQL.
sudo su - postgres
Créez un nouvel utilisateur PostgreSQL pour Buildbot.
createuser bb_user
Vous pouvez utiliser n'importe quel nom d'utilisateur au lieu de bb_user
, si vous préférez. PostgreSQL fournit le psql
shell pour exécuter des requêtes sur la base de données. Basculez vers le shell PostgreSQL.
psql
Définissez un mot de passe pour l'utilisateur nouvellement créé.
ALTER USER bb_user WITH ENCRYPTED password 'DBPassword';
Remplacez-le DBPassword
par un mot de passe sécurisé.
Créez une nouvelle base de données pour l'installation de Buildbot.
CREATE DATABASE buildbot OWNER bb_user;
Sortez du psql
shell.
\q
Passez à l' sudo
utilisateur.
exit
Modifiez le pg_hba.conf
fichier pour activer l'authentification basée sur MD5.
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
Recherchez les lignes suivantes et modifiez les valeurs peer
et ident
, dans la METHOD
colonne, en trust
et md5
respectivement.
# 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
Une fois mise à jour, la configuration ressemblera au texte suivant.
# 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
Enregistrez le fichier et quittez l'éditeur. Installez l'adaptateur de base de données PostgreSQL pour Python.
sudo pip install psycopg2
Redémarrez PostgreSQL pour que les modifications prennent effet.
sudo systemctl restart postgresql-10
Installez Buildbot à l'aide de Pip.
sudo pip install 'buildbot[bundle]' pyopenssl service_identity
La commande ci - dessus installera Buildbot avec buildbot-www
, buildbot-worker
et plusieurs plugins web tels que buildbot-waterfall-view
.
Pour vous assurer que Buildbot a été installé avec succès, vous pouvez vérifier en vérifiant la version de Buildbot.
buildbot --version
La sortie doit ressembler au texte suivant.
[user@vultr ~]$ buildbot --version
Buildbot version: 0.9.15.post1
Twisted version: 17.9.0
Modifiez vos règles de pare-feu pour autoriser le port 8010
. Buildbot utilise ce port pour écouter les requêtes Web.
sudo firewall-cmd --zone=public --add-port=8010/tcp --permanent
sudo firewall-cmd --reload
Créez un nouvel utilisateur non privilégié pour exécuter les processus maître et de travail Buildbot. Il n'est pas recommandé d'exécuter les services principaux Buildbot en tant root
qu'utilisateur.
sudo adduser buildbot
sudo passwd buildbot
Connectez-vous en tant buildbot
qu'utilisateur nouvellement créé .
sudo su - buildbot
Configurez le maître Buildbot dans le /home/buildbot/master
répertoire. Ce répertoire contiendra les fichiers de configuration, d'état et de journal de chaque build.
buildbot create-master --db 'postgresql://bb_user:DBPassword@localhost/buildbot' ~/master
Assurez-vous de remplacer les informations d'identification de l'utilisateur de la base de données dans la commande ci-dessus.
Remarque: Si vous souhaitez utiliser la base de données SQLite au lieu de PostgreSQL, omettez simplement l' --db 'postgresql://bb_user:DBpassword@localhost/buildbot'
option. La base de données SQLite sera créée dans le même répertoire.
La commande ci-dessus créera le ~/master
répertoire pour stocker les fichiers Buildmaster. Il écrira également les données dans la base de données PostgreSQL. Vous obtiendrez la sortie suivante.
[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
Copiez l'exemple de fichier de configuration dans un fichier de configuration en direct.
cp ~/master/master.cfg.sample ~/master/master.cfg
Modifiez le fichier de configuration.
nano ~/master/master.cfg
Trouvez les lignes suivantes.
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 configuration ci-dessus a une entrée pour un exemple de travailleur. Nous allons modifier l'exemple d'entrée pour le travailleur sur lequel nous allons travailler localhost
. Remplacez le example-worker
par n'importe quel nom approprié pour le localhost
travailleur et remplacez-le pass
par un autre mot de passe. Prenez note du nom et du mot de passe du travailleur, car nous en aurons besoin plus tard dans le didacticiel. Modifiez le nom du travailleur dans la liste des générateurs. Modifiez le nom de l'application et l'URL du projet en fonction de vos besoins.
Remplacez l'URL Buildbot par localhost
votre nom de domaine réel ou votre adresse IP publique. Vérifiez également que les informations de base de données dans le fichier de configuration correspondent à vos informations d'identification de base de données réelles.
À la fin du fichier, ajoutez c['buildbotNetUsageData'] = None
. Ce paramètre désactivera l'envoi aux développeurs des informations sur la version du logiciel et des détails d'utilisation du plugin. Cependant, pour activer l'envoi des informations sur les utilisations, changez l'option en Full
.
La configuration doit ressembler au texte suivant.
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
Enregistrez le fichier et quittez l'éditeur. Recherchez des erreurs dans le fichier de configuration.
buildbot checkconfig ~/master
Si le fichier de configuration ne contient aucune erreur, vous verrez la sortie suivante.
[buildbot@vultr ~]$ buildbot checkconfig ~/master
Config file is good!
Maintenant que tout est correctement configuré, vous pouvez démarrer le maître Buildbot.
buildbot start ~/master
Vous verrez la sortie suivante.
[buildbot@vultr ~]$ buildbot start ~/master
Following twistd.log until startup finished..
The buildmaster appears to have (re)started correctly.
Maintenant que le maître Buildbot a démarré correctement, l'interface utilisateur Web est accessible à http://192.168.1.1:8010
. Vous devriez voir l'interface Buildbot suivante.
Comme nous avons déjà modifié la configuration du travailleur dans ~/master/master.cfg
, nous pouvons procéder à la création d'un nouveau travailleur.
buildbot-worker create-worker ~/worker localhost localhost-worker Password123
Assurez-vous que vous utilisez exactement le même nom de travailleur et le même mot de passe que ceux mentionnés dans le ~/master/master.cfg
fichier. En cas de non-concordance dans le nom ou le mot de passe du travailleur, le travailleur ne pourra pas se connecter au maître Buildbot. Vous verrez la sortie suivante après une exécution réussie.
[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
Les informations sur le travailleur sont stockées dans le /info
répertoire. Modifiez les informations administratives sur le développeur.
nano ~/worker/info/admin
Remplacez l'exemple de nom par votre nom et votre adresse e-mail réels.
Your Name <[email protected]>
Maintenant, ouvrez le fichier contenant des informations sur l'hôte.
nano ~/worker/info/host
Remplacez l'exemple d'instruction par les informations réelles sur le système hôte.
Localhost, CentOS 7
Les informations d'administrateur et d'hôte du travailleur sont uniquement utilisées pour informer les utilisateurs du système. Vous pouvez également ajouter des informations supplémentaires sur le système telles que la version Buildbot et la version Twisted.
Démarrez le travailleur.
buildbot-worker start ~/worker
La sortie ressemblera au texte suivant.
[buildbot@vultr ~]$ buildbot-worker start ~/worker
Following twistd.log until startup finished..
The buildbot-worker appears to have (re)started correctly.
Pour vérifier si le travailleur est enregistré, accédez à l'interface Web de Buildbot et accédez à Builds >> Workers
partir de la navigation de gauche. Vous devriez voir que le travailleur est prêt et prêt à construire.
Pour exécuter un exemple de build, pour vérifier si le travailleur Buildbot s'exécute correctement, accédez à Builds >> Builders
. Cliquez sur le runtests
nom du générateur pour ouvrir l'interface du générateur et cliquez sur le Force
bouton pour forcer une construction. Donnez votre nom et cliquez sur le Start Build
bouton pour démarrer la construction. Puisqu'il s'agit d'un exemple de test de build pour vérifier l'environnement Buildbot, il se terminera dans quelques secondes. Vous obtiendrez un message de réussite et le résultat de la construction.
Bien que le maître et le travailleur Buildbot puissent être facilement démarrés à l'aide des commandes ci-dessus, il est recommandé d'utiliser des unités Systemd pour exécuter et gérer les services Buildbot. Cela garantira qu'ils sont automatiquement démarrés au redémarrage et aux échecs du système.
Remarque: basculez à sudo
nouveau vers l' utilisateur en exécutant soit exit
ou su <username>
. Désormais, toutes les commandes doivent être exécutées par l' sudo
utilisateur.
Arrêtez le travailleur Buildbot et le service maître en cours d'exécution.
sudo su buildbot -c "buildbot stop /home/buildbot/master"
sudo su buildbot -c "buildbot-worker stop ~/worker"
Créez un nouveau fichier d'unité Systemd pour le maître Buildbot.
sudo nano /etc/systemd/system/buildbot.service
Remplissez le fichier.
[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
Démarrez le maître Buildbot et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start buildbot
sudo systemctl enable buildbot
Créez un nouveau fichier d'unité Systemd pour le travailleur Buildbot.
sudo nano /etc/systemd/system/buildbot-worker.service
Remplissez le fichier.
[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
Démarrez le travailleur Buildbot et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start buildbot-worker
sudo systemctl enable buildbot-worker
Vous pouvez vérifier l'état des services.
sudo systemctl status buildbot buildbot-worker
Si les services fonctionnent correctement, vous le verrez dans la sortie.
[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.
Par défaut, l'authentification n'est pas activée dans l'interface Web de Buildbot. Pour les sites Internet, il est fortement recommandé de configurer l'authentification afin que seuls les utilisateurs autorisés puissent effectuer des tâches administratives. Pour configurer l'authentification, rouvrez le fichier de configuration maître Buildbot.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Ajoutez les lignes suivantes à la fin du fichier.
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'})
Remplacez les deux occurrences de admin_user
par le nom d'utilisateur réel que vous souhaitez utiliser et AdminPassword
par un mot de passe fort.
Recherchez les erreurs dans le fichier de configuration.
sudo su buildbot -c "buildbot checkconfig /home/buildbot/master"
Redémarrez le service maître Buildbot pour que les modifications prennent effet.
sudo systemctl restart buildbot
Parcourez à nouveau l'interface Web pour voir que les utilisateurs anonymes ne peuvent afficher que les détails de base sur le serveur de génération. Maintenant, connectez-vous en utilisant les informations d'identification définies dans le master.cfg
fichier et vous verrez que toutes les autres fonctions administratives ne sont disponibles que pour l'utilisateur administrateur connecté.
Par défaut, Buildbot écoute le port 8010
sur les connexions non sécurisées. Il HTTPS
est recommandé de sécuriser l'interface Web avec pour garantir la sécurité des données pendant le transport du navigateur au serveur. Dans cette section du tutoriel, nous allons installer et sécuriser Nginx avec Let's Encrypt gratuitement les certificats SSL. Le serveur Web Nginx fonctionnera comme un proxy inverse pour transmettre les demandes entrantes au point de terminaison HTTP de Buildbot.
Installez Nginx.
sudo yum -y install nginx
Démarrez Nginx et activez-le pour démarrer automatiquement au démarrage.
sudo systemctl start nginx
sudo systemctl enable nginx
Installez Certbot, qui est l'application cliente de Let's Encrypt CA.
sudo yum -y install certbot
Avant de pouvoir demander les certificats, vous devez autoriser les ports 80
et / 443
ou la norme HTTP
et les HTTPS
services via le pare-feu. Supprimez également le port 8010
, qui écoute les connexions non sécurisées.
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
Remarque: Pour obtenir des certificats de Let's Encrypt CA, le domaine pour lequel les certificats doivent être générés doit être dirigé vers le serveur. Sinon, apportez les modifications nécessaires aux enregistrements DNS du domaine et attendez que le DNS se propage avant de refaire la demande de certificat. Certbot vérifie l'autorité de domaine avant de fournir les certificats.
Générez les certificats SSL.
sudo certbot certonly --webroot -w /usr/share/nginx/html -d ci.example.com
Les certificats générés sont susceptibles d'être stockés dans le /etc/letsencrypt/live/ci.example.com/
répertoire. Le certificat SSL sera stocké sous fullchain.pem
et la clé privée sera stockée sous privkey.pem
.
Les certificats Let's Encrypt expirent dans 90 jours, il est donc recommandé de configurer le renouvellement automatique des certificats à l'aide des tâches Cron.
Ouvrez le fichier de tâche cron pour l' root
utilisateur.
sudo crontab -e
Ajoutez la ligne suivante à la fin du fichier.
30 5 * * * /usr/bin/certbot renew --quiet
La tâche cron ci-dessus s'exécutera tous les jours à 5h30. Si le certificat doit expirer, il les renouvellera automatiquement.
Maintenant, changez le fichier de configuration par défaut de Nginx pour supprimer la default_server
ligne.
sudo sed -i 's/default_server//g' /etc/nginx/nginx.conf
Créez un nouveau fichier de configuration pour l'interface Web de Buildbot.
sudo nano /etc/nginx/conf.d/buildbot.conf
Remplissez le fichier.
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;
}
}
Recherchez les erreurs dans le nouveau fichier de configuration.
sudo nginx -t
Si vous voyez la sortie suivante, la configuration est sans erreur.
[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 vous avez reçu une sorte d'erreur, assurez-vous de vérifier le chemin d'accès aux certificats SSL. Redémarrez le serveur Web Nginx pour implémenter le changement de configuration.
sudo systemctl restart nginx
Ouvrez le fichier de configuration Buildmaster.
sudo su buildbot -c "nano /home/buildbot/master/master.cfg"
Recherchez la ligne suivante.
c['buildbotURL'] = "http://192.168.1.1:8010/"
Modifiez l'URL en fonction du nom de domaine que vous utilisez.
c['buildbotURL'] = "https://ci.example.com/"
Redémarrez le service maître Buildbot.
sudo systemctl restart buildbot
Vous pouvez maintenant accéder au tableau de bord Buildbot à l'adresse https://ci.example.com
. Vous verrez que les connexions à Buildbot sont désormais sécurisées avec SSL.
Connectez-vous à l'aide des informations d'identification de l'administrateur et ajoutez votre premier pipeline pour commencer à créer votre application.
Vous utilisez un système différent? MODX Revolution est un système de gestion de contenu (CMS) de niveau entreprise rapide, flexible, évolutif, gratuit et open source écrit i
Vultr vous offre une connectivité réseau privée impressionnante pour les serveurs fonctionnant au même endroit. Mais parfois, vous voulez deux serveurs dans des pays différents
Vous utilisez un système différent? Introduction CyberPanel est lun des premiers panneaux de contrôle du marché à la fois open source et utilisant OpenLiteSpeed. Quest-ce que
Vous utilisez un système différent? ESpeak peut générer des fichiers audio de synthèse vocale (TTS). Ceux-ci peuvent être utiles pour de nombreuses raisons, telles que la création de votre propre Turin
Vous utilisez un système différent? Thelia est un outil open source pour la création de sites Web de commerce électronique et la gestion de contenu en ligne, écrit en PHP. Code source Thelia i
BBR (Bottleneck Bandwidth and RTT) est un nouvel algorithme de contrôle de congestion qui est contribué à la pile TCP du noyau Linux par Google. Avec BBR en place,
YOURLS (Your Own URL Shortener) est une application open source de raccourcissement dURL et danalyse de données. Dans cet article, nous couvrirons le processus dinstallation
Vous utilisez un système différent? RTMP est idéal pour diffuser du contenu en direct. Lorsque RTMP est associé à FFmpeg, les flux peuvent être convertis en différentes qualités. Vultr i
LimeSurvey est un outil de sondage en ligne gratuit et open source qui est largement utilisé pour publier des sondages en ligne et recueillir des commentaires sur les sondages. Dans cet article, je vais
Introduction Java est une plate-forme logicielle populaire qui vous permet de développer et dexécuter des applications et des applets Java dans divers environnements matériels. Il y a
Vous utilisez un système différent? Le forum Vanilla est une application de forum open source écrite en PHP. Il est entièrement personnalisable, facile à utiliser et prend en charge externa
Vous utilisez un système différent? Netdata est une étoile montante dans le domaine de la surveillance des métriques système en temps réel. Par rapport à dautres outils du même type, Netdata:
Dans ce didacticiel, découvrez comment configurer un serveur multijoueur Just Cause 2. Prérequis Veuillez vous assurer que le système est entièrement mis à jour avant de commencer
Vous utilisez un système différent? Dans ce tutoriel, je vais vous expliquer comment configurer un serveur Starbound sur CentOS 7. Prérequis Vous devez posséder ce jeu sur vous
ZNC est un videur IRC gratuit et open-source qui reste connecté en permanence à un réseau afin que les clients puissent recevoir des messages envoyés lorsquils sont hors ligne. Thi
Django est un framework Python populaire pour lécriture dapplications Web. Avec Django, vous pouvez créer des applications plus rapidement, sans réinventer la roue. Si tu veux
ionCube Loader est une extension PHP qui permet à un serveur Web dexécuter des fichiers PHP qui ont été encodés à laide dionCube Encoder et qui est requis pour exécuter e
Vous utilisez un système différent? Reader Self 3.5 est un lecteur RSS auto-hébergé simple et flexible, gratuit et open source et une alternative à Google Reader. Reader Sel
Introduction Dans ce tutoriel, installez bien PufferPanel sur notre Vultr VPS. PufferPanel est un panneau de contrôle open source et gratuit pour vous gérer
Vous utilisez un système différent? Introduction BoltWire est un système de gestion de contenu gratuit et léger écrit en PHP. Comparé à la plupart des autres gestionnaires de contenu
Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau
ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.
Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+
Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.
Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus
13 outils commerciaux d'extraction de données de Big Data
Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true
Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.
Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1
L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.