Take care: Work In Progress here. This article might be incomplete or contain errors. Know something we don't? Help us! Contribute here on GitHub

Install Kirby on fortrabbit

Kirby is a popular, file based CMS originated from Germany (YEAH!). Learn here how to install and tune Kirby on fortrabbit.

Get ready

We assume you've already created an App. You have chosen "Any other PHP application" in the software stack chooser. Kirby does not need any special configuration, so it just works out of the box with the fortrabbit default settings. If not: You can do so in the fortrabbit Dashboard.

Have a local installation

We assume that you run a local development environment where you do the main coding, before deploying or uploading changes to the fortrabbit App. At least have the Kirby "starterkit" downloaded, so that you have something to start with.

Choose your deployment work-flow

There are two main ways to deploy code here on fortrabbit: Git and SFTP. The general rule of thumb is, that content driven legacy applications, like WordPress, are better uploaded in classical manner with SFTP. Modern PHP web frameworks that are based on Composer are mostly deployed with Git.

Now, Kirby is a bit in between. Kirby is, like Grav, file based. So there is no database, the actual contents are text files written on the file system. Ask yourself: Where will the contents of your Kirby website will get generated?

  1. Always locally before deployment > Use Git
  2. Online via the "panel" (Kirby Dashboard) > Probably use SFTP

When to deploy Kirby with SFTP

  • You or your client/editor is editing files directly on the live App in the "panel"
  • You are used to work with SFTP

When to deploy Kirby with Git

  • You are not using the "panel" (on remote)
  • You are using Kirby alone, or your co-editors are also using Git

Our architecture graphic here shows you that the files, you can access via SFTP or SSH (Universal App) are not the ones, that are in Git. The Git repo is a separated thing. So, deploying with Git is a one way street that only goes up, not down. In other words: You can NOT git pull any changes you have made on the Apps file system. In an ideal world, code and content are maybe separated. With a file based CMS this is all together.

Deploy with SFTP

There is not much to say on that topic. Just make sure to upload all contents of your local Kirby folder, including the hidden .htaccess file into the htdocs folder within your App.

Deploy with Git

Here is a basic rundown to initialize Git, add fortrabbit as a remote and push changes to your App:

# 1. Initialize Git (when not already)
$ git init .

# 2. Add your Apps Git remote to your local repo
$ git remote add fortrabbit {{ssh-user}}@deploy.{{region}}.frbit.com:{{app-name}}.git

# 4. Add changes to Git
$ git add -A

# 5. Commit changes
$ git commit -m 'My first commit'

# 6. Initial push and upstream
$ git push -u fortrabbit master

# From there on only
$ git push

An advanced way to use Git

Advanced users might separate the content parts from the code parts and use Git to deploy the code parts and SSH/SFTP or maybe best rsync to manage the actual contents.

Customization

So far we have covered the vanilla parts. Let's get deeper:

Sending mails

fortrabbit does not support sendmail, so sending mails out of the box might not work. Kirby provides config for transactional mail providers, or you can use a plugin to send e-mail over your own SMTP account.

Setting the panel option

When initially setting up the panel, you might gonna see an error about the server name. You can add this configuration line to the file: site/config/config.php:

c::set('panel.install', true);

Get a license

Remember that Kirby is not a free software. Get a license, support the authors!

Disclaimer

Kirby is a mighty system with lot's of options. I might have missed some good stuff. Don't hesitate to contribute here. This install guide is public on GitHub

Further readings

Need individual help?

Get support › Learn about Company plans ›

Looking for an old article?

See the full list of articles ›

Found an error?

Contribute on GitHub ›