{"id":24815471,"url":"https://github.com/gregoirebrn/inception","last_synced_at":"2026-04-09T17:57:42.217Z","repository":{"id":259045800,"uuid":"874806396","full_name":"Gregoirebrn/Inception","owner":"Gregoirebrn","description":"Mini-infrastructure of different services following specific rules ","archived":false,"fork":false,"pushed_at":"2025-01-28T22:12:15.000Z","size":40,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-28T22:29:21.011Z","etag":null,"topics":["docker","docker-compose","mariadb","nginx","wordpress"],"latest_commit_sha":null,"homepage":"","language":"Makefile","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/Gregoirebrn.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":"2024-10-18T13:50:19.000Z","updated_at":"2025-01-28T22:12:19.000Z","dependencies_parsed_at":"2025-01-28T22:35:52.547Z","dependency_job_id":null,"html_url":"https://github.com/Gregoirebrn/Inception","commit_stats":null,"previous_names":["gregoirebrn/inception"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gregoirebrn%2FInception","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gregoirebrn%2FInception/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gregoirebrn%2FInception/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Gregoirebrn%2FInception/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Gregoirebrn","download_url":"https://codeload.github.com/Gregoirebrn/Inception/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245525145,"owners_count":20629801,"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","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":["docker","docker-compose","mariadb","nginx","wordpress"],"created_at":"2025-01-30T16:29:18.205Z","updated_at":"2025-12-30T22:42:40.743Z","avatar_url":"https://github.com/Gregoirebrn.png","language":"Makefile","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projet Inception - 42\n\nCe projet a pour objectif de mettre en place un environnement de développement web complet en utilisant Docker et Docker Compose. L'objectif final est de faire fonctionner un site WordPress avec une persistance des données et un serveur web performant, tout en utilisant Nginx comme reverse proxy, MariaDB pour la gestion de la base de données, et WordPress pour le système de gestion de contenu.\n\n## Prérequis\n\nAvant de commencer, assurez-vous d'avoir les outils suivants installés sur votre machine :\n\n- [Docker](https://www.docker.com/get-started) version 20.x ou supérieure\n- [Docker Compose](https://docs.docker.com/compose/install/) version 1.29 ou supérieure\n\n## Description du projet\n\nLe projet consiste à configurer trois services principaux via Docker Compose :\n\n- **Nginx** : Le serveur web servant de reverse proxy pour WordPress.\n- **MariaDB** : La base de données utilisée par WordPress.\n- **WordPress** : Le CMS qui sera utilisé pour créer et gérer le contenu du site.\n\nCes services sont définis dans un fichier `docker-compose.yml` et sont configurés pour communiquer entre eux dans un réseau isolé.\n\n## Structure du projet\n\nLe projet se compose des éléments suivants :\n\n```\ninception/\n├── srcs/\n│   ├── requirements/\n│   │   ├── wordpress/\n│   │   │   ├── Dockerfile\n│   │   │   ├── conf/\n│   │   │   │   └── www.conf\n│   │   │   └── tools/\n│   │   │       └── wordpress.sh\n│   │   ├── mariadb/\n│   │   │   ├── Dockerfile\n│   │   │   ├── my.cnf\n│   │   │   └── tools/\n│   │   │       └── mariadb.sh\n│   │   └── nginx/\n│   │       ├── Dockerfile\n│   │       └── conf/\n│   │           └── nginx.conf\n│   ├── .env\n│   └── docker-compose.yml\n│\n├── Makefile\n└── README.md\n\ndata/\n├── wordpress/\n└── mariadb/\n```\n\n## Installation\n\n1. **Clonez le repository** :\n\n   Si vous n'avez pas encore cloné le projet, commencez par le faire avec la commande suivante :\n\n   ```bash\n   git clone https://url-de-votre-repository.git\n   cd inception\n   ```\n\n2. **Configurer le fichier `docker-compose.yml`** :\n\n   Vérifiez que le fichier `docker-compose.yml` est bien configuré. Les services doivent être correctement définis pour que le projet fonctionne.\n\n3. **Lancer les services avec Docker Compose** :\n\n   Une fois que tout est installé, vous pouvez démarrer les services en utilisant la commande suivante :\n\n   ```bash\n   make\n   ```\n\n   Cette commande télécharge les images nécessaires et lance les conteneurs en arrière-plan.\n\n4. **Accéder au site WordPress** :\n\n   Une fois les services lancés, vous pouvez accéder à votre site WordPress à l'adresse suivante dans votre navigateur :\n\n   ```\n   http://grebrune.42.fr\n   ```\n\n\n## Structure du fichier `docker-compose.yml`\n\nVoici un exemple de base pour votre fichier `docker-compose.yml` :\n\n```yaml\nversion: '3.8'\n\nservices:\n  nginx:\n    image: nginx:latest\n    container_name: nginx\n    ports:\n      - \"80:80\"\n    volumes:\n      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf\n    depends_on:\n      - wordpress\n    networks:\n      - backend\n\n  mariadb:\n    image: mariadb:latest\n    container_name: mariadb\n    environment:\n      MYSQL_ROOT_PASSWORD: rootpassword\n      MYSQL_DATABASE: wordpress\n      MYSQL_USER: user\n      MYSQL_PASSWORD: userpassword\n    volumes:\n      - mariadb_data:/var/lib/mysql\n    networks:\n      - backend\n\n  wordpress:\n    image: wordpress:latest\n    container_name: wordpress\n    environment:\n      WORDPRESS_DB_HOST: mariadb:3306\n      WORDPRESS_DB_NAME: wordpress\n      WORDPRESS_DB_USER: user\n      WORDPRESS_DB_PASSWORD: userpassword\n    ports:\n      - \"8080:80\"\n    depends_on:\n      - mariadb\n    networks:\n      - backend\n\nnetworks:\n  backend:\n    driver: bridge\n\nvolumes:\n  mariadb_data:\n    driver: local\n```\n\n## Configuration Nginx\n\nLe fichier `nginx/conf/nginx.conf` contient la configuration pour que Nginx redirige les requêtes HTTP vers le service WordPress. Vous pouvez personnaliser cette configuration selon vos besoins. Par exemple, voici une configuration simple :\n\n```nginx\nserver {\n    listen 80;\n    server_name localhost;\n\n    location / {\n        proxy_pass http://wordpress:80;\n        proxy_set_header Host $host;\n        proxy_set_header X-Real-IP $remote_addr;\n        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;\n        proxy_set_header X-Forwarded-Proto $scheme;\n    }\n}\n```\n\n## Persistance des données\n\nLes données de MariaDB sont persistées à l'aide d'un volume Docker `mariadb_data` qui est monté sur `/var/lib/mysql` dans le conteneur MariaDB. Cela garantit que même si le conteneur MariaDB est supprimé et redémarré, les données restent intactes.\n\n## Arrêter les services\n\nPour arrêter tous les services, exécutez :\n\n```bash\nmake down\n```\n\nCela arrêtera et supprimera tous les conteneurs sans supprimer les volumes.\n\n## Dépannage\n\n- Si vous rencontrez des problèmes pour accéder à votre site, vérifiez les logs des conteneurs avec la commande :\n\n  ```bash\n  make logs\n  ```\n\n- Si les services ne démarrent pas correctement, essayez de reconstruire les images et de redémarrer les conteneurs :\n\n  ```bash\n  make build\n  ```\n\n## Contribuer\n\nSi vous souhaitez contribuer à ce projet, vous pouvez forker le repository, apporter vos modifications, puis soumettre une pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregoirebrn%2Finception","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgregoirebrn%2Finception","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgregoirebrn%2Finception/lists"}