{"id":19789020,"url":"https://github.com/ponsfrilus/fiche-de-stage-wordpress","last_synced_at":"2025-11-22T20:03:40.379Z","repository":{"id":192750406,"uuid":"605088976","full_name":"ponsfrilus/fiche-de-stage-WordPress","owner":"ponsfrilus","description":"Fiche de stage WordPress/Docker proposé par l'équipe ISAS-FSD de l'EPFL","archived":false,"fork":false,"pushed_at":"2025-02-04T16:18:33.000Z","size":4370,"stargazers_count":2,"open_issues_count":0,"forks_count":4,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-02-28T14:44:48.630Z","etag":null,"topics":["apprentissage","cfc","informaticien","informaticiens-cfc","stages-decouvertes","tpi","tpivd"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ponsfrilus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-22T12:24:11.000Z","updated_at":"2025-02-04T16:18:37.000Z","dependencies_parsed_at":null,"dependency_job_id":"6d9435a6-e9a9-4929-8422-a9ea93c4447e","html_url":"https://github.com/ponsfrilus/fiche-de-stage-WordPress","commit_stats":null,"previous_names":["ponsfrilus/fiche-de-stage-wordpress"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ponsfrilus/fiche-de-stage-WordPress","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponsfrilus%2Ffiche-de-stage-WordPress","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponsfrilus%2Ffiche-de-stage-WordPress/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponsfrilus%2Ffiche-de-stage-WordPress/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponsfrilus%2Ffiche-de-stage-WordPress/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ponsfrilus","download_url":"https://codeload.github.com/ponsfrilus/fiche-de-stage-WordPress/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ponsfrilus%2Ffiche-de-stage-WordPress/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":285851995,"owners_count":27242460,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-22T02:00:05.934Z","response_time":64,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apprentissage","cfc","informaticien","informaticiens-cfc","stages-decouvertes","tpi","tpivd"],"created_at":"2024-11-12T06:29:38.936Z","updated_at":"2025-11-22T20:03:40.363Z","avatar_url":"https://github.com/ponsfrilus.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Stage WordPress@EPFL\n\u003c!-- version: v1.1.1 --\u003e\n## À propos\n\nCette fiche de stage s’intègre dans le catalogue de stage proposé aux\napprenti·e·s et stagiaires à l’EPFL.\n\n\n| Nom                    | WordPress                                           |\n| ---------------------- | --------------------------------------------------- |\n| Type de stage          | Formation                                           |\n| Durée du stage         | 2 à 5 jours*                                        |\n| Unité                  | ISAS-FSD                                            |\n| Public                 | Tous (apprentis et stagiaires)                      |\n| Obligatoire            | Filière développement d’application                 |\n| Nombre de participants | 1                                                   |\n| Matériel               | Ordinateur portable                                 |\n| Prérequis              | Ligne de commande, serveurs Web, Linux un plus      |\n| Mots-clés              | WordPress, SSH, CLI, Linux, Apache, MariaDB, Docker |\n\n\\* _La durée du stage peut varier en fonction des connaissances préalables du\nstagiaire et de la manière dont les différentes tâches sont approfondies._\n\n\u003e **Note**\n\u003e La version la plus récente de ce document est disponible sur\n\u003e https://go.epfl.ch/stage-WP. Accéder à sa version électronique vous permettra\n\u003e de suivre les liens, suggérer des [modifications] ou laisser des\n\u003e [commentaires]. Vous pouvez également ajouter une ⭐ au repo pour faire\n\u003e plaisir aux contributeurs :)\n\n\n## Description du stage\n\n* Découvrir le CMS [WordPress] : installation, configuration, utilisation et\n  développement ;\n* Apprendre comment déployer et mettre en production un site WordPress ;\n* Mettre en place un kit de développement WordPress avec [Docker] ;\n* Observer et discuter de la pile technologique mise en place à l’EPFL pour les\n  sites WordPress.\n\n\n## Déroulement du stage (dans les grandes lignes)\n\n1. La personne en stage installe WordPress sur sa machine ;\n2. La personne en stage installe WordPress sur une machine virtuelle ;\n3. La personne en stage installe WordPress sur sa machine, avec Docker ;\n4. La personne en stage déploie le WordPress de sa machine sur la machine\n   virtuelle ;\n5. La personne en stage découvre comment WordPress est géré à l’EPFL.\n\n\n# Avant de commencer\n\nCe stage se déroule en plusieurs étapes graduelles pour lesquelles vous devrez\nnoter votre progression, répondre à des questions puis obtenir la validation du\nformateur ou de la formatrice pour passer aux étapes suivantes.\n\nCommencez par créer un document qui vous permettra de prendre des notes et de\nrépondre aux questions tout au long du stage. Le format du document est libre,\nmais si vous êtes indécis, nous vous recommandons d’utiliser [Markdown], le\nformat des fichiers README sur GitHub.\n\n\u003e **Note**\n\u003e Bien que cela ne soit pas le sujet du stage, il est recommandé que vous créiez\n\u003e un dépôt [Git] pour votre document et les différents fichiers dont vous\n\u003e pourriez avoir besoin lors de ce stage.\n\n- [ ] J’ai un dossier avec mon document prêt\n\n\n# Première partie : à propos de WordPress\n\nPour cette première étape, vous devez vous **renseigner** sur [WordPress].\nCommencez par ajouter un paragraphe « Qu’est-ce que WordPress » dans votre\ndocument. Ce paragraphe doit contenir un peu d’historique (date de création,\nauteur, etc.). Répondez également aux questions : « WordPress est-il beaucoup\nutilisé ? », « Combien coûte WordPress ? » et « Quelle est la différence entre\nwordpress.com et wordpress.org » en développant vos réponses.\n\n- [ ] J’ai écrit le paragraphe « Qu’est-ce que WordPress »\n- [ ] J’ai répondu à la question « WordPress est-il beaucoup utilisé ? »\n- [ ] J’ai répondu à la question « Combien coûte WordPress ? »\n- [ ] J’ai répondu à la question « Quelle est la différence entre wordpress.com\n      et wordpress.org »\n- [ ] Je sais ce qu’est un CMS\n\n\n# Deuxième partie : installation locale\n\nCette partie est pratique, vous devez **installer WordPress** pour qu’il\nfonctionne sur votre ordinateur. Commencez par vous documenter et trouver une\nprocédure expliquant comment faire en fonction de votre système d’exploitation.\nPrenez des notes à chaque étapes pour expliquer comment vous avez fait tout en\ncitant les références qui vous ont permis d’y arriver. Cette procédure doit être\nreproductible !\n\nAjoutez la procédure d’installation à votre document et répondez à cette\nquestion : « De quoi WordPress a-t-il besoin pour fonctionner ? ».\n\n- [ ] J’explique comment je l’ai installé sur ma machine\n- [ ] J’ai listé les éléments dont WordPress avait besoin pour fonctionner\n\n\n## Validation de la deuxième partie\n\nAvant d’aller plus loin, transmettez votre document à la personne encadrant le\nstage et discutez de votre installation avec elle.\n\n- [ ] La procédure d’installation est validée par l’encadrant·e (vous lui\n      expliquez la procédure et lui montrez votre site WordPress dans votre\n      navigateur)\n- [ ] Vous avez discuté avec l’encadrant·e des éléments dont WordPress avait\n      besoin pour fonctionner\n- [ ] Vous êtes en mesure de dire ce que sont `LAMP`, `MAMP`, `WAMP` et `XAMP`\n\n\n# Troisième partie : installation distante\n\nLe but de la troisième partie est de pouvoir installer **WordPress sur une\nmachine distante** (aka le cloud) afin que le site que vous allez créer soit\naccessible au monde entier.\n\nCommencez par créer le paragraphe « Procédure d’installation de WordPress sur\nune VM distante » dans votre documentation. Cette procédure doit pouvoir être\nreproduite par une personne avec peu de connaissances en informatique, elle\ndoit donc être précise.\n\nBien que certains hébergeurs proposent des installations automatisées et en\nmode graphique[^1], l’idée ici est de tout faire en ligne de commande. Pour\npouvoir débuter, demandez à la personne responsable du stage de créer une\nmachine virtuelle. Afin d’y accéder, elle va probablement vous demander votre\nclé SSH. Si vous n’en avez pas, elle vous accompagnera pour en créer une. Les\nétapes de création de la VM et de la clé SSH ne sont pas à protocoler dans votre\ndocumentation.\n\nLorsque vous êtes connecté sur l’invite de commande du serveur distant,\ncommencez à protocoler toutes les étapes nécessaires au bon déroulement de\nl’installation d’un site WordPress.\n\nLorsque le site est fonctionnel, demandez-vous si la procédure que vous avez\nétablie est reproductible. Est-ce qu’on peut tout effacer et reprendre votre\nprocédure ?\n\n- [ ] J’ai écrit le paragraphe « Procédure d’installation de WordPress sur\n      une VM distante »\n- [ ] J’ai protocolé toutes les étapes nécessaires à l’installation de WordPress\n\n\n## Validation de la troisième partie\n\nC’est le moment de valider votre travail avec le formateur ou la formatrice et\niel aura besoin d’un compte administrateur sur votre site. Créez lui un compte\navec comme username son nom d’utilisateur EPFL et comme mot-de-passe le mot EPFL\nentouré de son sciper (`123456EPFL123456`).\n\n- [ ] Vous avez créé un compte administrateur pour l’encadrant·e\n- [ ] L’encadrant·e peut accéder au site WordPress\n- [ ] L’encadrant·e valide votre procédure\n\n\n## À la découverte de WordPress\n\nMaintenant que vous avez un site WordPress accessible à distance, c’est le\nmoment de faire le **tour du propriétaire**. Commencez par créer des posts et\ndes pages, en y incluant des médias.\n\n- [ ] Vous avez créé au moins 2 posts\n- [ ] Vous avez créé au moins 2 pages\n\nParcourez les différents menus de l’interface d’administration, puis demandez\nà la personne responsable du stage une visite guidée des fonctionnalités.\n\n- [ ] L’encadrant·e vous a fait une visite guidée du backoffice de WordPress\n- [ ] Vous êtes capable d’expliquer la différence entre un post et une page\n- [ ] Vous savez installer et changer les thèmes\n- [ ] Vous savez installer et changer les plugins\n- [ ] Vous avez pris connaissance de l’écosystème des plugins et des thèmes\n- [ ] Vous savez utiliser le menu\n- [ ] Vous savez comment assigner un menu à un emplacement du thème\n- [ ] Vous avez visité le menu `settings` (URL Rewriting, etc.)\n- [ ] Vous savez utiliser les catégories et les tags, ainsi que leurs pages\n- [ ] Vous savez ce qu’est le «SEO» et un «excerpt»\n\nPrenez un peu de temps pour découvrir ces éléments : parcourrez le catalogue des\nthèmes et des plugins et installez-en quelques-un. Observez le comportement du\nsite après chaque installation.\n\nVous n’avez pas besoin de documenter l’expérience acquise ci-dessus, mais\nvous devez ajouter une copie d’écran de votre site. Vous y ajoutez également\nun paragraphe « Que manque-t-il pour que mon site soit opérationnel ? ». Ce\nparagraphe doit contenir tout ce dont votre site pourrait avoir besoin pour\nfonctionner en production et être visité par un millier d’utilisateurs par jour.\n\n- [ ] J’ai ajouté une capture d’écran dans mon document\n- [ ] J’ai écrit le paragraphe « Que manque-t-il pour que mon site soit\n      opérationnel ? »\n\n\n# Quatrième partie : développement avec Docker (Dev)\n\n\u003e **Note**\n\u003e Cette partie couvre la partie développement de WordPress et peut\n\u003e éventuellement être laissée de côté en fonction des intérêts de l’apprenti·e\n\u003e ou du temps à disposition.\n\nLes développeurs WordPress (du CMS, de thèmes ou de plugins) doivent avoir un\nenvironnement de développement leur permettant de rapidement tester leur code\net si possible en tout point similaire à la « production ». En démocratisant\nl’utilisation de conteneurs, [Solomon Hykes] a rendu cela possible. « [Docker]\nest un outil qui peut empaqueter une application et ses dépendances dans un\nconteneur isolé, qui pourra être exécuté sur n’importe quel serveur ».\n\nDans cette troisième partie vous devez **créer un kit de développement**\nWordPress fonctionnant sur votre machine avec [Docker] et [docker compose].\n\nDans la première partie, vous avez du lister les éléments dont WordPress avait\nbesoin pour fonctionner. Les éléments principaux doivent être conteneurisés\nindividuellement.\n\nMême si vous avez déjà un peu d’expérience avec Docker, prenez un moment pour\nlire la page [wikipedia][Docker] et vous documenter. Si ce n’est pas déjà fait,\ninstallez-le sur votre machine. Ensuite, prenez une à deux heures pour essayer\nde faire fonctionner WordPress avec Docker sur votre machine, puis demandez de\nl’aide à la personne responsable du stage.\n\nVotre documentation doit contenir une petite introduction sur Docker et\nexpliquer en quoi la conteneurisation est différente de la virtualisation. Votre\ndocumentation liste les commandes principales qu’il faut connaître pour utiliser\nDocker et plus précisément pour lancer WordPress dans un conteneur sur votre\nordinateur.\n\n- [ ] Vous expliquez ce qu’est [Docker] dans votre document\n- [ ] Vous expliquez en quoi la conteneurisation est différente de la\n      virtualisation\n- [ ] Vous listez les commandes nécessaire à démarrer WordPress sur votre\n      ordinateur\n- [ ] Votre documentation contient un fichier `docker-compose.yml` fonctionnel\n- [ ] Vous êtes en mesure de comprendre la différence entre un Dockerfile,\n      Docker et docker compose\n- [ ] Vous pouvez expliquer les ports, les volumes et les environnements dans\n      le monde de Docker\n- [ ] Vous savez \"entrer\" dans un Docker\n\nAvant de terminer cette partie, vous devez avoir compris les avantages de votre\nkit de développement avec Docker. Les informations pour le développement de\nWordPress se trouvent sur le Codex (\u003chttps://codex.wordpress.org\u003e).\n\nPour ce faire nous vous proposons d’utiliser le plugin [Hello\nDolly](https://wordpress.org/plugins/hello-dolly/) ou créer votre [propre\nplugin](https://developer.wordpress.org/plugins/intro/). Intégrez le plugin dans\nle conteneur à l’aide d’un volume, vous devez pouvoir le modifier depuis votre\nsystème (avec votre éditeur favori) puis voir les modifications depuis la page\nservie par le conteneur.\n\nVous devez également être en mesure de naviguer dans la base de données de\nWordPress depuis un client SQL de votre choix. Ajouter une capture d’écran du\ndiagramme entité-association (« entity-relationship diagram », abrégé en ERD) de\nla base de données dans votre documentation.\n\n- [ ] Vous avez ajouté un plugin dans un volume et pu le modifier depuis\n      l’extérieur du conteneur\n- [ ] Vous avez pu connecter un client de base de données à votre conteneur pour\n      ajouter une capture d’écran du diagramme entité-association de la DB.\n\n\n## Validation de la quatrième partie\n\nAvant d’aller plus loin, prenez un moment avec la personne encadrant le stage et\ndiscutez de votre `docker-compose.yml` et des avantages de Docker avec elle.\n\n- [ ] Votre `docker-compose.yml` est validé par l’encadrant·e\n- [ ] Vous pouvez expliquer les avantages de Docker\n\n\n# Cinquième partie : déploiement avec Docker (Ops)\n\nMaintenant que vous avez un kit de développement adapté, vous voulez faire\nle nécessaire pour **déployer en « prod »** vos modifications. Réutilisez\nla machine virtuelle de la deuxième partie (vous pouvez éventuellement la\nréinstaller) et installez-y Docker.\n\nRécupérez votre `docker-compose.yml` (idéalement à l’aide de la commande\n`git clone https://github.com/vous/wp-dev-kit`) ainsi que le\ncode spécifique à vos développements.\n\nAvec des commandes similaires à celles que vous avez utilisées sur votre\nordinateur, démarrer votre « stack » WordPress sur le serveur. Documentez ces\nétapes dans votre documentation, et répondez à la question : « Mon déploiement\nen prod est-il en tout point similaire à celui sur mon ordinateur ? ».\n\n- [ ] Vous documentez la procédure de déploiement en production\n- [ ] Vous répondez à la question « Mon déploiement en production est-il en tout\n      point similaire à celui sur mon ordinateur ? »\n\nÀ ce point, il est supposé que les quelques étapes pour déployer en production\nont été étonnamment faciles, est-ce bien le cas ? Si oui, cela a permis de\ndémontrer un avantage de Docker : la portabilité.\n\n\n## Est-on prêt pour la prod ?\n\nVotre documentation devrait avoir un paragraphe « Que manque-t-il pour que mon\nsite soit opérationnel ? », écrit lors de la troisième partie de ce stage.\nDiscutez avec la personne responsable du stage de ce qu’il manque à votre site\npour être utilisable, par exemple :\n\n* Est-ce que le site peut envoyer des emails, par exemple lorsqu’un\n  mot-de-passe est perdu ?\n* Est-ce que le site est sécurisé par HTTPS assurant que les informations\n  transitant entre le client et le serveur soient chiffrées ?\n* Est-ce que les informations importantes du site sont sauvegardées et\n  pourraient être utilisées dans un plan de reprise d’activité ([PRA]) ?\n* Qui pourra accéder à votre site ? Est-il nécessaire de mettre en place un\n  système d’authentification basé sur celui de l’entreprise ?\n* ...\n\nEn discutant avec l’encadrant·e, définissez ce qui doit être fait (par exemple\nla mise en place d’un certificat TLS/SSL avec [Let’s encrypt] et la\nconfiguration d’une passerelle SMTP pour envoyer des e-mails).\n\n- [ ] Vous discutez avec l’encadrant·e de ce qui manque au site\n- [ ] Vous êtes capable de mettre en place un certificat ou du moins d’en\n      expliquer les étapes\n- [ ] Vous êtes en mesure d’installer une passerelle SMTP\n- [ ] Vous savez ce qu’est un SSO\n- [ ] L’encadrant·e valide votre cinquième partie\n\n\n# Sixième partie: WordPress@EPFL\n\nEn atteignant cette sixième partie vous devriez maintenant être à l’aise avec\nWordPress et son environnement. L’objectif de ce chapitre est de partager et\nd’expliquer comment le **CMS WordPress a été mis en place à l’EPFL** et de\ndécrire la pile technologique utilisée pour le gérer.\n\n\n## Historique\n\nLe premier site Internet de l’École Polytechnique Fédérale de Lausanne a vu le\njour en 1997 :  \n![Premier site Internet de l’EPFL, en 1997](./img/1997.png)\n\nTout au long des années, suivant l’évolution du Web et faisant recours a\ndivers systèmes de gestion de contenu[^2], différentes versions du site\nInternet de l’EPFL ont vu le jour ([1998], [2004], [2007], [2010], [2014]) pour\nfinalement adopter WordPress en [2019].\n\n\n## Volumétrie\n\nLorsque quelqu’un navigue sur le site \u003chttps://www.epfl.ch\u003e, il a l’impression\nde visiter un gros site Internet. Il s’avère qu’il s’agit en fait d’une\nmultitude de petits sites qui sont agrégés ensembles.\n\n- [ ] Posez-vous la question de combien de sites sont agrégés ensembles\n- [ ] Pourquoi pensez-vous que cette façon de faire a été choisie ?\n\n\n## Traitement individuel vs. traitement de masse\n\nL’ordre de grandeur du nombre de site à l’EPFL rend impossible le traitement\nindividuel. Imaginez qu’une personne soit chargée de la mise à jour des sites,\net que cela prenne une heure par site. Si la personne peut mettre à jour 8 sites\npar jour, combien de temps prendrait la mise à jour de la totalité de la flotte\n? Est-ce compatible avec le cycle de nouvelles version mentionné dans la page\n[How the Release Cycle Works] (tous les 4 mois) ?\n\nNous aimons à penser que nous traitons les sites WordPress comme du bétail :\nles sites sont mis à jour en masse et nous nous occupons individuellement des\ncas particuliers, au même titre qu’un agriculteur s’occupe d’une bête qui boîte\ndans son troupeau.\n\n\n## Pile technologique\n\nVous êtes peut-être en train de vous demander quelle solution technologique vous\nmetteriez en place si vous êtiez en charge du projet. Il y a assurément\nplusieurs solutions ! Les paragraphes suivants décrivent les solutions mises en\nplace à l’EPFL.\n\n\n### Kubernetes\n\nLa page [What is Kubernetes] décrit Kubernetes comme étant une plate-forme\nOpen Source extensible et portable pour la gestion de charges de travail\n(workloads) et de services conteneurisés. Elle favorise à la fois l’écriture\nde configuration déclarative et l’automatisation. C’est un large écosystème en\nrapide expansion.\n\nLes sites de l’EPFL sont déployés sur une version de Kubernetes de Red Hat,\nqui s’appelle OpenShift. Le serveur web est [Apache] et la base de données\n[MariaDB]. Un système de [cache] interne est mis en place avec [Varnish].\nL’accès de l’extérieur est fait via [Cloudflare], ce qui permet d’avoir un cache\nen amont et de se protéger contre les attaques DDoS.\n\n\n### Monitoring, observabilité et alerting\n\nUne vue d’ensemble de l’état des sites est disponible sur l’outil [Grafana].\nDifférentes sondes sont disponibles et permettent de recueillir des métriques\nqui sont regroupées dans [Prometheus]. Les logs des différents conteneurs sont\naiguillés vers [Kibana]. Finalement, il est possible d’utiliser ces informations\npour mettre en place des systèmes d’alertes permettant d’être informé rapidement\nen cas de panne.\n\n\n### Configuration as code\n\nLes opérations sur la flotte, telle que la création d’un nouveau site, les\nbackups, les mises à jour et une partie de l’infrastructure sont décrites\ndans du code, c’est-à-dire qu’elles sont reproductibles et documentées. Les\nopérateurs (les personnes qui sont en charge d’opérer la plateforme WordPress)\npeuvent utiliser différentes commandes depuis leurs ordinateurs respectifs afin\nde gérer la plateforme.\n\nLe logiciel utilisé s’appelle [Ansible]. Il est utilisé d’une manière qui permet\nde s’affranchir de la complexité du système : les apprentis sont par exemple en\nmesure de lancer les commandes de mise à jour de la totalité de la flotte en\nproduction sans pour autant devoir comprendre tous les éléments.\n\n\n### Secrets, DevOps et 12 facteurs\n\nLe partage des secrets permettant d’accéder aux différents éléments de la\nplateforme (aka « qui à le droit de péter la prod » !) est principalement fait\navec l’outil [Keybase]. Parmi d’autres choses, Keybase offre un stockage\nchiffré dans le cloud, Keybase File System. Les opérateurs, via le client\nKeybase, ont alors accès aux fichiers sur un point de montage de leur système.\n\nLes différents scripts ([Ansible]) peuvent alors utiliser le principe de\n« inclus ce fichier contenant les mot-de-passes si tu en as le droit, sinon\ntant pis pour toi », délégant le contrôle d’accès aux secrets à Keybase et à la\npersonne y ayant accès.\n\nDe manière plus générale, il est aussi intéressant de mentionner la méthodologie\n[DevOps] qui regroupe les pratiques techniques visant à l’unification du\ndéveloppement logiciel (dev) et de l’administration des infrastructures\ninformatiques (ops).\n\nEn addition à la méthodologie [DevOps], la méthodologie des [12 facteurs] (« The\nTwelve-Factor App ») est également appliquée.\n\nL’approche qui a été mise en place pour la création de la plateforme des sites\nWordPress de l’école se veut respectueuse de ces deux méthodologies.\n\n\n### Code opensource\n\nEnfin et surtout, la totalité du code utilisée sur la plateforme WordPress de\nl’EPFL est disponible sur GitHub :\n\n* Le dépôt contenant le kit de développement :\n  \u003chttps://github.com/epfl-si/wp-dev\u003e\n* Le code Ansible pour le déploiement et le maintien de la plateforme :\n  \u003chttps://github.com/epfl-si/wp-ops\u003e\n* Le thème WordPress de l’EPFL, \u003chttps://github.com/epfl-si/wp-theme-2018\u003e,\n  utilisant la charte graphique disponible sur\n  \u003chttps://epfl-si.github.io/elements\u003e\n* Les différents plugins, pouvant être listé en recherchant\n  [`wp`](https://github.com/epfl-si?q=wp)\n\n\n## Validation de la sixième partie\n\nDiscutez de ce chapitre avec la personne encadrant le stage, si vous le\nsouhaitez il est peut être possible de participer au déploiement en production\nde nouvelles fonctionnalités sur la flotte des sites WordPress, voir même d’en\nêtre l’acteur.\n\nPour cette partie vous êtes libre de décrire, dans le paragraphe\n« WordPress@EPFL », ce que vous avez retenu et de développer les parties qui\nvous intéressent.\n\n- [ ] J’ai ajouté le paragraphe « WordPress@EPFL » dans mon document\n- [ ] L’encadrant·e du stage m’a montré différents éléments de la pile\n      technologique utilisée\n- [ ] J’ai discuté avec l’encadrant·e des différents aspects présents dans ce\n      chapitre\n\n\n# Dernière partie : wrap up\n\nC’est la dernière parie du stage, l’objectif est de **compléter votre\ndocument**.\n\nVotre document doit mentionner 3 alternatives à WordPress ; si pour une\nraison quelconque l’utilisation de Wordpress n’est pas possible, quels CMS\npourraient-on utiliser ? Ou, en d’autres termes, quels sont les concurrents à\nWordPress ?\n\nLe fait que WordPress soit un logiciel libre et gratuit est intéressant. Qui\ns’occupe de le développer ? Quel est le modèle commercial (comment gagnent-ils\nde l’argent) ? Ajoutez un paragraphe qui traite de ces sujets s’ils ne sont pas\npas déjà traités.\n\nWordPress est très utilisé, pouvez-vous citez des sites connus qui l’utilise ?\n\n- [ ] J’ai mentionné au moins 3 alternatives à WordPress dans mon document\n- [ ] Je parle de la licence, de la gratuité et du modèle commercial\n- [ ] J’ai mentionné des sites connus qui l’utilise\n\n\n## Conclusion\n\nC’est le moment d’ajouter la conclusion à votre rapport. La conclusion doit\ntraiter au moins des points suivants, permettant de faire une synthèse sur le\ntavail que vous avez fournit durant le stage :\n\n * Les avantages et inconvénients de WordPress ;\n * WordPress est-il un bon choix pour les sites de l’EPFL ;\n * Bilan du stage : ce que vous avez appris, ce que vous avez aimé, ce que vous\n   avez moins aimé.\n\n- [ ] J’ai ajouté le paragraphe « Avantages et inconvénients de WordPress »\n- [ ] J’ai ajouté le paragraphe « WordPress est-il un bon choix pour l’EPFL »\n- [ ] J’ai ajouté le paragraphe « Bilan du stage » avec ce que j’ai appris, aimé\n      ou moins aimé\n\n\n# Envoi final\n\nRelisez attentivement votre document pour vérifier l’orthographe, la mise en\npage, la qualité de vos procédure, etc. puis générez un PDF (par exemple en\nutilisant [Pandoc] si vous l'avez écrit au format [Markdown]), avec comme nom\n`Stage_WP_ISAS-FSD_YYYY-MM_Rapport_Prénom_Nom.pdf`.\n\nAvant de l’envoyer à personne encadrant votre stage et à vos formateurs et\nformatrices, renseignez-vous pour savoir s’il est nécessaire de remplir un\nrapport de stage. Le cas échéant, le rapport de stage est disponible sur le\n[site du canton de vaud](https://www.vd.ch/fileadmin/user_upload/themes/formation/orientation/fichiers_pdf/apprentissage/rapp_stage_stag.pdf) ou en [version web](https://azecko.github.io/rapport-de-stage/)).\nUne fois complété, sauvez-le en PDF, avec comme nom\n`Stage_WP_ISAS-FSD_YYYY-MM_Évaluation_Prénom_Nom.pdf`.\n\nVous pouvez maintenant écrire le mail de fin de stage avec les documents\nadéquats en attachement. Pensez à communiquer les éventuels liens nécessaires\npour accéder à votre document en ligne ou à votre dépôt Git.\n\n- [ ] J’ai remplis l’évaluation (rapport de stage) et j’en ai fait un PDF\n- [ ] J’ai créé un PDF basé sur ma documentation et l'ai nommé correctement\n- [ ] J’ai envoyé par email, aux personnes responsables du stage et à mes\n      formateur·trice·s, tous mes documents\n\n\n---\n\n\u003e **Note**\n\u003e La version la plus récente de ce document est disponible sur\n\u003e https://go.epfl.ch/stage-WP. Accéder à sa version électronique vous permettra\n\u003e de suivre les liens, suggérer des [modifications] ou laisser des\n\u003e [commentaires]. Vous pouvez également ajouter une ⭐ au repo pour faire\n\u003e plaisir aux contributeurs :)\n\n\u003c!-- Faire un test de controle de connaissances ? --\u003e\n\n[Markdown]: https://fr.wikipedia.org/wiki/Markdown\n[Git]: https://fr.wikipedia.org/wiki/Git\n[WordPress]: https://wordpress.com/\n[Solomon Hykes]: https://fr.wikipedia.org/wiki/Solomon_Hykes\n[Docker]: https://fr.wikipedia.org/wiki/Docker_(logiciel)\n[docker compose]: https://docs.docker.com/compose/\n[PRA]: https://fr.wikipedia.org/wiki/Plan_de_reprise_d%27activit%C3%A9\n[Let’s encrypt]: https://letsencrypt.org/\n[How the Release Cycle Works]: https://make.wordpress.org/core/handbook/about/release-cycle/\n[What is Kubernetes]: https://kubernetes.io/fr/docs/concepts/overview/what-is-kubernetes/\n[Apache]: https://httpd.apache.org\n[MariaDB]: https://mariadb.org\n[cache]: https://fr.wikipedia.org/wiki/M%C3%A9moire_cache\n[Varnish]: https://varnish-cache.org\n[Cloudflare]: https://fr.wikipedia.org/wiki/Cloudflare\n[Grafana]: https://grafana.com\n[Prometheus]: https://prometheus.io\n[Kibana]: https://www.elastic.co/kibana\n[Ansible]: https://www.ansible.com\n[Keybase]: https://fr.wikipedia.org/wiki/Keybase\n[DevOps]: https://fr.wikipedia.org/wiki/Devops\n[12 facteurs]: https://12factor.net/fr/\n[Pandoc]: https://pandoc.org\n[modifications]: https://github.com/ponsfrilus/fiche-de-stage-WordPress/pulls\n[commentaires]: https://github.com/ponsfrilus/fiche-de-stage-WordPress/issues/new\n\n[1998]: ./img/1998.png\n[2004]: ./img/2004.png\n[2007]: ./img/2007.png\n[2010]: ./img/2010.png\n[2014]: ./img/2014.jpg\n[2019]: ./img/2019.png\n\n[^1]: Par exemple en proposant \u003chttps://www.virtuozzo.com\u003e,\n      \u003chttps://www.plesk.com/\u003e ou \u003chttps://cpanel.net/\u003e\n[^2]: Dont Jahia (\u003chttps://www.jahia.com\u003e)\n\n\n[//]: # `export VERSION=$(sed -n -e 's/\u003c!-- version:\\s\\(.*\\)\\s--\u003e/\\1/p' README.md); pandoc README.md --pdf-engine=xelatex --variable urlcolor=cyan -V papersize:a4paper -V geometry:margin=2cm -o $(date +\"%Y-%m-%d\")_Stage_WordPress_ISAS-FSD_${VERSION}.pdf \u0026\u0026 xpdf $(date +\"%Y-%m-%d\")_Stage_WordPress_ISAS-FSD_${VERSION}.pdf`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponsfrilus%2Ffiche-de-stage-wordpress","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fponsfrilus%2Ffiche-de-stage-wordpress","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fponsfrilus%2Ffiche-de-stage-wordpress/lists"}