<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Louis-Philippe Véronneau</title><link href="https://veronneau.org/" rel="alternate"></link><link href="https://veronneau.org/feeds/languages/fr.atom.xml" rel="self"></link><id>https://veronneau.org/</id><updated>2026-02-12T00:00:00-05:00</updated><entry><title>Contrecœur, Ray-Mont, les conteneurs et nous</title><link href="https://veronneau.org/contrecoeur-ray-mont-les-conteneurs-et-nous-fr.html" rel="alternate"></link><published>2026-02-12T00:00:00-05:00</published><updated>2026-02-12T00:00:00-05:00</updated><author><name>Louis-Philippe Véronneau</name></author><id>tag:veronneau.org,2026-02-12:/contrecoeur-ray-mont-les-conteneurs-et-nous-fr.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Voici un texte que j'ai écris pour un numéro à paraître du journal&lt;/em&gt; &lt;a href="https://resisteretfleurir.info/documentation/"&gt;Résister
et fleurir&lt;/a&gt;&lt;em&gt;. J'écris rarement en français sur mon blog (qui est
principalement destiné à un auditoire international), mais cela m'arrive quand
même parfois!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Annoncé pour la première fois en 2014, le projet d'expansion du Port
de …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Voici un texte que j'ai écris pour un numéro à paraître du journal&lt;/em&gt; &lt;a href="https://resisteretfleurir.info/documentation/"&gt;Résister
et fleurir&lt;/a&gt;&lt;em&gt;. J'écris rarement en français sur mon blog (qui est
principalement destiné à un auditoire international), mais cela m'arrive quand
même parfois!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Annoncé pour la première fois en 2014, le projet d'expansion du Port
de Montréal à Contrecœur a fait couler beaucoup d'encre dans les dernières
années.&lt;/p&gt;
&lt;p&gt;En effet, il est certain que les travaux en eau et la construction du nouveau
terminal portuaire causeront des dommages environnementaux irréparables —
pensons notamment au chevalier cuivré, qui verra son habitat essentiel saccagé.
Cependant, ce projet soulève également des questions importantes quant à sa
viabilité économique et à l'avenir des installations portuaires dans la grande
région de Montréal.&lt;/p&gt;
&lt;h1&gt;Un contexte économique mondial qui a changé&lt;/h1&gt;
&lt;p&gt;Si le projet de Contrecœur pouvait avoir un certain sens pour les acteurs
économiques lorsqu'il a été lancé en 2014, force est de constater que le
contexte économique mondial a depuis changé. En effet, le Port de Montréal vit
deux pressions qui fragilisent sa place comme acteur portuaire de premier plan
en Amérique du Nord.&lt;/p&gt;
&lt;p&gt;Premièrement, les chaînes d'approvisionnement internationales ont été fortement
perturbées en 2019 à la suite de la pandémie et le commerce international ne
s'en est jamais totalement remis. En effet, cet événement majeur a mis en
lumière la fragilité de nos économies et beaucoup de pays ont compris le danger
de dépendre (parfois substantiellement) de pays étrangers pour leurs besoins de
base, comme l'alimentation.&lt;/p&gt;
&lt;p&gt;Avec le retour de Donald Trump aux États-Unis, il est clair que nous vivons
présentement la fin du &lt;em&gt;statu quo&lt;/em&gt; pro-mondialisation qui régnait depuis les
années 80. Si la remise en question de notre partenariat économique avec les
États-Unis, dans un élan de diversification économique, aurait pu avoir comme
effet l'augmentation des activités portuaires à destination de l'Europe et de
l'Asie, il semble pour l'instant que cela n'a pas eu d'effet majeur dans le
volume de marchandises transitant par le Port de Montréal.&lt;/p&gt;
&lt;p&gt;&lt;img src="/media/blog/2026-02-12/evolution.png" width="90%" style="margin-left:5%" title="Évolution du volume de marchandises transporté par le Port de Montréal" alt="Évolution du volume de marchandises transporté par le Port de Montréal"&gt;&lt;/p&gt;
&lt;p&gt;En second lieu, le Port de Montréal ne répond plus aux standards internationaux
en terme d'infrastructures maritimes, principalement à cause du niveau d'eau
insuffisant dans le fleuve à la hauteur de Montréal. Tel que noté dans un
&lt;a href="https://snapquebec.org/wp-content/uploads/2026/01/Rapport_Evaluation-des-enjeux-economiques-strategique-et-environnementaux-du-projet-dexpansion-du-port-de-Montreal-a-Contrecoeur_SNAPQUEBEC_Janvier2026-2.pdf"&gt;rapport scientifique récent&lt;/a&gt; demandé par la Société pour la
nature et les parcs du Canada – section Québec (SNAP-Québec) :&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Le tirant d'eau du fleuve Saint-Laurent, qui atteint au maximum environ 11
mètres, limite l'accès à des navires de 4 500 EVP&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;. Pour rivaliser avec
les ports de Halifax ou de New York, il faudrait pouvoir accueillir des
navires d'au moins 5 500 à 6 000 EVP. Cette contrainte physique ne peut pas
être levée sans un dragage majeur. »&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ainsi, alors que le Port est limité à des navires de 4 500 EVP, ces bateaux ne
forment plus que 30 % de la capacité mondiale de transport maritime. En effet,
les plus gros bateaux, de classe &lt;em&gt;Ultra Large Container Vessels,&lt;/em&gt; peuvent
désormais transporter plus de 18 000 EVP.&lt;/p&gt;
&lt;p&gt;Tel que présenté dans le graphique ci-dessous, l'effet conjoint de ces deux
pressions cause une diminution marquée du volume de marchandises conteneurisées
et une stagnation de celui des marchandises solides transitant par le Port de
Montréal.&lt;/p&gt;
&lt;h1&gt;Un transfert de capacité plutôt qu'une augmentation nette&lt;/h1&gt;
&lt;p&gt;Quand on comprend le contexte économique dans lequel s'inscrit ce projet, les
travaux à Contrecœur peuvent sembler étonnants. Si le nombre de conteneurs est
au mieux appelé à rester stable dans les prochaines années, pourquoi le Port de
Montréal souhaite-il augmenter sa capacité de près de 60 % ?&lt;/p&gt;
&lt;p&gt;Dans le rapport de la SNAP-Québec mentionné plus haut, les chercheurs Henri
Chevaliers et Éric Pineault avancent une piste de solution : l'administration
portuaire s'est trompée dans ses calculs et le projet est déjà trop avancé pour
revenir en arrière.&lt;/p&gt;
&lt;p&gt;Bien que crédible, cette analyse paraît tout de même sommaire. Et si, plutôt
que d'envisager le projet à Contrecœur comme une manière d'augmenter son volume
de marchandises, le Port de Montréal souhaitait plutôt ... y déplacer une
partie de sa capacité ?&lt;/p&gt;
&lt;p&gt;Selon son rapport annuel 2024, 37 % des coûts totaux du Port sont des dépenses
en main-d'œuvre. Pire encore, ces coûts sont la seule variable opérationnelle
que l'entreprise ne contrôle pas directement. En effet, si elle peut continuer
à investir des capitaux pour optimiser ses infrastructures, le rapport de force
du Syndicat des débardeurs, bien connu pour être très combatif, rend le
contrôle des coûts de main-d'œuvre complexe et imprévisible. Les grèves de 10
jours en 2020, 5 jours en 2022 et de 4 jours en 2024 lui ont causé des ennuis
financiers importants, en plus de nuire à sa valeur réputationnelle à
l'international.&lt;/p&gt;
&lt;p&gt;Pour éviter ce genre de désagrément, il est fort probable que le nouveau
terminal de Contrecœur soit presque entièrement automatisé. En procédant de la
sorte, le Port réduirait fortement ses besoins en main‑d'œuvre et augmenterait
son rapport de force face au Syndicat des débardeurs, grâce à la menace de
déplacer toujours plus de capacité vers des installations ne requérant pas
leurs services.&lt;/p&gt;
&lt;p&gt;Sans Contrecœur, ce projet d'automatisation des installations du Port de
Montréal serait difficilement réalisable. En effet, d'un point de vue
technique, ce dernier doit continuer ses opérations et doit s'assurer
de respecter ses contrats de manutention. Automatiser ses terminaux existants à
Montréal serait l'équivalent de remplacer un moteur d'avion en plein vol :
possible, mais techniquement complexe et donc particulièrement coûteux. De
plus, la machinerie nécessaire pour opérer un tel terminal automatisé
augmenterait grandement les nuisances sonores et visuelles, nuisances déjà
souvent intolérables pour le voisinage...&lt;/p&gt;
&lt;p&gt;Notons cependant que l'ouverture d'un nouveau terminal à Contrecœur
n'entraînera pas la fin des activités du Port à Montréal, même à moyen ou à
long terme. En effet, certains clients industriels comme Sucre Lantic ou
Lallemand sont des partenaires du Port de très longue date et lui assurent une
stabilité opérationnelle importante. Les infrastructures de ces clients sont
fortement intégrées aux activités portuaires à Montréal et il serait impensable
d'envisager leur déplacement.&lt;/p&gt;
&lt;p&gt;Finalement, en libérant de l'espace sur ses quais à Montréal, le Port pourrait
continuer d'améliorer ses infrastructures pour les bateaux de croisière, un
secteur qui, malgré ses répercussions environnementales souvent désastreuses, a
connu une croissance mondiale de 16 % depuis 2019.&lt;/p&gt;
&lt;h1&gt;Ray-Mont Logistiques, entre l'arbre et l'écorce&lt;/h1&gt;
&lt;p&gt;Qu'en est-il donc de Ray-Mont Logistiques dans tout cela ? À la lumière de
cette analyse, en restant à Montréal, Charles Raymond risque littéralement de
« manquer le bateau » et d'être pris avec des infrastructures portuaires moins
intéressantes que celles auxquelles il pourrait avoir accès à Contrecœur.&lt;/p&gt;
&lt;p&gt;Comme les investissements de l'entreprise sur le site d'Assomption Sud sont
encore pour l'instant minimales en comparaison avec son projet final de phase 2
(augmentation importante de la surface asphaltée, chemins de fer, élévateurs à
grain, infrastructures d'ensachement, etc.), il est encore le temps pour elle
de lever l'ancre.&lt;/p&gt;
&lt;p&gt;De plus, la réglementation en place limitant ses heures d'opération de 7h du
matin à 19h le soir est une épine majeure dans son pied et freine ses
perspectives rentabilité futures.&lt;/p&gt;
&lt;p&gt;Le déménagement de RML serait cependant une victoire en demi-teinte, car elle
ne réglerait pas le problème de fond de l'industrialisation croissante de nos
environnements et pérenniserait la destruction des écosystèmes marins et
terrestres à Contrecœur.&lt;/p&gt;
&lt;p&gt;Il semble donc clair que notre stratégie de perturbation des activités de
Ray-Mont Logistiques — tant sur le terrain qu'au niveau des différentes
instances gouvernementales — fonctionne et est plus importante que jamais.
Chaque retard dans les travaux menant à la phase 2 sera une occasion
supplémentaire pour cette entreprise de fermer boutique et d'accepter que le
site choisit dans Hochelaga, ne lui appartiendra jamais réellement.&lt;/p&gt;
&lt;p&gt;De Viauville à Contrecœur, en passant par la forêt magique de Pointe-Aux-Père
et la Grande Tourbière de Blainville, faisons-leur comprendre que nos espaces
de vie ne sont pas à vendre, car en définitive, ils n'appartiennent à personne.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;« Équivalent vingt pieds », une mesure standard de la capacité en
conteneurs.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="blog"></category><category term="québec"></category><category term="economics"></category></entry><entry><title>Compte-rendu de livre: Santé Inc. Mythes et faillites du privé en santé d'Anne Plourde</title><link href="https://veronneau.org/compte-rendu-de-livre-sante-inc-mythes-et-faillites-du-prive-en-sante-danne-plourde-fr.html" rel="alternate"></link><published>2025-09-18T00:00:00-04:00</published><updated>2025-09-18T00:00:00-04:00</updated><author><name>Louis-Philippe Véronneau</name></author><id>tag:veronneau.org,2025-09-18:/compte-rendu-de-livre-sante-inc-mythes-et-faillites-du-prive-en-sante-danne-plourde-fr.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Voici un texte que j'ai écris pour le numéro de septembre 2025 de mon journal
syndical. J'écris rarement en français sur mon blog (qui est principalement
destiné à un auditoire international), mais cela m'arrive quand même parfois!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Dès l'introduction, Plourde annonce ses couleurs: ce livre s'adresse aux
personnes qui …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Voici un texte que j'ai écris pour le numéro de septembre 2025 de mon journal
syndical. J'écris rarement en français sur mon blog (qui est principalement
destiné à un auditoire international), mais cela m'arrive quand même parfois!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Dès l'introduction, Plourde annonce ses couleurs: ce livre s'adresse aux
personnes qui croient en un système de santé universel, mais qui doutent de la
capacité du système public d'y arriver.&lt;/p&gt;
&lt;p&gt;Dans ce livre, cette dernière s'attaque plus particulièrement à « la 'Santé
Inc.', et donc aux entreprises (qu'il s'agisse de grandes multinationales ou
d'entrepreneurs indépendants) qui mènent leurs activités dans l'objectif d'en
tirer un profit - ce qu'on appelle communément le secteur privé à but lucratif.
» (p.14-15)&lt;/p&gt;
&lt;p&gt;Le livre est divisé en 5 chapitres, qui abordent chacun un mythe.&lt;/p&gt;
&lt;p&gt;&lt;img src="/media/blog/2025-09-18/cover.jpg" width="70%" style="margin-left:15%" title="A picture of the book cover" alt="A picture of the book cover"&gt;&lt;/p&gt;
&lt;h2&gt;Faillite 1: Le privé en santé échoue depuis un siècle&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mythe: le système de santé est essentiellement public, le privé est une
nouveauté.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ce chapitre aborde l'histoire du système de santé au Québec. Plourde affirme
ainsi qu'à partir du XX^e^ siècle, les avancées de la médecine font en sorte
que les hôpitaux deviennent de réels lieux de soins (plutôt que des lieux de
prise en charge des 'indigents')&lt;/p&gt;
&lt;p&gt;En effet, mis à part la tranche de population très pauvre pour qui les soins
sont gratuits, la forte majorité des gens n'ont pas accès aux soins pour des
raisons financières.&lt;/p&gt;
&lt;p&gt;À partir des années 1930, les syndicats réussissent à gagner la mise en place
d'assurances privées sur les milieux de travail. Ce gain initial s'avère en
fait être un échec, car les progrès de la médecine s'accompagnent d'une
explosion des coûts, que les assurances collectives ont bien de la misère à
assumer.&lt;/p&gt;
&lt;p&gt;À partir des années 1950, ce système ne fonctionne plus (il n'a jamais
&lt;em&gt;réellement&lt;/em&gt; fonctionné...) et même les hôpitaux se montrent ouverts à la
création d'une assurance publique universelle.&lt;/p&gt;
&lt;p&gt;Plourde brosse un portrait des services offerts à cette époque et démontre
qu'en fait, que ce soit à cause des coûts ou à cause de la présence de déserts
médicaux dans les quartiers et régions rurales jugées non rentables par le
privé, seuls les riches ont accès aux services de santé.&lt;/p&gt;
&lt;p&gt;C'est dans ce contexte qu'en 1971 la commission Castonguay-Nepveu propose la
mise en place d'une assurance publique et universelle:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« [...] la commission Castonguay-Nepveu recommandait non seulement l'adoption
d'une assurance maladie publique et universelle, mais également la
nationalisation de l'ensemble des services de santé et des services sociaux et
leur intégration dans un système entièrement public. » p.29&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;L'État crée donc les CLSC, dans une optique de soins publics, démocratiques et
holistiques. En plus d'offrir des soins de santé, ces derniers reçoivent comme
mandat l'inclusion démocratique des patient·e·s dans le réseau de santé ainsi
que la lutte contre les enjeux de santé causés par des facteurs comme la
malnutrition, la pollution, l'insalubrité des logements, etc.&lt;/p&gt;
&lt;p&gt;Les nouveaux CLSC sont cependant mis à mal par le refus des médecins
d'abandonner leur statut de travailleurs autonomes et de devenir salarié·e·s.
Suite à d'intenses campagnes de lobbying, l'État accepte finalement qu'ils
restent la seule catégorie de travailleuses et de travailleurs de la santé à
avoir des cabinets privés tout en pouvant bénéficier d'un financement public.
Cette condition vient cependant avec l'impossibilité de travailler au privé.&lt;/p&gt;
&lt;p&gt;Les autres catégories de professionnel·le·s de la santé (psychologues,
dentistes, etc.) peuvent cependant continuer de recevoir du financement privé,
ce qui permet la survie des assurances privées. En effet, à l'instar de la
commission Parent, la commission Castonguay-Nepveu croit qu'il est plus
stratégique d'augmenter graduellement la couverture des soins de santé à
travers les années pour tenter de minimiser le choc fiscal initial. Cela
n'arrivera toutefois jamais.&lt;/p&gt;
&lt;p&gt;Ploudre démontre ainsi que le pourcentage des dépenses privées des ménages dans
le total des dépenses de santé au Québec a en fait augmenté depuis les années
70. En 2021, un ménage moyen dépensait 2897$ en soins privés, pour un total de
19,4 milliards de dollars (25,8% du budget total public-privé en santé). Ce
pourcentage en 1970 était d'environ 20%.&lt;/p&gt;
&lt;p&gt;Preuve de la faillite des CLSC, de nos jours, seul 15% des médecins de famille
y pratiquent. La forte majorité travaillent ainsi dans des cliniques privées,
les GMF.&lt;/p&gt;
&lt;p&gt;La conclusion de ce chapitre est donc que le privé ne peut pas sauver le réseau
de la santé, car il n'a jamais réellement été chassé du réseau!&lt;/p&gt;
&lt;h2&gt;Faillite 2: Le privé en santé échoue à réduire les coûts&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mythe 2: le privé coûte moins cher&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Cela est vrai tant pour le financement privé que pour la prestation privée
des services » p.46&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;L'auteure affirme qu'un problème majeur du régime québécois est le régime privé
d'assurance médicaments, qui entraîne la multiplication des frais de gestion et
brise le pouvoir de négociation collectif dont jouirait un régime public et
universel. Pire encore, il laisse au public les cas les plus coûteux (soit les
pauvres, qui sont statistiquement plus malades que les riches).&lt;/p&gt;
&lt;p&gt;De plus, Plourde note que le marché privé vise le profit et non la promulgation
de soins. Quand le rapport de force des entreprises est important, les prix
montent:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Ainsi, en pleine crise de santé mentale, les tarifs suggérés par l'Ordre
des psychologues du Québec en 2023 étaient 50% plus élevés que ce qui était
affiché sur le site en 2021. » p.49&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Plourde affirme également que lorsque le privé arrive à réaliser certains actes
à coûts plus faibles que le public, c'est parce qu'il rogne sur les conditions
de travail et sur la qualité des services, deux choses qui ne sont pas
désirables.&lt;/p&gt;
&lt;p&gt;À son avis, un facteur majeur dans l'augmentation des coûts en santé est le
fait que les médecins accaparent une partie très importante du budget de la
santé au Québec:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Alors que les médecins ne représentaient que l'équivalent de 6% des
effectifs du réseau, cette profession accaparait à elle seule 15% des
dépenses totales du MSSS en 2021-2022. La même année, les autres employé·e·s
du réseau public, qui constituent donc 94% des effectifs, ont reçu une
rémunération totale équivalent à moins de 30% des dépenses du MSSS.&lt;/p&gt;
&lt;p&gt;La rémunération individuelle moyenne des médecins est de près de 400 000$ par
année, ce qui est 6,4 fois plus élevé que la rémunération moyenne des autres
employé·e·s du réseau, et 8,2 fois plus que le revenu d'emploi moyen de
l'ensemble des travailleuses et travailleurs du Québec. » p.61&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Plourde termine le chapitre en démontrant que les expériences faites sur les
coûts en clinique privée au Québec et ailleurs au Canada démontrent
systématiquement que le privé coûte substantiellement plus cher.&lt;/p&gt;
&lt;h2&gt;Faillite 3: Le privé en santé échoue à être efficace&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mythe 3: le privé est plus efficace&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« la Commission Castonguay-Nepveu ne s'est pas contentée de recommander la
nationalisation des services de santé: elle a également recommandé leur
démocratisation. » p.73&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Lors de la création des CLSC, les conseils d'administration sont formés de
patient·e·s et de membres de la communauté. L'idée de démocratisation de la
santé est alors explicite:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Cette petite révolution représentait non seulement une importante perte de
pouvoir pour les élites économiques, mais elle offrait aussi à la population
des outils pour résister aux assauts que ces mêmes élites n'allaient pas
tarder à lancer contre le nouveau système public. » p.74&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Malheureusement, cette vision de la santé est mise à mal par l'imposition de
pratiques de gestion néolibérales:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Loin d'améliorer l'efficacité des services, ce processus de déconnexion
grandissante avec le terrain aboutit donc, en contradiction complète avec les
recommandations de la Commission Castonguay-Nepveu, à la destruction
progressive des capacités du réseau à connaître les besoins réels de la
population et d'y répondre adéquatement. » p.77&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Conséquence de cette déconnexion, cette bureaucratisation accrue fait augmenter
les coûts. Plourde affirme par exemple que les gens qui prodiguent des soins à
domicile passent près de 70% de leur temps de travail à effectuer des tâches
administratives.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Cette centralisation des pouvoir promue par les nouvelle gestion publique
et le milieu des affaires s'accompagne nécessairement d'une bureaucratisation
des services, puisque, au fur et à mesure que les gestionnaires détenteurs
d'un pouvoir réel s'éloignent du terrain, des mesures de contrôle
administratifs de plus en plus lourdes et complexes doivent être développées.
Celles-ci prennent par exemple la forme d'exigences de reddition de comptes
statistiques auprès du personnel qui dispense les soins et les services. »
p.76&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Un autre exemple de bureaucratisation du système de santé est le financement à
l'acte:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Durant les années 1980, environ 600 actes pouvaient faire l'objet d'une
facturation de la part des médecins auprès de la Régie de l'assurance malade.
En une trentaine d'années, ce nombre déjà faramineux est passé à ... 11 000!
La gestion de la rémunération médicale est si lourde et si complexe que les
médecins eux-mêmes peinent désormais à s'y retrouver dans leur propre
facturation et doivent faire appel à des firmes spécialisées pour accomplir
ces tâches. » p.80&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Pire encore:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« [...] le financement à l'activité a l'avantage considérable de mettre un
prix précis sur chaque activité hospitalière et, du même coup, de faciliter
leur achat et leur vente (et donc leur privatisation). » p.83&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Plourde s'attarde par la suite à prouver l'inefficacité de GMF. Alors que ces
cliniques privées ont été créés pour désengorger les urgences en offrant de plus
longues plages horaires, cela ne semble pas avoir eu l'effet désiré. En effet,
depuis leur création, les GMF n'ont jamais atteint les cibles de prise en
charge de patient·e·s imposées par les gouvernements.&lt;/p&gt;
&lt;p&gt;Comme les GMF sont incapables (lire: ils refusent) de prendre en charge des
patient·e·s dans des plages horaires considérées comme peu attrayantes par les
médecins (tard le soir et les fins de semaine), il leur est permis de signer des
contrats avec d'autres organismes pour que ces derniers offrent cette prise en
charge à leur place. Ainsi:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« En 2022, 41% des GMF avaient convenu de telles ententes et offraient donc
une quantité d'heures de services inférieures à celle prévue par le programme
GMF. Mais le plus surprenant et le plus choquant, c'est qu'au moins 37% de
ces ententes ont été conclues avec les services d'urgence d'un hôpital! »
p.87-88&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Malgré ces manquants, les GMF continuent néanmoins de recevoir l'ensemble de
leur financement. &lt;/p&gt;
&lt;p&gt;Autre absurdité de ce système: le Ministère a décidé de 'prêter' gratuitement
aux GMF des employé·e·s travaillant dans les CLSC pour combler leurs besoins en
services de travail social et en psychologie:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« À partir de 2016, à la suite d'une directive du ministère en ce sens, une
quantité grandissante de travailleurs sociaux et de travailleuses sociales
ainsi que des psychologues qui pratiquaient jusqu'alors dans les CLSC ont été
mis·e·s à la disposition des GMF, gratuitement, par les établissements
publics. Officiellement, ces professionnel·le·s restent à l'emploi des
établissements publics, mais ils et elles sont placé·e·s sous 'l'autorité
fonctionnelle' des médecins de GMF et pratiquent dans leurs locaux. » p. 88&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Une conséquence encore plus regrettable de ce système est la perte d'accès à
ces services dans les CLSC:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Ainsi, seules les personnes inscrites auprès d'un médecin de GMF ont accès
aux professionnel·le·s qui y sont transféré·e·s par les établissements
publics. Or, plus du tiers de la population du Québec n'a toujours pas cette
chance. » p.89&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Plourde répertorie ainsi une perte de 42% de l'offre de service en travail
social (700 000 heures/an) et de 52% en psychologie (60 000 heures/an) dans les
CLSC dans les dernières années.&lt;/p&gt;
&lt;p&gt;Constatant les problèmes importants des GMF, le gouvernement a par la suite
décidé de favoriser la création de super-GMF, qui offrent des services comme
des radiographies, des prélèvements et doivent servir en théorie de
'mini-urgences'. Plourde démontre cependant qu'en 2017, 62% de ces groupes
n'atteignaient pas le nombre minimal de visites exigées. En 2021, cette
proportion était de 82%.&lt;/p&gt;
&lt;p&gt;Elle constate finalement que pour tenter de remplir leurs quotas, les médecins
de ces super-GMF ont tendance à délaisser leurs propres patient·e·s, qui
doivent alors se tourner vers l'urgence ou d'autres super-GMF...&lt;/p&gt;
&lt;p&gt;On en comprend donc que le privé n'est pas réellement plus efficace que le
public en santé.&lt;/p&gt;
&lt;h2&gt;Faillite 4: Le privé en santé échoue à désengorger le public&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mythe 4: le privé aide à réduire les listes d'attente dans le public&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« [...] dans les faits, le privé est plutôt un compétiteur féroce qui
vampirise les ressources du public et réduit sa capacité à répondre aux
besoins de la population » p. 95&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;C'est surtout le cas car la main d'œuvre en santé est finie et que le privé
tend donc à 'voler' des travailleuses et des travailleurs qui iraient autrement
au public. En général, si le privé arrive à être plus attractif, c'est parce
qu'il est en mesure d'offrir de meilleurs salaires que le public et parce qu'il
n'a pas besoin d'offrir des services 24h/24 7j/7.&lt;/p&gt;
&lt;p&gt;En 1987, près de 60% des personnes dans le domaine de la santé et de
l'assistance sociale travaillait au public. En 2019, ce n'était plus le cas que
de 50% des travailleurs et travailleuses de ce domaine.&lt;/p&gt;
&lt;p&gt;Selon Plourde, cette situation est causée par trois problèmes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Le désengagement de l'État et les coupures budgétaires&lt;/li&gt;
&lt;li&gt;La détérioration des conditions de travail&lt;/li&gt;
&lt;li&gt;Le fait que l'État paie plus cher pour un même service offert au privé qu'au
   public&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Cette dernière parle ainsi de 'ponts d'or' du public vers le privé pour décrire
cette situation.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Les difficultés à réduire les listes d'attente pour le type de procédures
qui sont privatisées dans ces cliniques ne sont pas causées par des manques
d'équipement ou de salles d'opération dans les hôpitaux publics. Elles sont
causées par le manque de disponibilité du personnel, problème majeur qui
force les hôpitaux à sous-utiliser leurs salles d'opération. » p.104&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Face à ces problèmes, l'auteure remet de l'avant le fait que les barrières
mises en place pour empêcher que les médecins ne travaillent au privé
fonctionnent. En effet, très peu de médecins travaillent au public (~4%) alors
qu'au contraire la pratique privé-publique est très populaire chez les
physiothérapeutes ou les psychologues. Ces barrières pour empêcher la double
pratique devraient donc être graduellement mises en place pour les autres
professions, dans une optique de renationalisation des soins.&lt;/p&gt;
&lt;p&gt;En effet, alors que de 2010 à 2020 le nombre de psychologues au Québec a
augmenté de 5,5%, la crise de l'accessibilité s'est aggravée. Alors qu'en
2010, 28% des psychologues travaillaient dans la santé publique, en 2020,
elles et ils n'étaient plus 23% à le faire. Pendant ce temps, la pratique
privée a récupéré ces gens.&lt;/p&gt;
&lt;p&gt;Plourde termine ce chapitre en mettant en garde contre la télémédecine, qui,
n'étant pas offerte au public, est un service qui peut être offert par les
médecins sans remettre en cause leur appartenance au réseau public. Elle craint
en effet que cette pratique mixte ne prenne de l'ampleur, au profit du privé.&lt;/p&gt;
&lt;h2&gt;Faillite 5: Le privé en santé échoue à préserver la qualité et l'équité&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Mythe 5: le privé améliore la qualité des soins sans nuire à l'équité dans
l'accès aux services&lt;/strong&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« On nous fait croire également que lorsque des personnes mieux nanties
paient pour avoir accès plus rapidement aux services dans le secteur privé,
elles libèrent de la place dans le secteur public, facilitant ainsi l'accès
pour les personnes qui n'ont pas les moyens de payer pour des services
privés. » p. 124&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Dans ce dernier chapitre, Plourde affirme que la décision de privatiser encore
plus notre système de santé est une entreprise d'abord et avant tout idéologique.
En effet:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« [...] une revue de la littérature internationale a montré en 2014 que la
mortalité et les coûts des services étaient plus élevés dans les
établissements de santé privé à but lucratif que dans les organismes sans but
lucratif. » p. 126&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Ces effets sont connus depuis longtemps déjà, le Québec n'étant pas le premier
à s'engager dans ce chemin. Dès 1990, l'Italie privatise plusieurs services de
santé et devient un contre-exemple marqué. On constate ainsi que plus le
pourcentage de services assurés par le privé est grand, plus la mortalité des
patient·e·s est importante. Des constats similaires ont été faits suite aux
privatisations en santé en Angleterre en 2013 et en 2020 en
Colombie-Britannique.&lt;/p&gt;
&lt;p&gt;Selon Plourde, cette surmortalité est le résultat de la création d'un système à
deux vitesses. En effet, alors que statistiquement les personnes plus aisées
sont plus en santé, grâce au système privé, elles ont accès à des soins plus
rapidement. À l'inverse, les personnes les plus pauvres sont obligées de se
retourner vers le système public, définancé au profit du privé.&lt;/p&gt;
&lt;p&gt;On en revient donc à la conclusion générale que:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;« Traiter la maladie comme une source de profits ne conduit pas à
l'amélioration de la santé et des services, bien au contraire. Persévérer
dans la voie néfaste d'une privatisation accrue des services serait donc une
grave erreur. » p. 154&lt;/p&gt;
&lt;/blockquote&gt;</content><category term="blog"></category><category term="québec"></category><category term="economics"></category><category term="book"></category></entry><entry><title>Cher Hydro-Québec: le Quartier latin mérite mieux</title><link href="https://veronneau.org/cher-hydro-quebec-le-quartier-latin-merite-mieux-fr.html" rel="alternate"></link><published>2025-04-08T00:00:00-04:00</published><updated>2025-04-08T00:00:00-04:00</updated><author><name>Louis-Philippe Véronneau</name></author><id>tag:veronneau.org,2025-04-08:/cher-hydro-quebec-le-quartier-latin-merite-mieux-fr.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Voici un texte que j'ai écris pour le numéro d'avril 2025 de mon journal
syndical. J'écris rarement en français sur mon blog (qui est principalement
destiné à un auditoire international), mais cela m'arrive quand même parfois!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src="/media/blog/2025-04-08/haut.jpg" width="70%" style="margin-left:15%" title="Vue de haut de l'emprise du nouveau poste de transformation électrique, coin Berri et Ontario" alt="Vue de haut de l'emprise du nouveau poste de transformation électrique, coin Berri et Ontario"&gt;&lt;/p&gt;
&lt;p&gt;Mai 2024. Le Devoir annonce qu'Hydro-Québec s'est entendue avec Bibliothèques
et Archives nationales du …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Voici un texte que j'ai écris pour le numéro d'avril 2025 de mon journal
syndical. J'écris rarement en français sur mon blog (qui est principalement
destiné à un auditoire international), mais cela m'arrive quand même parfois!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;img src="/media/blog/2025-04-08/haut.jpg" width="70%" style="margin-left:15%" title="Vue de haut de l'emprise du nouveau poste de transformation électrique, coin Berri et Ontario" alt="Vue de haut de l'emprise du nouveau poste de transformation électrique, coin Berri et Ontario"&gt;&lt;/p&gt;
&lt;p&gt;Mai 2024. Le Devoir annonce qu'Hydro-Québec s'est entendue avec Bibliothèques
et Archives nationales du Québec pour l'achat du terrain coin Berri et Ontario
pour la construction d'un nouveau poste de transformation électrique. Berri-2,
un poste de 315 000 volts, remplacera le jardin de lecture et le terrain
gazonné face à l'Îlot Voyageur&lt;sup id="fnref:achat"&gt;&lt;a class="footnote-ref" href="#fn:achat"&gt;1&lt;/a&gt;&lt;/sup&gt;. Exit, la statue de Danny Laferrière.&lt;/p&gt;
&lt;p&gt;On nous apprend ainsi qu'un bâtiment plus grand que la Grande Bibliothèque —
sans fenêtres — s'érigera sur ce terrain d'ici 2033, entrainant la perte d'un
des derniers espaces verts du Quartier latin. BAnQ, mise à genoux par plus
d'une décennie de désinvestissement et de négligence de la part de Québec, n'a
pas d'autre choix que d'accepter. La CAQ lui a en effet confié le mandat de
revitaliser l'ancienne bibliothèque Saint-Sulpice, sur Saint-Denis, sans
toutefois lui accorder les budgets nécessaires pour le faire.&lt;/p&gt;
&lt;p&gt;La vente de ce terrain pour 22 millions de dollars, c'est pour BAnQ
l'équivalent parapublic d'aller au Pawn Shop vendre sa guitare pour payer son
loyer. Tout le monde constate l'humiliation imposée à l'institution, même si sa
directrice, Marie Grégoire, ancienne bonze de l'Action démocratique du Québec,
s'en cache bien. Après tout, défendre « une institution d'avant-garde et de
référence vouée à l'enrichissement du savoir et de la culture »&lt;sup id="fnref:banq"&gt;&lt;a class="footnote-ref" href="#fn:banq"&gt;2&lt;/a&gt;&lt;/sup&gt;, c'est
probablement le travail d'un·e autre.&lt;/p&gt;
&lt;p style="text-align: center"&gt;* * *&lt;/p&gt;

&lt;p&gt;Comme beaucoup d'autres québécois·e·s, j'entretiens avec Hydro-Québec une
relation ambigüe.&lt;/p&gt;
&lt;p&gt;Symbole inspirant d'une période de prise en main collective face aux diktats du
privé — « Maintenant ou jamais! Maîtres chez nous » — Hydro-Québec
représente également pour moi notre arrogance collective vis à vis des question
autochtones.&lt;/p&gt;
&lt;p&gt;En définitive, nous n'avons pas su bâtir cette « relation de nation à nations »
tant de fois promise, jamais réalisée. Cette arrogance, que l'on voit encore
chez Hydro-Québec dans ses projets d'infrastructure, elle provient de notre
refus d'admettre que, nous aussi, nous étions et sommes encore actrices et
acteurs de ce colonialisme destructeur qui ravage les Premières Nations, les
Métis et les Inuit au Québec et au Canada…&lt;/p&gt;
&lt;p&gt;Je m'égare ici peut-être un peu du sujet principal de cet article, mais c'est à
mon avis un détour nécessaire. L'attitude de notre chère société d'État dans ce
dossier n'est pas nouvelle et doit être replacée dans un contexte plus large.&lt;/p&gt;
&lt;p&gt;Quand nous lui demandons plus de transparence et qu'elle nous ignore, quand
nous tentons de lui faire comprendre que ses décisions mettent en péril nos
milieux de vie et d'étude et qu'elle nous répond “qu'elle n'a pas le choix”,
elle emploie somme toute les mêmes tactiques que celles utilisées pour
déposséder les nations autochtones au Québec de leurs terres, de leurs lacs et
de leurs rivières. Les mêmes tactiques, moins la police et la violence
physique.&lt;/p&gt;
&lt;p style="text-align: center"&gt;* * *&lt;/p&gt;

&lt;p&gt;&lt;img src="/media/blog/2025-04-08/boite.jpg" width="70%" style="margin-left:15%" title="Estimation de la volumétrie du futur poste de transformation électrique" alt="Estimation de la volumétrie du futur poste de transformation électrique"&gt;&lt;/p&gt;
&lt;p&gt;Avec raison, le Quartier latin s'enflamme et se mobilise. Lise Bissonnette,
Christine St-Pierre, Phyllis Lambert, Michel Tremblay, Kev Lambert, Nicole
Brossard, l'Association citoyenne du Village de Montréal, le SPUQ-UQÀM, Marie
D. Martel, Carol Couture et bien d'autres dénoncent tour à tour le projet. Dans
les mots de Denys Arcand: « dément. […] C'est du délire ! C'est complètement
fou. »&lt;sup id="fnref:arcand"&gt;&lt;a class="footnote-ref" href="#fn:arcand"&gt;3&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Toujours au front, Manon Massé pose la question qui tue: ne pourrait-on pas
utiliser … d'autres terrains? Le Quartier latin n'est en effet pas étranger aux
lieux laissés à l'abandon pour profiter des effets de la spéculation
immobilière rampante&lt;sup id="fnref:aquilini"&gt;&lt;a class="footnote-ref" href="#fn:aquilini"&gt;4&lt;/a&gt;&lt;/sup&gt;. Réponse: « Hydro-Québec exclut d'emblée
d'exproprier »&lt;sup id="fnref:expropriation"&gt;&lt;a class="footnote-ref" href="#fn:expropriation"&gt;5&lt;/a&gt;&lt;/sup&gt;. Protéger (le capital) et servir (les intérêts
des riches propriétaires des terrains du centre-ville), notre chère société
d'État joue bien ici son rôle de police de l'énergie.&lt;/p&gt;
&lt;p&gt;Hydro-Québec sort donc encore la même cassette: les communs et l'environnement
n'ont pas de valeur et elle n'hésitera pas à les détruire si cela lui permet
d'atteindre ses objectifs de rentabilité. “Énergie verte”, une hypocrisie telle
qu'on croyait entendre la Caisse de dépôt et placement du Québec affirmant
appliquer les plus hauts standards éthiques tout en continuant à &lt;a href="https://cdpq-palestine.info"&gt;investir dans
des entreprises responsables du génocide en Palestine&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Au-delà de la question du terrain, avons-nous vraiment besoin d'un nouveau
poste de transformation électrique plus gros et plus puissant? Si Hydro-Québec
affirme que c'est nécessaire « pour répondre à la croissance de la demande en
électricité du centre-ville », permettons-nous d'en douter. Il suffit en effet
de jeter un coup d'œil le soir à tous ces bâtiments complètement illuminés pour
voir à quel point le gaspillage d'énergie est un véritable leitmotiv québécois.&lt;/p&gt;
&lt;p&gt;Dans les faits, cette “nécessité” est plutôt le résultat d'une course folle
vers l'avant au nom de la “transition écologique”, alors que la solution réelle
à nos problèmes environnementaux est le refus collectif. De la consommation. De
la croissance. Du capitalisme. De la mort collective.&lt;/p&gt;
&lt;p style="text-align: center"&gt;* * *&lt;/p&gt;

&lt;p&gt;Nous apprenions récemment que le Cégep du Vieux Montréal et l'UQÀM
collaboreront pour mettre de l'avant des «&amp;nbsp;actions concertées entourant la
relance du Quartier latin »&lt;sup id="fnref:relance"&gt;&lt;a class="footnote-ref" href="#fn:relance"&gt;6&lt;/a&gt;&lt;/sup&gt;. Pourquoi ne pas en profiter pour
défendre nos communs?&lt;/p&gt;
&lt;p&gt;Il est clair que le conseil d'administration du CVM doit dénoncer le projet de
construction d'un poste de transformation au coin Berri et Ontario et doit
prendre position en faveur d'une rétrocession de ce terrain à BAnQ. La
communauté du Quartier latin organise d'ailleurs une manifestation le samedi 26
avril pour dénoncer le manque d'écoute dans ce dossier.&lt;/p&gt;
&lt;p&gt;Et au-delà de cet enjeu — après tout hyperlocal — continuons de dénoncer
l'attitude d'Hydro-Québec, particulièrement envers les communautés autochtones.
Vérité, réconciliation, transfert de 25% des parts de la société d'État aux
nations autochtones au Québec?&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:achat"&gt;
&lt;p&gt;Jean-François NADEAU et Étienne PARÉ, « Un poste d'Hydro-Québec en plein Quartier latin à quel prix? », &lt;em&gt;Le Devoir&lt;/em&gt; (14 mai 2024), &lt;a href="https://www.ledevoir.com/societe/transports-urbanisme/812870/projet-hydro-quebec-coeur-quartier-latin-tenu-secret"&gt;https://www.ledevoir.com/societe/transports-urbanisme/812870/projet-hydro-quebec-coeur-quartier-latin-tenu-secret&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:achat" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:banq"&gt;
&lt;p&gt;BAnQ, « Déclaration de services aux citoyens (P-5) », 21 juin 2023, &lt;a href="https://www.banq.qc.ca/declaration-de-services-aux-citoyens-p-5/"&gt;https://www.banq.qc.ca/declaration-de-services-aux-citoyens-p-5/&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:banq" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:arcand"&gt;
&lt;p&gt;Jean-François NADEAU, « De grands noms de la culture dénoncent le projet d’Hydro-Québec au Quartier latin », &lt;em&gt;Le Devoir&lt;/em&gt; (17 février 2025), &lt;a href="https://www.ledevoir.com/societe/transports-urbanisme/845293/figures-culture-denoncent-projet-hydro-quebec-quartier-latin"&gt;https://www.ledevoir.com/societe/transports-urbanisme/845293/figures-culture-denoncent-projet-hydro-quebec-quartier-latin&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:arcand" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:aquilini"&gt;
&lt;p&gt;Exemple parmi tant d’autres: cet entrepôt de 140 mètres de long
situé sur Saint-Hubert derrière l'Îlot Voyageur, véritable verrue urbaine
qui pourrie tranquillement depuis 2003 en attendant que son propriétaire,
l’&lt;em&gt;Aquilini Investment Group&lt;/em&gt;, décide finalement d’en faire du logement.&amp;#160;&lt;a class="footnote-backref" href="#fnref:aquilini" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:expropriation"&gt;
&lt;p&gt;Jean-François NADEAU, « De l'électricité dans l'air autour du projet d’Hydro-Québec pour le Quartier latin », &lt;em&gt;Le Devoir&lt;/em&gt; (23 octobre 2024), &lt;a href="https://www.ledevoir.com/societe/transports-urbanisme/822244/electricite-air-autour-projet-hydro-quebec-quartier-latin"&gt;https://www.ledevoir.com/societe/transports-urbanisme/822244/electricite-air-autour-projet-hydro-quebec-quartier-latin&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:expropriation" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:relance"&gt;
&lt;p&gt;Cégep du Vieux Montréal, « Le cégep du Vieux Montréal et l'UQAM signent une entente pour consolider leur partenariat privilégié et explorer de nouvelles pistes de collaboration », 12 février 2025, &lt;a href="https://www.cvm.qc.ca/wp-content/uploads/COMMUNIQUE_cvm-uqam.pdf"&gt;https://www.cvm.qc.ca/wp-content/uploads/COMMUNIQUE_cvm-uqam.pdf&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:relance" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="blog"></category><category term="québec"></category><category term="economics"></category></entry><entry><title>Dette et déficit: jusqu'ici, tout va bien</title><link href="https://veronneau.org/dette-et-deficit-jusquici-tout-va-bien-fr.html" rel="alternate"></link><published>2024-10-08T00:00:00-04:00</published><updated>2024-10-08T00:00:00-04:00</updated><author><name>Louis-Philippe Véronneau</name></author><id>tag:veronneau.org,2024-10-08:/dette-et-deficit-jusquici-tout-va-bien-fr.html</id><summary type="html">&lt;p&gt;&lt;em&gt;Voici un texte que j'ai écris pour le dernier numéro de mon journal syndical.
J'écris rarement en français sur mon blog (qui est principalement destiné à un
auditoire international), mais cela m'arrive quand même parfois!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Dans une chronique publiée le 5 octobre dernier, Gérard Fillion, journaliste
aux affaires économiques à …&lt;/p&gt;</summary><content type="html">&lt;p&gt;&lt;em&gt;Voici un texte que j'ai écris pour le dernier numéro de mon journal syndical.
J'écris rarement en français sur mon blog (qui est principalement destiné à un
auditoire international), mais cela m'arrive quand même parfois!&lt;/em&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Dans une chronique publiée le 5 octobre dernier, Gérard Fillion, journaliste
aux affaires économiques à Radio-Canada, titrait: « Le grand retour de la
rigueur budgétaire ? »&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Nul besoin de ce point d'interrogation, cher Gérard: les coupures que nous
vivons actuellement dans les cégeps et dans nos services publics marquent bel
et bien le retour non pas de la rigueur, mais de &lt;em&gt;l'austérité&lt;/em&gt; budgétaire.&lt;/p&gt;
&lt;p&gt;Dans cet encadré, je vous propose de déconstruire trois mythes économiques
trop souvent utilisés pour justifier des choix politiques sous le couvert de
la nécessité économique.&lt;/p&gt;
&lt;h2&gt;1. Le Québec est trop endetté et doit réduire sa dette&lt;/h2&gt;
&lt;p&gt;Sophisme relativement courant, celui de la peur de la dette gouvernementale a
la peau dure, et ce, malgré le bilan exemplaire du Québec (et du Canada!) en
matière de finances publiques.&lt;/p&gt;
&lt;p&gt;Adoptée en 2006, la &lt;em&gt;Loi sur la réduction de la dette et instituant le Fonds
des générations&lt;/em&gt;&lt;sup id="fnref:loi"&gt;&lt;a class="footnote-ref" href="#fn:loi"&gt;2&lt;/a&gt;&lt;/sup&gt; établissait une cible d'endettement québécoise qui
semblait alors raisonnable: en 2026, nous visions une dette brute équivalente à
45% du PIB.&lt;/p&gt;
&lt;p&gt;Passons outre les subtilités du débat « dette nette vs dette brute » et
regardons ce qu'il en est, près de 20 ans plus tard. Surprise! cette cible a
été atteinte en 2022 et la dette brute se situe maintenant à 41,5% du
PIB&lt;sup id="fnref:2"&gt;&lt;a class="footnote-ref" href="#fn:2"&gt;3&lt;/a&gt;&lt;/sup&gt; &lt;sup id="fnref:3"&gt;&lt;a class="footnote-ref" href="#fn:3"&gt;4&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Péril en la demeure? Décote éventuelle du Québec sur les marchés financiers?
Que nenni!&lt;/p&gt;
&lt;p&gt;Mieux encore, tel que démontré dans le graphique ci-dessous, nous payons
substantiellement moins d'intérêts sur notre dette qu'en 2012&lt;sup id="fnref2:3"&gt;&lt;a class="footnote-ref" href="#fn:3"&gt;4&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Notons de plus « [qu'en] 2023, l'ensemble des agences [de notation] ont
confirmé la cote de crédit du Québec avec perspective stable. »&lt;sup id="fnref:4"&gt;&lt;a class="footnote-ref" href="#fn:4"&gt;5&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="/media/blog/2024-10-08/service_de_la_dette.png" width="70%" style="margin-left:15%" title="Un graphique du service de la dette au Québec" alt="Un graphique du service de la dette au Québec"&gt;&lt;/p&gt;
&lt;p&gt;Que devrions-nous donc faire, maintenant que la cible est atteinte?&lt;/p&gt;
&lt;p&gt;Suite à un appel du Ministère des finances en 2021, l'Association des
économistes québécois, le CIRANO, l'Institut du Québec et la Chaire de
recherche en fiscalité et en finances publiques — des gens qui n'ont pas la
réputation d'être particulièrement à gauche — en ont conclu que « la
réduction de la dette ne devrait pas être un exercice sans fin »&lt;sup id="fnref:5"&gt;&lt;a class="footnote-ref" href="#fn:5"&gt;6&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Bref, la dette du Québec n'est pas du tout inquiétante et mieux vaudrait
investir notre argent ailleurs...&lt;/p&gt;
&lt;h2&gt;2. Le déficit budgétaire force le gouvernement à couper&lt;/h2&gt;
&lt;p&gt;Ligne de communication populaire dans les médias depuis quelques temps, on ne
cesse de répéter que &lt;em&gt;le déficit budgétaire est de 11 milliards!&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;11 milliards, quel gros chiffre, penserez-vous sûrement. Difficile de
s'imaginer ce que cela peut représenter, en termes de finances personnelles.
Plusieurs centaines de maisons? Combien de millions de paires de bas?&lt;/p&gt;
&lt;p&gt;Le hic est justement que les finances gouvernementales &lt;strong&gt;ne sont pas des
finances personnelles&lt;/strong&gt;. Contrairement à vous, le gouvernement est maître de ses
revenus et ses déficits, déficits qui, loin d'être une fatalité, sont causés
par des choix politiques. Nous y reviendrons plus bas au 3&lt;sup&gt;e&lt;/sup&gt; mythe.&lt;/p&gt;
&lt;p&gt;Chose certaine, en ne cessant de répéter ce chiffre magique de 11 milliards,
les journalistes, politicien·ne·s et autres figures publiques commettent notre
second mythe économique. En effet, les finances publiques doivent se
calculer en pourcentage du PIB, et non en argent nominal.&lt;/p&gt;
&lt;p&gt;Si l'on procède de la sorte, c'est parce que le pourcentage du PIB prend en
compte la capacité de payer d'un État. Un État qui a un grand PIB a ainsi plus
de facilité à rembourser une même somme qu'un État qui a un plus petit PIB.&lt;/p&gt;
&lt;p&gt;Voici un exemple simple que j'utilise en classe pour illustrer cette situation.
Si un individu a des revenus annuels de 100$ et une dette de 100$, cette dette
est très importante! Il devrait consacrer 100% de ses revenus à sa dette pour
la rembourser au complet. À l'inverse, une autre personne qui a également une
dette de 100$, mais des revenus annuels de 100 000$ n'est pas très endettée.
Ce 100$ représente pour elle 0,1% de ses revenus.&lt;/p&gt;
&lt;p&gt;Cette même dette de 100$ ne veut donc pas dire grand-chose si on ne la compare
pas aux revenus. C'est la même chose pour les gouvernements. La dette du Québec
est minuscule pour les États-Unis, mais serait très grande pour la municipalité
de Sainte-Élie-de-Caxton.&lt;/p&gt;
&lt;p&gt;Le PIB du Québec prévu pour 2024 est de 579 milliards de dollars. Le déficit
annoncé de 11 milliards ne représente donc qu'un peu moins de 2% du PIB.
Notons que la France anticipe cette année un déficit de 5,6% de son PIB et que
l'Union Européenne considère 3% comme une cible maximale raisonnable&lt;sup id="fnref:6"&gt;&lt;a class="footnote-ref" href="#fn:6"&gt;7&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Quand les médias parlent de finances publiques en termes nominaux (en dollars)
plutôt qu'en pourcentage du PIB, sachez que c'est un exercice de
désinformation, qui vise à créer chez vous un sentiment de peur en vous mettant
face à de très gros chiffres, sans les mettre en contexte.&lt;/p&gt;
&lt;h2&gt;3. Nous manquons d'argent pour nos politiques sociales&lt;/h2&gt;
&lt;p&gt;Dernier mythe économique, cette idée que nous manquons d'argent pour mettre
en place des politique sociales durables et progressistes. Pour reprendre les
doux mots de Pascale Déry, ministre de l'éducation supérieure: « On ne peut pas
tout faire en même temps »&lt;sup id="fnref:7"&gt;&lt;a class="footnote-ref" href="#fn:7"&gt;8&lt;/a&gt;&lt;/sup&gt; !!!&lt;/p&gt;
&lt;p&gt;Ce mythe est peut-être le plus facile des trois à déconstruire. En effet,
les gouvernements semblent constamment nous prouver que leurs décisions
économiques ne tiennent pas la route. Mentionnons en vrac:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;1,7 milliards de perte récurrente suite à la plus récente baisse d'impôts,
  véritable cadeau aux riches&lt;sup id="fnref2:6"&gt;&lt;a class="footnote-ref" href="#fn:6"&gt;7&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;
&lt;li&gt;6,7 milliards de chèques à saveur électorale envoyés à la population en 2022
  sous le couvert de la « lutte à l'inflation »&lt;sup id="fnref:8"&gt;&lt;a class="footnote-ref" href="#fn:8"&gt;9&lt;/a&gt;&lt;/sup&gt; &lt;sup id="fnref:9"&gt;&lt;a class="footnote-ref" href="#fn:9"&gt;10&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;
&lt;li&gt;2 milliards pour Bombardier, une entreprise qui, après avoir mis à pied des
  centaines d'employé·e·s au Québec, a été vendue à rabais l'étranger&lt;sup id="fnref:10"&gt;&lt;a class="footnote-ref" href="#fn:10"&gt;11&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;
&lt;li&gt;1,37 milliards pour Northvolt, une entreprise maintenant en faillite&lt;sup id="fnref:11"&gt;&lt;a class="footnote-ref" href="#fn:11"&gt;12&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;
&lt;li&gt;7 millions pour les Kings, une équipe de hockey détenue par un
  milliardaire&lt;sup id="fnref:12"&gt;&lt;a class="footnote-ref" href="#fn:12"&gt;13&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;
&lt;li&gt;6,5 millions pour la PGA, une association qui génère plus de 2,6 milliards de
  revenus annuels&lt;sup id="fnref:13"&gt;&lt;a class="footnote-ref" href="#fn:13"&gt;14&lt;/a&gt;&lt;/sup&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Difficile à la vue de ces chiffres d'affirmer qu'il manque d'argent pour offrir
un repas par jour à tous les enfants du Québec (1,5 milliards/an&lt;sup id="fnref:14"&gt;&lt;a class="footnote-ref" href="#fn:14"&gt;15&lt;/a&gt;&lt;/sup&gt;)...&lt;/p&gt;
&lt;p&gt;D'un point de vue plus structurel, la Coalition Main Rouge propose depuis des
années un ensemble de mesures pour dégager plus de 14 milliards de dollars en
revoyant nos priorités fiscales&lt;sup id="fnref:15"&gt;&lt;a class="footnote-ref" href="#fn:15"&gt;16&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;
&lt;p&gt;Certaines de ces mesures, comme « Adopter un régime entièrement public
d’assurance médicaments » ou encore « Mettre fin à l'incorporation des médecins
» sont d'une simplicité telle que leur absence ne peut s'expliquer que par une
capture réglementaire de la part des lobbys visés.&lt;/p&gt;
&lt;p&gt;Alors que nos priorités devraient être la faim, la pauvreté, l'éducation, la
santé, l'environnement, etc., on cesse de nous répéter que la richesse est
créée par ceux et celles qui sont déjà riches et qui sauront à leur gré nous
donner généreusement leurs miettes.&lt;/p&gt;
&lt;p&gt;Rejetons cette vision du monde absurde et donnons-nous finalement les moyens de
nos ambitions collectives.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Fillion, G. (2024, 5 octobre). Le grand retour de la rigueur budgétaire?. &lt;em&gt;Radio-Canada&lt;/em&gt;. &lt;a href="https://ici.radio-canada.ca/nouvelle/2109983/retour-rigueur-budgetaire-economie-politique"&gt;https://ici.radio-canada.ca/nouvelle/2109983/retour-rigueur-budgetaire-economie-politique&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:loi"&gt;
&lt;p&gt;Québec. (2006). &lt;em&gt;Loi sur la réduction de la dette et instituant le Fonds des générations, RLRQ c R-2.2.0.1&lt;/em&gt;. &lt;a href="https://www.legisquebec.gouv.qc.ca/fr/document/lc/R-2.2.0.1"&gt;https://www.legisquebec.gouv.qc.ca/fr/document/lc/R-2.2.0.1&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:loi" title="Jump back to footnote 2 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:2"&gt;
&lt;p&gt;Gouvernement du Québec. (2022). Rapport préélectoral sur l'état des finances publiques du Québec. &lt;a href="https://www.finances.gouv.qc.ca/documents/Autres/fr/RapportPreelectoralFR_2022.pdf"&gt;https://www.finances.gouv.qc.ca/documents/Autres/fr/RapportPreelectoralFR_2022.pdf&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:2" title="Jump back to footnote 3 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:3"&gt;
&lt;p&gt;Gouvernement du Québec. (2024). Budget 2024-2025. &lt;a href="https://www.finances.gouv.qc.ca/Budget_et_mise_a_jour/budget/documents/Budget2425_PlanBudgetaire.pdf"&gt;https://www.finances.gouv.qc.ca/Budget_et_mise_a_jour/budget/documents/Budget2425_PlanBudgetaire.pdf&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:3" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref2:3" title="Jump back to footnote 4 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:4"&gt;
&lt;p&gt;Ministère des Finances du Québec. (2024). &lt;em&gt;Dette du Québec et Fonds des générations&lt;/em&gt;. &lt;a href="https://www.finances.gouv.qc.ca/ministere/finances_publiques/dette_quebec_fonds_generations.asp"&gt;https://www.finances.gouv.qc.ca/ministere/finances_publiques/dette_quebec_fonds_generations.asp&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:4" title="Jump back to footnote 5 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:5"&gt;
&lt;p&gt;CRFFP. (2021). &lt;em&gt;Les règles budgétaires du Québec : réflexions d’un panel d’experts&lt;/em&gt; (Regard CFFP R2021/15). &lt;a href="https://cffp.recherche.usherbrooke.ca/wp-content/uploads/2021/12/r_2021-15_regles_budgetaires_du_quebec.pdf"&gt;https://cffp.recherche.usherbrooke.ca/wp-content/uploads/2021/12/r_2021-15_regles_budgetaires_du_quebec.pdf&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:5" title="Jump back to footnote 6 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:6"&gt;
&lt;p&gt;Fillion, G. (2024, 21 février). Des déficits plus élevés à Québec : pourquoi avoir baissé les impôts?. &lt;em&gt;Radio-Canada&lt;/em&gt;. &lt;a href="https://ici.radio-canada.ca/nouvelle/2050907/deficits-quebec-baisse-impots-budget-provincial"&gt;https://ici.radio-canada.ca/nouvelle/2050907/deficits-quebec-baisse-impots-budget-provincial&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:6" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;a class="footnote-backref" href="#fnref2:6" title="Jump back to footnote 7 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:7"&gt;
&lt;p&gt;Goudreault, Z. (2024, 5 septembre). « On ne peut pas tout faire en même temps » dans les cégeps, affirme Déry. &lt;em&gt;Le Devoir&lt;/em&gt;. &lt;a href="https://www.ledevoir.com/societe/education/819278/on-ne-peut-pas-tout-faire-meme-temps-cegeps-affirme-dery"&gt;https://www.ledevoir.com/societe/education/819278/on-ne-peut-pas-tout-faire-meme-temps-cegeps-affirme-dery&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:7" title="Jump back to footnote 8 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:8"&gt;
&lt;p&gt;Lecavalier, C. (2022, 22 mars). 500 $ pour 6,4 millions de Québécois. &lt;em&gt;La Presse&lt;/em&gt;. &lt;a href="https://www.lapresse.ca/affaires/economie/2022-03-22/budget-du-quebec/500-pour-6-4-millions-de-quebecois.php"&gt;https://www.lapresse.ca/affaires/economie/2022-03-22/budget-du-quebec/500-pour-6-4-millions-de-quebecois.php&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:8" title="Jump back to footnote 9 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:9"&gt;
&lt;p&gt;Bordeleau, S. (2022, 9 novembre). Inflation : Québec détaille son aide de 400 $ à 600 $. &lt;em&gt;Radio-Canada&lt;/em&gt;. &lt;a href="https://ici.radio-canada.ca/nouvelle/1931431/cheque-caq-inflation-modalites"&gt;https://ici.radio-canada.ca/nouvelle/1931431/cheque-caq-inflation-modalites&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:9" title="Jump back to footnote 10 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:10"&gt;
&lt;p&gt;Arseneault, J. et Lecavalier, C. (2024, 24 juillet). Plus de 2 milliards de fonds publics: L'engrenage de la C Series. &lt;em&gt;La Presse&lt;/em&gt;. &lt;a href="https://www.lapresse.ca/affaires/2024-07-24/plus-de-2-milliards-de-fonds-publics/l-engrenage-de-la-c-series.php"&gt;https://www.lapresse.ca/affaires/2024-07-24/plus-de-2-milliards-de-fonds-publics/l-engrenage-de-la-c-series.php&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:10" title="Jump back to footnote 11 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:11"&gt;
&lt;p&gt;Labbé, J. (2024, 24 septembre). Les déboires de Northvolt placent Québec sur la défensive. &lt;em&gt;Radio-Canada&lt;/em&gt;. &lt;a href="https://ici.radio-canada.ca/nouvelle/2107011/debat-urgence-northvolt-quebec"&gt;https://ici.radio-canada.ca/nouvelle/2107011/debat-urgence-northvolt-quebec&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:11" title="Jump back to footnote 12 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:12"&gt;
&lt;p&gt;Tanguay, S. (2024, 3 octobre). Les oppositions à Québec mitraillent les «Kings des dépenses». &lt;em&gt;Le Devoir&lt;/em&gt;. &lt;a href="https://www.ledevoir.com/politique/quebec/821037/oppositions-quebec-mitraillent-kings-depenses"&gt;https://www.ledevoir.com/politique/quebec/821037/oppositions-quebec-mitraillent-kings-depenses&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:12" title="Jump back to footnote 13 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:13"&gt;
&lt;p&gt;Brousseault-Pouliot, V. (2024, 25 septembre). Coupe des Présidents: Québec défend sa subvention. &lt;em&gt;La Presse&lt;/em&gt;. &lt;a href="https://www.lapresse.ca/actualites/coupe-des-presidents/un-cout-de-9-millions-pour-les-contribuables/2024-09-25/coupe-des-presidents/quebec-defend-sa-subvention.php"&gt;https://www.lapresse.ca/actualites/coupe-des-presidents/un-cout-de-9-millions-pour-les-contribuables/2024-09-25/coupe-des-presidents/quebec-defend-sa-subvention.php&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:13" title="Jump back to footnote 14 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:14"&gt;
&lt;p&gt;Plourde, A. (2023). &lt;em&gt;Un programme universel d’alimentation scolaire pour le Québec&lt;/em&gt;. Institut de recherche et d’informations socioéconomiques. &lt;a href="https://iris-recherche.qc.ca/publications/programme-alimentation-scolaire/"&gt;https://iris-recherche.qc.ca/publications/programme-alimentation-scolaire/&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:14" title="Jump back to footnote 15 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li id="fn:15"&gt;
&lt;p&gt;Coalition Main Rouge. (2021). &lt;em&gt;Solutions fiscales et mesures de contrôle des dépenses proposées par la Coalition Main rouge Automne 2021&lt;/em&gt;. &lt;a href="https://www.nonauxhausses.org/wp-content/uploads/Tableau10milliardsdesolutions2021.pdf"&gt;https://www.nonauxhausses.org/wp-content/uploads/Tableau10milliardsdesolutions2021.pdf&lt;/a&gt;&amp;#160;&lt;a class="footnote-backref" href="#fnref:15" title="Jump back to footnote 16 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="blog"></category><category term="québec"></category><category term="economics"></category></entry><entry><title>Introduction à Gitlab CI</title><link href="https://veronneau.org/introduction-a-gitlab-ci-fr.html" rel="alternate"></link><published>2018-08-31T00:00:00-04:00</published><updated>2018-08-31T00:00:00-04:00</updated><author><name>Louis-Philippe Véronneau</name></author><id>tag:veronneau.org,2018-08-31:/introduction-a-gitlab-ci-fr.html</id><summary type="html">&lt;p&gt;Voici les notes de &lt;a href="https://agendadulibre.qc.ca/events/1837"&gt;l'atelier d'introduction à Gitlab CI&lt;/a&gt; que je donne
le 23 septembre dans le cadre de la
&lt;a href="https://2018.sqil.info"&gt;Semaine québécoise de l'informatique libres&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Pourquoi faire de l'intégration continue?&lt;/h2&gt;
&lt;p&gt;Il y a plusieurs bonnes raisons pour commencer à faire de l'intégration continue
(CI). En voici quelques unes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tester son …&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;</summary><content type="html">&lt;p&gt;Voici les notes de &lt;a href="https://agendadulibre.qc.ca/events/1837"&gt;l'atelier d'introduction à Gitlab CI&lt;/a&gt; que je donne
le 23 septembre dans le cadre de la
&lt;a href="https://2018.sqil.info"&gt;Semaine québécoise de l'informatique libres&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Pourquoi faire de l'intégration continue?&lt;/h2&gt;
&lt;p&gt;Il y a plusieurs bonnes raisons pour commencer à faire de l'intégration continue
(CI). En voici quelques unes:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tester son code.&lt;/strong&gt; Souvent, l'intégration continue est une bonne manière de
   commencer à tester son code. Les tests automatisés permettent de trouver des
   erreurs d'inattention et forcent à vérifier si le code que l'on écrit
   fonctionne réellement.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tester son code sur des environnements radicalement différents.&lt;/strong&gt; Avoir des
   tests que l'on peut faire rouler localement sur sa machine est une bonne
   chose, mais utiliser un CI permet de tester son code sur des environnements
   sur lesquels on ne travaille pas.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Tester son code automatiquement.&lt;/strong&gt; Utiliser un CI lié à une plateforme
   d'hébergement git permet de s'assurer que les nouveaux &lt;em&gt;commits&lt;/em&gt; réussissent
   les tests avant d'être ajoutés à la branche &lt;code&gt;master&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Déployer son code automatiquement.&lt;/strong&gt; Il est possible d'aller une étape plus
   loin et d'utiliser le CI pour publier du code sur une archive comme PyPi ou
   NPM automatiquement si tous les tests passent. On parle alors de déploiement
   continu (CD).&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Introductions aux fonctionnalités de Gitlab CI&lt;/h2&gt;
&lt;h3&gt;Aperçu&lt;/h3&gt;
&lt;p&gt;Pour utiliser Gitlab CI, il faut tout d'abord avoir un projet sur une instance
Gitlab. Quand on ajoute un &lt;em&gt;commit&lt;/em&gt; git au dépôt, si un fichier &lt;code&gt;.gitlab-ci.yml&lt;/code&gt;
est présent dans le dépôt, Gitlab suit ces instructions et roule un script dans
le runner, une machine externe qui sert à faire des tests.&lt;/p&gt;
&lt;p&gt;Sur la plupart des instances Gitlab, il existe des runners partagés que tout le
monde peut utiliser. Il est également possible de monter un runner privé pour
son propre projet. Cela peut être intéressant si on a des tests qui demandent
beaucoup de ressources.&lt;/p&gt;
&lt;h3&gt;Le fichier .gitlab-ci.yml&lt;/h3&gt;
&lt;p&gt;Pour commencer à utiliser Gitlab CI, il faut tout d'abord créer un fichier
&lt;code&gt;.gitlab-ci.yml&lt;/code&gt;. &lt;/p&gt;
&lt;p&gt;Voici un exemple très simple de fichier:&lt;/p&gt;
&lt;pre&gt;
---
image: debian:stable

test12345:
  script:
  - echo 'deb http://deb.debian.org/debian buster main contrib non-free' &gt;&gt; /etc/apt/sources.list
  - apt-get update
  - apt-get install -y -t buster rolldice
...
&lt;/pre&gt;

&lt;p&gt;La première partie du fichier est le paramètre &lt;code&gt;image&lt;/code&gt;. C'est l'image docker
qui va être utilisée par défaut dans les tests que l'on effectue. Cette image
est récupérée du &lt;a href="https://hub.docker.com/explore/"&gt;Docker Hub&lt;/a&gt;. Pour utiliser une image, on spécifie le tag
complet de l'image. Ainsi, l'image pour la version stable de Debian est
&lt;code&gt;debian:stable&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;La seconde partie du fichier est le test que l'on roule. Il est possible d'avoir
plusieurs tests l'un à la suite de l'autre. Le test dans notre exemple est
nommé &lt;code&gt;test12345&lt;/code&gt;, mais il aurait été possible de le nommer d'une autre manière.
&lt;code&gt;apt:rolldice&lt;/code&gt; aurait également été un nom valide.&lt;/p&gt;
&lt;p&gt;Chaque test doit comporter un script. Ce script est un ensemble de commandes 
shell de type &lt;code&gt;bash&lt;/code&gt;. L'ensemble des commandes que l'on souhaite effectuer s'y
retrouvent étapes par étapes.&lt;/p&gt;
&lt;p&gt;Il est possible d'avoir plusieurs tests l'un à la suite de l'autre:&lt;/p&gt;
&lt;pre&gt;
---
image: debian:stable

apt:rolldice:stable:
  script:
  - apt-get install -y rolldice

apt:rolldice:buster:
  script:
  - echo 'deb http://deb.debian.org/debian buster main contrib non-free' &gt;&gt; /etc/apt/sources.list
  - apt-get update
  - apt-get install -y -t buster rolldice
...
&lt;/pre&gt;

&lt;p&gt;Il est également possible de changer l'image par défaut utilisée dans un test:&lt;/p&gt;
&lt;pre&gt;
---
image: debian:stable

apt:rolldice:stable:
  script:
  - apt-get install -y rolldice

apt:rolldice:buster:
  image: debian:buster
  script:
  - apt-get install -y rolldice
...
&lt;/pre&gt;

&lt;p&gt;Les fichiers présents dans votre dépôt git sont accessibles par vos scripts
comme si vous travailliez directement dans ce dossier:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; foobar.txt&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
Hello World
&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;&amp;gt; .gitlab-ci.yml&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
---
image: debian:stable

test:hello:
  script:
  - cat foobar.txt
  - cat foobar.txt | grep "Hello World"
...
&lt;/pre&gt;

&lt;h3&gt;Le paramètre service&lt;/h3&gt;
&lt;p&gt;Pour certains tests plus complexes, il est parfois nécessaire d'avoir un service
externe différent de notre image docker principale, par exemple une base de
données.&lt;/p&gt;
&lt;p&gt;Gitlab CI permet de rouler un service externe accessible par nos tests. Ces
services sont également des images Docker. Par voici un exemple simple
d'utilisation d'une base de données:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; mytest.sql&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
CREATE TABLE `table1` (randomvar VARCHAR(30) NOT NULL);
CREATE TABLE `table2` (randomvar VARCHAR(30) NOT NULL);
CREATE TABLE `table3` (randomvar VARCHAR(30) NOT NULL);
CREATE TABLE `table4` (randomvar VARCHAR(30) NOT NULL);
&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;&amp;gt; .gitlab-ci.yml&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
---
image: debian:stable

services:
  - mariadb:10.1

variables:
  MYSQL_DATABASE: mytest
  MYSQL_ALLOW_EMPTY_PASSWORD: 1

test:mariadb:
  script:
  - apt-get update &amp;&amp; apt-get -y install mariadb-client-10.1
  - mariadb -u root -h mariadb -D mytest &lt; mytest.sql
  - mariadb -u root -h mariadb -e "SELECT * FROM information_schema.columns WHERE table_schema = 'mytest'";
...
&lt;/pre&gt;

&lt;p&gt;N'importe quelle image Docker peut être utilisée comme service. Si vous avez des
besoins particuliers, il est nécessaire de créer une image Docker par vous même.&lt;/p&gt;
&lt;h3&gt;Artifacts&lt;/h3&gt;
&lt;p&gt;Si vous souhaitez utiliser Gitlab CI pour compiler du code ou créer des fichiers
que vous souhaitez conserver par la suite, il est nécessaire d'utiliser le
paramètre &lt;code&gt;artifacts&lt;/code&gt;. Sa fonction est de spécifier un fichier ou un dossier qui
va être enregistré par Gitlab et que vous allez pouvoir récupérer par la suite.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; input.md&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
# Hello World

This is a markdown test. It should be rendered to HTML properly using the great
[pandoc](https://pandoc.org/MANUAL.html).
&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;&amp;gt; .gitlab-ci.yml&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
---
image: debian:stable

build:html:
  script:
  - apt-get update &amp;&amp; apt-get -y install pandoc
  - pandoc -o output.html input.md
  artifacts:
    paths:
    - output.html
...
&lt;/pre&gt;

&lt;h3&gt;Tests à plusieurs étapes&lt;/h3&gt;
&lt;p&gt;Par défaut, les tests dans Gitlab CI fonctionnent tous simultanément. Cela est
pratique pour des tests de type &lt;em&gt;unit test&lt;/em&gt;. Pour des tests plus élaborés, on
peut parfois vouloir fonctionner par étapes et créer des dépendances entre nos
tests.&lt;/p&gt;
&lt;p&gt;Le paramètre &lt;code&gt;stage&lt;/code&gt; permet de spécifier des groupes dans lesquels on peut
placer nos différentes tâches. Ces groupes peuvent par la suite être ordonnés,
pour que les tests roulent dans un ordre précis.&lt;/p&gt;
&lt;p&gt;On peut également utiliser le paramètre &lt;code&gt;dependencies&lt;/code&gt; pour créer un lien de
dépendance entre différentes tâches. Les &lt;code&gt;artifacts&lt;/code&gt; créés dans une tâches sont
automatiquement passés à une seconde tâche si elle en dépend.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; hello.c&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
#include &lt;stdio.h&gt;

int
main (void)
{
  printf ("Hello, world!\n");
  return 0;
}
&lt;/pre&gt;

&lt;p&gt;&lt;code&gt;&amp;gt; .gitlab-ci.yml&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
---
stages:
  - build
  - test

compile:debian:
  image: debian:stable
  stage: build
  script:
  - apt-get update &amp;&amp; apt install -y build-essential
  - gcc -Wall hello.c -o hello
  artifacts:
    paths:
    - hello

compile:alpine:
  image: alpine
  stage: build
  script:
  - apk add --update build-base
  - gcc -Wall hello.c -o hello
  artifacts:
    paths:
    - hello

test:debian:
  image: debian:stable
  stage: test
  dependencies:
  - compile:debian
  script:
  - ./hello

test:alpine:
  image: alpine
  stage: test
  dependencies:
  - compile:alpine
  script:
  - ./hello
...
&lt;/pre&gt;

&lt;h3&gt;Variables secrètes&lt;/h3&gt;
&lt;p&gt;Si vous souhaitez utiliser Gitlab pour publier votre projet sur une plateforme
comme PyPi ou NPM, il est nécessaire de stocker vos informations
d'authentification quelque part.&lt;/p&gt;
&lt;p&gt;Il n'est bien évidemment pas recommandé d'ajouter vos mots de passes directement
dans votre fichier &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; ou dans un autre fichier dans votre dépôt
git pour des raisons de sécurité: n'importe qui pourrait lire ces fichiers et
compromettre vos comptes.&lt;/p&gt;
&lt;p&gt;Gitlab permet de stocker des variables secrètes. Pour ce faire, il faut aller
dans l'onglet &lt;em&gt;Settings &amp;gt; CI/CD &amp;gt; Variables&lt;/em&gt; de votre projet.&lt;/p&gt;
&lt;p&gt;Une fois que vous avez créé une variable secrète, il est possible d'y référer
comme une variable normale dans votre fichier &lt;code&gt;.gitlab-ci.yml&lt;/code&gt;.&lt;/p&gt;
&lt;pre&gt;
---
image: debian:stable

test:secret-var:
  script:
  - apt-get update &amp;&amp; apt-get -y install wget
  - wget https://agendadulibre.qc.ca/events/$SECRET
...
&lt;/pre&gt;

&lt;h3&gt;Compiler et héberger un site web statique à l'aide de Gitlab CI et Gitlab Pages&lt;/h3&gt;
&lt;p&gt;Un cas de figure intéressant pour Gitlab CI est la compilation d'un site web
statique. Une fois compilé, ce site web peut par la suite être hébergé
directement sur Gitlab grâce au projet &lt;a href="https://docs.gitlab.com/ee/user/project/pages/"&gt;Gitlab Pages&lt;/a&gt;. Cela peut être
utile pour héberger la documentation d'un projet.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://salsa.debian.org/debconf-video-team/docs"&gt;Voici un exemple&lt;/a&gt; de projet utilisant Gitlab CI et Gitlab
Pages. Ce projet utilise &lt;a href="http://www.sphinx-doc.org/en/stable/"&gt;Sphinx&lt;/a&gt; avec le thème &lt;em&gt;Read the Docs&lt;/em&gt;. Le site web
compilé est disponible en ligne &lt;a href="https://debconf-video-team.pages.debian.net/docs"&gt;ici&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Une fois que l'on a ajouté un fichier &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; qui compile notre site
statique, il faut aller dans l'onglet &lt;em&gt;Settings &amp;gt; Pages&lt;/em&gt; de notre projet git
pour mettre en ligne notre projet. Gitlab offre également la possibilité
d'utiliser un domaine externe.&lt;/p&gt;
&lt;h3&gt;Plus d'informations&lt;/h3&gt;
&lt;p&gt;La documentation complète du fichier &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; est &lt;a href="https://docs.gitlab.com/ce/ci/yaml/README.html"&gt;disponible en ligne&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;Atelier collaboratif d'utilisation de Gitlab CI&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;Trouvez un projet qui vous intéresse et tentez de créer une série de tests ầ
l'aide de Gitlab CI&lt;/em&gt;.&lt;/p&gt;
&lt;h2&gt;Instructions pour installer Gitlab CI + Docker sur une machine privée (avancé)&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;On souhaite installer Docker et Gitlab CI sur un serveur Debian Stretch. Ces
étapes nécessitent une certaine connaissance de la ligne de commande.&lt;/em&gt;&lt;/p&gt;
&lt;h3&gt;Docker&lt;/h3&gt;
&lt;p&gt;L'executor Docker est le plus simple et le plus flexible. C'est également celui
qui est mis en place sur gitlab.com.&lt;/p&gt;
&lt;p&gt;On commence donc par installer Docker sur notre machine. En temps normal, on
installerait Docker à partir du dépôt officiel Debian. Malheureusement, Docker
n'est pas packagé dans Debian alors il est nécessaire de l'installer à partir du
dépôt offert par Docker.&lt;/p&gt;
&lt;p&gt;On commence par ajouter un fichier source à apt:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; /etc/apt/sources.list.d/docker.sources&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
Types: deb
URIs: https://download.docker.com/linux/debian/
Suites: stretch
Architectures: amd64
Components: main
Signed-By: /usr/share/keyrings/docker-archive-keyring.gpg
&lt;/pre&gt;

&lt;p&gt;On complète l'installation en téléchargeant la clef GPG et en installant les
packets&lt;sup id="fnref:1"&gt;&lt;a class="footnote-ref" href="#fn:1"&gt;1&lt;/a&gt;&lt;/sup&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;apt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;apt&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;transport&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;https&lt;/span&gt;
&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;curl&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;https&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="o"&gt;//&lt;/span&gt;&lt;span class="n"&gt;download&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;docker&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;com&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;linux&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;debian&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;gpg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;gpg&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="n"&gt;dearmor&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;usr&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;share&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;keyrings&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;docker&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;archive&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;keyring&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gpg&lt;/span&gt;
&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;apt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;update&lt;/span&gt;
&lt;span class="o"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;apt&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;docker&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;ce&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Docker a la fâcheuse habitude de démarrer avant que l'interface réseau ne soit
en ligne. Cela fait en sorte que quand notre machine redémarre, notre CI n'a
plus accès à internet, ce qui fait avorter nos tests.&lt;/p&gt;
&lt;p&gt;Pour remédier à ce problème, on créé un fichier &lt;code&gt;cron&lt;/code&gt; qui redémarre Docker 30
secondes après que notre machine ait démarrée:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;@reboot root /bin/sleep 30 &amp;amp;&amp;amp; /bin/systemctl restart docker&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;/etc/cron.d/docker-reboot
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On souhaite également éviter que notre serveur se remplisse des instances de
test que l'on fait rouler. On ajoute donc un autre fichier &lt;code&gt;cron&lt;/code&gt; pour purger
Docker périodiquement:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;echo&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;0 3 * * * root /usr/bin/docker system prune -a -f &amp;gt; /dev/null 2&amp;gt;&amp;amp;1&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;/etc/cron.d/docker-prune
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Et voilà! Docker est prêt à être utilisé dans notre installation future de
Gitlab CI!&lt;/p&gt;
&lt;h3&gt;Gitlab CI&lt;/h3&gt;
&lt;p&gt;Encore une fois, plutôt que d'utiliser le dépôt Gitlab offert par Debian pour
installer Gitlab CI, on choisi plutôt le dépôt offert par Gitlab.&lt;/p&gt;
&lt;p&gt;Gitlab est encore très jeune dans Debian et il y de nombreuses mises à jour de
sécurité. Peut-être dans le futur les paquets Debian vont être plus fiables,
mais ce n'est pas le cas pour l'instant.&lt;/p&gt;
&lt;p&gt;On commence par ajouter un fichier source à apt:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;gt; /etc/apt/sources.list.d/gitlab.sources&lt;/code&gt;&lt;/p&gt;
&lt;pre&gt;
Types: deb
URIs: https://packages.gitlab.com/runner/gitlab-runner/debian/
Suites: stretch
Architectures: amd64
Components: main
Signed-By: /usr/share/keyrings/gitlab-archive-keyring.gpg
&lt;/pre&gt;

&lt;p&gt;On complète l'installation en téléchargeant la clef GPG et en installant les
packets:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;curl&lt;span class="w"&gt; &lt;/span&gt;https://packages.gitlab.com/gpg.key&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;|&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;gpg&lt;span class="w"&gt; &lt;/span&gt;--dearmor&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;/usr/share/keyrings/gitlab-archive-keyring.gpg
$&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;update
$&lt;span class="w"&gt; &lt;/span&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;gitlab-runner
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Une fois &lt;code&gt;gitlab-runner&lt;/code&gt; installé, on peut utiliser l'outil en ligne de commande
pour créer un nouveau runner:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;gitlab-runner&lt;span class="w"&gt; &lt;/span&gt;register
Please&lt;span class="w"&gt; &lt;/span&gt;enter&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;gitlab-ci&lt;span class="w"&gt; &lt;/span&gt;coordinator&lt;span class="w"&gt; &lt;/span&gt;URL&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;e.g.&lt;span class="w"&gt; &lt;/span&gt;https://gitlab.com/&lt;span class="o"&gt;)&lt;/span&gt;:
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;https://url-de-l-instance-gitlab
Please&lt;span class="w"&gt; &lt;/span&gt;enter&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;gitlab-ci&lt;span class="w"&gt; &lt;/span&gt;token&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;this&lt;span class="w"&gt; &lt;/span&gt;runner:
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;le-token-de-votre-projet&lt;span class="w"&gt;                 &lt;/span&gt;
Please&lt;span class="w"&gt; &lt;/span&gt;enter&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;gitlab-ci&lt;span class="w"&gt; &lt;/span&gt;description&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;this&lt;span class="w"&gt; &lt;/span&gt;runner:
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;La&lt;span class="w"&gt; &lt;/span&gt;description&lt;span class="w"&gt; &lt;/span&gt;du&lt;span class="w"&gt; &lt;/span&gt;runner
Please&lt;span class="w"&gt; &lt;/span&gt;enter&lt;span class="w"&gt; &lt;/span&gt;the&lt;span class="w"&gt; &lt;/span&gt;gitlab-ci&lt;span class="w"&gt; &lt;/span&gt;tags&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;this&lt;span class="w"&gt; &lt;/span&gt;runner&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;comma&lt;span class="w"&gt; &lt;/span&gt;separated&lt;span class="o"&gt;)&lt;/span&gt;:
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;nom-du-runner-gitlab-ci,&lt;span class="w"&gt; &lt;/span&gt;docker
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Pour obtenir le token nécessaire à la création du runner, il faut aller dans
l'onglet &lt;em&gt;Settings &amp;gt; CI/CD &amp;gt; Runners&lt;/em&gt; dans votre projet git. Le token est
spécifié dans la section &lt;em&gt;Setup a specific Runner manually&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Et voilà! Si tout fonctionne correctement, le runner devrait s'afficher dans la
l'onglet &lt;em&gt;Settings &amp;gt; CI/CD &amp;gt; Runners&lt;/em&gt; de votre projet.&lt;/p&gt;
&lt;h3&gt;Pro Tip&lt;/h3&gt;
&lt;p&gt;Si vous utilisez votre propre runner Gitlab CI dans un environnement en
production, il est important de s'assurer que ce dernier fonctionne pour
s'éviter de fâcheux ennuis.&lt;/p&gt;
&lt;p&gt;Pour s'assurer que notre runner est fonctionnel, on peut créer un projet git
dont le seul but est de s'assurer que le CI fonctionne. Ce dernier n'a qu'à
contenir un fichier &lt;code&gt;.gitlab-ci.yml&lt;/code&gt; de base.&lt;/p&gt;
&lt;p&gt;Par la suite, vous pouvez faire rouler le test à tous les jours ou à toutes les
heures en créant un nouvel item dans dans l'onglet &lt;em&gt;CI/CD &amp;gt; Schedules&lt;/em&gt; de
votre projet.&lt;/p&gt;
&lt;p&gt;Voici un exemple de fichier &lt;code&gt;gitlab-ci.yml&lt;/code&gt; que l'on peut utiliser:&lt;/p&gt;
&lt;pre&gt;
---
image: debian

test-ci:
  script:
  - apt-get update &amp;&amp; apt-get -y install rolldice
  tags:
    - nom-du-runner-gitlab-ci
...
&lt;/pre&gt;

&lt;p&gt;Il est bien important de spécifier le nom du runner sur lequel vous souhaitez
que le test roule dans la section &lt;code&gt;tags&lt;/code&gt; pour éviter de faire le test sur une
autre machine que la vôtre.&lt;/p&gt;
&lt;div class="footnote"&gt;
&lt;hr&gt;
&lt;ol&gt;
&lt;li id="fn:1"&gt;
&lt;p&gt;Cette méthode est bien plus sécuritaire qu'utiliser &lt;code&gt;apt-key add&lt;/code&gt; car elle
  elle autorise la clef GPG externe seulement pour la source que l'on
  souhaite ajouter et non pour toutes les autres sources. Plus de détails
  sur cette méthode &lt;a href="https://wiki.debian.org/DebianRepository/UseThirdParty"&gt;ici&lt;/a&gt;.&amp;#160;&lt;a class="footnote-backref" href="#fnref:1" title="Jump back to footnote 1 in the text"&gt;&amp;#8617;&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;</content><category term="blog"></category><category term="gitlab-ci"></category><category term="debian"></category><category term="howto"></category></entry><entry><title>Installer un serveur Owncloud (French)</title><link href="https://veronneau.org/installer-un-serveur-owncloud-french-fr.html" rel="alternate"></link><published>2016-05-21T00:00:00-04:00</published><updated>2016-05-21T00:00:00-04:00</updated><author><name>Louis-Philippe Véronneau</name></author><id>tag:veronneau.org,2016-05-21:/installer-un-serveur-owncloud-french-fr.html</id><summary type="html">&lt;p&gt;Le but de ce post est de donner un guide simple étape par étape
de l'installation d'Owncloud sur un serveur Debian Jessie.&lt;/p&gt;
&lt;h2&gt;Installation de base&lt;/h2&gt;
&lt;p&gt;Toutes les étapes qui suivent prennent pour acquis pour vous être dans le compte superutilisateur (&lt;code&gt;root&lt;/code&gt;) de votre serveur.&lt;/p&gt;
&lt;h3&gt;Installer Owncloud&lt;/h3&gt;
&lt;p&gt;On utilise le package …&lt;/p&gt;</summary><content type="html">&lt;p&gt;Le but de ce post est de donner un guide simple étape par étape
de l'installation d'Owncloud sur un serveur Debian Jessie.&lt;/p&gt;
&lt;h2&gt;Installation de base&lt;/h2&gt;
&lt;p&gt;Toutes les étapes qui suivent prennent pour acquis pour vous être dans le compte superutilisateur (&lt;code&gt;root&lt;/code&gt;) de votre serveur.&lt;/p&gt;
&lt;h3&gt;Installer Owncloud&lt;/h3&gt;
&lt;p&gt;On utilise le package manager de Debian pour installer Owncloud:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;aptitude&lt;span class="w"&gt; &lt;/span&gt;update&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;aptitude&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;owncloud
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Le package &lt;code&gt;owncloud&lt;/code&gt; de Debian installe les fichiers dans /usr/share/owncloud&lt;/p&gt;
&lt;h3&gt;Créer une database mysql&lt;/h3&gt;
&lt;p&gt;Il faut commencer par se logger dans mysql avec un compte administrateur:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;mysql&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;root&lt;span class="w"&gt; &lt;/span&gt;-p
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Une fois dans l'interface de mysql, on souhaite créer un database et en donner
les droits complets à un user:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;mysql&amp;gt; CREATE DATABASE nom_de_la_db;
mysql&amp;gt; GRANT ALL PRIVILEGES ON nom_de_la_db.* TO &amp;#39;nom_du_user&amp;#39;@&amp;#39;hostname&amp;#39; IDENTIFIED BY &amp;#39;mot_de_passe&amp;#39;;
mysql&amp;gt; FLUSH PRIVILEGES;
mysql&amp;gt; quit;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Créer un Vhost Apache&lt;/h3&gt;
&lt;p&gt;Pour terminer la configuration d'Owncloud, il est nécessaire d'avoir accès à
l'interface web. Pour cela, on met le site en ligne avec Apache:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/etc/apache2/sites-available
$&lt;span class="w"&gt; &lt;/span&gt;vim&lt;span class="w"&gt; &lt;/span&gt;fqdm.conf
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;code&gt;fqdm&lt;/code&gt;, le &lt;em&gt;fully qualified domain name&lt;/em&gt; est votre nom de domaine complet. Le VHost recommandé est le suivant:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;#&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt; &lt;span class="err"&gt;*:443&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;#ServerName&lt;span class="w"&gt; &lt;/span&gt;fqdm.com
&lt;span class="w"&gt;  &lt;/span&gt;#ServerAdmin&lt;span class="w"&gt; &lt;/span&gt;foo@fqdm.com
&lt;span class="w"&gt;  &lt;/span&gt;#DocumentRoot&lt;span class="w"&gt; &lt;/span&gt;/usr/share/owncloud

&lt;span class="w"&gt;  &lt;/span&gt;#ErrorLog&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;APACHE_LOG_DIR&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;/error.log

&lt;span class="w"&gt;  &lt;/span&gt;#Alias&lt;span class="w"&gt; &lt;/span&gt;/owncloud&lt;span class="w"&gt; &lt;/span&gt;/usr/share/owncloud

&lt;span class="w"&gt;  &lt;/span&gt;#&lt;span class="nt"&gt;&amp;lt;Directory&lt;/span&gt; &lt;span class="err"&gt;/usr/share/owncloud&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;#Options&lt;span class="w"&gt; &lt;/span&gt;Indexes&lt;span class="w"&gt; &lt;/span&gt;FollowSymLinks&lt;span class="w"&gt; &lt;/span&gt;MultiViews
&lt;span class="w"&gt;    &lt;/span&gt;#AllowOverride&lt;span class="w"&gt; &lt;/span&gt;All
&lt;span class="w"&gt;    &lt;/span&gt;#Require&lt;span class="w"&gt; &lt;/span&gt;all&lt;span class="w"&gt; &lt;/span&gt;granted
&lt;span class="w"&gt;    &lt;/span&gt;#SetEnv&lt;span class="w"&gt; &lt;/span&gt;MOD_X_SENDFILE_ENABLED&lt;span class="w"&gt; &lt;/span&gt;1
&lt;span class="w"&gt;    &lt;/span&gt;#XSendFile&lt;span class="w"&gt; &lt;/span&gt;On
&lt;span class="w"&gt;    &lt;/span&gt;#XSendFilePath&lt;span class="w"&gt; &lt;/span&gt;/data
&lt;span class="w"&gt;  &lt;/span&gt;#&lt;span class="nt"&gt;&amp;lt;/Directory&amp;gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;#SSLEngine&lt;span class="w"&gt; &lt;/span&gt;on
&lt;span class="w"&gt;    &lt;/span&gt;#SSLCertificateFile&lt;span class="w"&gt;      &lt;/span&gt;/etc/ssl/owncloud/cert.crt
&lt;span class="w"&gt;    &lt;/span&gt;#SSLCertificateKeyFile&lt;span class="w"&gt;   &lt;/span&gt;/etc/ssl/owncloud/key.pem
&lt;span class="w"&gt;    &lt;/span&gt;#SSLCertificateChainFile&lt;span class="w"&gt; &lt;/span&gt;/etc/ssl/owncloud/GandiStandardSSLCA.pem
&lt;span class="w"&gt;    &lt;/span&gt;#SSLProtocol&lt;span class="w"&gt;             &lt;/span&gt;all&lt;span class="w"&gt; &lt;/span&gt;-SSLv2&lt;span class="w"&gt; &lt;/span&gt;-SSLv3
&lt;span class="w"&gt;    &lt;/span&gt;#SSLCipherSuite&lt;span class="w"&gt;          &lt;/span&gt;ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK
&lt;span class="w"&gt;    &lt;/span&gt;#SSLHonorCipherOrder&lt;span class="w"&gt;     &lt;/span&gt;on
&lt;span class="w"&gt;    &lt;/span&gt;#SSLCompression&lt;span class="w"&gt;          &lt;/span&gt;off

#&lt;span class="nt"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt; &lt;span class="err"&gt;*:80&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;ServerName&lt;span class="w"&gt; &lt;/span&gt;fqdm.com
&lt;span class="w"&gt;  &lt;/span&gt;ServerAdmin&lt;span class="w"&gt; &lt;/span&gt;foo@fqdm.com
&lt;span class="w"&gt;  &lt;/span&gt;Alias&lt;span class="w"&gt; &lt;/span&gt;/owncloud&lt;span class="w"&gt; &lt;/span&gt;/usr/share/owncloud
&lt;span class="w"&gt;  &lt;/span&gt;#Redirect&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;https://fqdm.com/
&lt;span class="nt"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Comme nous n'avons pas encore crée de certificat SSL ou activés certains
modules d'Apache, certaines lignes sont commentées. Comme résultat, le site
est pour l'instant mis en ligne sur fqdm.com sans protection HTTPS.&lt;/p&gt;
&lt;p&gt;Il faut maintenant activer le site et le module rewrite d'Apache,
nécessaire au bon fonctionnement du site:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;a2ensite&lt;span class="w"&gt; &lt;/span&gt;fqdm.conf
$&lt;span class="w"&gt; &lt;/span&gt;a2enmod&lt;span class="w"&gt; &lt;/span&gt;rewrite
$&lt;span class="w"&gt; &lt;/span&gt;service&lt;span class="w"&gt; &lt;/span&gt;apache2&lt;span class="w"&gt; &lt;/span&gt;restart
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Configuration d'Owncloud via l'interface web&lt;/h3&gt;
&lt;p&gt;Une fois le site activé, il faut configurer Owncloud via l'interface web. Pour
ce faire, on va au &lt;a href="http://fqdm.com"&gt;http://fqdm.com&lt;/a&gt; et on suit l'installation automatisée, en
choissant mysql comme base de données et en rentrant les identifiants que l'on
a spécifié plus tôt en créant le nouvel utilisateur dans mysql.&lt;/p&gt;
&lt;p&gt;Et voilà! En théorie, Owncloud devrait être accessible en se connectant avec
le compte administrateur!&lt;/p&gt;
&lt;h2&gt;Optimisation de la sécurité et des performances&lt;/h2&gt;
&lt;p&gt;Une fois l'installation de base complétée, il est préférable d'optimiser
certains paramètres, tant pour améliorer la sécurité que de la performance.&lt;/p&gt;
&lt;h3&gt;Mettre en place un certificat HTTPS&lt;/h3&gt;
&lt;p&gt;Il est &lt;strong&gt;fortement recommandé&lt;/strong&gt; d'utiliser un certificat HTTPS pour sécuriser
les connexions sur le site.&lt;/p&gt;
&lt;p&gt;La création d'un certificat SSL n'est pas couvert par ce post, mais je recommande vivement les services offerts par &lt;a href="https://letsencrypt.org"&gt;Let's Encrypt&lt;/a&gt;. En plus d'être gratuits, Let's Encrypt met beaucoup l'accent sur l'automatisation, une excellente chose.&lt;/p&gt;
&lt;p&gt;Une fois le certificat créé, on modifie le VHost apache pour utiliser une
connexion sécurisée:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;vim&lt;span class="w"&gt; &lt;/span&gt;/etc/apache2/sites-available/fqdm.conf

&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt; &lt;span class="err"&gt;*:443&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;ServerName&lt;span class="w"&gt; &lt;/span&gt;fqdm.com
&lt;span class="w"&gt;  &lt;/span&gt;ServerAdmin&lt;span class="w"&gt; &lt;/span&gt;foo@fqdm.com
&lt;span class="w"&gt;  &lt;/span&gt;DocumentRoot&lt;span class="w"&gt; &lt;/span&gt;/usr/share/owncloud

&lt;span class="w"&gt;  &lt;/span&gt;ErrorLog&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="cp"&gt;${&lt;/span&gt;&lt;span class="n"&gt;APACHE_LOG_DIR&lt;/span&gt;&lt;span class="cp"&gt;}&lt;/span&gt;/error.log

&lt;span class="w"&gt;  &lt;/span&gt;Alias&lt;span class="w"&gt; &lt;/span&gt;/owncloud&lt;span class="w"&gt; &lt;/span&gt;/usr/share/owncloud

&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;Directory&lt;/span&gt; &lt;span class="err"&gt;/usr/share/owncloud&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;    &lt;/span&gt;Options&lt;span class="w"&gt; &lt;/span&gt;Indexes&lt;span class="w"&gt; &lt;/span&gt;FollowSymLinks&lt;span class="w"&gt; &lt;/span&gt;MultiViews
&lt;span class="w"&gt;    &lt;/span&gt;AllowOverride&lt;span class="w"&gt; &lt;/span&gt;All
&lt;span class="w"&gt;    &lt;/span&gt;Require&lt;span class="w"&gt; &lt;/span&gt;all&lt;span class="w"&gt; &lt;/span&gt;granted
&lt;span class="w"&gt;    &lt;/span&gt;#SetEnv&lt;span class="w"&gt; &lt;/span&gt;MOD_X_SENDFILE_ENABLED&lt;span class="w"&gt; &lt;/span&gt;1
&lt;span class="w"&gt;    &lt;/span&gt;#XSendFile&lt;span class="w"&gt; &lt;/span&gt;On
&lt;span class="w"&gt;    &lt;/span&gt;#XSendFilePath&lt;span class="w"&gt; &lt;/span&gt;/data
&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/Directory&amp;gt;&lt;/span&gt;

&lt;span class="w"&gt;    &lt;/span&gt;SSLEngine&lt;span class="w"&gt; &lt;/span&gt;on
&lt;span class="w"&gt;    &lt;/span&gt;SSLCertificateFile&lt;span class="w"&gt;      &lt;/span&gt;/path/to/ssl/cert
&lt;span class="w"&gt;    &lt;/span&gt;SSLCertificateKeyFile&lt;span class="w"&gt;   &lt;/span&gt;/path/to/ssl/key
&lt;span class="w"&gt;    &lt;/span&gt;SSLCertificateChainFile&lt;span class="w"&gt; &lt;/span&gt;/path/to/ssl/chainfile
&lt;span class="w"&gt;    &lt;/span&gt;SSLProtocol&lt;span class="w"&gt;             &lt;/span&gt;all&lt;span class="w"&gt; &lt;/span&gt;-SSLv2&lt;span class="w"&gt; &lt;/span&gt;-SSLv3
&lt;span class="w"&gt;    &lt;/span&gt;SSLCipherSuite&lt;span class="w"&gt;          &lt;/span&gt;ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!3DES:!MD5:!PSK
&lt;span class="w"&gt;    &lt;/span&gt;SSLHonorCipherOrder&lt;span class="w"&gt;     &lt;/span&gt;on
&lt;span class="w"&gt;    &lt;/span&gt;SSLCompression&lt;span class="w"&gt;          &lt;/span&gt;off

&lt;span class="nt"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;VirtualHost&lt;/span&gt; &lt;span class="err"&gt;*:80&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="w"&gt;  &lt;/span&gt;ServerName&lt;span class="w"&gt; &lt;/span&gt;fqdm.com
&lt;span class="w"&gt;  &lt;/span&gt;ServerAdmin&lt;span class="w"&gt; &lt;/span&gt;foo@fqdm.com
&lt;span class="w"&gt;  &lt;/span&gt;#Alias&lt;span class="w"&gt; &lt;/span&gt;/owncloud&lt;span class="w"&gt; &lt;/span&gt;/usr/share/owncloud
&lt;span class="w"&gt;  &lt;/span&gt;Redirect&lt;span class="w"&gt; &lt;/span&gt;/&lt;span class="w"&gt; &lt;/span&gt;https://fqdm.com/
&lt;span class="nt"&gt;&amp;lt;/VirtualHost&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Assurez-vous que le module ssl est activé et redémarrez apache:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;a2enmod&lt;span class="w"&gt; &lt;/span&gt;ssl
$&lt;span class="w"&gt; &lt;/span&gt;service&lt;span class="w"&gt; &lt;/span&gt;apache2&lt;span class="w"&gt; &lt;/span&gt;restart
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Utiliser un autre dossier pour les données d'utilisateurs&lt;/h3&gt;
&lt;p&gt;Par défaut, Owncloud enregistre les données des utilisateurs dans
/usr/share/owncloud/data. Il est intéressant de déplacer ce dossier
pour éviter qu'il soit réécrit par erreur durant une mise à jour:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;service&lt;span class="w"&gt; &lt;/span&gt;apache2&lt;span class="w"&gt; &lt;/span&gt;stop
$&lt;span class="w"&gt; &lt;/span&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;/data
$&lt;span class="w"&gt; &lt;/span&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;/data/Owncloud-data
$&lt;span class="w"&gt; &lt;/span&gt;mv&lt;span class="w"&gt; &lt;/span&gt;/usr/share/owncloud/data&lt;span class="w"&gt; &lt;/span&gt;/data/Owncloud-data/
$&lt;span class="w"&gt; &lt;/span&gt;chown&lt;span class="w"&gt; &lt;/span&gt;-R&lt;span class="w"&gt; &lt;/span&gt;www-data:www-data&lt;span class="w"&gt; &lt;/span&gt;/data/Owncloud-data/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Une fois le dossier déplacé, il faut modfier la configuration d'Owncloud,
plus précisément cette ligne dans &lt;code&gt;config.php&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;vim&lt;span class="w"&gt; &lt;/span&gt;/usr/share/owncloud/config/config.php
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;datadirectory&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;/data/Owncloud-data/data&amp;#39;&lt;/span&gt;,

$&lt;span class="w"&gt; &lt;/span&gt;service&lt;span class="w"&gt; &lt;/span&gt;apache2&lt;span class="w"&gt; &lt;/span&gt;restart
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Utiliser XSendfile&lt;/h3&gt;
&lt;p&gt;Il est possible d'accélérer le transfert de fichiers avec le module X-Sendfile
d'Apache. On va donc décommenter les lignes suivantes dans le VHost précédement
créé:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;vim&lt;span class="w"&gt; &lt;/span&gt;/etc/apache2/sites-available/fqdm.conf
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;SetEnv&lt;span class="w"&gt; &lt;/span&gt;MOD_X_SENDFILE_ENABLED&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;XSendFile&lt;span class="w"&gt; &lt;/span&gt;On
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;XSendFilePath&lt;span class="w"&gt; &lt;/span&gt;/data/Owncloud-data

$&lt;span class="w"&gt; &lt;/span&gt;aptitude&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;libapache2-mod-xsendfile
$&lt;span class="w"&gt; &lt;/span&gt;a2enmod&lt;span class="w"&gt; &lt;/span&gt;xsendfile
$&lt;span class="w"&gt; &lt;/span&gt;service&lt;span class="w"&gt; &lt;/span&gt;apache2&lt;span class="w"&gt; &lt;/span&gt;restart
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Attention!&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Tous les dossiers externes qu'Owncloud utilise doivent être spécifiés
avec la ligne XSendFilePath dans le VHost. Par exemple, si on décide de rajouter un
partage local au compte d'un utilisateur, il faut le spécifier à XSendfile. Sinon
l'utlisateur ne sera pas en mesure de télécharger les fichiers en question.&lt;/p&gt;
&lt;h3&gt;Utiliser fail2ban pour empêcher les attaques par force brute sur un compte&lt;/h3&gt;
&lt;p&gt;Par défaut, il serait possible à une personne mal intentionnée d'utiliser un programme
pour tester tous les mots de passe possibles pour un compte. &lt;code&gt;fail2ban&lt;/code&gt; permet de restreindre
ces attaques en bannissant un adresse ip s'étant trompée x nombres de fois de suite. On
commence par configurer &lt;code&gt;fail2ban&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;aptitude&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;install&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;fail2ban&lt;/span&gt;

&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;fail2ban&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="k"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;owncloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;conf&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;Definition&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;failregex&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="err"&gt;{&lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;app&amp;quot;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;core&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;Login failed: user &amp;#39;.*&amp;#39; , wrong password, IP:&amp;lt;HOST&amp;gt;&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;level&amp;quot;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;time&amp;quot;&lt;/span&gt;&lt;span class="err"&gt;:&lt;/span&gt;&lt;span class="ss"&gt;&amp;quot;.*&amp;quot;&lt;/span&gt;&lt;span class="err"&gt;}&lt;/span&gt;

&lt;span class="err"&gt;$&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;vim&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;etc&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;fail2ban&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;jail&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="k"&gt;local&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;[&lt;/span&gt;&lt;span class="n"&gt;owncloud&lt;/span&gt;&lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;enabled&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;true&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="k"&gt;filter&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;owncloud&lt;/span&gt;&lt;span class="w"&gt;  &lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;port&lt;/span&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;80&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;443&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;logpath&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nf"&gt;var&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;owncloud&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="n"&gt;maxrety&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="w"&gt;         &lt;/span&gt;&lt;span class="n"&gt;bantime&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1200&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;On s'assure maintenant qu'Owncloud enregistre les bonnes informations:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;vim&lt;span class="w"&gt; &lt;/span&gt;/usr/share/owncloud/congfig/config.php
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;loglevel&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;2&amp;#39;&lt;/span&gt;,
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;&amp;#39;log_authfailip&amp;#39;&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;true,
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Il ne reste plus qu'à redémarrer fail2ban:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;service&lt;span class="w"&gt; &lt;/span&gt;fail2ban&lt;span class="w"&gt; &lt;/span&gt;restart
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

&lt;h3&gt;Changer la manière dont le cron est appellé&lt;/h3&gt;
&lt;p&gt;Il est plus efficace de rouler la cronjob via le cron du serveur que par PHP.
On commence donc par sélectionner l'option "cron" dans le menu administrateur
d'Owncloud.&lt;/p&gt;
&lt;p&gt;Il faut par la suite rajouter une cronjob à www-data:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;$&lt;span class="w"&gt; &lt;/span&gt;crontab&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;www-data&lt;span class="w"&gt; &lt;/span&gt;-e
&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;*/15&lt;span class="w"&gt;  &lt;/span&gt;*&lt;span class="w"&gt;  &lt;/span&gt;*&lt;span class="w"&gt;  &lt;/span&gt;*&lt;span class="w"&gt;  &lt;/span&gt;*&lt;span class="w"&gt; &lt;/span&gt;php&lt;span class="w"&gt; &lt;/span&gt;-f&lt;span class="w"&gt; &lt;/span&gt;/var/www/owncloud/cron.php&lt;span class="w"&gt; &lt;/span&gt;&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;/dev/null&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="m"&gt;2&lt;/span&gt;&amp;gt;&lt;span class="p"&gt;&amp;amp;&lt;/span&gt;&lt;span class="m"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</content><category term="blog"></category><category term="owncloud"></category><category term="debian"></category></entry></feed>