{"id":28586594,"url":"https://github.com/deryaxacar/42-inception","last_synced_at":"2025-10-07T21:59:05.813Z","repository":{"id":297283352,"uuid":"991366240","full_name":"deryaxacar/42-inception","owner":"deryaxacar","description":"This project uses Docker to build a secure, isolated microservice-based server infrastructure. Each service runs in its own container and communicates through a private Docker network. External access is managed via an Nginx reverse proxy with HTTPS enabled using OpenSSL-generated TLS certificates, ensuring encrypted and secure data transmission.","archived":false,"fork":false,"pushed_at":"2025-06-18T16:26:41.000Z","size":32347,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-02T15:47:47.131Z","etag":null,"topics":["42","42-inception","42born2code","42cursus","42projects","42school","docker","docker-compose","docker-image","dockerfile","inception","nginx","nginx-proxy","open-ssl","ssl-certificates","wordpress"],"latest_commit_sha":null,"homepage":"https://github.com/deryaxacar/42-inception","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/deryaxacar.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,"zenodo":null}},"created_at":"2025-05-27T14:12:34.000Z","updated_at":"2025-07-27T11:00:17.000Z","dependencies_parsed_at":"2025-08-02T15:33:00.834Z","dependency_job_id":"2e4cb0e5-d6c3-4caa-a5ce-0cddc530f18c","html_url":"https://github.com/deryaxacar/42-inception","commit_stats":null,"previous_names":["deryaxacar/42-inception"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deryaxacar/42-inception","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deryaxacar%2F42-inception","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deryaxacar%2F42-inception/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deryaxacar%2F42-inception/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deryaxacar%2F42-inception/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deryaxacar","download_url":"https://codeload.github.com/deryaxacar/42-inception/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deryaxacar%2F42-inception/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278854209,"owners_count":26057418,"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-10-07T02:00:06.786Z","response_time":59,"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","42-inception","42born2code","42cursus","42projects","42school","docker","docker-compose","docker-image","dockerfile","inception","nginx","nginx-proxy","open-ssl","ssl-certificates","wordpress"],"created_at":"2025-06-11T07:00:57.657Z","updated_at":"2025-10-07T21:59:05.783Z","avatar_url":"https://github.com/deryaxacar.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n  \u003ch1\u003e42-Inception\u003c/h1\u003e\n\u003cp align=\"center\"\u003e\nBu proje, Docker kullanarak mikroservis mimarisine uygun, izole ve güvenli bir sunucu altyapısı oluşturmayı amaçlar. Her servis, kendi container’ında çalışacak şekilde yapılandırılmıştır. Servisler yalnızca özel bir Docker ağı üzerinden iletişim kurar ve dış dünya ile olan bağlantılar Nginx reverse proxy üzerinden yönetilir. HTTPS desteği için TLS sertifikası OpenSSL ile oluşturulmuş ve yapılandırılmıştır. Böylece veri iletimi şifrelenmiş ve sistem genelinde güvenli bir yapı sağlanmıştır.\n\u003c/p\u003e\n  \u003cimg src=\"https://github.com/deryaxacar/42-inception/blob/main/inception.png\" alt=\"inception\" height=\"150\" width=\"150\"\u003e\n\u003c/div\u003e\n\n\n---\n\n## İçindekiler 📚\n\n- [Sanal Mimari Nedir?](#sanal-mimari-nedir)\n- [Konteyner Mimari Nedir?](#konteyner-mimari-nedir)\n- [Kernel Nedir?](#kernel-nedir)\n- [Docker Nedir?](#docker-nedir)\n- [Image Nedir?](#image-nedir)\n- [Volume Nedir?](#volume-nedir)\n- [Kullanılan Servisler](#kullanılan-servisler)\n- [Proje Kapsamı](#proje-kapsamı)\n\n---\n\n## \u003ca name=\"sanal-mimari-nedir\"\u003e\u003c/a\u003e🖥️ Sanal Mimari (Virtual Machine Architecture) Nedir?\n\n- Fiziksel donanım üzerinde çalışan bir hypervisor yardımıyla, birden fazla sanal makine (VM) oluşturulur.\n- Her sanal makine kendi işletim sistemi ile birlikte çalışır.\n- Donanım seviyesinde izolasyon sağlar.\n\n**Özellikleri:**\n\n- Ağırdır, daha fazla kaynak kullanır.\n- Daha güvenlidir.\n- Her VM'de ayrı işletim sistemi çalışabilir.\n\nHypervisor, fiziksel donanım ile sanal makineler arasında bir köprü görevi görür. Sanal makinelerin (VM) her biri, kendi işletim sistemine ve uygulamalarına sahipmiş gibi çalışır. Ancak aslında bu sistemler, hypervisor tarafından paylaştırılan kaynaklarla (CPU, RAM, disk vb.) çalışır.\n\n---\n\n![img](https://github.com/deryaxacar/42-inception/blob/main/img/sanal-mimari.png)\n\n---\n\nNot: Sanal makina üzerinde çalışan işletim sistemi arkaplanda çalışan hipervisordan haberdar değildir.\nSanal makina fiziksel bir makina gibi davranır.\n\n---\n\n## \u003ca name=\"konteyner-mimari-nedir\"\u003e\u003c/a\u003e📦 Konteyner Mimari (Container Architecture) Nedir?\n\n- Uygulamalar, aynı işletim sistemini paylaşan, ancak birbirinden izole çalışan konteynerler içinde çalışır.\n- İzolasyon, işletim sistemi çekirdeği (kernel) düzeyinde sağlanır (namespaces, cgroups).\n- Konteynerler hızlı başlar, hafiftir.\n\n**Özellikleri:**\n\n- Kaynak kullanımı azdır.\n- Başlatma süresi çok kısadır.\n- Uygulama geliştirme ve dağıtımı için idealdir.\n\n---\n\n![img](https://github.com/deryaxacar/42-inception/blob/main/img/konteyner-mimari.png)\n\n---\n\nKonteynerlar Teknolojilerinde ise işletim sistemi kernelına eklenen featureler (özellikler) kullanılarak işlem izolasyonu sağlanmaktadır.\nBu işlem izolasyonu sayesinde aynı işletim sistemi üzerinde birbirinden bağımsız konteynerler oluşturulabilmektedir.\n\n---\n\n## Kernel Nedir?\n\nKernel, şletim sisteminin \"çekirdeğidir\". Bilgisayarın donanımı ile yazılımı arasında köprü görevi görür. Yani:\n\n- Bellek yönetimi\n- Dosya sistemi\n- Ağ erişimi\n- İşlem yönetimi\n- Donanımla doğrudan iletişim\n\ngibi temel işleri kernel yapar.\n\n![img](https://github.com/deryaxacar/42-inception/blob/main/img/kernel.png)\n\n**örnek:**\n\n- Sen bir programda print(\"Merhaba\") yazarsın,\n- Bu işlem işletim sistemine gider,\n- İşletim sistemi bu talebi kernel aracılığıyla ekrana iletir.\n\n---\n\n## \u003ca name=\"docker-nedir\"\u003e\u003c/a\u003e🐳 Docker Nedir?\n\nDocker, uygulamaları ve bu uygulamaların bağımlılıklarını, işletim sisteminden bağımsız bir şekilde çalıştırılabilir hale getiren, açık kaynaklı bir containerization (kapsayıcılama) platformudur. Temel amacı, bir yazılımın geliştirildiği ortamda nasıl çalışıyorsa, aynı şekilde başka bir ortamda da sorunsuz çalışmasını sağlamaktır.\n\n---\n\n#### 🔧 Docker'ın Temel Bileşenleri\n\n- **Docker Engine**: Docker container’larını oluşturmak, yönetmek ve çalıştırmak için kullanılan çekirdek bileşendir.\n- **Docker Image**: Bir uygulamanın çalışması için gerekli tüm kodları, bağımlılıkları ve konfigürasyonları barındıran şablondur.\n- **Docker Container**: Image’ların çalıştırılabilir hale gelmiş, izole edilmiş halidir.\n- **Dockerfile**: Image’ları otomatik olarak inşa etmek için kullanılan betik dosyasıdır.\n- **Docker Compose**: Birden fazla container’ı aynı anda yönetmeye yarayan araçtır (genellikle `docker-compose.yml` dosyası ile yapılandırılır).\n\n---\n\n## Image Nedir?\n\nDocker image (imaj), bir container'ın çalıştırılabilmesi için gerekli olan tüm dosya sistemini, bağımlılıkları ve yapılandırmaları barındıran bir şablondur. Her image, katmanlı bir yapıdadır ve bu image'lardan container'lar oluşturulur.\n\n![img](https://github.com/deryaxacar/42-inception/blob/main/img/docker-image.PNG)\n\n---\n\n## Volume Nedir?\n\nDocker volume, container’lar ile host sistemi arasında veri paylaşımı sağlamak için kullanılır. Container silinse bile volume’lar kalıcıdır. Bu sayede veri kaybı olmadan işlemler devam eder. Örneğin bir veritabanının verileri volume içerisinde saklanarak container yeniden başlatıldığında kaybolmaz.\n\n**kısaca:**\n![img](https://github.com/deryaxacar/42-inception/blob/main/img/dockerimg.PNG)\n\n---\n\n## Kullanılan Servisler\n\nInception projesinde aşağıdaki servisler kurulup yapılandırılmıştır:\n\n- **MariaDB**: WordPress için veritabanı hizmeti sağlar. Kalıcı veri için volume kullanılmalıdır.\n- **WordPress**: Dinamik içerik yönetim sistemi olarak çalışır ve MariaDB ile bağlantılıdır.\n- **Nginx**: Reverse proxy olarak yapılandırılır ve HTTPS desteği sağlamak için SSL sertifikalarıyla birlikte çalışır.\n\n---\n\n## Proje Kapsamı\n\n`Inception` projesinde, bizden `docker-compose.yml` dosyası ile yönetilen üç konteyner oluşturmamız bekleniyor: `MariaDB`, `WordPress` ve `NGINX`. Her bir konteyner, kendine ait bir `Dockerfile` kullanılarak inşa edilecek (`build` edilecek). Projenin amacı, bu servislerin birbirleriyle entegre çalıştığı, ayağa kalktığında tamamen işlevsel bir web uygulaması ortamı oluşturmaktır.\n\n![img](https://github.com/deryaxacar/42-inception/blob/main/img/inceptionimg.PNG)\n\n---\n\n\u003cdiv align=\"center\"\u003e\n  \u003cb\u003e2025 | Created by Derya ACAR\u003c/b\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderyaxacar%2F42-inception","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fderyaxacar%2F42-inception","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fderyaxacar%2F42-inception/lists"}