PHPackages                             presentator/starter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. presentator/starter

AbandonedArchivedProject[Framework](/categories/framework)

presentator/starter
===================

Skeleton Presentator v2 installation setup

v2.15.1(3y ago)1365BSD-3-Clause

Since Aug 4Pushed 2y ago1 watchersCompare

[ Source](https://github.com/presentator/presentator-starter)[ Packagist](https://packagist.org/packages/presentator/starter)[ RSS](/packages/presentator-starter/feed)WikiDiscussions master Synced 4d ago

READMEChangelogDependencies (2)Versions (48)Used By (0)

Presentator Starter
===================

[](#presentator-starter)

Important

This repo is for the older Presentator v2 and it is no longer maintained.

Presentator Starter is a skeleton Presentator v2 installation setup best suited for production environment.

It wraps all required components for a Presentator installation in a single package and allows seamless upgrades just by using [Composer](https://getcomposer.org/).

- [Requirements](#requirements)
- [Installation](#installation)
    - [Additional console commands](#additional-console-commands-you-may-find-useful)
    - [OAuth2 login](#allow-3rd-party-authentication-oauth2)
    - [Different storage mechanism](#different-storage-mechanism)
- [Update](#update)
- [Backup &amp; Restore](#backup-restore)

> **This repository is READ-ONLY.****Report issues and send pull requests in the [main Presentator repository](https://github.com/presentator/presentator/issues).**

> If you prefer a dockerized version of the starter package, please check [presentator-docker](https://github.com/presentator/presentator-docker).

Requirements
------------

[](#requirements)

- Apache/Nginx HTTP server
- SQL database (MySQL/MariadDB/PostgreSQL)

    > For MySQL up to 5.6 and MariaDB up to 10.1 you may need to set `innodb_large_prefix=1` and `innodb_default_row_format=dynamic` to prevent migration errors (see [\#104](https://github.com/presentator/presentator/issues/104)).
- PHP 7.1+ with the following extensions:

    ```
    Reflection
    PCRE
    SPL
    MBString
    OpenSSL
    Intl
    ICU version
    Fileinfo
    DOM extensions
    GD or Imagick

    ```

    In addition, here are some recommended `php.ini` configuration settings:

    ```
    post_max_size       = 64M
    upload_max_filesize = 64M
    max_execution_time  = 60
    memory_limit        = 256M

    ```
- [Composer](https://getcomposer.org/)

Installation
------------

[](#installation)

1. Install through Composer:

    ```
    composer create-project presentator/starter /path/to/starter/
    ```

    > **For security reasons, if you are using a shared hosting service it is recommended to place the project files outside from your default public\_html(www) directory!**
2. Setup a vhost/server address (eg. ) and point it to `/path/to/starter/web/`.

    > By default a generic `.htaccess` file will be created for you after initialization. If you are using Nginx, you could check the following [sample configuration](https://github.com/presentator/presentator/issues/120#issuecomment-539844456).
3. Create a new database (with `utf8mb4_unicode_ci` collation).
4. Adjust the **db**, **mailer** and other components configuration in `config/base-local.php` accordingly.

    > Check [base.php](https://github.com/presentator/presentator-api/blob/master/config/base.php) for all available options.
5. Adjust your environment specific parameters (public urls, support email, etc.) in `config/params-local.php` accordingly.

    > Check [params.php](https://github.com/presentator/presentator-api/blob/master/config/params.php) for all available options.
6. (optional) If needed, you could also adjust the frontend (aka. SPA) settings by editing the `extra.starter.spaConfig` key in your `composer.json` file.

    > Check [.env](https://github.com/presentator/presentator-spa/blob/master/.env) for all available options.
7. Run `composer install` to make sure that the application is properly inited.
8. (optional) Setup a cron task to process unread screen comments:

    ```
    # Every 30 minutes processes all unread screen comments and sends an email to the related users.
    */30 * * * * php /path/to/starter/yii mails/process-comments
    ```

**That’s it!** Check the application in your browser to verify that everything is working fine.

#### Additional console commands you may find useful

[](#additional-console-commands-you-may-find-useful)

```
# set Super User access rights to a single User model
php /path/to/starter/yii users/super test@example.com

# set Regular User access rights to a single User model
php /path/to/starter/yii users/regular test@example.com

# regenerates all screen thumbs
php /path/to/starter/yii screens/generate-thumbs
```

#### Allow 3rd party authentication (OAuth2)

[](#allow-3rd-party-authentication-oauth2)

The default `base-local.php` comes with commented [various auth clients configurations](https://github.com/presentator/presentator/blob/master/packages/api/environments/prod/config/base-local.php#L40-L79).

For example, if you want to allow your users to login with their Facebook account:

1. [Register a Facebook app](https://developers.facebook.com/docs/apps#register) (only the account email is required, so there is no need for any special permissions).

    > Make sure for **Valid OAuth Redirect URIs** to set the same url as `authClientRedirectUri` from your `params-local.php` (by default it should be something like ).

    > **NB!** Some clients may not support hash/fragment URIs (aka. `/#/`). In this case, define your redirect uri without the hash (eg. ) and add a redirect/rewrite rule to your Nginx/Apache configuration that should prepend `/#/` to the request path address. Here is a generic Nginx redirect rule:
    >
    > ```
    > location ~ ^/(?!(index\.html|#|api|storage|spa-resources|assets)).+ {
    >     rewrite ^\/(.*)$ /#/$1 redirect;
    > }
    > ```
2. Register the Facebook auth client in your `base-local.php`:

    ```
    'components' => [
        ...
        'authClientCollection' => [
            'class' => 'yii\authclient\Collection',
            'clients' => [
                'facebook' => [
                    'class'        => 'yii\authclient\clients\Facebook',
                    'clientId'     => 'YOUR_APP_CLIENT_ID',
                    'clientSecret' => 'YOUR_APP_CLIENT_SECRET',
                ],
            ],
        ],
    ]
    ```

#### Different storage mechanism

[](#different-storage-mechanism)

By default all uploaded files are stored locally on your server in `/path/to/starter/web/storage`. If you are worried about disk space or want to store your uploads on a different server, you could override the default `fs` component configuration.

For example, if you want to store your files on AWS S3:

1. Update the `baseStorageUrl` in your `params-local.php`

    ```
    // base public url to the storage directory (could be also a cdn address if you use S3 or other storage mechanism)
    'baseStorageUrl' => 'https://example.com/storage',
    ```
2. Add the AWS S3 filesystem adapter to your dependencies

    ```
    composer require league/flysystem-aws-s3-v3
    ```
3. Override the default `fs` component in your `base-local.php`:

    ```
    'components' => [
        'fs' => new \yii\helpers\ReplaceArrayValue([
            'class'   => 'creocoder\flysystem\AwsS3Filesystem',
            'key'     => 'YOUR_KEY',
            'secret'  => 'YOUR_SECRET',
            'bucket'  => 'YOUR_BUCKET',
            'region'  => 'YOUR_REGION',
            'options' => [
                'ACL' => 'public-read',
            ],
            // other parameters:
            // 'version'  => 'latest',
            // 'baseUrl'  => 'YOUR_BASE_URL',
            // 'prefix'   => 'YOUR_PREFIX',
            // 'endpoint' => 'http://your-url'
        ]),
        ...
    ]
    ```

    > You may also want to check [\#138](https://github.com/presentator/presentator/issues/138) and [\#141](https://github.com/presentator/presentator/issues/141).

For other adapters and more options, go to .

Update
------

[](#update)

To update your Presentator application to the latest available version, just run `composer update` while in the project root directory.

> For a finer control, check the packages version constraint in the `require` section of `/path/to/starter/composer.json`.

Backup &amp; Restore
--------------------

[](#backup--restore)

To backup your Presentator application:

1. Export your Presentator database via the DBMS cli tools (eg. `mysqldump`, `pg_dump`) or via Adminer/phpMyAdmin/etc.
2. Backup the app `config/` folder and the uploaded users content (usually `web/storage/`).

To restore your Presentator application you can apply the following steps for an old or new installation:

1. Import your Presentator database via the DBMS cli tools (eg. `mysqldump`, `pg_dump`) or via Adminer/phpMyAdmin/etc.
2. Return the previously backuped `config/` and uploaded users content to their original location.
3. Run `php /path/to/starter/yii migrate up` to ensure that the latest app database changes are applied.

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity13

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~24 days

Recently: every ~55 days

Total

47

Last Release

1372d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/e03e4fa9f37616b4394ac1fad014584edfefb067e8772bb995254db6ea562cd7?d=identicon)[ganigeorgiev](/maintainers/ganigeorgiev)

---

Top Contributors

[![ganigeorgiev](https://avatars.githubusercontent.com/u/8248071?v=4)](https://github.com/ganigeorgiev "ganigeorgiev (78 commits)")

---

Tags

composerpresentatorproductionskeletonyii2Skeletondesignstartercollaborationpresentatorpresentator-starter

### Embed Badge

![Health badge](/badges/presentator-starter/health.svg)

```
[![Health](https://phpackages.com/badges/presentator-starter/health.svg)](https://phpackages.com/packages/presentator-starter)
```

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
