{"id":21938884,"url":"https://github.com/cmsrs/cmsrs3","last_synced_at":"2025-08-10T04:42:51.029Z","repository":{"id":37589817,"uuid":"187003331","full_name":"cmsrs/cmsrs3","owner":"cmsrs","description":"cms, gallery, shop, Laravel and Vue.js","archived":false,"fork":false,"pushed_at":"2025-07-15T18:03:55.000Z","size":81130,"stargazers_count":6,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-07-16T15:02:34.474Z","etag":null,"topics":["cms","gallery-images","laravel","laravel-framework","php","phpstan","phpunit","pinia","pint","shop","vuejs"],"latest_commit_sha":null,"homepage":"http://www.cmsrs.pl","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cmsrs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-05-16T10:09:04.000Z","updated_at":"2025-07-15T18:00:41.000Z","dependencies_parsed_at":"2025-06-20T18:37:11.642Z","dependency_job_id":null,"html_url":"https://github.com/cmsrs/cmsrs3","commit_stats":{"total_commits":429,"total_committers":1,"mean_commits":429.0,"dds":0.0,"last_synced_commit":"b80514dc53ebc063865455fdf1c2630a697b4fe2"},"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"purl":"pkg:github/cmsrs/cmsrs3","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmsrs%2Fcmsrs3","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmsrs%2Fcmsrs3/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmsrs%2Fcmsrs3/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmsrs%2Fcmsrs3/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cmsrs","download_url":"https://codeload.github.com/cmsrs/cmsrs3/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cmsrs%2Fcmsrs3/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269677511,"owners_count":24457858,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["cms","gallery-images","laravel","laravel-framework","php","phpstan","phpunit","pinia","pint","shop","vuejs"],"created_at":"2024-11-29T02:15:22.547Z","updated_at":"2025-08-10T04:42:51.011Z","avatar_url":"https://github.com/cmsrs.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003cimg src=\"http://www.cmsrs.pl/images/cms/logo_cmsrs.png\"\u003e\u003cbr/\u003e\n    CMS, gallery, and shop based on Laravel and Vue.js\n\u003c/p\u003e\n\u003c/br\u003e\n\u003cp align=\"center\"\u003e\n\u003ca href=\"https://www.php.net/\"\u003e\u003cimg src=\"https://img.shields.io/badge/php-8.4-yellowgreen\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/laravel/laravel\"\u003e\u003cimg src=\"https://img.shields.io/badge/Laravel-12-yellowgreen\"\u003e\u003c/a\u003e\n\u003ca href=\"https://www.cmsrs.pl/en/cms/cmsrs/coverage-test\"\u003e\u003cimg src=\"https://img.shields.io/badge/coverage-90%25-yellowgreen\"\u003e\u003c/a\u003e\n\u003ca href=\"https://github.com/cmsrs/cmsrs3/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-green\"\u003e\u003c/a\u003e\n\u003ca href=\"#\"\u003e\u003cimg src=\"https://img.shields.io/badge/PHPStan-5-yellowgreen\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003c/br\u003e\n\u003c/br\u003e\n\n## REQUIRED PACKAGES\n\n```php-cli``` – PHP command-line interface\n\n```php-dom``` and ```php-xml``` – for XML parsing (used in layouts and configs)\n\n```php-curl``` – for HTTP requests\n\n```php-mysql``` – for MySQL database connection\n\n```php-mbstring``` – for multibyte string support (required by PHPUnit and some packages)\n\n```php-gd``` – for image processing (used in gallery, sliders, etc.)\n\nMake sure all extensions match your installed PHP version (e.g., php8.4-mysql, php8.4-mbstring, etc.)\n\n\n## INSTALLATION (QUICK SETUP)\n\nRun the following command to create the project:\n\n```bash\ncomposer create-project cmsrs/cmsrs3\ncd cmsrs3 \u0026\u0026 php artisan serve\n```\n\n## MANUAL INSTALLATION (RECOMMENDED)\n\n* Download the source code:\n \n```bash\ngit clone https://github.com/cmsrs/cmsrs3.git \u0026\u0026 cd cmsrs3\n```\n\n* Install dependencies:\n\n```bash\ncomposer install\n```\n\n* Prepare .env file, and change db connection:\n \n```bash\ncp .env.example .env\n```\n\nchange db connection in .env file, for example:\n\n```bash\nDB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=cmsrs\nDB_USERNAME=rs\nDB_PASSWORD=\"secret102*\"\n```\n\nYou can create a MySQL user and database using the script: ``` ./rs/go/go_create_user_and_db.sh ```\n\n* Set up Laravel and JWT (generate the application key and JWT secrets):\n\n```bash\nphp artisan key:generate \u0026\u0026 php artisan jwt:secret\n```\n \n* Create database tables and seed initial data:\n\n    - admin (email/login: adm@cmsrs.pl, pass: cmsrs123) \n    - client (email/login: client@cmsrs.pl, pass: cmsrs456) \n\n```bash\nphp artisan migrate \u0026\u0026 php artisan db:seed\n```\n \n* (optionally) Set up permission: \n \n```bash\n./rs/go/go_privilege.sh\n```\n \n* Start server\n \n```bash\nphp artisan serve\n```\n\n\u003c!--\n#todo - add mysql auth - automatic\n## INSTALLATION USING DOCKER\n\nWe are using SQLite as the database.\n\n* Download the Dockerfile from the ```cmsrs/cmsrs3``` GitHub repository:\n\n```bash\nwget https://raw.githubusercontent.com/cmsrs/cmsrs3/master/Dockerfile\n```\n\n* Build the image based on the Dockerfile:\n\n```bash\ndocker build -t php-cmsrs3 .\n```\n\n* Run the container:\n\n```bash\ndocker run -p 8000:8000 php-cmsrs3\n```\n--\u003e\n\n## RUN TESTS\n\n* Prepare .env.testing file, and change db connection:\n\n```bash\ncp  .env .env.testing \n```\n\nChange db connection in .env.testing file, for example:\n\n```bash\nDB_CONNECTION=mysql\nDB_HOST=127.0.0.1\nDB_PORT=3306\nDB_DATABASE=cmsrs_testing\nDB_USERNAME=rs\nDB_PASSWORD=\"secret102*\"\n```\n\nAttention! DB_DATABASE should be different than the one in the .env file.\n\nYou can create a MySQL database using the script ``` ./rs/go/go_create_test_db.sh ```\n\n* (optionally) set permission \n \n```bash\n./rs/go/go_privilege.sh\n```\n\n* run tests: \n\nIt is recommended to run tests on a clean instance (without images)\n\n```bash\n./vendor/bin/phpunit\n```\n\n## MANAGMENT\n\n* Go to the website http://127.0.0.1:8000/admin/\n\n    log in as:\n\n    username: adm@cmsrs.pl\n\n    password: cmsrs123\n\n* Create main page (page type: main_page)\n\n* Add menu\n    \n* Add pages   \n \n## CONFIGURATION .env FILE\n\n**After each change to a configuration value, it is necessary to log in to the admin panel again.**\n\n*  Set up langs, the default is 'en,pl':\n\n```bash\nLANGS=\"en,pl\"\n```\n\nThe first one will be default language.\nIf you don't set up this directive it will be 'en,pl'\n\n* Add api secret, the default is '':\n```bash\nAPI_SECRET=\"\"\n```\n\nIt must be the same like in the admin config file (see Vue.js).\nIt can be empty string.\n\n* Set available page type that appear in the administration area: \n\nThe default page types are:\n```bash\nPAGE_TYPES=\"cms,gallery,shop,contact,main_page,privacy_policy,projects,clear,inner\"\n```\n\n    - cms: Displays a WYSIWYG editor in the administration area.\n    - gallery: A page for showcasing photos.\n    - shop: A page for displaying products.\n    - contact: A page with contact information.\n    - main_page: The main page, which requires writing pure HTML code.\n    - privacy_policy: A page containing the privacy policy.\n    - projects: Displays the same content across all languages.\n    - clear: A page without a WYSIWYG editor; requires writing pure HTML code.\n    - inner: Represents a text box on an existing page that requires hardcoding in the layout. The key is the short_title. For example, in the code:\n        (new PageService)-\u003egetPageDataByShortTitleCache('main_page_box1', 'content');\n        The following short_title values are predefined:\n            - main_page_box1, main_page_box2, main_page_box3: Represent three content boxes on the main page.\n            - company_data: Displays company information on the contact page.\n            - main_page_slider: Contains images displayed in the slider on the main page, It requires adding a \u003cdiv class='slidecontainer'\u003e\u003c/div\u003e element to the main page.\n\n\n* Additionally sending an e-mail with information from the contact form.\nIf the value is empty, the text of the message will appear only in the administration panel in the contact tab\n\n```bash\nCONTACT_EMAIL=\"\"\n```\n\n* For Google reCAPTCHA v3 in the contact form, set up the following parameters:\n\n```bash\nGOOGLE_RECAPTCHA_PRIV\nGOOGLE_RECAPTCHA_PUBLIC\n```\n \n* Enable database cache, the default is false: \n\n```bash\nCACHE_ENABLE=false\nCACHE_ENABLE_FILE='app/cache_enable.txt'\n```\n\n* Set the currency, the default is USD:\n\n```bash\nCURRENCY=USD\n```\n\n* Set is_shop, the default is true:\n\n```bash\nIS_SHOP=true\n```\n\n* Set is_login, the default is true:\n\n```bash\nIS_LOGIN=true\n```\n\n* Set is_register, the default is true:\n\n```bash\nIS_REGISTER=true\n```\n\n* Set the allowed file extensions for uploads:\n\nThe default file extensions for uploads are:\n```bash\nALLOWED_UPLOAD_EXTENSIONS=\"jpg,jpeg,png,gif\"\n```\n\n* PayU integration:\n\n```bash\n#https://merch-prod.snd.payu.com - sandbox\nPAYU_URL=https://merch-prod.snd.payu.com\nPAYU_POS_ID=123\nPAYU_MD5=xxx\nPAYU_CLIENT_ID=123\nPAYU_CLIENT_SECRET=zzz\nNOTIFY_URL=http://domain/home/orders\nCUSTOMER_IP=\"123.123.123.123\"\n```\n\n* Administrator Credentials\n\nThese credentials can be used to create the initial admin user during system installation (database seeding).\n\n```bash\nADM_EMAIL=\"adm@cmsrs.pl\"\nADM_PASS=\"cmsrs123\"\n```\n\n```ADM_EMAIL```: The default email address of the admin account.\n```ADM_PASS```: The default password for the admin account.\n\nWarning: Do not use the default credentials (adm@cmsrs.pl / cmsrs123) in production.\nAlways update them for security reasons before deploying.\n\n* Client Account Credentials\n\nThese credentials can be used to create a default client account during system installation (e.g., for seeding or demo purposes).\n\n```\nCLIENT_EMAIL=\"client@cmsrs.pl\"\nCLIENT_PASS=\"cmsrs456\"\n```\n\n```CLIENT_EMAIL```: The default email address for the client account.\n```CLIENT_PASS```: The default password for the client account.\n\nWarning: Do not use the default client credentials (client@cmsrs.pl / cmsrs456) in production environments.\nAlways change them to secure values before deployment.\n\n\n* DEMO Mode\n\nUse this variable to enable demo mode, for example at http://demo.cmsrs.pl/\nUsed to block saving changes or modifying sensitive data on public demo instances.\n\n```bash\nDEMO_STATUS=false\n```\n\nDefault is false (disabled).\n\n* Pagination\n\n```bash\nPAGINATION=10\n```\n\nNumber of items per page in the admin panel. The default value is 10.\n\n\n\n## SAMPLE .env CONFIGURATION FOR COMPANY PROFILE PAGE\n\nIf you want to create a company profile page, I suggest setting the following CMS parameters, for example:\n\n```bash\nIS_SHOP=false\nIS_LOGIN=false\nIS_REGISTER=false\nLANGS=\"en\"\nAPI_SECRET=\"string123\"\nPAGE_TYPES=\"cms,gallery,contact,main_page,privacy_policy,inner\"\n```\n\n## CLI COMMANDS \n\n* Load test (demo) data: \n\n**I highly recommend running this script to understand how my CMS works. (Remember to leave the default values in the .env file.)**\n\n```bash\n./rs/go/go_clear_and_load_demo.sh\n```\n\n* Create sitemap (it is recommended to put this command in the crontab file): \n\n```bash\nphp artisan cmsrs:create-site-map\n```\n\n* Create client user or edit password for user: \n\n```bash\nphp artisan cmsrs:create-client {user} {password}\n```\n\n* Change admin password:\n\n```bash\nphp artisan cmsrs:change-admin-pass {new-password}\n```\n\n## DEMO - Frontend\n\nhttp://demo.cmsrs.pl\n\n## DEMO - Admin Panel\n\nhttp://demo.cmsrs.pl/admin-demo\n\n## TUTORIALS\n\nhttps://www.cmsrs.pl/en/cms/cmsrs/cmsrs-video-tutorial\n\n## MORE INFORMATION\n\nhttps://www.cmsrs.pl/en/cms/cmsrs/about-cmsrs\n\n## VUE.JS SOURCE CODE \n\nhttps://github.com/cmsrs/cmsrs3-vuejs\n\n## REPORTING ISSUES AND SUGGESTIONS\n\nIf you notice any problems or have ideas to improve the project, please use the [Issues](https://github.com/cmsrs/cmsrs3/issues) section to let me know.\nIf you like it, give it a star!\nYour support motivates me to keep improving the project. Thank you! :)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmsrs%2Fcmsrs3","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcmsrs%2Fcmsrs3","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcmsrs%2Fcmsrs3/lists"}