Veritabanları, önbellek, arama ve dosya depolama ortamınızın içinde, sitelerinizin yanında çalışır. rdev her servisi bir proje ona ilk ihtiyaç duyduğunda, seçtiğiniz sürümle kurar, çalışır durumda tutar ve bağlantı ayarlarını projenin .env dosyasına yazar.
Neler var
| Servis | Ne işe yarar | Sürümler | Varsayılan port |
|---|---|---|---|
| MySQL | İlişkisel veritabanı | 8.0, 8.4, 9.7 | 3306 |
| MariaDB | İlişkisel veritabanı | 10.11, 11.4, 11.8, 12.3 | 3306 |
| PostgreSQL | İlişkisel veritabanı; -full derlemeleri pgvector, PostGIS, pgRouting ve (16'dan itibaren) TimescaleDB ekler |
14, 15, 16, 17, 18 | 5432 |
| MongoDB | Doküman veritabanı | 7.0, 8.0, 9.0 | 27017 |
| Redis (Valkey) | Önbellek, kuyruklar ve oturumlar | 9.1 | 6379 |
| Meilisearch | Laravel Scout için tam metin arama | 1 | 7700 |
| Typesense | Laravel Scout için tam metin arama | 29, 30 | 8108 |
| RustFS | S3 uyumlu dosya depolama, bir sonraki portta web konsoluyla | 1 | 9000 |
| Mail yakalama | Giden e-postaları yakalar, hiçbiri gerçek gelen kutularına ulaşmaz | yerleşik | |
| Dump sunucusu | Kodunuzdan gelen debug dump'larını toplar | yerleşik |
Redis'i, Redis'in aynı protokolü konuşan açık kaynak çatalı Valkey sunar: Laravel'in redis sürücüleri ve phpredis değişmeden çalışır. Her servis yalnızca ortamınızın içinde, 127.0.0.1 üzerinde dinler; RustFS'inki gibi bir web konsoluna laptop bağlantınız üzerinden ulaşırsınız.
Bir projeye servis vermek
Sunucuda projeyi ve servisi belirtin:
rdev project service shop postgres
rdev servis çalışmıyorsa kurup başlatır, proje adıyla bir veritabanı (MySQL, MariaDB, PostgreSQL) ya da bucket (RustFS) açar ve bağlantı ayarlarını projenin .env dosyasına yazar. .env dosyası olmayan projelerde ayarlar ekrana yazılır. MongoDB veritabanını kodunuz ona ilk yazdığında oluşturur; PHP projelerinde rdev, sitenin kullandığı PHP sürümüne PHP mongodb eklentisini de kurar (bkz. PHP eklentileri).
Bir Laravel projesine yeni bir MySQL, MariaDB ya da PostgreSQL veritabanı verildiğinde rdev php artisan migrate --force komutunu da çalıştırır; böylece yeni bir uygulamanın oturum, önbellek ve kuyruk tabloları hazır olur ve site çalışmaya devam eder. Bunu yalnızca o an oluşturduğu, henüz boş olan veritabanında yapar; var olan bir veritabanına dokunmaz. Migration başarısız olursa servis yerinde kalır ve mesaj nedenini söyler; php artisan migrate'i kendiniz çalıştırabilirsiniz.
Panelde kenar çubuğundaki Sunucular'dan sunucuyu açın ve Servisler kartında, en üstte ya da bir projenin yanında Servis ekle'yi seçin (panodaki düğme de aynı işi yapar); servisi ve birden çok sürümü olanlarda Sürüm'ü belirleyin. Projenin satırı sunucunun hangi aşamada olduğunu gösterir: servisi kurup başlatma, veritabanını oluşturma, .env'i yazma, migration'ları çalıştırma. Hazır olduğunda bir bildirim çıkar. Bir servisin ilk kurulumu birkaç dakika sürebilir. AI ajanınız da MCP erişimiyle aynısını yapabilir; ondan "shop için bir PostgreSQL veritabanı" isteyin.
Yeni bir projeye servisleri aynı komutla verebilirsiniz:
rdev project add shop --git [email protected]:siz/shop.git --service mysql --service redis
.env dosyasına neler yazılır
| Servis | Ayarlar |
|---|---|
| MySQL, MariaDB, PostgreSQL | DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME (parola yok: ona yalnızca ortamınız ulaşabilir) |
| MongoDB | MONGODB_URI, MONGODB_DATABASE, mongodb/laravel-mongodb paketi için |
| Redis | REDIS_HOST, REDIS_PORT |
| Meilisearch | SCOUT_DRIVER=meilisearch, MEILISEARCH_HOST |
| Typesense | SCOUT_DRIVER=typesense, TYPESENSE_HOST, TYPESENSE_PORT, TYPESENSE_PROTOCOL, TYPESENSE_API_KEY |
| RustFS | AWS_ACCESS_KEY_ID=rdev, AWS_SECRET_ACCESS_KEY=rdev-secret, AWS_DEFAULT_REGION, AWS_BUCKET, AWS_ENDPOINT, AWS_URL, AWS_USE_PATH_STYLE_ENDPOINT=true |
.env dosyasında bu anahtarların mevcut değerleri değiştirilir; diğer satırlar olduğu gibi kalır.
Sürüm seçmek
Servise @ ve bir sürüm ya da sürüm çizgisi ekleyin:
rdev project service shop [email protected]
Bu, en yeni MySQL 8.0'ı kurar ve ona geçer. Sürüm belirtmezseniz zaten kurulu olan ya da en yeni sürüm kullanılır. Kurabileceğiniz bütün sürümleri görmek için:
rdev service available
Her servisin aynı anda tek sürümü çalışır:
- MySQL ve MariaDB her sürüm çizgisi (8.0, 8.4, 9.7…) için ayrı veri tutar. Daha yeni bir çizgiye geçiş eski çizginin verisinin bir kopyasıyla başlar, yeni sunucu bu kopyayı yükseltir; eski çizginin verisi olduğu gibi kalır, yani geri dönebilirsiniz. Daha eski bir çizgiye geçiş boş veriyle başlar, çünkü eski sunucu yeni veriyi okuyamaz.
- PostgreSQL ve MongoDB her ana sürüm için ayrı veri tutar (PostgreSQL 14, 15…; MongoDB 7, 8, 9). Yeni bir ana sürüm boş başlar; verinizi
pg_dumpya damongodumpile taşıyın. - Meilisearch ve Typesense sürüm değişikliğinden sonra dizinlerini uygulamanızdan yeniden oluşturur (
php artisan scout:import).
MySQL ve MariaDB ikisi de 3306 portunu kullanır; aynı anda birini çalıştırın ya da birini başka bir porta taşıyın: rdev service set-port mariadb 3307. Sürüm seçmek için rdev 0.2.0-beta.18 ya da sonrası gerekir.
PostgreSQL eklentileri
PostgreSQL'in -full derlemeleri pgvector (yapay zekâ özellikleri için vektör arama), PostGIS ve pgRouting (harita ve rota) ve 16'dan itibaren TimescaleDB (zaman serisi) içerir. Birini, rdev service available'ın listelediği tam sürümüyle seçin:
rdev project service shop [email protected]
Ardından eklentiyi veritabanınızda açın, örneğin bir migration'da:
CREATE EXTENSION IF NOT EXISTS vector;
postgis, pgrouting ve timescaledb için de aynısı geçerli. Derleme TimescaleDB içeriyorsa rdev onu kendiliğinden önceden yükler.
Servisleri yönetmek
Sunucu sayfanızdaki Servisler kartı kurulu her servisi sürümü, çalışıp çalışmadığı, portu ve panelden verdiğiniz projelerle listeler. Bir satırdaki ⋯ menüsü servisi başlatır, durdurur ya da yeniden başlatır, aynı sürümü yeniden kurar (veriler korunur) ya da kaldırır; kaldırırken verileri sonraki kurulum için saklayabilir ya da onları da silebilirsiniz. Kurulumu başarısız olan bir satır nedenini aynı menüde gösterir; tekrar denenebilir ya da listeden kaldırılabilir. Sunucu her işlemi birkaç saniye içinde yapar ve tablo güncellenir; bunun için sunucuda rdev 0.2.0-beta.24 ya da sonrası gerekir.
Sunucunun kendisinde:
| Komut | Ne yapar |
|---|---|
rdev service available |
Kurabileceğiniz sürümleri listeler |
rdev service start mysql / stop / restart |
Bir servisi başlatır, durdurur ya da yeniden başlatır |
rdev service logs mysql |
Günlüğünün son satırlarını gösterir |
rdev service set-port mysql 3307 |
Başka bir porta taşır (sonraki yeniden başlatmada) |
rdev service set mysql max_connections 300 |
Bir yapılandırma seçeneği ayarlar (sonraki yeniden başlatmada; MySQL, MariaDB, PostgreSQL ve Redis) |
rdev service change-version mysql 9.7.4 |
Başka bir sürüme geçer |
rdev service uninstall mysql 9.7.4 |
Bir sürümü kaldırır; verilerini de silmek için --purge ekleyin |
Servisler ortamınızla birlikte başlar. Bir projeyi kaldırmak veritabanını hiçbir zaman silmez; artık gerekmediğinde kendiniz silin.
Takımlar ve yedekler
Team paketinde her üye ortamı sahibin servislerine, kendi özel servislerinin yanında rdev-team adıyla ulaşır (Takımlar).
Pro ve Team'deki gece veri yedeği bütün MySQL, MariaDB, PostgreSQL ve MongoDB veritabanlarını ve ~/Code klasörünüzü içerir, panelden geri yükler (Yedekler). MySQL ve MariaDB'den hangisi 3306 portunda çalışıyorsa o yedeklenir; MongoDB bütün veritabanlarıyla tek bir arşiv olarak. Arama dizinleri ve RustFS bucket'ları uygulamanızdan ve kendi kopyalarınızdan yeniden oluşturulur.
Listede olmayan bir servis
Başka bir şey çalıştırmak için bizi beklemeniz gerekmez:
-
Node.js, Python, Ruby ya da Go ile yazılmış bir servis proje olarak çalışır. rdev çalışma ortamını kurar, komutu başlatır, ona bir port verir ve durursa yeniden başlatır:
rdev project add realtime --lang node --command "npx soketi start --port={port}" -
Başka bir yazılım ev klasörünüze gider, örneğin indirilmiş bir binary
~/.local/biniçine, ve aynı şekilde bir projenin komutuyla başlar. Ev klasörünüz, ortamınrdev host updatesırasında korunan kısmıdır; başka bir yeresudo aptile kurulan her şey bir sonraki ortam güncellemesinde kaybolur. -
Yukarıdaki servisler gibi desteklenmesini (sürümler, panel,
.envayarları ve yedekler) istiyorsanız servisi ve ne için kullandığınızı yazarak bize ulaşın. Birden çok müşterinin ihtiyaç duyduğu servisleri ekliyoruz ve size durumunu bildiriyoruz.
İlk iki yolu AI ajanınız sizin için kurabilir; ondan "shop projesi için Elasticsearch çalıştır" isteyin.