{"id":31092,"date":"2025-10-05T16:41:13","date_gmt":"2025-10-05T13:41:13","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=31092"},"modified":"2025-10-05T16:41:13","modified_gmt":"2025-10-05T13:41:13","slug":"parse-serveri-ubuntu-14-04-uzerinde-calistirma","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/","title":{"rendered":"Parse Server&#8217;\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma"},"content":{"rendered":"<p><body><\/p>\n<h2>Parse Server&#8217;\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma<\/h2>\n<p>Parse Server, mobil ve web uygulamalar\u0131 i\u00e7in kendi sunucunuzda bar\u0131nd\u0131rabilece\u011finiz a\u00e7\u0131k kaynakl\u0131 bir Backend-as-a-Service (BaaS) \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Facebook taraf\u0131ndan geli\u015ftirilen ve daha sonra a\u00e7\u0131k kaynak olarak toplulu\u011fa devredilen Parse platformunun devam\u0131 niteli\u011findedir. Bu makale, Parse Server&#8217;\u0131 Ubuntu 14.04 i\u015fletim sistemi \u00fczerinde nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klamaktad\u0131r. Ubuntu 14.04 eski bir i\u015fletim sistemi olsa da, bu rehber Parse Server&#8217;\u0131 bu ortamda ba\u015far\u0131yla \u00e7al\u0131\u015ft\u0131rmak i\u00e7in gerekli t\u00fcm detaylar\u0131 sunacakt\u0131r.<\/p>\n<h3>Parse Server Nedir ve Neden Kullan\u0131lmal\u0131d\u0131r?<\/h3>\n<p>Parse Server, geli\u015ftiricilerin uygulamalar\u0131n\u0131n arka u\u00e7 (backend) ihtiya\u00e7lar\u0131n\u0131 h\u0131zla kar\u015f\u0131lamalar\u0131n\u0131 sa\u011flayan bir dizi ara\u00e7 ve hizmet sunar. Veritaban\u0131 y\u00f6netimi (MongoDB), kullan\u0131c\u0131 kimlik do\u011frulama, dosya depolama, push bildirimleri ve daha fazlas\u0131n\u0131 kendi sunucunuzda kolayca y\u00f6netmenize olanak tan\u0131r. Orijinal Parse.com hizmeti kapanma karar\u0131 ald\u0131\u011f\u0131nda, geli\u015ftiricilerin mevcut uygulamalar\u0131n\u0131 kendi sunucular\u0131na ta\u015f\u0131yabilmeleri i\u00e7in Parse Server a\u00e7\u0131k kaynak olarak yay\u0131nlanm\u0131\u015ft\u0131r.<\/p>\n<p>Kendi Parse Server&#8217;\u0131n\u0131z\u0131 bar\u0131nd\u0131rman\u0131n ba\u015fl\u0131ca avantajlar\u0131 \u015funlard\u0131r:<br \/>\n*   <strong>Veri Kontrol\u00fc:<\/strong> Verilerinizin nerede sakland\u0131\u011f\u0131 ve nas\u0131l y\u00f6netildi\u011fi \u00fczerinde tam kontrole sahip olursunuz.<br \/>\n*   <strong>\u00d6l\u00e7eklenebilirlik:<\/strong> Uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re sunucu kaynaklar\u0131n\u0131 diledi\u011finiz gibi \u00f6l\u00e7eklendirebilirsiniz.<br \/>\n*   <strong>Maliyet Etkinli\u011fi:<\/strong> B\u00fcy\u00fck \u00f6l\u00e7ekli uygulamalar i\u00e7in \u00fc\u00e7\u00fcnc\u00fc taraf BaaS sa\u011flay\u0131c\u0131lar\u0131na k\u0131yasla daha uygun maliyetli olabilir.<br \/>\n*   <strong>Esneklik:<\/strong> \u00d6zel i\u015f mant\u0131\u011f\u0131 (Cloud Code) yazarak sunucunuzun davran\u0131\u015f\u0131n\u0131 tamamen \u00f6zelle\u015ftirebilirsiniz.<br \/>\n*   <strong>A\u00e7\u0131k Kaynak:<\/strong> Topluluk deste\u011fi ve s\u00fcrekli geli\u015ftirme sayesinde platformun gelece\u011fi g\u00fcvence alt\u0131ndad\u0131r.<\/p>\n<p>Ubuntu 14.04, uzun s\u00fcreli destek (LTS) s\u00fcr\u00fcm\u00fc olmas\u0131na ra\u011fmen, bu makalenin yaz\u0131ld\u0131\u011f\u0131 tarihte ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fcn sonuna ula\u015fm\u0131\u015f eski bir i\u015fletim sistemidir. Bu nedenle, \u00fcretim ortamlar\u0131 i\u00e7in daha g\u00fcncel ve desteklenen bir Ubuntu s\u00fcr\u00fcm\u00fcn\u00fc (\u00f6rne\u011fin 20.04 veya 22.04) kullanman\u0131z \u015fiddetle tavsiye edilir. Ancak, belirli bir gereksinim veya eski bir altyap\u0131 nedeniyle Ubuntu 14.04 kullanman\u0131z gerekiyorsa, bu rehber size yol g\u00f6sterecektir.<\/p>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>Parse Server&#8217;\u0131 Ubuntu 14.04 \u00fczerinde \u00e7al\u0131\u015ft\u0131rmak i\u00e7in a\u015fa\u011f\u0131daki bile\u015fenlere ihtiyac\u0131m\u0131z olacak:<\/p>\n<p>*   <strong>Ubuntu 14.04 Sunucusu:<\/strong> Temiz bir kurulum veya mevcut bir sunucu.<br \/>\n*   <strong>Node.js ve npm:<\/strong> Parse Server, Node.js \u00fczerinde \u00e7al\u0131\u015f\u0131r. npm (Node Package Manager) ise Node.js paketlerini y\u00f6netmek i\u00e7in kullan\u0131l\u0131r. Ubuntu 14.04&#8217;\u00fcn varsay\u0131lan depolar\u0131ndaki Node.js s\u00fcr\u00fcm\u00fc \u00e7ok eski olaca\u011f\u0131ndan, daha g\u00fcncel bir s\u00fcr\u00fcm y\u00fcklemek i\u00e7in harici bir depo kullanaca\u011f\u0131z.<br \/>\n*   <strong>MongoDB:<\/strong> Parse Server&#8217;\u0131n verilerini depolad\u0131\u011f\u0131 NoSQL veritaban\u0131d\u0131r. Ubuntu 14.04&#8217;\u00fcn varsay\u0131lan depolar\u0131ndaki MongoDB s\u00fcr\u00fcm\u00fc de eski olabilece\u011finden, MongoDB&#8217;nin kendi deposunu kullanaca\u011f\u0131z.<br \/>\n*   <strong>Git:<\/strong> Parse Server \u00f6rnek projesini indirmek i\u00e7in gereklidir.<br \/>\n*   <strong>PM2 (Process Manager 2):<\/strong> Parse Server uygulamas\u0131n\u0131 s\u00fcrekli \u00e7al\u0131\u015f\u0131r durumda tutmak, yeniden ba\u015flatmalar\u0131 y\u00f6netmek ve g\u00fcnl\u00fckleri izlemek i\u00e7in kullan\u0131\u015fl\u0131 bir Node.js s\u00fcre\u00e7 y\u00f6neticisidir.<br \/>\n*   <strong>Nginx (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nerilir):<\/strong> Ters proxy olarak Parse Server&#8217;\u0131n \u00f6n\u00fcnde \u00e7al\u0131\u015farak SSL sonland\u0131rma, y\u00fck dengeleme ve statik dosya sunma gibi g\u00f6revleri \u00fcstlenebilir.<\/p>\n<p>Bu bile\u015fenleri kurmaya ba\u015flamadan \u00f6nce, sunucunuzda <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 olarak oturum a\u00e7t\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<h3>Ad\u0131m Ad\u0131m Kurulum ve Yap\u0131land\u0131rma<\/h3>\n<p>A\u015fa\u011f\u0131daki ad\u0131mlar\u0131 s\u0131ras\u0131yla uygulayarak Parse Server&#8217;\u0131 Ubuntu 14.04 sunucunuza kurabilir ve yap\u0131land\u0131rabilirsiniz.<\/p>\n<h4>1. Ad\u0131m: Sistemi G\u00fcncelleme<\/h4>\n<p>Kuruluma ba\u015flamadan \u00f6nce, sunucunuzdaki paket listesini g\u00fcncellemeli ve mevcut paketleri y\u00fckseltmelisiniz. Bu, olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nlemeye yard\u0131mc\u0131 olacakt\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get update\nsudo apt-get upgrade -y<\/code><\/pre>\n<h4>2. Ad\u0131m: Node.js ve npm Kurulumu<\/h4>\n<p>Ubuntu 14.04&#8217;\u00fcn varsay\u0131lan depolar\u0131ndaki Node.js s\u00fcr\u00fcm\u00fc olduk\u00e7a eskidir ve Parse Server ile uyumlu olmayabilir. Bu nedenle, NodeSource deposunu kullanarak daha g\u00fcncel bir Node.js s\u00fcr\u00fcm\u00fcn\u00fc kuraca\u011f\u0131z. Bu rehber i\u00e7in Node.js v6.x LTS s\u00fcr\u00fcm\u00fcn\u00fc kuraca\u011f\u0131z, \u00e7\u00fcnk\u00fc bu s\u00fcr\u00fcm Ubuntu 14.04 ile iyi bir uyumlulu\u011fa sahiptir ve Parse Server&#8217;\u0131n eski s\u00fcr\u00fcmleriyle de genellikle sorunsuz \u00e7al\u0131\u015f\u0131r. Daha yeni Node.js s\u00fcr\u00fcmleri de kurulabilir ancak eski i\u015fletim sistemiyle uyumluluk sorunlar\u0131 ya\u015fanabilir.<\/p>\n<pre><code class=\"language-bash\"># NodeSource kurulum beti\u011fini indirme\ncurl -sL https:\/\/deb.nodesource.com\/setup_6.x | sudo -E bash -\n\n<h2>Node.js ve npm kurulumu<\/h2>\nsudo apt-get install -y nodejs\n\n<h2>Kurulumu do\u011frulama<\/h2>\nnode -v\nnpm -v<\/code><\/pre>\n<p>Komutlar\u0131n \u00e7\u0131kt\u0131s\u0131nda Node.js ve npm&#8217;in s\u00fcr\u00fcmlerini g\u00f6rmelisiniz (\u00f6rne\u011fin, <code>v6.x.x<\/code> ve <code>3.x.x<\/code>).<\/p>\n<h4>3. Ad\u0131m: MongoDB Kurulumu<\/h4>\n<p>Parse Server, veritaban\u0131 olarak MongoDB kullan\u0131r. Ubuntu 14.04 depolar\u0131ndaki MongoDB s\u00fcr\u00fcm\u00fc de eski olaca\u011f\u0131ndan, MongoDB&#8217;nin kendi resmi deposunu kullanaca\u011f\u0131z. Bu rehber i\u00e7in MongoDB 3.2 s\u00fcr\u00fcm\u00fcn\u00fc kuraca\u011f\u0131z, \u00e7\u00fcnk\u00fc bu s\u00fcr\u00fcm Ubuntu 14.04 ile uyumludur ve Parse Server&#8217;\u0131n \u00e7o\u011fu s\u00fcr\u00fcm\u00fcyle iyi \u00e7al\u0131\u015f\u0131r.<\/p>\n<pre><code class=\"language-bash\"># MongoDB public GPG anahtar\u0131n\u0131 i\u00e7e aktarma\nsudo apt-key adv --keyserver hkp:\/\/keyserver.ubuntu.com:80 --recv EA312927\n\n<h2>MongoDB deposu listesi dosyas\u0131n\u0131 olu\u015fturma<\/h2>\necho \"deb http:\/\/repo.mongodb.org\/apt\/ubuntu trusty\/mongodb-org\/3.2 multiverse\" | sudo tee \/etc\/apt\/sources.list.d\/mongodb-org-3.2.list\n\n<h2>Paket listesini g\u00fcncelleme<\/h2>\nsudo apt-get update\n\n<h2>MongoDB kurulumu<\/h2>\nsudo apt-get install -y mongodb-org\n\n<h2>MongoDB servisini ba\u015flatma<\/h2>\nsudo service mongod start\n\n<h2>MongoDB'nin sistem ba\u015flang\u0131c\u0131nda otomatik ba\u015flamas\u0131n\u0131 sa\u011flama (upstart i\u00e7in)<\/h2>\n<h2>Ubuntu 14.04'te systemd yerine upstart kullan\u0131l\u0131r.<\/h2>\n<h2>MongoDB paketi genellikle kendi upstart beti\u011fi ile gelir.<\/h2>\n<h2>E\u011fer otomatik ba\u015flamazsa, a\u015fa\u011f\u0131daki komutu kullanarak kontrol edebilirsiniz:<\/h2>\n<h2>sudo update-rc.d mongod defaults<\/h2>\n\n<h2>MongoDB durumunu kontrol etme<\/h2>\nsudo service mongod status<\/code><\/pre>\n<p><code>status<\/code> komutunun \u00e7\u0131kt\u0131s\u0131nda MongoDB&#8217;nin \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<p><strong>G\u00fcvenlik Notu:<\/strong> Varsay\u0131lan olarak, MongoDB herhangi bir kimlik do\u011frulama olmadan \u00e7al\u0131\u015f\u0131r ve herkesin eri\u015fimine a\u00e7\u0131k olabilir. \u00dcretim ortamlar\u0131nda MongoDB&#8217;yi g\u00fcvenli hale getirmek i\u00e7in kimlik do\u011frulama, a\u011f ba\u011flama (bindIp) ve g\u00fcvenlik duvar\u0131 kurallar\u0131 gibi ad\u0131mlar\u0131 uygulaman\u0131z \u015fiddetle tavsiye edilir. Bu makalenin kapsam\u0131 d\u0131\u015f\u0131nda olmakla birlikte, bu konuda ara\u015ft\u0131rma yapman\u0131z \u00f6nemlidir.<\/p>\n<h4>4. Ad\u0131m: Git Kurulumu<\/h4>\n<p>Parse Server \u00f6rnek projesini GitHub&#8217;dan klonlamak i\u00e7in Git&#8217;e ihtiyac\u0131m\u0131z var.<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install -y git<\/code><\/pre>\n<h4>5. Ad\u0131m: Parse Server Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>\u015eimdi Parse Server&#8217;\u0131 kurma ve yap\u0131land\u0131rma zaman\u0131. GitHub&#8217;daki <code>parse-server-example<\/code> projesini klonlayarak ba\u015flayaca\u011f\u0131z.<\/p>\n<pre><code class=\"language-bash\"># Parse Server i\u00e7in bir dizin olu\u015fturma\nmkdir ~\/parse-server\ncd ~\/parse-server\n\n<h2>Parse Server \u00f6rnek projesini klonlama<\/h2>\ngit clone https:\/\/github.com\/parse-community\/parse-server-example.git .\n\n<h2>Ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fckleme<\/h2>\nnpm install<\/code><\/pre>\n<p><code>npm install<\/code> komutu, <code>package.json<\/code> dosyas\u0131nda belirtilen t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131 y\u00fckleyecektir. Bu i\u015flem biraz zaman alabilir.<\/p>\n<p>\u015eimdi <code>index.js<\/code> (veya baz\u0131 eski \u00f6rneklerde <code>server.js<\/code>) dosyas\u0131n\u0131 yap\u0131land\u0131rmam\u0131z gerekiyor. Bu dosya, Parse Server&#8217;\u0131n temel yap\u0131land\u0131rmas\u0131n\u0131 i\u00e7erir.<\/p>\n<pre><code class=\"language-bash\">nano index.js<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki sat\u0131rlar\u0131 bulup kendi de\u011ferlerinizle g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-javascript\">var databaseUri = process.env.DATABASE_URI || process.env.MONGODB_URI;\n\nif (!databaseUri) {\n  console.log('DATABASE_URI not specified, falling back to localhost.');\n  databaseUri = 'mongodb:\/\/localhost:27017\/dev'; \/\/ MongoDB ba\u011flant\u0131 URI'niz\n}\n\nvar serverURL = process.env.SERVER_URL || 'http:\/\/localhost:1337\/parse'; \/\/ Parse Server'\u0131n eri\u015filebilir URL'si\n\nvar api = new ParseServer({\n  databaseURI: databaseUri,\n  cloud: process.env.CLOUD_CODE_MAIN || __dirname + '\/cloud\/main.js',\n  appId: process.env.APP_ID || 'myAppId', \/\/ Uygulaman\u0131z\u0131n benzersiz kimli\u011fi\n  masterKey: process.env.MASTER_KEY || 'myMasterKey', \/\/ Master Key, uygulaman\u0131z\u0131n en y\u00fcksek yetkili anahtar\u0131\n  serverURL: serverURL,\n  liveQuery: {\n    classNames: ['Posts', 'Comments'] \/\/ LiveQuery kullanmak istedi\u011finiz s\u0131n\u0131flar\n  }\n});<\/code><\/pre>\n<p><strong>Yap\u0131land\u0131rma A\u00e7\u0131klamalar\u0131:<\/strong><\/p>\n<p>*   <strong><code>databaseURI<\/code>:<\/strong> MongoDB veritaban\u0131n\u0131z\u0131n ba\u011flant\u0131 dizesi. E\u011fer MongoDB&#8217;yi ayn\u0131 sunucuya kurduysan\u0131z ve varsay\u0131lan portu kullan\u0131yorsan\u0131z, <code>mongodb:\/\/localhost:27017\/dev<\/code> yeterli olacakt\u0131r. <code>dev<\/code> yerine kendi veritaban\u0131 ad\u0131n\u0131z\u0131 yazabilirsiniz. E\u011fer MongoDB farkl\u0131 bir sunucudaysa veya kimlik do\u011frulama gerektiriyorsa, dizeyi buna g\u00f6re ayarlaman\u0131z gerekir (\u00f6rne\u011fin, <code>mongodb:\/\/user:password@host:port\/database<\/code>).<br \/>\n*   <strong><code>appId<\/code>:<\/strong> Uygulaman\u0131z i\u00e7in benzersiz bir kimlik. Bu, istemci uygulamalar\u0131n\u0131z\u0131n Parse Server&#8217;\u0131n\u0131za ba\u011flan\u0131rken kullanaca\u011f\u0131 anahtard\u0131r. G\u00fc\u00e7l\u00fc ve tahmin edilemez bir de\u011fer se\u00e7in.<br \/>\n*   <strong><code>masterKey<\/code>:<\/strong> Master Key, uygulaman\u0131z\u0131n en y\u00fcksek yetkili anahtar\u0131d\u0131r. Bu anahtar, g\u00fcvenlik k\u0131s\u0131tlamalar\u0131n\u0131 atlayabilir ve hassas i\u015flemleri ger\u00e7ekle\u015ftirebilir. Kesinlikle gizli tutulmal\u0131 ve istemci taraf\u0131nda asla kullan\u0131lmamal\u0131d\u0131r. G\u00fc\u00e7l\u00fc ve tahmin edilemez bir de\u011fer se\u00e7in.<br \/>\n*   <strong><code>serverURL<\/code>:<\/strong> Parse Server&#8217;\u0131n\u0131z\u0131n d\u0131\u015far\u0131dan eri\u015filece\u011fi tam URL. Genellikle <code>http:\/\/your-domain.com\/parse<\/code> veya <code>http:\/\/your-server-ip:1337\/parse<\/code> \u015feklinde olur. E\u011fer Nginx ile ters proxy kullanacaksan\u0131z, Nginx&#8217;in dinledi\u011fi alan ad\u0131n\u0131 ve yolu belirtmelisiniz. Varsay\u0131lan olarak <code>http:\/\/localhost:1337\/parse<\/code> olarak ayarlayabiliriz, Nginx yap\u0131land\u0131rmas\u0131nda bunu de\u011fi\u015ftirece\u011fiz.<br \/>\n*   <strong><code>cloud<\/code>:<\/strong> Cloud Code dosyalar\u0131n\u0131z\u0131n yolu. Varsay\u0131lan olarak <code>cloud\/main.js<\/code> olarak ayarlanm\u0131\u015ft\u0131r.<br \/>\n*   <strong><code>liveQuery<\/code>:<\/strong> Ger\u00e7ek zamanl\u0131 veri g\u00fcncellemeleri i\u00e7in LiveQuery \u00f6zelli\u011fini etkinle\u015ftirmek isterseniz, burada izlenecek s\u0131n\u0131f adlar\u0131n\u0131 belirtebilirsiniz.<\/p>\n<p><strong>\u00d6nemli G\u00fcvenlik Notu:<\/strong> <code>appId<\/code> ve <code>masterKey<\/code> gibi hassas bilgileri do\u011frudan <code>index.js<\/code> dosyas\u0131na yazmak yerine, \u00fcretim ortamlar\u0131nda bunlar\u0131 ortam de\u011fi\u015fkenleri (environment variables) olarak ayarlaman\u0131z \u015fiddetle tavsiye edilir. PM2 ile ba\u015flat\u0131rken veya bir <code>systemd<\/code> (Ubuntu 14.04&#8217;te <code>upstart<\/code>) servisi olu\u015ftururken bu de\u011fi\u015fkenleri tan\u0131mlayabilirsiniz. \u00d6rne\u011fin:<\/p>\n<pre><code class=\"language-bash\"># Ortam de\u011fi\u015fkenlerini ayarlayarak Parse Server'\u0131 ba\u015flatma (\u00f6rnek)\nDATABASE_URI='mongodb:\/\/localhost:27017\/dev' \\\nAPP_ID='myAppId' \\\nMASTER_KEY='myMasterKey' \\\nSERVER_URL='http:\/\/your-domain.com\/parse' \\\nnode index.js<\/code><\/pre>\n<p>Bu makalede kolayl\u0131k sa\u011flamak ad\u0131na do\u011frudan dosyaya yazma y\u00f6ntemini kullanaca\u011f\u0131z, ancak \u00fcretim i\u00e7in ortam de\u011fi\u015fkenlerini tercih etmelisiniz.<\/p>\n<h4>6. Ad\u0131m: Parse Server&#8217;\u0131 \u00c7al\u0131\u015ft\u0131rma (PM2 ile)<\/h4>\n<p>Parse Server&#8217;\u0131 s\u00fcrekli \u00e7al\u0131\u015f\u0131r durumda tutmak ve sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in PM2&#8217;yi kullanaca\u011f\u0131z.<\/p>\n<p>\u00d6nce PM2&#8217;yi global olarak y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo npm install -g pm2<\/code><\/pre>\n<p>\u015eimdi Parse Server&#8217;\u0131 PM2 ile ba\u015flat\u0131n. <code>~\/parse-server<\/code> dizininde oldu\u011funuzdan emin olun.<\/p>\n<pre><code class=\"language-bash\">pm2 start index.js --name \"parse-server\"<\/code><\/pre>\n<p>Bu komut, <code>index.js<\/code> dosyas\u0131n\u0131 <code>parse-server<\/code> ad\u0131yla bir PM2 s\u00fcreci olarak ba\u015flatacakt\u0131r.<\/p>\n<p>PM2&#8217;nin durumunu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">pm2 status<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>parse-server<\/code> adl\u0131 uygulaman\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<p>PM2 g\u00fcnl\u00fcklerini g\u00f6r\u00fcnt\u00fclemek i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">pm2 logs parse-server<\/code><\/pre>\n<p>Parse Server&#8217;\u0131n sunucu yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in PM2&#8217;nin ba\u015flatma beti\u011fini olu\u015fturman\u0131z gerekir. Ubuntu 14.04 <code>upstart<\/code> kulland\u0131\u011f\u0131ndan, PM2&#8217;nin <code>upstart<\/code> i\u00e7in bir betik olu\u015fturmas\u0131n\u0131 isteyece\u011fiz:<\/p>\n<pre><code class=\"language-bash\"># PM2'nin mevcut s\u00fcre\u00e7 listesini kaydetme\npm2 save\n\n<h2>Upstart i\u00e7in ba\u015flatma beti\u011fini olu\u015fturma<\/h2>\npm2 startup upstart<\/code><\/pre>\n<p><code>pm2 startup upstart<\/code> komutu size bir komut sat\u0131r\u0131 \u00e7\u0131kt\u0131s\u0131 verecektir (\u00f6rne\u011fin, <code>sudo env PATH=$PATH:\/usr\/bin \/usr\/local\/lib\/node_modules\/pm2\/bin\/pm2 startup upstart -u your-user --hp \/home\/your-user<\/code>). Bu komutu kopyalay\u0131p \u00e7al\u0131\u015ft\u0131rman\u0131z gerekecektir. <code>your-user<\/code> yerine kendi kullan\u0131c\u0131 ad\u0131n\u0131z\u0131 yaz\u0131n.<\/p>\n<p>\u00d6rne\u011fin, \u00e7\u0131kt\u0131 \u015f\u00f6yle olabilir:<br \/>\n<code>[PM2] To setup the Startup Script, copy\/paste the following command:<\/code><br \/>\n<code>sudo env PATH=$PATH:\/usr\/bin \/usr\/local\/lib\/node_modules\/pm2\/bin\/pm2 startup upstart -u ubuntu --hp \/home\/ubuntu<\/code><\/p>\n<p>Bu komutu kopyalay\u0131p \u00e7al\u0131\u015ft\u0131r\u0131n. Bu, sunucunuz yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda PM2&#8217;nin ve dolay\u0131s\u0131yla Parse Server&#8217;\u0131n\u0131z\u0131n otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flayacakt\u0131r.<\/p>\n<h4>7. Ad\u0131m: Nginx ile Ters Proxy Kurulumu (\u00d6nerilir)<\/h4>\n<p>Parse Server&#8217;\u0131 do\u011frudan 1337 portu \u00fczerinden eri\u015fime a\u00e7mak yerine, Nginx&#8217;i ters proxy olarak kullanmak daha iyi bir yakla\u015f\u0131md\u0131r. Nginx, SSL sonland\u0131rma, y\u00fck dengeleme, \u00f6nbellekleme ve statik dosya sunma gibi ek \u00f6zellikler sunar.<\/p>\n<p>\u00d6nce Nginx&#8217;i kurun:<\/p>\n<pre><code class=\"language-bash\">sudo apt-get install -y nginx<\/code><\/pre>\n<p>\u015eimdi Parse Server i\u00e7in bir Nginx yap\u0131land\u0131rma dosyas\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/nginx\/sites-available\/parse-server<\/code><\/pre>\n<p>Dosyan\u0131n i\u00e7ine a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n. <code>your_domain.com<\/code> k\u0131sm\u0131n\u0131 kendi alan ad\u0131n\u0131zla veya sunucunuzun IP adresiyle de\u011fi\u015ftirin.<\/p>\n<pre><code class=\"language-nginx\">server {\n    listen 80;\n    server_name your_domain.com; # Alan ad\u0131n\u0131z\u0131 veya sunucu IP adresinizi buraya yaz\u0131n\n\n    location \/ {\n        proxy_pass http:\/\/localhost:1337; # Parse Server'\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 adres ve port\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection 'upgrade';\n        proxy_set_header Host $host;\n        proxy_cache_bypass $http_upgrade;\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    # E\u011fer statik dosyalar\u0131n\u0131z varsa (\u00f6rne\u011fin, bir web sitesi), a\u015fa\u011f\u0131daki gibi yap\u0131land\u0131rabilirsiniz:\n    # location \/dashboard {\n    #     root \/var\/www\/html\/parse-dashboard; # Parse Dashboard'un kurulu oldu\u011fu dizin\n    #     index index.html index.htm;\n    # }\n\n    # Parse Server yolunu do\u011frudan proxy'lemek i\u00e7in\n    location \/parse {\n        proxy_pass http:\/\/localhost:1337\/parse;\n        proxy_http_version 1.1;\n        proxy_set_header Upgrade $http_upgrade;\n        proxy_set_header Connection 'upgrade';\n        proxy_set_header Host $host;\n        proxy_cache_bypass $http_upgrade;\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}<\/code><\/pre>\n<p><strong>Not:<\/strong> Yukar\u0131daki yap\u0131land\u0131rmada, t\u00fcm gelen istekleri Parse Server&#8217;a y\u00f6nlendiriyoruz (<code>location \/<\/code>). E\u011fer Parse Server&#8217;\u0131 belirli bir yol alt\u0131nda (\u00f6rne\u011fin <code>\/parse<\/code>) \u00e7al\u0131\u015ft\u0131rmak isterseniz ve ayn\u0131 alan ad\u0131nda ba\u015fka bir web sitesi veya Parse Dashboard bar\u0131nd\u0131r\u0131yorsan\u0131z, <code>location \/parse<\/code> blo\u011funu kullanmal\u0131 ve <code>index.js<\/code> dosyas\u0131ndaki <code>serverURL<\/code>&#8216;yi buna g\u00f6re g\u00fcncellemelisiniz (\u00f6rne\u011fin, <code>http:\/\/your_domain.com\/parse<\/code>).<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 kaydettikten sonra, etkinle\u015ftirmek i\u00e7in bir sembolik ba\u011flant\u0131 olu\u015fturun ve varsay\u0131lan Nginx sitesini devre d\u0131\u015f\u0131 b\u0131rak\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo ln -s \/etc\/nginx\/sites-available\/parse-server \/etc\/nginx\/sites-enabled\/\nsudo rm \/etc\/nginx\/sites-enabled\/default<\/code><\/pre>\n<p>Nginx yap\u0131land\u0131rmas\u0131n\u0131 test edin ve servisi yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nginx -t\nsudo service nginx restart<\/code><\/pre>\n<p>E\u011fer herhangi bir hata yoksa, Nginx art\u0131k gelen istekleri Parse Server&#8217;\u0131n\u0131za y\u00f6nlendirecektir.<\/p>\n<p><strong>G\u00fcvenlik Duvar\u0131 (UFW) Ayarlar\u0131:<\/strong><br \/>\nE\u011fer sunucunuzda UFW (Uncomplicated Firewall) kullan\u0131yorsan\u0131z, HTTP (80) ve HTTPS (443 &#8211; e\u011fer SSL kullanacaksan\u0131z) portlar\u0131na izin vermeniz gerekebilir:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 'Nginx HTTP'\n<h2>sudo ufw allow 'Nginx HTTPS' # E\u011fer SSL kuracaksan\u0131z<\/h2>\nsudo ufw enable # E\u011fer UFW etkin de\u011filse<\/code><\/pre>\n<h3>Parse Server&#8217;\u0131 Test Etme<\/h3>\n<p>Parse Server&#8217;\u0131n\u0131z\u0131n \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 test etmek i\u00e7in basit bir <code>curl<\/code> komutu kullanabilirsiniz. <code>index.js<\/code> dosyas\u0131nda belirledi\u011finiz <code>appId<\/code> ve <code>masterKey<\/code> de\u011ferlerini kullan\u0131n.<\/p>\n<pre><code class=\"language-bash\">curl -X POST \\\n  -H \"X-Parse-Application-Id: myAppId\" \\\n  -H \"X-Parse-Master-Key: myMasterKey\" \\\n  -H \"Content-Type: application\/json\" \\\n  -d '{}' \\\n  http:\/\/your_domain.com\/parse\/classes\/TestObject<\/code><\/pre>\n<p>Bu komut, Parse Server&#8217;\u0131n\u0131za <code>TestObject<\/code> adl\u0131 bir s\u0131n\u0131f olu\u015fturmak i\u00e7in bo\u015f bir nesne g\u00f6nderecektir. E\u011fer her \u015fey do\u011fru yap\u0131land\u0131r\u0131ld\u0131ysa, sunucudan ba\u015far\u0131l\u0131 bir yan\u0131t (<code>{\"objectId\":\"...\",\"createdAt\":\"...\"}<\/code>) almal\u0131s\u0131n\u0131z.<\/p>\n<h3>G\u00fcvenlik Hususlar\u0131<\/h3>\n<p>Parse Server&#8217;\u0131 \u00fcretim ortam\u0131nda \u00e7al\u0131\u015ft\u0131r\u0131rken g\u00fcvenlik b\u00fcy\u00fck \u00f6nem ta\u015f\u0131r. \u0130\u015fte dikkat etmeniz gereken baz\u0131 temel hususlar:<\/p>\n<p>*   <strong>G\u00fcvenlik Duvar\u0131:<\/strong> Sunucunuzda sadece gerekli portlar\u0131 (HTTP 80, HTTPS 443, SSH 22) a\u00e7\u0131n. MongoDB portu (27017) sadece <code>localhost<\/code> veya Parse Server&#8217;\u0131n \u00e7al\u0131\u015ft\u0131\u011f\u0131 sunucu IP adresinden eri\u015filebilir olmal\u0131d\u0131r.<br \/>\n*   <strong>MongoDB G\u00fcvenli\u011fi:<\/strong> MongoDB&#8217;de kimlik do\u011frulama etkinle\u015ftirin, kullan\u0131c\u0131lar olu\u015fturun ve yetkilendirme kullan\u0131n. Ayr\u0131ca, <code>mongod.conf<\/code> dosyas\u0131ndaki <code>bindIp<\/code> ayar\u0131n\u0131 sadece <code>127.0.0.1<\/code> veya yerel a\u011fdaki sunucu IP adresleriyle s\u0131n\u0131rlay\u0131n.<br \/>\n*   <strong>Ortam De\u011fi\u015fkenleri:<\/strong> <code>appId<\/code>, <code>masterKey<\/code> gibi hassas bilgileri <code>index.js<\/code> dosyas\u0131na do\u011frudan yazmak yerine ortam de\u011fi\u015fkenleri olarak ayarlay\u0131n. PM2 veya <code>upstart<\/code> servis beti\u011fi arac\u0131l\u0131\u011f\u0131yla bunlar\u0131 tan\u0131mlayabilirsiniz.<br \/>\n*   <strong>SSL\/HTTPS:<\/strong> Nginx ile ters proxy kullan\u0131yorsan\u0131z, Let&#8217;s Encrypt gibi \u00fccretsiz bir SSL sertifikas\u0131 sa\u011flay\u0131c\u0131s\u0131 kullanarak HTTPS&#8217;yi etkinle\u015ftirin. Bu, istemci ve sunucu aras\u0131ndaki t\u00fcm ileti\u015fimi \u015fifreleyecektir.<br \/>\n*   <strong>Cloud Code G\u00fcvenli\u011fi:<\/strong> Cloud Code&#8217;unuzu yazarken g\u00fcvenlik en iyi uygulamalar\u0131n\u0131 takip edin. Kullan\u0131c\u0131 girdilerini do\u011frulay\u0131n, hassas verileri do\u011frudan istemciye g\u00f6ndermeyin ve yetkilendirme kontrolleri uygulay\u0131n.<br \/>\n*   <strong>Ba\u011f\u0131ml\u0131l\u0131k G\u00fcncellemeleri:<\/strong> Node.js, npm paketleri ve MongoDB gibi t\u00fcm bile\u015fenleri d\u00fczenli olarak g\u00fcncelleyerek bilinen g\u00fcvenlik a\u00e7\u0131klar\u0131n\u0131 kapat\u0131n.<\/p>\n<h3>Bak\u0131m ve \u0130zleme<\/h3>\n<p>*   <strong>PM2 \u0130zleme:<\/strong> PM2, s\u00fcre\u00e7leri izlemek i\u00e7in g\u00fc\u00e7l\u00fc ara\u00e7lar sunar. <code>pm2 monit<\/code> komutu ile canl\u0131 loglar\u0131, CPU ve bellek kullan\u0131m\u0131n\u0131 izleyebilirsiniz.<br \/>\n*   <strong>MongoDB Yedekleri:<\/strong> Verilerinizin g\u00fcvenli\u011fi i\u00e7in MongoDB veritaban\u0131n\u0131z\u0131n d\u00fczenli yedeklerini al\u0131n. <code>mongodump<\/code> arac\u0131 bu ama\u00e7la kullan\u0131labilir.<br \/>\n*   <strong>Log Y\u00f6netimi:<\/strong> Parse Server ve Nginx loglar\u0131n\u0131 d\u00fczenli olarak kontrol edin. Olas\u0131 sorunlar\u0131 veya g\u00fcvenlik ihlallerini tespit etmenize yard\u0131mc\u0131 olabilirler.<br \/>\n*   <strong>Sistem G\u00fcncellemeleri:<\/strong> Ubuntu 14.04 EOL oldu\u011fu i\u00e7in g\u00fcvenlik g\u00fcncellemeleri almasa da, mevcut paketleri g\u00fcncel tutmak i\u00e7in <code>sudo apt-get update && sudo apt-get upgrade -y<\/code> komutunu d\u00fczenli olarak \u00e7al\u0131\u015ft\u0131rman\u0131z, di\u011fer bile\u015fenlerin g\u00fcncel kalmas\u0131na yard\u0131mc\u0131 olabilir.<\/p>\n<h3>Yayg\u0131n Sorun Giderme<\/h3>\n<p>*   <strong>Parse Server Ba\u015flam\u0131yor:<\/strong><br \/>\n    *   <code>pm2 logs parse-server<\/code> komutuyla loglar\u0131 kontrol edin. Hata mesajlar\u0131 genellikle sorunun kayna\u011f\u0131n\u0131 g\u00f6sterir.<br \/>\n    *   MongoDB&#8217;nin \u00e7al\u0131\u015f\u0131r durumda oldu\u011fundan emin olun (<code>sudo service mongod status<\/code>).<br \/>\n    *   <code>index.js<\/code> dosyas\u0131ndaki <code>databaseURI<\/code>, <code>appId<\/code>, <code>masterKey<\/code> ve <code>serverURL<\/code> ayarlar\u0131n\u0131 kontrol edin.<br \/>\n*   <strong>Parse Server&#8217;a Eri\u015filemiyor:<\/strong><br \/>\n    *   Nginx&#8217;in \u00e7al\u0131\u015f\u0131r durumda oldu\u011fundan emin olun (<code>sudo service nginx status<\/code>).<br \/>\n    *   Nginx yap\u0131land\u0131rmas\u0131n\u0131 kontrol edin (<code>sudo nginx -t<\/code>).<br \/>\n    *   G\u00fcvenlik duvar\u0131 (UFW) ayarlar\u0131n\u0131 kontrol edin. Gerekli portlara (80, 443) izin verildi\u011finden emin olun.<br \/>\n    *   <code>index.js<\/code> dosyas\u0131ndaki <code>serverURL<\/code>&#8216;nin do\u011fru ayarland\u0131\u011f\u0131ndan emin olun.<br \/>\n*   <strong>MongoDB Ba\u011flant\u0131 Hatas\u0131:<\/strong><br \/>\n    *   <code>databaseURI<\/code> dizesinin do\u011fru oldu\u011fundan ve MongoDB&#8217;nin do\u011fru portta \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   MongoDB&#8217;nin <code>bindIp<\/code> ayar\u0131n\u0131 kontrol edin. Parse Server&#8217;\u0131n eri\u015febilece\u011fi bir IP adresine ba\u011flanm\u0131\u015f olmal\u0131d\u0131r.<br \/>\n    *   MongoDB&#8217;de kimlik do\u011frulama etkinse, ba\u011flant\u0131 dizesinde do\u011fru kullan\u0131c\u0131 ad\u0131 ve \u015fifreyi kulland\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Parse Server&#8217;\u0131 Ubuntu 14.04 i\u015fletim sistemi \u00fczerinde ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131 ve yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 \u00f6\u011frendiniz. Node.js, npm, MongoDB, Git ve PM2 gibi temel bile\u015fenleri kurarak ve Parse Server&#8217;\u0131 yap\u0131land\u0131rarak kendi BaaS \u00e7\u00f6z\u00fcm\u00fcn\u00fcz\u00fc ba\u015far\u0131yla \u00e7al\u0131\u015f\u0131r hale getirdiniz. Ayr\u0131ca, Nginx ile ters proxy kurarak g\u00fcvenlik ve performans iyile\u015ftirmeleri sa\u011flama ad\u0131mlar\u0131n\u0131 da ele ald\u0131k.<\/p>\n<p>Ubuntu 14.04&#8217;\u00fcn ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fcn sonuna ula\u015ft\u0131\u011f\u0131n\u0131 unutmamak \u00f6nemlidir. Bu nedenle, \u00fcretim ortamlar\u0131 i\u00e7in daha g\u00fcncel ve desteklenen bir i\u015fletim sistemine (\u00f6rne\u011fin Ubuntu 20.04 veya 22.04) ge\u00e7i\u015f yapman\u0131z, g\u00fcvenlik ve uzun vadeli s\u00fcrd\u00fcr\u00fclebilirlik a\u00e7\u0131s\u0131ndan kritik \u00f6neme sahiptir. Ancak, bu rehber sayesinde eski bir altyap\u0131da bile Parse Server&#8217;\u0131 ba\u015far\u0131yla da\u011f\u0131tabilirsiniz. Kendi sunucunuzda Parse Server&#8217;\u0131 \u00e7al\u0131\u015ft\u0131rmak, uygulaman\u0131z\u0131n arka ucu \u00fczerinde tam kontrol sa\u011flaman\u0131za ve \u00f6zel ihtiya\u00e7lar\u0131n\u0131za g\u00f6re \u00f6l\u00e7eklendirmenize olanak tan\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Parse Server&#8217;\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma\nParse Server, mobil ve web uygulamalar\u0131 i\u00e7in kendi sunucunuzda bar\u0131nd\u0131rabilece\u011finiz a\u00e7\u0131k","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":[1468],"tags":[],"class_list":{"0":"post-31092","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","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>Parse Server&#039;\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\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\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Parse Server&#039;\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma\" \/>\n<meta property=\"og:description\" content=\"Parse Server&#039;\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma Parse Server, mobil ve web uygulamalar\u0131 i\u00e7in kendi sunucunuzda bar\u0131nd\u0131rabilece\u011finiz a\u00e7\u0131k\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-05T13:41:13+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=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Parse Server&#8217;\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma\",\"datePublished\":\"2025-10-05T13:41:13+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/\"},\"wordCount\":2486,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/\",\"name\":\"Parse Server'\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-05T13:41:13+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Parse Server&#8217;\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\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":"Parse Server'\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/","og_locale":"tr_TR","og_type":"article","og_title":"Parse Server'\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma","og_description":"Parse Server'\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma Parse Server, mobil ve web uygulamalar\u0131 i\u00e7in kendi sunucunuzda bar\u0131nd\u0131rabilece\u011finiz a\u00e7\u0131k","og_url":"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-05T13:41:13+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Parse Server&#8217;\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma","datePublished":"2025-10-05T13:41:13+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/"},"wordCount":2486,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/","url":"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/","name":"Parse Server'\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\u0131rma - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-05T13:41:13+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/parse-serveri-ubuntu-14-04-uzerinde-calistirma\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Parse Server&#8217;\u0131 Ubuntu 14.04 \u00dczerinde \u00c7al\u0131\u015ft\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\/31092","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=31092"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31092\/revisions"}],"predecessor-version":[{"id":31093,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/31092\/revisions\/31093"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=31092"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=31092"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=31092"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}