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.
Panelde bir projenin ya da sunucunun yanındaki Servis ekle'yi seçin, servisi ve birden çok sürümü olanlarda Sürüm'ü belirleyin. 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
| 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 |
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.