Skip to content

FAQ

General

How is JournalPHP different from cloud platforms?

You host the platform on your own server and fully own your data. No monthly per-user fees, no third-party service restrictions, no risk of the service shutting down. You only pay for your own infrastructure.

Is this a commercial product?

No. JournalPHP is an open-source project under the MIT license. The source code is fully open and free.

Can JournalPHP be used for commercial purposes?

Yes. The MIT license allows you to use, modify, and distribute the code for any purpose, including commercial use, as long as the license header is preserved.

Is there a mobile app?

There is no separate native app, but the interface is optimized for mobile browsers. The editor, feed, and private messages all work on phones.


Installation & Requirements

What are the minimum requirements to run it?

  • PHP 8.4+
  • MySQL 8.0+
  • Redis
  • Node.js 20+ (for frontend builds)

See System Requirements for details.

Does JournalPHP work without Docker?

Yes. Docker is a convenient way to set up the environment but is not mandatory. You can configure PHP, MySQL, Redis, and Node.js directly, pointing .env to the appropriate connections.

Is Redis required?

Yes. Redis is used for caching, session storage, and job queues. Without Redis, the platform will not function fully.

Is Cloudinary required for media?

No. Cloudinary is an optional provider for storing images and videos. Without it, media files are saved locally in storage/.


Functionality

Can users create multiple communities?

Yes, but user-created communities are disabled by default (canCreateCommunity = false). An administrator can enable this in Admin Panel → Content (/admin-panel/settings/content).

Is multi-language UI supported?

The platform includes translations for Russian and English. The language is set via VITE_APP_LOCALE and can be switched through the admin panel.

How does search work?

Search is implemented via Laravel Scout. .env.example sets SCOUT_DRIVER=null (search disabled); config/scout.php defaults to algolia. For simple setups, the optional database driver is available.

Can AI features be disabled?

Yes. AI is configured in the admin panel (AI Settings, /admin-panel/ai-settings). If no API key is set in admin or via DEEPSEEK_* env vars, AI features are unavailable in the UI. Nothing breaks.

Which OAuth providers are supported?

Built-in support: Google, Yandex, VKontakte, Facebook, Apple, GitHub. One Tap (Google, Yandex) provides quick sign-in without redirect, configured under Authentication & Registration (/admin-panel/settings/auth). Additional providers can be added via Laravel Socialite.

Is there an API?

There is no dedicated REST API yet: routes/api.php does not exist. Laravel Sanctum is installed and can be used when API routes are added.


Administration

Where is the admin panel?

At /admin-panel (e.g. http://journalphp.test/admin-panel). Access is restricted to users with administrator role.

How do I create the first administrator?

After php artisan db:seed in dev, AdminSeeder provides admin@mail.com / password. In production — register a user and assign the administrator role via the database or a seeder.

Can access to individual admin sections be restricted?

Yes. In Admin Permissions (/admin-panel/admin-permissions) you can configure access to each of the 30+ sections individually per administrator.

Where are site settings stored?

In the config database table. Edited through the admin panel settings sections and cached in Redis.


Subscriptions & Monetization

Which payment providers are supported?

YooKassa and T-Bank. YooKassa confirms payment via webhook (/payments/yookassa/result); T-Bank via client confirmation (POST /subscriptions/payments/confirm).

Can the platform run without subscriptions?

Yes. The subscription system is entirely optional. If no plans are created, the monetization functionality is not shown.


Development & Extension

How do I add custom functionality?

JournalPHP is built on standard Laravel mechanisms: Service Providers, Events, Listeners, Middleware, Observers. See Extending the Codebase.

Is there a plugin system?

There is no built-in plugin system. Extension is done directly in the code through standard Laravel mechanisms.

How do I run tests?

bash
docker compose exec app php artisan test

How do I report a bug?

Via GitHub Issues: github.com/ADamCarraway/journalphp/issues. See Reporting Bugs.

Released under the MIT License.