LENKRAD - The modern PHP core


Manual deployment

We are working on various deployment helpers. For now, here is a checklist for manual deployment.

Checklist initial installation

  • Apache or Nginx installed and configured?
  • PHP and required modules installed?
  • Database (MySQL) installed & configured?
  • Codebase uploaded?
  • Domain & SSL set up?

Checklist continuous deployment

  • Packages updated?
  • Models migrated?

Example: Initial installation on AWS EC2

If you are using AWS EC2, this could be your first deployment procedure:

1. Create ec2 instance running Ubuntu (20.04 or higher)

Store the pem-key & set the security group to accept traffic from anywhere on port 443 and 80.

2. Log into the instance via ssh

There are multiple ways of doing so depending on your OS. We recommend using WSL on Windows to unify the instructions for the following procedure.

In your terminal, go to the folder ".ssh"

            cd ~/.ssh
            mkdir keys
            cp /path/to/downloaded/pem-key.pem keys/pem-key.pem
            chmod 400 keys/pem-key.pem

Then, open the file config in vim/nano or similar and set up the following:

            Host    my-lenkrad-server
            HostName    [public-aws-ip]
            User    ubuntu
            IdentityFile ~/.ssh/keys/pem-key.pem

You should now be able to ssh into the instance with the command "ssh my-lenkrad-server".

3. Install apache, php, certbot, and mysql

Once logged into your instance, run the following commands:

Apache & mysql

            sudo apt update
            sudo apt install apache2 mysql-server
            sudo mysql_secure_installation
Consider setting up a dedicated user with restricted permissions

PHP & modules

            sudo apt install software-properties-common
            sudo add-apt-repository ppa:ondrej/php
            sudo apt update
            sudo apt install php8.2 libapache2-mod-php8.2
            sudo apt install php8.2-{mysql,zip,xml,curl}
            sudo service apache2 restart

Upload codebase

Upload your codebase to a folder in /var/www.

Domain setup

            cd /etc/apache2/sites-available
            sudo cp 000-default.conf my-domain.com.conf
            sudo nano my-domain.com.conf

Assuming you have a domain pointing to the public IP of your server, you can make the following changes:


Save the file, then

            sudo a2ensite my-domain.com
            sudo service apache2 restart

SSL for free, baby

            sudo snap install --classic certbot
            sudo ln -s /snap/bin/certbot /usr/bin/certbot
            sudo certbot --apache

Setup .env & migrate

            cd /var/www/YOUR_UPLOAD_FOLDER
            nano .env

Add needed environment variables and save. You will likely need at least:


, but the actual requirements depend on your application.

Lastly, migrate your database

            php cli migrate:models mysql
Running in a subdirectory of a domain on apache? then don't forget to change the .htaccess file in /public

Before you move on

Many references on this page assume default settings. Your project might differ in behavior, paths etc.