# Grav install guide

Source: https://docs.fortrabbit.com/guides/grav-cms/install
Updated: 2026-11-11
Reviewed: 2026-10-24

> Grav is a flat-file CMS built on Twig and Markdown. Install it with rsync, or keep the code in git and sync the content separately.


## Versions and PHP

Grav 2.0 is the current release and needs PHP 8.3 or newer, so set the [PHP version](/platform/settings/php) accordingly. Grav 1.7 still receives updates and runs up to PHP 8.3. The software chooser offers both majors when creating an app.

## Choose a deployment workflow

Grav writes to its own files while it runs. Pages, user accounts, uploads, and generated caches all change on the environment, so anything the CMS writes has to stay out of the deploy package:

- rsync, recommended, for the whole site: see [install with rsync](#install-with-rsync)
- Git for the code and rsync for the content, for projects under version control: see [Grav with Git and rsync](/guides/grav-cms/git-and-rsync)
- [SFTP](/platform/code-access/sftp), for a one-off upload
- Git only, when nobody edits through the admin panel on the environment

## Get ready

Have a [local PHP development environment](/integrations/local-development/intro) running, with PHP 8.3 or newer and Composer for Grav 2.

## Create an app at fortrabbit

Create a new app in the fortrabbit dashboard and pick Grav as software. The [software template](/platform/concepts/software-templates) sets the root path, the deployment settings and the ENV vars, see [Grav configuration](/guides/grav-cms/configuration).

[Create a new app](/new/app)

## Install with rsync

1. Download the "Grav Core + Admin plugin" package from the [Grav website](https://getgrav.org/downloads) and unpack it locally.
2. Sync the **contents** of the local `grav-admin` folder (not the folder itself) to the environment. An empty target lands in the web root:



```shell
# from inside the unpacked grav-admin folder
$ rsync -av ./ {{app-env-id}}@ssh.{{region}}.frbit.app:
```

3. Create the first admin account over [SSH](/platform/code-access/ssh):



```shell
$ php bin/plugin login new-user -u USERNAME -e EMAIL -P b
```

The `-P b` flag grants access to both the site and the admin panel. Without a command line account, the guided web installation asks for the same details on first visit.

}.{{region}}.frbit.app" property="none"}

See the [rsync article](/dev/how-to/rsync) for syncing changes up and down later on.

## Upgrade from Grav 1.x to 2.x

`bin/gpm selfupgrade` does not cross the major boundary. A 1.7 installation keeps receiving 1.7 releases and reports that 2.0 is available without installing it. Follow the [Grav 2 migration guide](https://getgrav.org/migrate-to-2), and update all plugins and themes to their latest compatible versions before the core.

Take a [backup](/platform/backups) first, and raise the [PHP version](/platform/settings/php) to 8.3 or newer if the environment still runs an older one.
