Skip to content

System requirements ​

JournalPHP runs in Docker: PHP, MySQL, Redis, Nginx and Node.js run in containers, and the server only needs Docker and Git.

Overview ​

The local and production environments use different Docker Compose configurations: docker-compose.yml and docker-compose.prod.yml. Both need Docker with Docker Compose v2 and Git.

Server ​

Recommendations for production:

MinimumRecommended
OSLinuxUbuntu 22.04 LTS or newer
RAM2 GB4 GB
CPU1 vCPU2 vCPU
Disk20 GB40 GB SSD

The frontend is built together with the application image. The build is limited to 2 GB of Node.js memory; the limit is set by the NODE_MEMORY_MB build argument in Dockerfile.prod.

Components ​

ComponentVersion
PHP8.4 (FPM)
Laravel13
MySQL8.0
Redisredis:alpine image
Nginxnginx:alpine image
Node.js22 in the local environment, 24 when building the production image

Ports ​

Local environment:

PortService
80Nginx: site and Adminer
5173Vite dev server
9001Reverb WebSocket server
33061MySQL, access from the host
7700Meilisearch, only with the meilisearch profile

Production:

PortService
127.0.0.1:8080Nginx in Docker, reachable only by the reverse proxy on the host
9001Reverb WebSocket server
80, 443Reverse proxy on the host

External services ​

All integrations are optional and are connected in the admin panel:

  • SMTP server: sending email, see Email
  • OAuth providers: sign-in with Google, Yandex, VK, Facebook, Apple and GitHub, see Users
  • YooKassa or T-Bank: payment processing, see Subscriptions
  • DeepSeek, OpenAI, Gemini or YandexGPT: AI features, see AI features
  • Yandex Vision: image moderation, see AI features
  • Algolia or Meilisearch: external search engine, see Search
  • Cloudinary or Yandex Cloud Object Storage: media storage, see Site settings
  • Tenor or Giphy: GIF search, see Site settings

Released under the MIT License.