Installation

Requirements

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

  • PHP >= 7.2.5
  • Redis >= 3.0
  • Composer
  • Laravel Mix
  • Node.js & NPM
  • Laravel Framework 7.*
  • exif, zip, bcmath, curl, phpiredis, ctype, fileinfo, json, mbstring, openssl, pdo, tokenizer, xml, PHP Extensions

Browser Support

GoDesk supports reasonably recent versions of the following browsers:

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

Installing

CMS GoDesk depends on Laravel and utilizes Composer to manage its dependencies. So, before using GoDesk, make sure you have Composer installed on your machine.

Installing Laravel

You can visit the official Laravel website or follow our instructions.

First, download Laravel installer using Composer:

                                composer global require laravel/installer
                            

Install Laravel by issuing the Composer create-project command in your terminal:

                                composer create-project --prefer-dist laravel/laravel:^7.0 blog
                            

You can specify any path instead of a blog, and then move your application to the root folder.

Public Directory

After installing Laravel, you should configure your web server's document / web root to be the public directory. The index.php in this directory serves as the front controller for all HTTP requests entering your application.

Configuration Files

All of the configuration files for the Laravel framework are stored in the config directory. Each option is documented, so feel free to look through the files and get familiar with the options available to you.

Database Config

If you use MySQL in any version (MySQL, MariaDB, etc.), make sure you know your encodings. Change your charset and collation in config/database.php to correct.

Directory Permissions

After installing Laravel, you may need to configure some permissions. Directories within the storage and the bootstrap/cache directories should be writable by your web server or Laravel will not run. If you are using the Homestead virtual machine, these permissions should already be set.

Application Key

The next thing you should do after installing Laravel is set your application key to a random string. If you installed Laravel via Composer or the Laravel installer, this key has already been set for you by the php artisan key:generate command.

Typically, this string should be 32 characters long. The key can be set in the .env environment file. If you have not renamed the .env.example file to .env, you should do that now. If the application key is not set, your user sessions and other encrypted data will not be secure!

Additional Configuration

Laravel needs almost no other configuration out of the box. You are free to get started developing! However, you may wish to review the config/app.php file and its documentation. It contains several options such as timezone and locale that you may wish to change according to your application.

You may also want to configure a few additional components of Laravel, such as:

Directory Configuration

Laravel should always be served out of the root of the "web directory" configured for your web server. You should not attempt to serve a Laravel application out of a subdirectory of the "web directory". Attempting to do so could expose sensitive files present within your application.

Pretty URLs in Apache

Laravel includes a public/.htaccess file that is used to provide URLs without the index.php front controller in the path. Before serving Laravel with Apache, be sure to enable the mod_rewrite module so the .htaccess file will be honored by the server.

If the .htaccess file that ships with Laravel does not work with your Apache installation, try this alternative:

                                Options +FollowSymLinks -Indexes
RewriteEngine On

RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
                            

Pretty URLs in Nginx

If you are using Nginx, the following directive in your site configuration will direct all requests to the index.php front controller:

                                location / {
    try_files $uri $uri/ /index.php?$query_string;
}
                            

Installing CMS GoDesk

Forbidden

It’s not necessary to change anything other than the specified one, this may affect the system.

Required

Initially, you need to be registered on spacecode.dev and need to had the License to download files with CMS GoDesk.

Database Config

Verify that your database configurations in config/database.php are correct.

Database Environments

Check your database environments in .env: DB_CONNECTION DB_HOST DB_PORT DB_DATABASE DB_USERNAME DB_PASSWORD

Redis Required

Check your environments in .env: CACHE_DRIVER QUEUE_CONNECTION SESSION_DRIVER. They need to be redis

Installing Process

Download one of the GoDesk Release and unpack it to the root path in godesk folder.

Add laravel/nova and spacecode/godesk to the require section of your composer.json file:

                                "require": {
    ...
    "laravel/nova": "*",
    "spacecode/godesk": "*"
},
                            

Add repositories as a separate section of your composer.json file:

                                "repositories": [
    {
        "type": "artifact",
        "url": "./godesk/resources/dependencies/"
    },
    {
        "type": "path",
        "url": "./godesk"
    }
]
                            

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

Finally, run the godesk:install Artisan commands. The godesk:install command will install GoDesk's service provider and public assets within your application:

                                php artisan godesk:install
                            

Keeping GoDesk's Assets Up-to-date

To ensure GoDesk'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 GoDesk's latest assets:

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