Using rdev

Services

Databases, caches, search and file storage run inside your environment, next to your sites. rdev installs each service the first time a project needs it, in the version you choose, keeps it running and writes the connection settings into the project's .env.

What is available

Service What it is for Versions Default port
MySQL Relational database 8.0, 8.4, 9.7 3306
MariaDB Relational database 10.11, 11.4, 11.8, 12.3 3306
PostgreSQL Relational database; the -full builds add pgvector, PostGIS, pgRouting and (from 16) TimescaleDB 14, 15, 16, 17, 18 5432
MongoDB Document database 7.0, 8.0, 9.0 27017
Redis (Valkey) Cache, queues and sessions 9.1 6379
Meilisearch Full-text search, for Laravel Scout 1 7700
Typesense Full-text search, for Laravel Scout 29, 30 8108
RustFS S3-compatible file storage, with a web console on the next port 1 9000
Mail capture Catches outgoing email so nothing reaches real inboxes built in
Dump server Collects debug dumps from your code built in

Redis is served by Valkey, the open-source fork of Redis that speaks the same protocol: Laravel's redis drivers and phpredis work unchanged. Every service listens only inside your environment, on 127.0.0.1; reach a web console such as RustFS's through your laptop connection.

Give a project a service

On the server, name the project and the service:

rdev project service shop postgres

rdev installs and starts the service if it is not running yet, creates a database (MySQL, MariaDB, PostgreSQL) or a bucket (RustFS) named after the project, and writes the connection settings into the project's .env. A project without a .env gets the settings printed instead. MongoDB creates the database the first time your code writes to it.

In the panel, choose Add service on a project or next to a server, pick the service and, for services with several versions, the Version. Your AI agent can do the same through its MCP access; ask it for "a PostgreSQL database for shop".

A new project can get its services in the same command:

rdev project add shop --git [email protected]:you/shop.git --service mysql --service redis

What goes into .env

Service Settings
MySQL, MariaDB, PostgreSQL DB_CONNECTION, DB_HOST, DB_PORT, DB_DATABASE, DB_USERNAME (no password: only your environment can reach it)
MongoDB MONGODB_URI, MONGODB_DATABASE, for the mongodb/laravel-mongodb package
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

Values already in .env for these keys are replaced; other lines stay as they are.

Choosing a version

Add @ and a version or release line to the service:

rdev project service shop [email protected]

That installs the newest MySQL 8.0 and switches to it. Without a version you get the one already installed, or the newest. To see every version you can install:

rdev service available

One version of each service runs at a time:

  • MySQL and MariaDB keep separate data for each release line (8.0, 8.4, 9.7…). Moving to a newer line starts from a copy of the older line's data, which the newer server upgrades; the older line's data stays as it was, so you can move back. Moving to an older line starts with empty data, because an older server cannot read newer data.
  • PostgreSQL and MongoDB keep separate data for each major version (PostgreSQL 14, 15…; MongoDB 7, 8, 9). A new major starts empty; move your data across with pg_dump or mongodump.
  • Meilisearch and Typesense rebuild their indexes from your app (php artisan scout:import) after a version change.

MySQL and MariaDB both use port 3306, so run one of them at a time, or move one to another port with rdev service set-port mariadb 3307. Choosing versions needs rdev 0.2.0-beta.18 or later.

PostgreSQL extensions

The -full builds of PostgreSQL include pgvector (vector search for AI features), PostGIS and pgRouting (maps and routes) and, from version 16, TimescaleDB (time series). Pick one by its full version, as rdev service available lists it:

rdev project service shop [email protected]

Then turn the extension on in your database, for example in a migration:

CREATE EXTENSION IF NOT EXISTS vector;

The same goes for postgis, pgrouting and timescaledb. rdev preloads TimescaleDB automatically when the build includes it.

Managing services

Command What it does
rdev service available Lists the versions you can install
rdev service start mysql / stop / restart Starts, stops or restarts a service
rdev service logs mysql Shows the last lines of its log
rdev service set-port mysql 3307 Moves it to another port (on the next restart)
rdev service set mysql max_connections 300 Sets a configuration option (on the next restart; MySQL, MariaDB, PostgreSQL and Redis)
rdev service change-version mysql 9.7.4 Switches to another version

Services start with your environment. Removing a project never removes its database; drop it yourself when you no longer need it.

Teams and backups

On a Team plan, every member environment reaches the owner's services at the name rdev-team, next to its own private ones (Teams).

The nightly data backup on Pro and Team includes every MySQL, MariaDB, PostgreSQL and MongoDB database and your ~/Code folder, and restores them from the panel (Backups). MySQL and MariaDB are backed up from whichever of them runs on port 3306; MongoDB as one archive of all its databases. Search indexes and RustFS buckets are rebuilt from your app and your own copies.

A service that is not on the list

You do not need to wait for us to run something else:

  • A service written in Node.js, Python, Ruby or Go runs as a project. rdev installs its runtime, starts the command, gives it a port and restarts it if it stops:

    rdev project add realtime --lang node --command "npx soketi start --port={port}"
    
  • Other software goes into your home folder, for example a downloaded binary in ~/.local/bin, and starts from a project's command the same way. Your home folder is the part of the environment that rdev host update keeps; anything installed elsewhere with sudo apt is gone after the next environment update.

  • Want it supported like the services above, with versions, the panel, .env settings and backups? Write to us with the service and what you use it for. We add services that several customers need, and tell you where it stands.

Your AI agent can set up the first two for you; ask it to "run Elasticsearch for the shop project".