Docs menu · floserver.json

floserver.json

Each project keeps its settings in a small floserver.json in its folder. Commit it, and the next person who opens the folder gets the same setup.

An example

{
  "php": "8.2",
  "node": "22",
  "database": "mariadb-11.4",
  "web": "nginx",
  "root": "public",
  "extensions": ["intl", "gd", "-exif"],
  "php_ini": { "memory_limit": "1024M" }
}

FloServer writes this file when you change a project’s versions in the window or with flo use. You can edit it by hand too; every key is optional, and {} means the defaults. flo check tells you if something in it is wrong.

The keys

KeyWhat it holds
phpA PHP version in quotes, such as "8.2" or "8.2.27". Or "newest" for the newest installed PHP, or false for no PHP.
nodeA Node.js version in quotes, such as "22".
pythonA Python version in quotes, such as "3.13".
databaseThe database and its version, such as "mariadb-11.4".
web"nginx" (the default) or "apache", for projects that need .htaccess.
rootThe folder inside the project that the web server serves, such as "public". The default is the project folder itself.
extensionsPHP extensions to turn on for this project, such as ["intl", "gd"]. A leading - turns one off: "-exif". opcache is always on.
php_iniphp.ini values for this project, such as {"memory_limit": "1024M"}.
commandOne line that starts the project's own server, run in the project folder, such as "npm run serve -- --port {port}". FloServer puts the port in place of {port}.

From the terminal

  • flo use php 8.5, flo use node 22, flo use python 3.13, flo use mariadb 11.4 set a version.
  • flo use php none, newest or auto: no PHP, always the newest, or PHP when the project has .php files.
  • flo php <project> ext … and flo php <project> ini … change the project’s own PHP settings.

See the flo command for the rest.