# Requirements

Satifest has a few requirements you should be aware of before installing:

  • PHP 7.3+
  • Composer v1
  • Laravel Framework 8.0+

# Recommendations

Satifest is best used with the following recommendations:

  • Use proper queue drivers instead of the default sync.
  • Use cloud based storage disk to store the artifacts.

# Browser Support

Satifest supports reasonably recent versions of the following browsers:

  • Google Chrome
  • Apple Safari
  • Microsoft Edge
  • Mozilla Firefox

# Installing Satifest

Once you have purchased a Satifest license, you may download a Satifest release from the "releases" section of the Satifest website. After downloading a Zip file containing the Satifest source code, you will need to install it as a Composer "path" repository within your Laravel application's composer.json file.

First, unzip the contents of the Satifest release into a satifest directory within your application's root directory. Once you have unzipped and placed the Satifest source code within the appropriate directory, you are ready to update your composer.json file. You should add the following configuration to the file:

"repositories": [
    {
        "type": "path",
        "url": "./satifest"
    }
],

Hidden Files

When unzipping Satifest into your application's satifest directory, make sure all of Satifest's "hidden" files (such as its .gitignore file) are included. tip

Next, add satifest/satifest to the require section of your composer.json file:

"require": {
    "php": "^7.2.5",
    "fideloper/proxy": "^4.2",
    "laravel/framework": "^7.0",
    "satifest/satifest": "*"
},

After your composer.json file has been updated, run the composer update command in your console terminal:

composer update

Package Stability

If you are not able to install Satifest into your application because of your minimum-stability setting, consider setting your minimum-stability option to dev and your prefer-stable option to true. This will allow you to install Satifest while still preferring stable package releases for your application.

# Installing Satifest via Composer

Instead of downloading Zip files containing the Satifest source code, you may also install Satifest as a typical Satifest package via our private Satis repository. To get started, add the Satifest repository to your application's composer.json file:

"repositories": [
    {
        "type": "composer",
        "url": "https://packages.satifest.com"
    }
],

Next, you may add satifest/satifest to your list of required packages in your composer.json file:

"require": {
    "php": "^7.2.5",
    "fideloper/proxy": "^4.2",
    "laravel/framework": "^7.0",
    "satifest/satifest": "dev-master"
},

After your composer.json file has been updated, run the composer update command in your console terminal:

composer update

When running composer update, you will be prompted to provide your login credentials for the Satifest website. These credentials will authenticate your Composer session as having permission to download the Satifest source code. To avoid manually typing these credentials, you may create a Composer auth.json file while optionally using your API token in place of your password.

# Setup Satifest

Finally, run the satifest:install and migrate Artisan commands. The satifest:install command will install Satifest's service provider, common views and public assets within your application:

php artisan satifest:install

php artisan migrate

After running this command, verify that the App\Providers\SatifestServiceProvider was added to the providers array in your app configuration file. If it wasn't, you should add it manually. Of course, if your application does not use the App namespace, you should update the provider class name as needed.

# Authorizing Satifest

Within your app/Providers/SatifestServiceProvider.php file, there is a gate method. This authorization gate controls access to Satifest in non-local environments. By default, any user can access the Satifest dashboard when the current application environment is local. You are free to modify this gate as needed to restrict access to your Satifest installation:

/**
 * Register the Satifest gate.
 *
 * This gate determines who can access Satifest in non-local environments.
 *
 * @return void
 */
protected function gate()
{
    Gate::define('manageSatifest', function ($user) {
        return in_array($user->email, [
            'crynobone@gmail.com',
        ]);
    });

    Gate::define('viewSatifest', function ($user) {
        return true;
    });
}

# Updating Satifest

To update your Satifest installation, you may simply download a release Zip file from the Satifest website.

Composer Installations

Of course, if you installed Satifest via Composer, you may update Satifest using composer update, just like any other Composer package.

After downloading the Zip file, replace the current contents of your application's satifest directory with the contents of the Zip file. After updating the directory's contents, you may run the composer update command:

composer update

# Updating Satifest's Assets

After updating to a new Satifest release, you should be sure to update Satifest's JavaScript and CSS assets using satifest:publish and clear any cached views with view:clear. This will ensure the newly-updated Satifest version is using the latest versions.

php artisan satifest:publish
php artisan view:clear

The satifest:publish command will re-publish Satifest's public assets, configuration, and views files. This command will not overwrite any existing configuration, views, or language files. If you would like the command to overwrite existing files, you may use the --force flag when executing the command:

php artisan satifest:publish --force

# Keeping Satifest's Assets Up-to-date

To ensure Satifest's assets are updated when a new version is downloaded, you may add a Composer hook inside your project's composer.json file to automatically publish Satifest's latest assets:

"scripts": {
    "post-update-cmd": [
        "@php artisan satifest:publish"
    ]
}

# Code Distribution

Satifest's license does not allow the public distribution of its source code. So, you may not build an application using Satifest and distribute that application public via open source repository hosting platforms or any other code distribution platform.

If you would like to develop a third party package that augments Satifest's functionality, you are free to do so by requiring satifest/foundation (available via Packagist & GitHub) which should be enough for most implementation. You may not distribute the satifest/satifest source code along with your package.