Installation

Installing Appskull is pretty easy and can be completed within a few minutes.

Server requirements

  • Apache or Nginx web application server.
  • PHP version: >=8.2 (Minimum 8.2 or higher).
      Required PHP extensions:
    • intl PHP extension.
    • mbstring PHP extension.
    • openssl PHP extension.
    • pgsql PHP extension.
    • curl PHP extension (Not required for this software, but improves composer performance.).
    • zip PHP extension (Not required for this software, but necessary for composer to work properly.).
    • xml PHP extension (Not required for this software, but necessary for composer to work properly.).
    • dom PHP extension (Not required for this software, but necessary for composer to work properly.).
  • PostgreSQL 14.x or higher (Database).
  • SMTP mail application server.

    PHP can send emails using its built-in email-sending methods. However, if you need more advanced email-sending features, you can use a dedicated local SMTP mail server application like Postfix, Sendmail, or Exim, or third-party email-sending services like SendGrid, Mailgun, and others.

    To get more information, follow the Email configurations section in the Optional configurations chapter.

  • Composer (A dependency manager for PHP).

If in a development environment

You'll need a package manager for JavaScript. We recommend npm, but you can use whichever package manager you prefer.

Also you'll need gulp-cli globally installed in-order to run the gulp command to re-generate the assets files like CSS, JS, etc.

Install Appskull

Install Appskull in few steps:

01. Setup database

  1. Create a new PostgreSQL database and name it appskull (or any name of your choice). However, if you choose a different name, make sure to update the database name in the relevant configurations within the [app_root]/.env file. Creating a database is simple and can be done effortlessly using a database management tool like pgAdmin4.
  2. Restore the newly created empty database using one of the two SQL files provided in the database directory. Use the demo.sql file if you want to test the software with dummy data. If you want to use the software in a production environment with a clean start, use the production.sql file.

02. Place Appskull files

Place all the files and directories of Appskull (located in the upload directory) to your server/development environment. Ensure to configure/point the host's public root directory to the public directory in the Appskull software.

03. Required configurations

  1. Environment configuration

    You can set the ENVIRONMENT in the [app_root]/.env file. By default, it is set to development. If you want to run the code in the production environment, you should change the ENVIRONMENT to production in the [app_root]/.env file. This is very important for the security.

                                    
                                        #--------------------------------------------------------------------
                                        # ENVIRONMENT
                                        #--------------------------------------------------------------------
    
                                        CI_ENVIRONMENT = development
                                    
                                
  2. Base URL configuration

    The base URL of the app can be configured in the [app_root]/.env file. It is URL to the app's public directory root with a trailing slash. For example, http://example.com/

    Remote host examples:

    •                                         
                                                  #--------------------------------------------------------------------
                                                  # APP
                                                  #--------------------------------------------------------------------
      
                                                  app.baseURL = 'http://example.com/'
                                              
                                          
    •                                         
                                                  #--------------------------------------------------------------------
                                                  # APP
                                                  #--------------------------------------------------------------------
      
                                                  app.baseURL = 'http://www.example.com/
                                              
                                          
    •                                         
                                                  #--------------------------------------------------------------------
                                                  # APP
                                                  #--------------------------------------------------------------------
      
                                                  app.baseURL = 'http://example.com/appskull/'
                                              
                                          

    Remote host examples with HTTPS:

    •                                         
                                                  #--------------------------------------------------------------------
                                                  # APP
                                                  #--------------------------------------------------------------------
      
                                                  app.baseURL = 'https://example.com/'
                                              
                                          
  3. Database configurations

    The database configurations can be configured in the [app_root]/.env file.

                                    
                                        #--------------------------------------------------------------------
                                        # DATABASE
                                        #--------------------------------------------------------------------
    
                                        database.default.hostname = localhost
                                        database.default.database = appskull
                                        database.default.username = postgres
                                        database.default.password = admin
                                        database.default.DBDriver = Postgre
                                        database.default.DBPrefix = appskull__
                                        database.default.port = 5432
                                    
                                
  4. Optional configurations

    To remove the 'index.php' segment from all URLs, set the timezone, and configure other optional stuff, refer to the Optional configurations chapter.

  5. Other configurations

    To learn about all the available configurations in CodeIgniter 4, refer to this related chapter on the official CodeIgniter 4 documentation.

04. Install dependencies

  • If in a production environment

    Install composer and run composer install --no-dev --no-scripts command to install required dependencies.

  • If in a developer environment

    Install composer and run composer install --no-scripts command to install required dependencies.

    Install npm and run npm install command to install developer dependencies.

    Also make sure to install gulp-cli globally in-order to run the gulp command to re-generate the assets files like CSS, JS, etc.

05. Grant 'write' permission

Grant write permission to the following directories and their subdirectories. Otherwise, errors could occur when the app tries to write to these directories.

  • [app_root]/writable

06. Create symbolic links

Symbolic link creation

Three directory type symbolic links need to be created to link/connect module assets directories into their respective directories in the public directory of the app.

To execute these commands, administrative privileges may be required, especially on Windows. On Linux, administrative privileges (sudo mode) are generally not necessary, but it depends on the location/directory where the command is being run.

  • In windows

    The structure of the command.

    mklink /D "C:\path\to\target" "C:\path\to\source"

    Symlink structure for windows

    Use the sample commands below to create the required symbolic links, and make sure to update the paths accordingly to your environment.

    • MKLINK /D "D:\xampp_8.0.11\htdocs\appskull\app\public\assets\nudasoft\app" "D:\xampp_8.0.11\htdocs\appskull\app\Nudasoft\App\Assets\public"
    • MKLINK /D "D:\xampp_8.0.11\htdocs\appskull\app\public\assets\nudasoft\auth" "D:\xampp_8.0.11\htdocs\appskull\app\Nudasoft\Auth\Assets\public"
    • MKLINK /D "D:\xampp_8.0.11\htdocs\appskull\app\public\assets\nudasoft\static_pages" "D:\xampp_8.0.11\htdocs\appskull\app\Nudasoft\StaticPages\Assets\public"
  • In linux

    The structure of the command.

    ln -s /path/to/source /path/to/target

    Use the sample commands below to create the required symbolic links, and make sure to update the paths accordingly to your environment.

    • ln -s /path/to/xampp_8.0.11/htdocs/appskull/app/Nudasoft/App/Assets/public /path/to/xampp_8.0.11/htdocs/appskull/app/public/assets/nudasoft/app
    • ln -s /path/to/xampp_8.0.11/htdocs/appskull/app/Nudasoft/Auth/Assets/public /path/to/xampp_8.0.11/htdocs/appskull/app/public/assets/nudasoft/auth
    • ln -s /path/to/xampp_8.0.11/htdocs/appskull/app/Nudasoft/StaticPages/Assets/public /path/to/xampp_8.0.11/htdocs/appskull/app/public/assets/nudasoft/static_pages

Only if you are using an Nginx web server

If you are using an Nginx web server, you need to configure the Nginx server block/virtual host configuration file to point to the app's public directory. Below is a sample Nginx server block configuration file with the support for PHP.

                        
                            server {
                                listen 80;
                                server_name example.com;
                            
                                root /var/www/example_website_directory/public;
                                index index.php index.html index.htm;
                            
                                location / {
                                    try_files $uri $uri/ /index.php?$query_string;
                                }
                            
                                # PHP configuration
                                location ~ \.php$ {
                                    include snippets/fastcgi-php.conf;
                                    fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;  # Adjust PHP version if needed
                                    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                                    include fastcgi_params;
                                }
                            }
                        
                    

Test the installation

You can test the installation by simply accessing app's base URL on a web browser. For example, http://localhost:8000, http://localhost/appskull/, http://example.com/

If you have followed all the above installation and configuration steps correctly, then the app should load the it's home view.

Additionally you can try signin/login into to the app using below creadencials:

With the both 'demo' and 'production' database files

Username/Password: superadmin

Copyright © Nudasoft.