Installation et configuration des outils de développement courants

Gestionnaire de paquets Python : Conda

Pour installer Conda sur CentOS, téléchargez le script d'installation de Miniconda :

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
chmod +x Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

Activez Conda en naviguant vers le répertoire d'installation :

cd /root/miniconda3/bin
source activate

Commandes de base pour la gestion des environnements virtuels :

conda create --name mon_projet python=3.8
conda activate mon_projet
conda deactivate
conda info --envs

Gestionnaire de versions Node.js : NVM

Clonez le dépôt NVM et configurez le chargement automatique dans votre shell :

git clone git://github.com/creationix/nvm.git ~/.nvm
echo "source ~/.nvm/nvm.sh" >> ~/.bashrc
source ~/.bashrc

Installez et utilisez une version spécifique de Node.js :

nvm list-remote
nvm install v12.18.0
nvm use v12.18.0
nvm alias default v12.18.0

Pour accélérer les installations npm, vous pouvez spécifier un registre alternatif :

npm install electron@8.2.0 --registry=https://registry.npmmirror.com

Superviseur de processus : Supervisor

Installez Supervisor via yum sur CentOS :

yum install epel-release
yum install supervisor
supervisord -c /etc/supervisord.conf
supervisorctl status

Exemple de configuration pour une application Node.js dans /etc/supervisord.d/app.ini :

[program:api_service]
command=/root/.nvm/versions/node/v12.18.0/bin/node server.js
environment=PATH=/root/.nvm/versions/node/v12.18.0/bin,APP_PORT=%(process_num)d,NODE_ENV=production
process_name=%(program_name)s_worker_%(process_num)d
numprocs=2
numprocs_start=4001
directory=/var/www/api_service
stopsignal=TERM
user=deploy
redirect_stderr=true
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10
stdout_logfile=/var/log/supervisor/api_service.log

Serveur Web : Nginx

Installation et gestion du service Nginx avec systemd :

yum install nginx
systemctl start nginx.service
systemctl enable nginx.service
systemctl status nginx.service

Alternativement, vous pouvez utiliser les commandes natives de Nginx :

nginx -c /etc/nginx/nginx.conf
nginx -s reload
nginx -s stop

Configuration d'un reverse proxy dans /etc/nginx/conf.d/api.conf :

upstream api_backend {
    least_conn;
    server 127.0.0.1:4001 max_fails=2 fail_timeout=15;
    server 127.0.0.1:4002 max_fails=2 fail_timeout=15;
}

server {
    listen 8080 default_server;
    server_name _;

    access_log /var/log/nginx/api_access.log main;
    error_log  /var/log/nginx/api_error.log warn;

    proxy_pass_header Server;
    proxy_set_header Host $http_host;
    proxy_redirect off;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Scheme $scheme;
    
    location / {
        proxy_pass http://api_backend;
    }
}

Pour configurer le HTTPS avec un certificat SSL, ajoutez la configuration suivante dans le répertoire de Nginx :

server {
    listen 80;
    server_name  app.example.com;
    
    location /web/ {
        proxy_pass http://10.0.0.1:8000/;
    }
    location /api/ {
        proxy_pass http://10.0.0.1:8001/;
    }
}

server {
    listen 443 ssl;
    server_name app.example.com;

    ssl_certificate      /etc/nginx/ssl/app.example.com.crt;
    ssl_certificate_key  /etc/nginx/ssl/app.example.com.key;

    ssl_session_cache    shared:SSL:2m;
    ssl_session_timeout  10m;

    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers  on;

    location /web/ {
        proxy_pass https://10.0.0.1:8000/;
    }
    location /api/ {
        proxy_pass https://10.0.0.1:8001/;
    }
}

Documentation d'API : Swagger UI

Pour exécuter une instance locale de Swagger UI :

git clone https://github.com/swagger-api/swagger-ui.git
cd swagger-ui
npm install
npm run build
npm start

Vous pouvez également utiliser un serveur HTTP statique après avoir installé le package globalement :

npm install -g http-server
http-server http://localhost:8080/dist/index.html

Outils pour Windows

  • Gestionnaire de services : NSSM (Non-Sucking Service Manager)
  • Client SQLite : DB Browser for SQLite
  • Client MySQL : HeidiSQL
  • Éditeur d'icônes : SIB ICON Studio
  • Client Git : SourceTree

Étiquettes: conda nvm supervisor nginx Swagger

Publié le 8 août à 18h58