{"id":3461,"date":"2024-11-09T23:45:12","date_gmt":"2024-11-09T20:45:12","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/"},"modified":"2024-11-09T23:45:12","modified_gmt":"2024-11-09T20:45:12","slug":"next-js-docker-ve-ip-cografi-konumlandirma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/","title":{"rendered":"Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma"},"content":{"rendered":"<p>Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma<\/p>\n<p>Bu makalede, Next.js uygulamalar\u0131n\u0131z\u0131 Docker kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve ziyaret\u00e7ilerinizin co\u011frafi konumunu IP adresleri arac\u0131l\u0131\u011f\u0131yla nas\u0131l belirleyece\u011finizi ele alaca\u011f\u0131z.  Bir Next.js uygulamas\u0131n\u0131n Docker&#8217;da nas\u0131l olu\u015fturuldu\u011funu, IP co\u011frafi konumland\u0131rma API&#8217;leri ile entegrasyonunu ve bu bilgilerin nas\u0131l kullan\u0131labilece\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz.<\/p>\n<h2>Next.js Uygulamas\u0131 Olu\u015fturma<\/h2>\n<p>\u00d6ncelikle, yeni bir Next.js uygulamas\u0131 olu\u015ftural\u0131m. Bu i\u015flem i\u00e7in Next.js resmi dok\u00fcmantasyonunu kullanabiliriz.  Bir terminal penceresinde a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak yeni bir proje olu\u015fturabilirsiniz:<\/p>\n<p>&#8220;`bash<br \/>\nnpx create-next-app@latest my-next-app<br \/>\n&#8220;`<\/p>\n<p>Bu komut, &#8220;my-next-app&#8221; ad\u0131nda yeni bir Next.js projesi olu\u015fturacakt\u0131r.  Projenin i\u00e7ine girip &#8220;npm run dev&#8221; komutunu \u00e7al\u0131\u015ft\u0131rarak yerel olarak uygulamay\u0131 ba\u015flatabiliriz.  <\/p>\n<h2>Docker Dosyas\u0131 Olu\u015fturma<\/h2>\n<p>Docker, uygulamalar\u0131m\u0131z\u0131n ta\u015f\u0131nabilir ve tutarl\u0131 bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan bir platformdur.  Uygulamalar\u0131m\u0131z\u0131n Docker&#8217;da \u00e7al\u0131\u015fabilmesi i\u00e7in bir Dockerfile olu\u015fturmam\u0131z gerekir.  Dockerfile, uygulaman\u0131n nas\u0131l olu\u015fturulaca\u011f\u0131na dair talimatlar i\u00e7erir.<\/p>\n<p>&#8220;`dockerfile<br \/>\nFROM node:16-alpine<\/p>\n<p>WORKDIR \/app<\/p>\n<p>COPY package*.json .\/<\/p>\n<p>RUN npm install<\/p>\n<p>COPY . .<\/p>\n<p>EXPOSE 3000<\/p>\n<p>CMD [&#8220;npm&#8221;, &#8220;run&#8221;, &#8220;build&#8221;]<br \/>\nCMD [&#8220;npm&#8221;, &#8220;run&#8221;, &#8220;start&#8221;]<br \/>\n&#8220;`<\/p>\n<p>Bu Dockerfile, Node.js 16 taban g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc kullanarak bir Docker imaj\u0131 olu\u015fturacakt\u0131r.  Ard\u0131ndan, projenin dosyalar\u0131n\u0131 Docker imaj\u0131na kopyalayacak ve ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fckleyecektir.  Son olarak, Next.js uygulamas\u0131n\u0131 \u00e7al\u0131\u015ft\u0131racak komutlar\u0131 \u00e7al\u0131\u015ft\u0131racakt\u0131r.  <\/p>\n<h2>IP Co\u011frafi Konumland\u0131rma API&#8217;si Entegrasyonu<\/h2>\n<p>Bir IP co\u011frafi konumland\u0131rma API&#8217;si, bir IP adresinden co\u011frafi konum bilgisi almay\u0131 sa\u011flar.  Bu makalede, <a href=\"https:\/\/ip-api.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">ip-api.com<\/a> API&#8217;sini kullanaca\u011f\u0131z.  IP adresini API&#8217;ye g\u00f6ndererek \u00fclke, \u015fehir, enlem ve boylam gibi bilgiler elde edebiliriz.<\/p>\n<p>Next.js uygulamas\u0131na IP co\u011frafi konumland\u0131rma API&#8217;sini entegre etmek i\u00e7in bir API \u00e7a\u011fr\u0131 fonksiyonu olu\u015fturabiliriz.<\/p>\n<p>&#8220;`javascript<br \/>\nimport { useState, useEffect } from &#8220;react&#8221;;<\/p>\n<p>export default function Home() {<br \/>\n  const [location, setLocation] = useState(null);<\/p>\n<p>  useEffect(() => {<br \/>\n    const fetchLocation = async () => {<br \/>\n      const response = await fetch(&#8220;https:\/\/api.ipify.org?format=json&#8221;);<br \/>\n      const data = await response.json();<br \/>\n      const ip = data.ip;<\/p>\n<p>      const response2 = await fetch(`https:\/\/api.ip-api.com\/json\/${ip}`);<br \/>\n      const locationData = await response2.json();<\/p>\n<p>      setLocation(locationData);<br \/>\n    };<\/p>\n<p>    fetchLocation();<br \/>\n  }, []);<\/p>\n<p>  return (<\/p>\n<div>\n      {location &#038;&#038; (<\/p>\n<div>\n<h2>Konumunuz<\/h2>\n<p>\u00dclke: {location.country}<\/p>\n<p>\u015eehir: {location.city}<\/p>\n<p>Enlem: {location.lat}<\/p>\n<p>Boylam: {location.lon}<\/p>\n<\/p><\/div>\n<p>      )}\n    <\/p><\/div>\n<p>  );<br \/>\n}<br \/>\n&#8220;`<\/p>\n<p>Bu kod, IP adresini almak ve ip-api.com API&#8217;sine g\u00f6ndermek i\u00e7in useEffect hook&#8217;unu kullan\u0131r.  API&#8217;den al\u0131nan veriler location state de\u011fi\u015fkenine kaydedilir.  Daha sonra, bu bilgiler sayfada g\u00f6sterilir.<\/p>\n<h2>Docker \u0130maj\u0131n\u0131 Olu\u015fturma ve Da\u011f\u0131tma<\/h2>\n<p>Dockerfile&#8217;\u0131m\u0131z\u0131 olu\u015fturduktan sonra, Docker imaj\u0131n\u0131 olu\u015fturup da\u011f\u0131tabiliriz.  Bir terminal penceresinde a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rarak bunu yapabiliriz:<\/p>\n<p>&#8220;`bash<br \/>\ndocker build -t my-next-app .<br \/>\ndocker push my-next-app<br \/>\n&#8220;`<\/p>\n<p>Bu komutlar, Docker imaj\u0131n\u0131 olu\u015fturacak ve Docker Hub gibi bir Docker kay\u0131t deposuna y\u00fckleyecektir.<\/p>\n<h2>Uygulamay\u0131 Da\u011f\u0131tma<\/h2>\n<p>Uygulamay\u0131 da\u011f\u0131tmak i\u00e7in bir Docker konteynerine ihtiyac\u0131m\u0131z var.  Docker konteyneri, Docker imaj\u0131ndan olu\u015fturulur.  Uygulamay\u0131 bir sunucuya da\u011f\u0131tmak i\u00e7in a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rabiliriz:<\/p>\n<p>&#8220;`bash<br \/>\ndocker run -p 80:3000 my-next-app<br \/>\n&#8220;`<\/p>\n<p>Bu komut, Docker imaj\u0131ndan bir konteyner olu\u015fturacak ve 80 numaral\u0131 porta 3000 numaral\u0131 porta y\u00f6nlendirecektir.  Bu, uygulaman\u0131n 80 numaral\u0131 port \u00fczerinden eri\u015filebilir olaca\u011f\u0131 anlam\u0131na gelir.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Bu makalede, Next.js uygulamalar\u0131n\u0131z\u0131 Docker kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve ziyaret\u00e7ilerinizin co\u011frafi konumunu IP adresleri arac\u0131l\u0131\u011f\u0131yla nas\u0131l belirleyece\u011finizi \u00f6\u011frendik.  Uygulamalar\u0131n\u0131z\u0131 Docker&#8217;da da\u011f\u0131tmak, uygulamalar\u0131n\u0131z\u0131n ta\u015f\u0131nabilir ve tutarl\u0131 bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar.  IP co\u011frafi konumland\u0131rma API&#8217;leri, ziyaret\u00e7ilerinizin konumuna g\u00f6re uygulamalar\u0131n\u0131z\u0131 ki\u015fiselle\u015ftirebilmenizi sa\u011flar. <\/p>\n<p>Daha fazla bilgi i\u00e7in <a href=\"https:\/\/fatihsoysal.com\" target=\"_blank\" rel=\"noopener noreferrer\">fatihsoysal.com<\/a> web sitesini ziyaret edebilirsiniz.<\/p>\n<p>#Etiketler: Next.js, Docker, IP Co\u011frafi Konumland\u0131rma, API, Da\u011f\u0131t\u0131m<\/p>\n","protected":false},"excerpt":{"rendered":"Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma Bu makalede, Next.js uygulamalar\u0131n\u0131z\u0131 Docker kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve ziyaret\u00e7ilerinizin co\u011frafi konumunu&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-3461","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma<\/title>\n<meta name=\"description\" content=\"Bu makalede, Next.js uygulamalar\u0131n\u0131z\u0131 Docker kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve ziyaret\u00e7ilerinizin co\u011frafi konumunu IP adresleri arac\u0131l\u0131\u011f\u0131yla nas\u0131l belirleyece\u011finizi ele alaca\u011f\u0131z. Bir Next.js uygulamas\u0131n\u0131n Docker&#039;da nas\u0131l olu\u015fturuldu\u011funu, IP co\u011frafi konumland\u0131rma API&#039;leri ile entegrasyonunu ve bu bilgilerin nas\u0131l kullan\u0131labilece\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma\" \/>\n<meta property=\"og:description\" content=\"Bu makalede, Next.js uygulamalar\u0131n\u0131z\u0131 Docker kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve ziyaret\u00e7ilerinizin co\u011frafi konumunu IP adresleri arac\u0131l\u0131\u011f\u0131yla nas\u0131l belirleyece\u011finizi ele alaca\u011f\u0131z. Bir Next.js uygulamas\u0131n\u0131n Docker&#039;da nas\u0131l olu\u015fturuldu\u011funu, IP co\u011frafi konumland\u0131rma API&#039;leri ile entegrasyonunu ve bu bilgilerin nas\u0131l kullan\u0131labilece\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2024-11-09T20:45:12+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma\",\"datePublished\":\"2024-11-09T20:45:12+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/\"},\"wordCount\":685,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/#respond\"]}],\"copyrightYear\":\"2024\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/\",\"name\":\"Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2024-11-09T20:45:12+00:00\",\"description\":\"Bu makalede, Next.js uygulamalar\u0131n\u0131z\u0131 Docker kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve ziyaret\u00e7ilerinizin co\u011frafi konumunu IP adresleri arac\u0131l\u0131\u011f\u0131yla nas\u0131l belirleyece\u011finizi ele alaca\u011f\u0131z. Bir Next.js uygulamas\u0131n\u0131n Docker'da nas\u0131l olu\u015fturuldu\u011funu, IP co\u011frafi konumland\u0131rma API'leri ile entegrasyonunu ve bu bilgilerin nas\u0131l kullan\u0131labilece\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma","description":"Bu makalede, Next.js uygulamalar\u0131n\u0131z\u0131 Docker kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve ziyaret\u00e7ilerinizin co\u011frafi konumunu IP adresleri arac\u0131l\u0131\u011f\u0131yla nas\u0131l belirleyece\u011finizi ele alaca\u011f\u0131z. Bir Next.js uygulamas\u0131n\u0131n Docker'da nas\u0131l olu\u015fturuldu\u011funu, IP co\u011frafi konumland\u0131rma API'leri ile entegrasyonunu ve bu bilgilerin nas\u0131l kullan\u0131labilece\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/","og_locale":"tr_TR","og_type":"article","og_title":"Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma","og_description":"Bu makalede, Next.js uygulamalar\u0131n\u0131z\u0131 Docker kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve ziyaret\u00e7ilerinizin co\u011frafi konumunu IP adresleri arac\u0131l\u0131\u011f\u0131yla nas\u0131l belirleyece\u011finizi ele alaca\u011f\u0131z. Bir Next.js uygulamas\u0131n\u0131n Docker'da nas\u0131l olu\u015fturuldu\u011funu, IP co\u011frafi konumland\u0131rma API'leri ile entegrasyonunu ve bu bilgilerin nas\u0131l kullan\u0131labilece\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz.","og_url":"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2024-11-09T20:45:12+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"3 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma","datePublished":"2024-11-09T20:45:12+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/"},"wordCount":685,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/#respond"]}],"copyrightYear":"2024","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/","url":"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/","name":"Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2024-11-09T20:45:12+00:00","description":"Bu makalede, Next.js uygulamalar\u0131n\u0131z\u0131 Docker kullanarak nas\u0131l da\u011f\u0131taca\u011f\u0131n\u0131z\u0131 ve ziyaret\u00e7ilerinizin co\u011frafi konumunu IP adresleri arac\u0131l\u0131\u011f\u0131yla nas\u0131l belirleyece\u011finizi ele alaca\u011f\u0131z. Bir Next.js uygulamas\u0131n\u0131n Docker'da nas\u0131l olu\u015fturuldu\u011funu, IP co\u011frafi konumland\u0131rma API'leri ile entegrasyonunu ve bu bilgilerin nas\u0131l kullan\u0131labilece\u011fini ad\u0131m ad\u0131m inceleyece\u011fiz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/next-js-docker-ve-ip-cografi-konumlandirma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Next.js, Docker ve IP Co\u011frafi Konumland\u0131rma"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/3461","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=3461"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/3461\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=3461"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=3461"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=3461"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}