Küçük bir uygulama fikrini hayata geçirmek istediğinizde, işin en yorucu tarafı çoğu zaman "arka uç" kurmaktır. Bir veritabanı seçersiniz, onu ayrı bir sunucuya kurarsınız, kullanıcı kaydı ve girişi için bir kimlik sistemi yazarsınız, dosya yüklemeleri için depolama ayarlarsınız ve tüm bunları güvenli bir API'nin arkasına koyarsınız. Basit bir yan proje için bile bu iskele, asıl uygulamayı yazmaktan daha uzun sürebilir. PocketBase tam bu noktada devreye giren, olabildiğince sadeliğe odaklanmış açık kaynaklı bir backend'dir; veritabanını, kimlik doğrulamayı, dosya depolamayı ve gerçek zamanlı API'yi tek bir çalıştırılabilir dosyanın içinde toplar.
En dikkat çekici yanı, kurulumunun neredeyse hiç olmamasıdır. İndirdiğiniz tek bir dosyayı çalıştırırsınız ve saniyeler içinde bir yönetim paneli, hazır bir REST API ve gömülü bir veritabanıyla karşılaşırsınız. Bu yazıda PocketBase'in tek binary ve gömülü SQLite mimarisinin ne anlama geldiğini, kurulumunu, admin panelini, koleksiyon mantığını, kimlik doğrulama ve gerçek zamanlı özelliklerini, üretim ortamı için gereken adımları ve hangi projelerde parladığını uygulamalı örneklerle ele alacağız. Amacımız, PocketBase'in sizin senaryonuz için doğru araç olup olmadığına net biçimde karar vermenizi sağlamak.
PocketBase Nedir, Ne İşe Yarar#
PocketBase, kısaca bir BaaS (Backend-as-a-Service, "hizmet olarak arka uç") çözümüdür. Fikir tanıdıktır: bir uygulamanın çalışması için gereken sunucu tarafı bileşenlerini tek tek kurmak yerine, bunları hazır ve birbirine bağlı biçimde almak. PocketBase'i benzerlerinden ayıran nokta ise bu bileşenleri paketleme biçimidir. Ortada birbiriyle konuşan bir sürü servis, konteyner ya da harici veritabanı yoktur; her şey Go diliyle yazılmış tek bir programın içindedir.
Uygulamanız açısından PocketBase şunları tek elden sağlar: verilerinizi tutan gömülü bir SQLite veritabanı, her tablo için otomatik oluşan bir REST API, kullanıcı kaydı ve girişi için bir kimlik doğrulama katmanı, resim ve belge gibi içerikler için dosya depolama, veritabanı değişikliklerini anlık ileten bir gerçek zamanlı (realtime) akış ve bütün bunları yönettiğiniz görsel bir admin paneli. Bu bileşenlerin hiçbiri tek başına yeni değildir; PocketBase'in katkısı, hepsini kurulum derdi olmadan çalışır halde önünüze koymasıdır.
PocketBase aynı zamanda bir çatı (framework) olarak da kullanılabilir. Yani onu yalnızca hazır bir sunucu gibi çalıştırabileceğiniz gibi, kendi Go kodunuza gömüp özel iş mantığı ekleyebilir ya da JavaScript ile yazılmış "hook"larla API davranışını genişletebilirsiniz. Bu esneklik, aracı basit prototiplerden gerçek üretim uygulamalarına kadar geniş bir yelpazede kullanışlı kılar.
Tek Binary ve Gömülü SQLite Mimarisi#
PocketBase'in felsefesini anlamak için iki kavrama bakmak yeterli: tek binary ve gömülü SQLite. Go dili, bir uygulamayı tüm bağımlılıklarıyla birlikte tek bir çalıştırılabilir dosyaya derleyebilir. PocketBase de bu yeteneği sonuna kadar kullanır; indirdiğiniz dosya, çalışması için başka hiçbir şeye ihtiyaç duymaz. Ne ayrı bir çalışma zamanı (runtime) kurmanız gerekir, ne bir yorumlayıcı, ne de harici bir veritabanı sunucusu. Dosyayı bir Linux, Windows ya da macOS makinesine kopyalayıp çalıştırırsınız, o kadar.
Veritabanı tarafında ise PocketBase, ayrı bir sunucu isteyen PostgreSQL ya da MySQL yerine SQLite kullanır. SQLite, verilerin tek bir dosyada tutulduğu, sunucusuz çalışan olgun bir veritabanı motorudur. "Sunucusuz" burada bulut anlamında değil, teknik anlamda kullanılır: ortada dinleyen bir veritabanı süreci yoktur, uygulama dosyaya doğrudan erişir. Bu yaklaşımın küçük ve orta ölçekli projeler için birçok avantajı vardır. Yedekleme, çoğu zaman tek bir dosyayı kopyalamaya iner. Taşıma, o dosyayı başka bir makineye götürmekten ibarettir. Bağlantı havuzu, ağ gecikmesi ya da ayrı bir veritabanı sunucusunun bakımı gibi dertler tümüyle ortadan kalkar.
SQLite'ın tek dosya olması yavaş olduğu anlamına gelmez. PocketBase, SQLite'ı WAL (Write-Ahead Logging) kipinde çalıştırır; bu kip, okuma ve yazma işlemlerinin birbirini engellememesini sağlayarak eşzamanlı erişimde ciddi performans kazandırır. Tek bir sunucu üzerinde çalışan bir SQLite veritabanı, saniyede binlerce okuma isteğini rahatça karşılayabilir. Bu mimarinin doğal sınırı, yatay ölçeklemedir: birden çok sunucuya dağıtılıp ortak bir veritabanına bağlanan devasa sistemler için SQLite uygun değildir. Ama uygulamaların büyük çoğunluğu asla o ölçeğe ulaşmaz ve PocketBase de zaten o pazarı hedeflemez. SQLite ve tek dosyalı yapıya daha yakından bakmak isterseniz SQLite nedir ve kullanımı yazımız iyi bir başlangıç olur.
Kurulum ve İlk Çalıştırma#
PocketBase kurulumunun bu kadar basit olması, belki de onun en çok sevilen yanıdır. Resmi siteden işletim sisteminize uygun sıkıştırılmış dosyayı indirir, açar ve çalıştırırsınız. Bir Linux sunucuda tipik adımlar şöyledir:
# Çalışma dizini oluştur ve içine gir
mkdir -p /opt/pocketbase && cd /opt/pocketbase
# Sürümü indir (sürüm numarasını güncel olanla değiştirin)
wget https://github.com/pocketbase/pocketbase/releases/download/v0.22.0/pocketbase_0.22.0_linux_amd64.zip
# Arşivi aç
unzip pocketbase_0.22.0_linux_amd64.zip
# Çalıştırma izni ver
chmod +x pocketbase
# Sunucuyu başlat
./pocketbase serve
serve komutunu verdiğiniz anda PocketBase, varsayılan olarak 127.0.0.1:8090 adresinde dinlemeye başlar ve terminale iki bağlantı yazar: biri uygulama API'si, diğeri admin paneli. Bir sunucuda uzaktan erişmek istiyorsanız dinlenen adresi açıkça belirtmeniz gerekir:
# Tüm arayüzlerde 8090 portundan dinle
./pocketbase serve --http=0.0.0.0:8090
İlk kez çalıştırdığınızda, tarayıcıdan admin paneline girip bir yönetici hesabı oluşturmanız istenir. Bu hesap, tüm koleksiyonları ve ayarları yöneteceğiniz süper kullanıcıdır. Verilerin tamamı, çalıştırdığınız dosyanın yanında oluşan pb_data klasöründe tutulur; SQLite veritabanı, yüklenen dosyalar ve ayarlar burada durur. Yani bir PocketBase kurulumunu yedeklemek ya da taşımak, çoğunlukla pocketbase dosyasını ve pb_data klasörünü birlikte kopyalamak demektir. Bu sadelik, düzenli bir yedekleme planını da kolaylaştırır.
Admin Paneli ve Koleksiyonlar#
PocketBase'in görsel yönetim paneli, tarayıcıdan eriştiğiniz modern ve sade bir arayüzdür. Burada verilerinizi koleksiyonlar halinde düzenlersiniz. Koleksiyon, ilişkisel dünyadaki "tablo" kavramının PocketBase'deki karşılığıdır; her koleksiyon bir dizi alan (field) içerir ve her kayıt bu alanları doldurur. Panelden yeni bir koleksiyon oluşturur, alanlarını tanımlar (metin, sayı, tarih, e-posta, ilişki, dosya gibi türlerle), doğrulama kurallarını belirler ve kayıtları doğrudan girip düzenlersiniz.
Koleksiyon oluşturduğunuz anda PocketBase, o koleksiyon için otomatik bir REST API üretir. Ayrı bir arka uç kodu yazmadan kayıt ekleyebilir, listeleyebilir, filtreleyebilir ve güncelleyebilirsiniz. Örneğin posts adında bir koleksiyonunuz varsa, kayıtları çekmek için istemciden şu tarz bir istek atarsınız:
# Yayınlanmış yazıları, oluşturulma tarihine göre tersten getir
curl "https://api.ornek.com/api/collections/posts/records?filter=(published=true)&sort=-created"
Panelin en güçlü yanlarından biri, her koleksiyon için ayrı ayrı tanımlanan API kurallarıdır. Bir kaydın kim tarafından listelenebileceğini, görüntülenebileceğini, oluşturulabileceğini, güncellenebileceğini veya silinebileceğini, basit bir ifade diliyle kural olarak yazarsınız. Örneğin "bir kullanıcı yalnızca kendi oluşturduğu kayıtları güncelleyebilsin" kuralı, güncelleme kuralına @request.auth.id = author yazmak kadar kısadır. Bu kurallar sunucu tarafında zorlanır; yani API'yi ön yüze açmak, veritabanını korumasız bırakmak anlamına gelmez. Bu mantık, Supabase'in satır bazlı güvenliğine (RLS) benzer bir rol oynar; ikisini kıyaslamak isterseniz Supabase nedir yazımızda o modeli ayrıntılı ele aldık.
Kimlik Doğrulama ve Dosya Depolama#
Modern bir uygulamanın en tekrar eden işlerinden biri kullanıcı yönetimidir ve PocketBase bunu kutudan çıktığı haliyle sunar. Auth koleksiyonları adı verilen özel bir koleksiyon türü, kullanıcı kaydı, giriş, şifre sıfırlama ve e-posta doğrulama işlevlerini hazır getirir. Bir kullanıcı oluşturmak, giriş yaptırmak ve oturum belirteci (token) almak için ayrı bir kimlik altyapısı kurmanız gerekmez.
PocketBase iki temel kimlik doğrulama yolunu destekler: klasik e-posta/şifre girişi ve OAuth2 ile üçüncü taraf giriş (Google, GitHub, GitLab, Apple gibi sağlayıcılar). OAuth2 sağlayıcılarını admin panelinden birkaç alanı doldurarak etkinleştirirsiniz. Başarılı bir girişte istemciye, sonraki isteklerde Authorization başlığında taşınan bir JWT belirteci döner. İstemci tarafında bir örnek şöyle görünür:
import PocketBase from 'pocketbase';
const pb = new PocketBase('https://api.ornek.com');
// E-posta ve şifreyle giriş
const authData = await pb.collection('users').authWithPassword(
'[email protected]',
'guclu-bir-parola'
);
// Artık pb.authStore.token içinde geçerli belirteç var
console.log(pb.authStore.isValid);
Dosya depolama tarafında da benzer bir kolaylık vardır. Bir koleksiyona "dosya" türünde bir alan eklediğinizde, o alana yüklenen görseller, PDF'ler ya da başka içerikler otomatik olarak yönetilir. Varsayılan olarak dosyalar pb_data içinde yerel diskte tutulur; ancak isterseniz S3 uyumlu bir depolama servisine yönlendirebilirsiniz. Görseller için PocketBase, istenen boyuta göre küçük resim (thumbnail) üretme desteği de sunar, böylece ön yüzde farklı ölçülerde görsel sunmak için ek bir araç gerekmez. Kullanıcı verileri ve dosyalar söz konusu olduğunda, sunucunuzu güvenli tutmak için trafiği mutlaka bir SSL sertifikasıyla şifrelemeniz gerektiğini de baştan not edelim.
Gerçek Zamanlı API ve İstemci Kütüphanesi#
PocketBase'in öne çıkan özelliklerinden biri, ek yapılandırma gerektirmeyen gerçek zamanlı desteğidir. Bir koleksiyondaki kayıtları dinlemeye başladığınızda, o kayıtlarda bir ekleme, güncelleme ya da silme olduğunda istemciye anında bildirim gelir. Bu, teknik olarak sunucudan istemciye tek yönlü akış sağlayan SSE (Server-Sent Events) üzerine kuruludur ve sohbet uygulamaları, canlı panolar, bildirim akışları ya da iş birliği araçları gibi senaryolarda sayfayı yenilemeden güncel kalmayı mümkün kılar.
Resmi JavaScript SDK'sı bu işi son derece sadeleştirir. Bir koleksiyona abone olmak tek satırdır:
// 'messages' koleksiyonundaki tüm değişiklikleri dinle
pb.collection('messages').subscribe('*', (e) => {
console.log(e.action); // create, update veya delete
console.log(e.record); // etkilenen kayıt
});
// Yalnızca belirli bir kaydı dinlemek de mümkün
pb.collection('messages').subscribe('RECORD_ID', (e) => {
console.log('Bu kayıt değişti:', e.record);
});
JavaScript SDK'sı yalnızca gerçek zamanlı akış için değil, tüm API işlemleri için tasarlanmış kapsamlı bir istemcidir; kayıt oluşturma, filtreleme, dosya yükleme ve kimlik doğrulamayı tek bir tutarlı arayüzle yönetir. JavaScript dışında topluluk tarafından geliştirilen Dart/Flutter SDK'sı da resmi olarak desteklenir; bu da PocketBase'i web ve mobil uygulamalar için doğal bir tercih haline getirir. SDK kullanmak zorunda değilsiniz elbette; API standart bir REST arayüzü olduğu için, herhangi bir dilden düz HTTP istekleriyle de aynı işlemleri yapabilirsiniz.
Üretim Ortamı İçin Yapılandırma#
PocketBase'i geliştirme sırasında ./pocketbase serve diye çalıştırmak yeterlidir, ama gerçek bir sunucuda birkaç şeye daha dikkat etmek gerekir. İlk mesele, uygulamanın arka planda kalıcı olarak çalışmasıdır. Terminali kapattığınızda süreç ölmesin diye, PocketBase'i bir systemd servisi olarak tanımlamak en temiz yoldur:
# /etc/systemd/system/pocketbase.service
[Unit]
Description=PocketBase
After=network.target
[Service]
Type=simple
User=pocketbase
Group=pocketbase
LimitNOFILE=4096
Restart=always
RestartSec=5s
WorkingDirectory=/opt/pocketbase
ExecStart=/opt/pocketbase/pocketbase serve --http=127.0.0.1:8090
[Install]
WantedBy=multi-user.target
Bu dosyayı oluşturduktan sonra systemctl enable --now pocketbase komutuyla servisi etkinleştirir ve makine yeniden başlasa bile PocketBase'in otomatik ayağa kalkmasını sağlarsınız. systemd servisleriyle ilgili ayrıntılar için systemd servis yönetimi yazımıza bakabilirsiniz.
İkinci mesele, PocketBase'i doğrudan dünyaya açmak yerine önüne bir ters proxy koymaktır. PocketBase'i yalnızca yerel adreste (127.0.0.1:8090) dinletir, dışarıdan gelen HTTPS trafiğini ise Nginx'in karşılamasını sağlarsınız. Bu, hem SSL sertifikasını Nginx üzerinde yönetmenizi kolaylaştırır hem de gerçek zamanlı SSE bağlantılarının düzgün akması için tamponlamayı kapatmanıza olanak tanır:
server {
listen 443 ssl http2;
server_name api.ornek.com;
ssl_certificate /etc/letsencrypt/live/api.ornek.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/api.ornek.com/privkey.pem;
client_max_body_size 25M;
location / {
proxy_pass http://127.0.0.1:8090;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# Gerçek zamanlı (SSE) akışın kesintisiz gitmesi için
proxy_buffering off;
proxy_read_timeout 3600s;
}
}
Son olarak, pb_data klasörünün düzenli yedeklendiğinden emin olun. SQLite tek dosya olduğu için WAL kipinde tutarlı bir yedek almanın en güvenli yolu, PocketBase'in kendi yedekleme özelliğini kullanmak ya da veritabanını sqlite3 ile kilitlenmeye karşı güvenli biçimde kopyalamaktır. Bir sunucuyu bu şekilde kurup güvenli hale getirmek için genel prensipleri sunucu güvenliği temelleri yazımızda topladık; yönetimle uğraşmak istemeyenler için ise sunucu yönetimi hizmetimiz bu yükü devralır.
PocketBase Kimler İçin İdeal#
PocketBase, her projeye uygun bir çözüm değildir; ama uygun olduğu senaryolarda gerçekten fark yaratır. En parladığı yer, hızlı geliştirme ve düşük operasyonel yük isteyen küçük ve orta ölçekli projelerdir: bir MVP, bir yan proje, bir iç araç, bir mobil uygulamanın arka ucu ya da tek sunucuda rahatça çalışabilecek bir SaaS'ın ilk sürümü. Tek bir dosyayla başlaması, gömülü veritabanı sayesinde bakım yükünün neredeyse sıfır olması ve panelden hızlıca veri modelleyebilmeniz, bu tür işlerde onu son derece verimli kılar.
Öte yandan, birden çok sunucuya yayılması gereken, saniyede on binlerce yazma isteği alan ya da farklı ekiplerin ayrı ayrı ölçeklediği devasa sistemlerde tek dosyalı SQLite mimarisi sınıra dayanır. Böyle durumlarda PostgreSQL tabanlı ve çok servisli çözümler daha uygundur. Aşağıdaki tablo, PocketBase'i sık kıyaslandığı araçlarla kabaca konumlandırır:
| Araç | Veritabanı | Mimari | En uygun olduğu yer |
|---|---|---|---|
| PocketBase | Gömülü SQLite | Tek binary | Küçük/orta projeler, MVP, iç araçlar |
| Supabase | PostgreSQL | Çok servisli | İlişkisel, büyüyen, tam donanımlı arka uç |
| Directus | Mevcut SQL veritabanı | Node.js uygulaması | İçerik yönetimi, mevcut DB'yi sarmak |
| Firebase | NoSQL (kapalı) | Yönetilen bulut | Google altyapısına bağlı hızlı başlangıç |
Kısacası; ilişkisel ve büyük ölçekli bir yapı hedefliyorsanız Supabase, içerik ekibine görsel bir panelle mevcut bir veritabanını yönettirmek istiyorsanız Directus daha yerinde olabilir. Ama olabildiğince az parça, olabildiğince hızlı bir başlangıç ve düşük bakım maliyeti öncelikliyse PocketBase güçlü bir seçenektir. Bu tür açık kaynak uygulamaların kurulabileceği çeşitli seçenekleri App Center üzerinden inceleyebilir, kendi altyapınız için uygun bir sanal sunucu ya da VDS sunucu seçebilirsiniz.
Sıkça Sorulan Sorular#
PocketBase üretim ortamında güvenle kullanılabilir mi?#
Evet, PocketBase kararlı ve olgun bir yazılımdır ve gerçek üretim uygulamalarında yaygın olarak kullanılır. Gömülü SQLite mimarisi, çoğu küçük ve orta ölçekli uygulamanın yükünü tek bir sunucuda rahatça kaldırır. Dikkat etmeniz gereken tek şey, projenizin ölçeğidir: birden çok sunucuya dağıtılması ya da çok yüksek eşzamanlı yazma isteği alması gereken devasa sistemler için tek dosyalı yapı doğru tercih olmayabilir. Bunun dışında düzenli yedekleme ve önüne bir ters proxy koyma gibi standart iyi uygulamaları izlerseniz, üretimde güvenle çalıştırabilirsiniz.
SQLite kullanması PocketBase'i zayıf mı yapar?#
Hayır, bu yaygın ama yanlış bir önyargıdır. SQLite, dünyanın en çok dağıtılmış veritabanı motorlarından biridir ve doğru kullanıldığında son derece hızlıdır. PocketBase, SQLite'ı okuma-yazma çakışmalarını azaltan WAL kipinde çalıştırır; bu sayede tek bir sunucu saniyede binlerce isteği rahatça karşılar. SQLite'ın gerçek sınırı yatay ölçeklemedir, yani birden çok makineye dağıtılan sistemlerdir. Uygulamaların büyük çoğunluğu bu sınıra hiçbir zaman yaklaşmaz, dolayısıyla çoğu proje için SQLite bir zayıflık değil, sadelik ve hız avantajıdır.
PocketBase ücretsiz mi ve verilerim bana mı ait olacak?#
PocketBase tümüyle açık kaynaklıdır ve MIT lisansı altında ücretsiz dağıtılır; kendi sunucunuzda çalıştırdığınızda tek maliyetiniz sunucu kaynaklarıdır. Verileriniz standart bir SQLite dosyasında tutulduğu için tamamen sizin denetiminizdedir. pb_data klasörünü kopyalayarak veritabanınızı istediğiniz zaman yedekleyebilir, başka bir makineye taşıyabilir ya da standart SQLite araçlarıyla açıp inceleyebilirsiniz. Yani belirli bir sağlayıcıya kilitlenmezsiniz; veriye erişiminiz her zaman açık ve taşınabilir kalır.
PocketBase'i özelleştirebilir ve genişletebilir miyim?#
Evet, PocketBase iki farklı genişletme yolu sunar. İlki, onu bir Go kütüphanesi gibi kendi programınıza gömüp özel uç noktalar ve iş mantığı eklemektir; bu yol en fazla esnekliği verir ama Go bilgisi gerektirir. İkincisi, çalıştırılabilir dosyanın yanına koyduğunuz JavaScript hook dosyalarıyla API davranışını genişletmektir; bu yöntem Go derlemesi gerektirmez ve kayıt oluşturma, güncelleme gibi olaylara tepki veren kurallar yazmanıza olanak tanır. Çoğu proje için varsayılan haliyle PocketBase yeterlidir, ancak özel ihtiyaçlarınız olduğunda bu genişletme noktaları elinizin altındadır.
PocketBase ile Supabase arasında nasıl seçim yapmalıyım?#
İkisi de açık kaynak backend çözümleridir ama farklı önceliklere hitap ederler. PocketBase tek dosya, gömülü SQLite ve neredeyse sıfır bakım üzerine kuruludur; hızlı başlamak, küçük tutmak ve az parçayla çalışmak istiyorsanız idealdir. Supabase ise PostgreSQL üzerine kurulu, çok servisli ve daha büyük ölçekli ilişkisel projeler için tasarlanmıştır; karmaşık ilişkiler, gelişmiş SQL sorguları ve yüksek trafik hedefliyorsanız daha uygundur. Kısaca: sadelik ve hız öncelikliyse PocketBase, ilişkisel derinlik ve büyüme potansiyeli öncelikliyse Supabase tarafına bakmak mantıklıdır.
PocketBase'i kendi sunucumda barındırmak zor mu?#
Hayır, aksine PocketBase kendi sunucunuzda barındırması en kolay backend araçlarından biridir. Tek yaptığınız, dosyayı sunucuya kopyalamak, çalıştırmak ve önüne SSL sertifikalı bir ters proxy koymaktır. Docker, veritabanı sunucusu kurulumu ya da servisler arası ağ yapılandırması gibi adımlar gerekmez. systemd ile kalıcı çalıştırma ve düzenli yedekleme dışında özel bir uzmanlık istemez. Sunucu yönetimiyle hiç uğraşmak istemiyorsanız bu işi devralan yönetilen çözümler de vardır, ama teknik olarak PocketBase kurulumu bir öğleden sonrada rahatça tamamlanabilecek bir iştir.
Kapanış#
PocketBase, modern bir uygulamanın arka ucunu kurmanın ne kadar sade olabileceğini gösteren güzel bir örnektir. Tek bir dosya, gömülü bir veritabanı, hazır kimlik doğrulama, dosya depolama ve gerçek zamanlı bir API; hepsi kurulum derdi olmadan, dakikalar içinde çalışır halde. İlişkisel derinlik ya da çok sunuculu ölçek gerektiren devasa sistemler için başka araçlar daha uygun olsa da, hızlı geliştirme, düşük bakım ve tam veri sahipliği isteyen küçük ve orta ölçekli projeler için PocketBase gerçekten güçlü ve keyifli bir seçenektir.
Kendi PocketBase kurulumunuz için sağlam bir zemin arıyorsanız, tam kök erişimi sunan bir VDS sunucu ya da daha esnek kaynaklar için bir sanal sunucu ideal bir başlangıç olur. Kurulumdan önce farklı açık kaynak uygulamaları görmek isterseniz App Center kataloğuna göz atabilir, sunucunuzun bakım ve güvenlik tarafını bize bırakmak isterseniz sunucu yönetimi ve düzenli yedekleme hizmetlerimizden yararlanabilirsiniz. Clou.TR olarak, fikrinizi hayata geçirirken altyapı tarafını sizin için sağlam ve öngörülebilir tutmak için buradayız.