PocketBase, web ve mobil uygulamalar için gerekli olan arka uç hizmetlerini hızlıca oluşturmak amacıyla geliştirilen ücretsiz ve açık kaynaklı bir sunucu yazılımıdır. Tek bir çalıştırılabilir dosya üzerinden veritabanı yönetimi, kullanıcı kimlik doğrulaması, dosya depolama ve API hizmetleri sunar. Özellikle bağımsız yazılım geliştiricileri, küçük uygulama ekipleri ve hızlı prototip hazırlamak isteyen kullanıcılar için tasarlanmıştır. Geleneksel arka uç geliştirme süreçlerinde ayrı ayrı yapılandırılması gereken çeşitli hizmetleri bütünleşik bir yapıda sunarak uygulama geliştirme sürecini kolaylaştırır.
Program, veri saklama işlemleri için SQLite veritabanını kullanır. Kullanıcılar koleksiyon adı verilen veri yapıları oluşturarak uygulamalarına ait kayıtları düzenleyebilir. Her koleksiyonda farklı veri alanları, doğrulama kuralları ve kayıt ilişkileri tanımlanabilir. Metin, sayı, tarih, ilişki ve dosya gibi farklı alan türleri desteklenir. Koleksiyonlara ait veriler otomatik oluşturulan API uç noktaları üzerinden erişilebilir hâle gelir. Böylece temel veritabanı işlemleri için her defasında ayrı sunucu kodu hazırlanması gerekmez.
PocketBase, veritabanının yönetilmesi için yerleşik bir web arayüzü sunar. Kullanıcılar tarayıcı üzerinden yönetim paneline bağlanarak koleksiyonları oluşturabilir, kayıtları inceleyebilir ve verileri değiştirebilir. Alan türleri ve erişim kuralları grafiksel arayüz üzerinden düzenlenebilir. Yönetim panelinde uygulama kullanıcıları ve çeşitli sunucu ayarları da kontrol edilebilir. Bu özellik, veritabanı yapısının hazırlanmasını ve günlük yönetim işlemlerinin gerçekleştirilmesini kolaylaştırır.
Uygulamanın önemli özelliklerinden biri bütünleşik kimlik doğrulama sistemidir. Kullanıcı hesapları oluşturulabilir ve farklı oturum açma yöntemleri yapılandırılabilir. E-posta ve parola tabanlı giriş işlemleri, OAuth2 sağlayıcıları ve diğer desteklenen kimlik doğrulama yöntemleri kullanılabilir. Kullanıcı kayıtlarının doğrulanması, parola sıfırlama işlemleri ve oturum yönetimi için hazır araçlar bulunmaktadır. Koleksiyonlara özel API erişim kuralları tanımlanarak hangi kullanıcıların belirli kayıtlara erişebileceği veya bunları değiştirebileceği belirlenebilir.
PocketBase, gerçek zamanlı veri güncellemelerini destekler. Sunucu tarafındaki kayıtlar oluşturulduğunda, değiştirildiğinde veya silindiğinde ilgili istemcilere bildirim gönderilebilir. Bu işlem için Server-Sent Events teknolojisinden yararlanılır. Kullanıcılar gerçek zamanlı sohbet uygulamaları, canlı veri panelleri veya ortak çalışma araçları geliştirmek için bu özellikten yararlanabilir. Ayrıca uygulama, dosya yükleme ve depolama işlevlerini de destekler. Görseller ve belgeler koleksiyon kayıtlarıyla ilişkilendirilebilir, desteklenen yapılandırmalarda S3 uyumlu depolama hizmetleri kullanılabilir.
Program, geliştiricilerin sunucu davranışlarını özelleştirmesine yönelik genişletme araçları içerir. Go programlama diliyle özel sunucu işlevleri hazırlanabilir veya JavaScript tabanlı kancalar kullanılarak belirli olaylara özel işlemler tanımlanabilir. Yeni API uç noktaları eklenebilir, veritabanı işlemlerine özel doğrulama kuralları uygulanabilir ve zamanlanmış görevler oluşturulabilir. Veritabanı şemasındaki değişiklikler migration dosyaları aracılığıyla yönetilebilir. Bu yapı, PocketBase'in basit prototiplerden daha kapsamlı uygulamalara kadar farklı geliştirme ihtiyaçlarına uyarlanmasını sağlar.
Go programlama diliyle geliştirilen PocketBase; Windows, macOS ve Linux işletim sistemlerinde çalışabilir. Windows için x64 ve ARM64 mimarilerine yönelik hazır çalıştırılabilir dosyalar içeren ZIP paketleri bulunmaktadır. Program komut satırından başlatılır ve yönetim arayüzüne web tarayıcısı üzerinden erişilir. MIT lisansı altında dağıtılan uygulama, henüz 1.0 sürümüne ulaşmadığından sürümler arasında geriye dönük uyumluluk değişiklikleri yaşanabilir. Bu nedenle kritik üretim ortamlarında kullanmadan önce sürüm notlarının ve geçiş gereksinimlerinin değerlendirilmesi önerilir.
Program, veri saklama işlemleri için SQLite veritabanını kullanır. Kullanıcılar koleksiyon adı verilen veri yapıları oluşturarak uygulamalarına ait kayıtları düzenleyebilir. Her koleksiyonda farklı veri alanları, doğrulama kuralları ve kayıt ilişkileri tanımlanabilir. Metin, sayı, tarih, ilişki ve dosya gibi farklı alan türleri desteklenir. Koleksiyonlara ait veriler otomatik oluşturulan API uç noktaları üzerinden erişilebilir hâle gelir. Böylece temel veritabanı işlemleri için her defasında ayrı sunucu kodu hazırlanması gerekmez.
PocketBase, veritabanının yönetilmesi için yerleşik bir web arayüzü sunar. Kullanıcılar tarayıcı üzerinden yönetim paneline bağlanarak koleksiyonları oluşturabilir, kayıtları inceleyebilir ve verileri değiştirebilir. Alan türleri ve erişim kuralları grafiksel arayüz üzerinden düzenlenebilir. Yönetim panelinde uygulama kullanıcıları ve çeşitli sunucu ayarları da kontrol edilebilir. Bu özellik, veritabanı yapısının hazırlanmasını ve günlük yönetim işlemlerinin gerçekleştirilmesini kolaylaştırır.
Uygulamanın önemli özelliklerinden biri bütünleşik kimlik doğrulama sistemidir. Kullanıcı hesapları oluşturulabilir ve farklı oturum açma yöntemleri yapılandırılabilir. E-posta ve parola tabanlı giriş işlemleri, OAuth2 sağlayıcıları ve diğer desteklenen kimlik doğrulama yöntemleri kullanılabilir. Kullanıcı kayıtlarının doğrulanması, parola sıfırlama işlemleri ve oturum yönetimi için hazır araçlar bulunmaktadır. Koleksiyonlara özel API erişim kuralları tanımlanarak hangi kullanıcıların belirli kayıtlara erişebileceği veya bunları değiştirebileceği belirlenebilir.
PocketBase, gerçek zamanlı veri güncellemelerini destekler. Sunucu tarafındaki kayıtlar oluşturulduğunda, değiştirildiğinde veya silindiğinde ilgili istemcilere bildirim gönderilebilir. Bu işlem için Server-Sent Events teknolojisinden yararlanılır. Kullanıcılar gerçek zamanlı sohbet uygulamaları, canlı veri panelleri veya ortak çalışma araçları geliştirmek için bu özellikten yararlanabilir. Ayrıca uygulama, dosya yükleme ve depolama işlevlerini de destekler. Görseller ve belgeler koleksiyon kayıtlarıyla ilişkilendirilebilir, desteklenen yapılandırmalarda S3 uyumlu depolama hizmetleri kullanılabilir.
Program, geliştiricilerin sunucu davranışlarını özelleştirmesine yönelik genişletme araçları içerir. Go programlama diliyle özel sunucu işlevleri hazırlanabilir veya JavaScript tabanlı kancalar kullanılarak belirli olaylara özel işlemler tanımlanabilir. Yeni API uç noktaları eklenebilir, veritabanı işlemlerine özel doğrulama kuralları uygulanabilir ve zamanlanmış görevler oluşturulabilir. Veritabanı şemasındaki değişiklikler migration dosyaları aracılığıyla yönetilebilir. Bu yapı, PocketBase'in basit prototiplerden daha kapsamlı uygulamalara kadar farklı geliştirme ihtiyaçlarına uyarlanmasını sağlar.
Go programlama diliyle geliştirilen PocketBase; Windows, macOS ve Linux işletim sistemlerinde çalışabilir. Windows için x64 ve ARM64 mimarilerine yönelik hazır çalıştırılabilir dosyalar içeren ZIP paketleri bulunmaktadır. Program komut satırından başlatılır ve yönetim arayüzüne web tarayıcısı üzerinden erişilir. MIT lisansı altında dağıtılan uygulama, henüz 1.0 sürümüne ulaşmadığından sürümler arasında geriye dönük uyumluluk değişiklikleri yaşanabilir. Bu nedenle kritik üretim ortamlarında kullanmadan önce sürüm notlarının ve geçiş gereksinimlerinin değerlendirilmesi önerilir.