Deployment

A question of choice

There are several ways you can deploy your application.

Note!

In all scenarios you will want to make sure that the component "migrate" is either behind authentication or not being deployed at all (recommended).

Production checklist

Since we cannot go into all possible scenarios, let's have a look at what to consider when deploying manually. You can derive conclusions for possible processes, pipelines or containers from it.

neoan3 cli on production

Make sure composer and the neoan3-cli is installed on your production server (or declared in your container). It is likely that you will want to run migrations directly on the server.

production environment

When running apache, make sure the rewrite module is active and that htaccess files are respected. Inspect your projects .htaccess and make sure the rewrite base is set in accordance with your server's web root (usually "/" when not running in a subfolder of your domain). Also have a look at the rules regarding https over http (we recommend certbot/letsencrypt).
When using Nginx, either direct your location to _neoan/server.php or index.php.

database

We will assume that you are using a relational SQL database as this is the default case for neoan3 applications. Ensure you have a database installed and a user that has non-root privileges.

upload

Whether you retrieve your production code via image, SFTP upload or GIT is up to you. Should you upload your files manually (e.g via FTP), avoid uploading the vendor and node_modules folder (if exists), but rather run composer and npm from the production server. Should you require environment variables, consider differences (when using neoan3 credentials potential mistakes can be avoided).

run migration

Run neoan3 migrate models up to create or update your production database structure. If you need any additional environment variables governed by the cli-tool, run neoan3 credentials