{"id":16609912,"url":"https://github.com/thorsten/phpMyFAQ","last_synced_at":"2025-10-29T17:30:38.401Z","repository":{"id":628453,"uuid":"269027","full_name":"thorsten/phpMyFAQ","owner":"thorsten","description":"phpMyFAQ - Open Source FAQ web application for PHP 8.1+ and MySQL, PostgreSQL and other databases","archived":false,"fork":false,"pushed_at":"2024-10-29T04:17:25.000Z","size":55356,"stargazers_count":588,"open_issues_count":17,"forks_count":254,"subscribers_count":36,"default_branch":"main","last_synced_at":"2024-10-29T17:13:04.474Z","etag":null,"topics":["database","docker","docker-compose","elasticsearch","faq","mariadb","mssql","mysql","php","phpmyfaq","postgresql","sqlite"],"latest_commit_sha":null,"homepage":"https://www.phpmyfaq.de","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":"Unmaintained","scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thorsten.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["thorsten"]}},"created_at":"2009-08-04T19:26:15.000Z","updated_at":"2024-10-28T13:36:43.000Z","dependencies_parsed_at":"2023-02-12T20:33:24.080Z","dependency_job_id":"ecad1d8e-c177-4dd3-9af5-a1fff0268fab","html_url":"https://github.com/thorsten/phpMyFAQ","commit_stats":{"total_commits":12293,"total_committers":99,"mean_commits":"124.17171717171718","dds":"0.47230130968844053","last_synced_commit":"227f21b166d9bbf7da545346877ecbd0d94b0a23"},"previous_names":[],"tags_count":682,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorsten%2FphpMyFAQ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorsten%2FphpMyFAQ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorsten%2FphpMyFAQ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thorsten%2FphpMyFAQ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thorsten","download_url":"https://codeload.github.com/thorsten/phpMyFAQ/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238617182,"owners_count":19501985,"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","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":["database","docker","docker-compose","elasticsearch","faq","mariadb","mssql","mysql","php","phpmyfaq","postgresql","sqlite"],"created_at":"2024-10-12T01:29:21.496Z","updated_at":"2025-10-29T17:30:38.386Z","avatar_url":"https://github.com/thorsten.png","language":"PHP","readme":"# phpMyFAQ 4.1-dev\n\n![Packagist PHP Version Support](https://img.shields.io/packagist/php-v/thorsten/phpMyFAQ)\n![GitHub](https://img.shields.io/github/license/thorsten/phpMyFAQ)\n![GitHub commit activity](https://img.shields.io/github/commit-activity/m/thorsten/phpMyFAQ)\n[![Documentation Status](https://readthedocs.org/projects/phpmyfaq/badge/?version=latest)](https://phpmyfaq.readthedocs.io/en/latest/?badge=latest)\n\n## What is phpMyFAQ?\n\nphpMyFAQ is a multilingual, completely database-driven FAQ system.\nIt supports various databases to store all data; PHP 8.3+ is needed to access this data.\nphpMyFAQ also offers a multi-language Content Management System with a WYSIWYG editor and a media manager, real time \nsearch support with Elasticsearch and OpenSearch, flexible multi-user support with user and group based permissions on \ncategories and records, a wiki-like revision feature, a news system, user-tracking, 40+ supported languages, enhanced \nautomatic content negotiation, HTML5/CSS3 based responsive templates, PDF-support, a backup and restore system, a \ndynamic sitemap, related FAQs, tagging, enhanced SEO features, built-in spam protection systems, Microsoft Entra ID, \nMicrosoft Active Directory and OpenLDAP support, a experimental MCP server, and an easy-to-use installation. \nIt's possible to update your phpMyFAQ installation via the web interface or on the command line.\n\n## Requirements\n\nphpMyFAQ is only supported on PHP 8.3 and up, you need a database as well. Supported databases are MySQL, MariaDB,\nPercona Server, PostgreSQL, Microsoft SQL Server and SQLite3. If you want to use Elasticsearch or Opensearch as the main \nsearch engine, you need Elasticsearch v6+ or OpenSearch v1+. Check our detailed requirements on\n[phpmyfaq.de](https://www.phpmyfaq.de/requirements) for more information.\n\n## Installation\n\n### phpMyFAQ installation package for end-users\n\nThe best way to install phpMyFAQ is to download it on [phpmyfaq.de](https://www.phpmyfaq.de/download), unzip the package\nand open http://www.example.org/phpmyfaq/setup/ in your preferred browser.\n\n### phpMyFAQ installation with Docker\n\n#### Dockerfile\n\nThe Dockerfile provided in this repo only builds an environment to run any release for development purpose.\nIt does not contain any code\nas the phpmyfaq folder is meant to be mounted as the `/var/www/html` folder in the container.\n\n#### docker-compose.yml\n\nFor development purposes, you can start a full stack to run your current PhpMyFAQ source code from your local repo.\n\n    $ docker-compose up\n\nThe command above starts nine containers for multi-database development as follows.\n\n_Specific images started at once to prepare the project:_\n\n- **composer**: update composer dependencies\n- **pnpm**: update pnpm dependencies\n\n_Running using named volumes:_\n\n- **mariadb**: image with MariaDB database with xtrabackup support\n- **phpmyadmin**: a PHP tool to have a look at your MariaDB database.\n- **postgres**: image with PostgreSQL database\n- **pgadmin**: a PHP tool to have a look at your PostgreSQL database.\n- **sqlserver**: image with Microsoft SQL Server for Linux\n- **elasticsearch**: Open Source Software image (it means it does not have XPack installed)\n- **opensearch**: OpenSearch image (it means it does not have XPack installed)\n\n_Running apache web server with PHP 8.4 support:_\n\n- **apache**: mounts the `phpmyfaq` folder in place of `/var/www/html`.\n\n_Running nginx web server with PHP 8.4 support:_\n\n- **nginx**: mounts the `phpmyfaq` folder in place of `/var/www/html`.\n- **php-fpm**: PHP-FPM image with PHP 8.4 support\n\n_Running FrankenPHP web server with PHP 8.4 support:_\n\n- **frankenphp**: mounts the `phpmyfaq` folder in place of `/var/www/html`.\n\nThen services will be available at the following addresses:\n\n- phpMyFAQ: (https://localhost:443 or http://localhost:8080 as fallback)\n- phpMyAdmin: (http://localhost:8000)\n- pgAdmin: (http://localhost:8008)\n\n#### Running tests\n\nTo run the test using Docker, you have to install the Composer development dependencies\n\n    $ docker build -t phpmyfaq-test . \u0026\u0026 docker run --rm -it docker.io/library/phpmyfaq-test:latest \n\n#### Quote from Elasticsearch documentation\n\nThe vm.max_map_count kernel setting needs to be set to at least 262144 for production use. Depending on your platform:\n\n##### Linux\n\nThe vm.max*map_count setting should be set permanently in */etc/sysctl.conf\\_:\n\n    $ grep vm.max_map_count /etc/sysctl.conf\n    vm.max_map_count=262144\n\nTo apply the setting on a live system type: `sysctl -w vm.max_map_count=262144`\n\n##### macOS with Docker for Mac\n\nThe vm.max_map_count setting must be set within the xhyve virtual machine:\n\n    $ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty\n\nLog in with root and no password. Then configure the sysctl setting as you would for Linux:\n\n    $ sysctl -w vm.max_map_count=262144\n\n##### Windows and macOS with Docker Toolbox\n\nThe vm.max_map_count setting must be set via docker-machine:\n\n    $ docker-machine ssh\n    $ sudo sysctl -w vm.max_map_count=262144\n\n### phpMyFAQ local installation from Github\n\nTo run phpMyFAQ locally, you need at least a running web server with PHP support and a database.\n\n    $ git clone git://github.com/thorsten/phpMyFAQ.git\n    $ cd phpMyFAQ\n    $ git checkout main\n    $ curl -s https://getcomposer.org/installer | php\n    $ php composer.phar install\n    $ curl -fsSL https://get.pnpm.io/install.sh | sh -\n    $ pnpm install\n    $ pnpm build\n\nThen open http://www.example.org/phpmyfaq/setup/ in your browser.\n\n## Testing\n\n### PHP\n\nTo run our unit tests via PHPUnit v12.x, just execute this command on your CLI\n\n    $ curl -s https://getcomposer.org/installer | php\n    $ php composer.phar install\n    $ ./vendor/bin/phpunit\n\nPlease note that phpMyFAQ needs to be installed via Composer.\n\n### Javascript\n\nTo run our JavaScript tests via Vitest, just execute this command on your CLI\n\n    $ curl -fsSL https://get.pnpm.io/install.sh | sh -\n    $ pnpm install\n    $ pnpm test\n\n## Versioning\n\nFor transparency and insight into our release cycle, and for striving to maintain backward compatibility, phpMyFAQ will\nbe maintained under the Semantic Versioning guidelines as much as possible.\n\nReleases will be numbered with the following format:\n\n`\u003cmajor\u003e.\u003cminor\u003e.\u003cpatch\u003e`\n\nAnd constructed with the following guidelines:\n\n- Breaking backward compatibility bumps the major (and resets the minor and patch)\n- New additions without breaking backward compatibility bump the minor (and reset the patch)\n- Bug fixes and misc changes bumps the patch\n\nFor more information on SemVer, please visit http://semver.org/.\n\n## Issue tracker\n\nFound a bug, or do you have a feature request? [Please open a new issue](https://github.com/thorsten/phpMyFAQ/issues).\nBefore opening any issue, please search for existing issues.\n\n## Contributing\n\nPlease check out our page about contributing on [phpmyfaq.de](https://www.phpmyfaq.de/contribute).\n\n## Documentation\n\nYou can read the complete documentation on [here](https://phpmyfaq.readthedocs.io/en/latest/).\n\n## REST API v3.1 documentation\n\nThe REST API documentation is available as an OpenAPI 3.0 specification:\n\n- [JSON](docs/openapi.json)\n- [YAML](docs/openapi.yaml)\n\nThe Swagger UI is available at [https://api-docs.phpmyfaq.de/](https://api-docs.phpmyfaq.de/).\n\n## Discord server\n\nIf you like to chat with the phpMyFAQ team, please join our [Discord server](https://discord.gg/wszhTceuNM).\nWe're happy to help you with your questions!\n\n## License\n\nMozilla Public License 2.0, see LICENSE for more information.\n\nCopyright © 2001–2025 Thorsten Rinne and the phpMyFAQ Team\n","funding_links":["https://github.com/sponsors/thorsten"],"categories":["Projects Using Jodit","📚 Projects (1974 total)","PHP"],"sub_categories":["PHPMyFAQ","MCP Servers"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthorsten%2FphpMyFAQ","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthorsten%2FphpMyFAQ","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthorsten%2FphpMyFAQ/lists"}