{"id":19111021,"url":"https://github.com/acensjj/ft_services","last_synced_at":"2026-04-02T18:52:27.928Z","repository":{"id":105924185,"uuid":"235356536","full_name":"AcensJJ/ft_services","owner":"AcensJJ","description":"Le projet consiste a mettre en place une infrastructure de différents services a l'aide de Kubernetes.","archived":false,"fork":false,"pushed_at":"2021-06-11T23:53:41.000Z","size":1664,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-24T00:24:53.225Z","etag":null,"topics":["42","42born2code","docker","ft-services","grafana","grafana-influxdb","influxdb","kubernetes","nginx"],"latest_commit_sha":null,"homepage":"","language":"Shell","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/AcensJJ.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":"2020-01-21T14:05:39.000Z","updated_at":"2021-06-11T23:53:44.000Z","dependencies_parsed_at":null,"dependency_job_id":"1a2945af-96cf-483d-bf51-c2be7ea9fba4","html_url":"https://github.com/AcensJJ/ft_services","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AcensJJ/ft_services","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Fft_services","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Fft_services/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Fft_services/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Fft_services/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AcensJJ","download_url":"https://codeload.github.com/AcensJJ/ft_services/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AcensJJ%2Fft_services/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28132992,"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-12-30T02:00:05.476Z","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":["42","42born2code","docker","ft-services","grafana","grafana-influxdb","influxdb","kubernetes","nginx"],"created_at":"2024-11-09T04:26:51.520Z","updated_at":"2025-12-30T22:06:51.361Z","avatar_url":"https://github.com/AcensJJ.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg alt=\"42-lyon\" src=\"https://user-images.githubusercontent.com/45235527/106354618-6ec65a00-62f3-11eb-8688-ba9e0f4e77de.jpg\" /\u003e\n\u003c/p\u003e\n\n# ft_services\n\n\u003cimg alt=\"Note\" src=\"https://user-images.githubusercontent.com/45235527/96753610-698e7080-13d0-11eb-9461-d3351c9208d7.png\" width=\"250\" height=\"200\" /\u003e\n\n### \u003cstrong\u003eDescription\u003c/strong\u003e\n\nLe projet consiste a mettre en place une infrastructure de différents services a l'aide de Kubernetes.\n\n# Partie obligatoire\n\nVous allez aussi devoir mettre en place :\n- Le dashboard web de \u003cstrong\u003eKubernetes\u003c/strong\u003e. Celui-ci est utile pour gérer votre cluster.\n- Un \u003cstrong\u003eLoad Balancer\u003c/strong\u003e qui gère l’accès externe à vos services dans un cluster. C’est\nuniquement lui qui vous servira pour exposer vos services. Vous devez garder les\nports propres aux services (IP `:3000` pour grafana etc).\n- Un serveur \u003cstrong\u003eNginx\u003c/strong\u003e ouvert sur les `ports 80 et 443`. Le `port 80` sera en \u003cstrong\u003ehttp\u003c/strong\u003e et devra\nfaire une redirection systématique de type `301` vers le `443`, qui sera lui en \u003cstrong\u003ehttps\u003c/strong\u003e.\nLa page affichée n’a pas d’importance.\n- Un serveur \u003cstrong\u003eFTPS\u003c/strong\u003e ouvert sur le `port 21`.\n- Un \u003cstrong\u003eWordPress\u003c/strong\u003e ouvert sur le `port 5050`, fonctionnant avec une base de données\n\u003cstrong\u003eMySQL\u003c/strong\u003e. Les deux devront être dans deux containers distincts. Le wordpress devra\ncomporter *plusieurs utilisateurs* et *un administrateur*.\n- \u003cstrong\u003ePhpMyAdmin\u003c/strong\u003e, tournant sur le `port 5000` et relié à la base de données \u003cstrong\u003eMySQL\u003c/strong\u003e.\n- Un \u003cstrong\u003eGrafana\u003c/strong\u003e, accessible sur le `port 3000`, fonctionnant avec une base de données\n\u003cstrong\u003eInfluxDB\u003c/strong\u003e. Celui-ci devra vous permettre de monitorer tous vos containers. Les\ndeux devront aussi être dans deux containers distincts. Vous devrez créer un dashboard par container.\n- En cas de crash ou d’arrêt d’un des deux containers de base de données, vous\ndevrez vous assurer que celles-ci puissent persister et ne soient pas perdues. En\ncas de suppression, les volumes où la data est sauvegardée doivent persister.\n- Vous devrez vous assurer de pouvoir accéder à votre \u003cstrong\u003eNginx\u003c/strong\u003e en connexion \u003cstrong\u003eSSH\u003c/strong\u003e.\n- Chacun de vos containers devra pouvoir redémarrer automatiquement en cas de\ncrash ou d’arrêt d’un des éléments le composant.\n\n\n# Documentation\n\nInstall ```helm``` / ```jq``` / ```docker``` / ```docker-machine``` / ```virtualbox``` / ```kubectl``` / ```minikube``` : \u003ca href=\"https://github.com/AcensJJ/ft_services/blob/master/srcs/doc\"\u003eDocumentation\u003c/a\u003e.\n\nGit clone le projet et ```./setup.sh [$1 (delete / restart / ssh / minikube / dashboard / ip / password)] [$2 (only)] ``` dans le projet (ft_services).\n\n- \u003cstrong\u003e$1\u003c/strong\u003e : \n  - ```delete``` : suppression des containers (no only possible)\n  - ```restart``` : redemarrage de tout les containers (no only possible)\n  - ```ssh``` : redirection vers le ssh\n  - ```minikube``` : activation et redirection de l'interface minikube\n  - ```dashboard``` : affichage des containers et de leur etat\n  - ```ip``` : voir l'ip du serveur\n  - ```password``` : afficher les mots de passe MySql et wordpress\n  \n- \u003cstrong\u003e$2\u003c/strong\u003e:\n  - ```only``` : pour executer seulement le premier argument (seulement suprimé les containers, voir l'ip, etc...)\n\n# Technologie\n\n![Docker](https://user-images.githubusercontent.com/45235527/96755415-fd613c00-13d2-11eb-9e80-ca852dbd7cac.png) \u003cimg alt=\"Nginx\" src=\"https://user-images.githubusercontent.com/45235527/96755516-1b2ea100-13d3-11eb-90a5-eef37dc45090.png\" width=\"300\" height=\"200\" /\u003e \u003cimg alt=\"Php\" src=\"https://user-images.githubusercontent.com/45235527/96755596-36011580-13d3-11eb-8f1f-3d0df5ca7782.png\" width=\"300\" height=\"200\" /\u003e \u003cimg alt=\"Sql\" src=\"https://user-images.githubusercontent.com/45235527/96755726-5e890f80-13d3-11eb-9c6b-5ac803a7a5fc.png\" width=\"300\" height=\"200\" /\u003e \u003cimg alt=\"Wordpress\" src=\"https://user-images.githubusercontent.com/45235527/96755647-47e2b880-13d3-11eb-918f-e904e959f4f9.png\" width=\"300\" height=\"200\" /\u003e \u003cimg alt=\"Php my admin\" src=\"https://user-images.githubusercontent.com/45235527/96904960-1d0e6800-1498-11eb-9ebf-beddaae4bb93.png\" width=\"300\" height=\"200\" /\u003e \u003cimg alt=\"Minikube\" src=\"https://user-images.githubusercontent.com/45235527/103042867-453f4380-457b-11eb-8ce7-fc5eb8b99269.png\" width=\"300\" height=\"200\" /\u003e \u003cimg alt=\"grafana influxdb telegraf\" src=\"https://user-images.githubusercontent.com/45235527/103042900-6738c600-457b-11eb-9009-4794fe3e5162.jpg\" width=\"300\" height=\"200\" /\u003e \u003cimg alt=\"helm\" src=\"https://user-images.githubusercontent.com/45235527/103042921-7455b500-457b-11eb-8e08-e4e9a265c4a1.png\" width=\"300\" height=\"200\" /\u003e \u003cimg alt=\"Virtual box\" src=\"https://user-images.githubusercontent.com/45235527/103042929-820b3a80-457b-11eb-8ea9-7381c4f22fb8.jpeg\" width=\"300\" height=\"200\" /\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facensjj%2Fft_services","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facensjj%2Fft_services","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facensjj%2Fft_services/lists"}