{"id":20498800,"url":"https://github.com/presentator/presentator-starter","last_synced_at":"2026-01-14T00:50:09.645Z","repository":{"id":57044417,"uuid":"199835882","full_name":"presentator/presentator-starter","owner":"presentator","description":"Skeleton composer project for Presentator v2","archived":true,"fork":false,"pushed_at":"2024-01-28T13:20:03.000Z","size":54,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-05T19:01:40.086Z","etag":null,"topics":["composer","presentator","production","skeleton"],"latest_commit_sha":null,"homepage":"https://presentator.io","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/presentator.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-07-31T10:40:20.000Z","updated_at":"2024-01-28T13:20:23.000Z","dependencies_parsed_at":"2022-08-23T23:30:19.219Z","dependency_job_id":null,"html_url":"https://github.com/presentator/presentator-starter","commit_stats":null,"previous_names":[],"tags_count":47,"template":false,"template_full_name":null,"purl":"pkg:github/presentator/presentator-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/presentator%2Fpresentator-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/presentator%2Fpresentator-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/presentator%2Fpresentator-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/presentator%2Fpresentator-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/presentator","download_url":"https://codeload.github.com/presentator/presentator-starter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/presentator%2Fpresentator-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28407172,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-14T00:40:43.272Z","status":"ssl_error","status_checked_at":"2026-01-14T00:40:42.636Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composer","presentator","production","skeleton"],"created_at":"2024-11-15T18:15:39.962Z","updated_at":"2026-01-14T00:50:09.590Z","avatar_url":"https://github.com/presentator.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"Presentator Starter\n======================================================================\n\n\n\u003e [!IMPORTANT]\n\u003e This repo is for the older Presentator v2 and it is no longer maintained.\n\n\nPresentator Starter is a skeleton Presentator v2 installation setup best suited for production environment.\n\nIt wraps all required components for a Presentator installation in a single package and allows seamless upgrades just by using [Composer](https://getcomposer.org/).\n\n- [Requirements](#requirements)\n- [Installation](#installation)\n    - [Additional console commands](#additional-console-commands-you-may-find-useful)\n    - [OAuth2 login](#allow-3rd-party-authentication-oauth2)\n    - [Different storage mechanism](#different-storage-mechanism)\n- [Update](#update)\n- [Backup \u0026 Restore](#backup-restore)\n\n\u003e **This repository is READ-ONLY.**\n\u003e **Report issues and send pull requests in the [main Presentator repository](https://github.com/presentator/presentator/issues).**\n\n\u003e If you prefer a dockerized version of the starter package, please check [presentator-docker](https://github.com/presentator/presentator-docker).\n\n\n## Requirements\n\n- Apache/Nginx HTTP server\n\n- SQL database (MySQL/MariadDB/PostgreSQL)\n\n    \u003e 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)).\n\n- PHP 7.1+ with the following extensions:\n\n    ```\n    Reflection\n    PCRE\n    SPL\n    MBString\n    OpenSSL\n    Intl\n    ICU version\n    Fileinfo\n    DOM extensions\n    GD or Imagick\n    ```\n\n    In addition, here are some recommended `php.ini` configuration settings:\n    ```\n    post_max_size       = 64M\n    upload_max_filesize = 64M\n    max_execution_time  = 60\n    memory_limit        = 256M\n    ```\n\n- [Composer](https://getcomposer.org/)\n\n\n## Installation\n\n1. Install through Composer:\n\n    ```bash\n    composer create-project presentator/starter /path/to/starter/\n    ```\n\n    \u003e **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!**\n\n2. Setup a vhost/server address (eg. https://your-presentator.com/) and point it to `/path/to/starter/web/`.\n\n    \u003e 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).\n\n3. Create a new database (with `utf8mb4_unicode_ci` collation).\n\n4. Adjust the **db**, **mailer** and other components configuration in `config/base-local.php` accordingly.\n\n    \u003e Check [base.php](https://github.com/presentator/presentator-api/blob/master/config/base.php) for all available options.\n\n5. Adjust your environment specific parameters (public urls, support email, etc.) in `config/params-local.php` accordingly.\n\n    \u003e Check [params.php](https://github.com/presentator/presentator-api/blob/master/config/params.php) for all available options.\n\n6. (optional) If needed, you could also adjust the frontend (aka. SPA) settings by editing the `extra.starter.spaConfig` key in your `composer.json` file.\n\n    \u003e Check [.env](https://github.com/presentator/presentator-spa/blob/master/.env) for all available options.\n\n7. Run `composer install` to make sure that the application is properly inited.\n\n6. (optional) Setup a cron task to process unread screen comments:\n\n    ```bash\n    # Every 30 minutes processes all unread screen comments and sends an email to the related users.\n    */30 * * * * php /path/to/starter/yii mails/process-comments\n    ```\n\n**That’s it!** Check the application in your browser to verify that everything is working fine.\n\n#### Additional console commands you may find useful\n\n```bash\n# set Super User access rights to a single User model\nphp /path/to/starter/yii users/super test@example.com\n\n# set Regular User access rights to a single User model\nphp /path/to/starter/yii users/regular test@example.com\n\n# regenerates all screen thumbs\nphp /path/to/starter/yii screens/generate-thumbs\n```\n\n#### Allow 3rd party authentication (OAuth2)\n\nThe 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).\n\nFor example, if you want to allow your users to login with their Facebook account:\n\n1. [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).\n\n    \u003e 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 https://your-presentator.com/#/auth-callback).\n\n    \u003e **NB!** Some clients may not support hash/fragment URIs (aka. `/#/`). In this case, define your redirect uri without the hash (eg. https://your-presentator.com/auth-callback) and add a redirect/rewrite rule to your Nginx/Apache configuration that should prepend `/#/` to the request path address.\n    \u003e Here is a generic Nginx redirect rule:\n    \u003e ```nginx\n    \u003e location ~ ^/(?!(index\\.html|#|api|storage|spa-resources|assets)).+ {\n    \u003e     rewrite ^\\/(.*)$ /#/$1 redirect;\n    \u003e }\n    \u003e ```\n\n2. Register the Facebook auth client in your `base-local.php`:\n\n    ```php\n    'components' =\u003e [\n        ...\n        'authClientCollection' =\u003e [\n            'class' =\u003e 'yii\\authclient\\Collection',\n            'clients' =\u003e [\n                'facebook' =\u003e [\n                    'class'        =\u003e 'yii\\authclient\\clients\\Facebook',\n                    'clientId'     =\u003e 'YOUR_APP_CLIENT_ID',\n                    'clientSecret' =\u003e 'YOUR_APP_CLIENT_SECRET',\n                ],\n            ],\n        ],\n    ]\n    ```\n\n\n#### Different storage mechanism\n\nBy default all uploaded files are stored locally on your server in `/path/to/starter/web/storage`.\nIf you are worried about disk space or want to store your uploads on a different server, you could override the default `fs` component configuration.\n\nFor example, if you want to store your files on AWS S3:\n\n1. Update the `baseStorageUrl` in your `params-local.php`\n\n    ```php\n    // base public url to the storage directory (could be also a cdn address if you use S3 or other storage mechanism)\n    'baseStorageUrl' =\u003e 'https://example.com/storage',\n    ```\n\n2. Add the AWS S3 filesystem adapter to your dependencies\n\n    ```bash\n    composer require league/flysystem-aws-s3-v3\n    ```\n\n3. Override the default `fs` component in your `base-local.php`:\n\n    ```php\n    'components' =\u003e [\n        'fs' =\u003e new \\yii\\helpers\\ReplaceArrayValue([\n            'class'   =\u003e 'creocoder\\flysystem\\AwsS3Filesystem',\n            'key'     =\u003e 'YOUR_KEY',\n            'secret'  =\u003e 'YOUR_SECRET',\n            'bucket'  =\u003e 'YOUR_BUCKET',\n            'region'  =\u003e 'YOUR_REGION',\n            'options' =\u003e [\n                'ACL' =\u003e 'public-read',\n            ],\n            // other parameters:\n            // 'version'  =\u003e 'latest',\n            // 'baseUrl'  =\u003e 'YOUR_BASE_URL',\n            // 'prefix'   =\u003e 'YOUR_PREFIX',\n            // 'endpoint' =\u003e 'http://your-url'\n        ]),\n        ...\n    ]\n    ```\n\n    \u003e You may also want to check [#138](https://github.com/presentator/presentator/issues/138) and [#141](https://github.com/presentator/presentator/issues/141).\n\nFor other adapters and more options, go to https://github.com/creocoder/yii2-flysystem.\n\n\n## Update\n\nTo update your Presentator application to the latest available version, just run `composer update` while in the project root directory.\n\n\u003e For a finer control, check the packages version constraint in the `require` section of `/path/to/starter/composer.json`.\n\n\n## Backup \u0026 Restore\n\nTo backup your Presentator application:\n\n1. Export your Presentator database via the DBMS cli tools (eg. `mysqldump`, `pg_dump`) or via Adminer/phpMyAdmin/etc.\n\n2. Backup the app `config/` folder and the uploaded users content (usually `web/storage/`).\n\n\nTo restore your Presentator application you can apply the following steps for an old or new installation:\n\n1. Import your Presentator database via the DBMS cli tools (eg. `mysqldump`, `pg_dump`) or via Adminer/phpMyAdmin/etc.\n\n2. Return the previously backuped `config/` and uploaded users content to their original location.\n\n3. Run `php /path/to/starter/yii migrate up` to ensure that the latest app database changes are applied.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpresentator%2Fpresentator-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpresentator%2Fpresentator-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpresentator%2Fpresentator-starter/lists"}