Русский
Начать

← Все шаблоны · Сайты и магазины

Задеплойте Joomla в один клик

CMS с открытым кодом для сайтов: несколько языков, уровни доступа и тысячи расширений

Альтернатива Wix и Squarespace на вашей машине.

Что такое Joomla?

Joomla — бесплатная система управления контентом с открытым кодом для любых сайтов, от страничек клуба до сайта компании на нескольких языках. Материалы раскладываются по категориям и выводятся через меню и модули, а в ядре есть шаблон Cassiopeia, медиа-менеджер, контакты с их формами, теги, умный поиск и адреса, удобные для поисковиков (ЧПУ). Многоязычному сайту не нужны расширения: у каждого языка свой контент и своя главная страница, а материалы связываются со своими переводами. Группы пользователей и уровни доступа определяют, кто что видит и редактирует, а в Каталоге расширений Joomla (Joomla Extensions Directory) больше 5000 расширений.

Этот шаблон запускает Joomla 6 из официального образа с MariaDB и устанавливает ее при первом запуске по данным из полей, так что веб-установщик никогда не бывает открыт для посторонних. Файлы Joomla лежат в томе и обновляются из панели управления, а начиная с Joomla 5.4 сайт, до которого может достучаться сервис обновлений Joomla, сам ставит минорные и патч-релизы. Подвох: на новую мажорную версию переходят вручную, когда ее поддержат ваши расширения.

Хостинг Joomla на Pethost

  1. Вы входите в Pethost — с passkey, через GitHub или Google. Машины еще нет? Вы выбираете тариф, и ссылка ждет, пока машина не будет готова.
  2. Окно «Новый проект» открывается на приложении Joomla. Вы заполняете то, что оно просит, и нажимаете «Создать проект»: Электронная почта, Имя пользователя, Пароль администратора.
  3. Через минуту-две Joomla работает по своему адресу с HTTPS. Секреты создаются случайно, а данные попадают в ночной бэкап.
  4. Это проект как любой другой: вы или ваш агент можете его изменить, откатить или восстановить.

Вопросы про Joomla

Joomla бесплатная?

Да. Joomla — бесплатное ПО с открытым кодом под лицензией GNU General Public License версии 2 или новее. Ее делают волонтеры, а управляет проектом некоммерческая организация Open Source Matters.

Joomla все еще поддерживается?

Да. Joomla 6.2 вышла 13 октября 2026 года, Joomla 6 получает исправления ошибок до 17 октября 2028 года и исправления безопасности до 16 октября 2029 года, а Joomla 6.3 запланирована на апрель 2027 года.

Как обновить Joomla?

Сначала сделайте бэкап, затем откройте «Система», выберите «Joomla» в блоке «Обновление» и нажмите «Обновить» или выполните php cli/joomla.php core:update в шелле сервиса joomla. Если включено «Автообновление» — а у нового сайта, до которого может достучаться сервис обновлений Joomla, оно включено, — Joomla сама ставит минорные и патч-релизы.

Как сделать многоязычный сайт на Joomla?

Хватит одного ядра: установите языки, опубликуйте для каждого язык контента, включите плагин «Система - Фильтр языка», создайте для каждого языка пункт меню главной страницы и свяжите каждый материал с его переводами на вкладке «Связи».

Почему Joomla требует пароль из 12 символов?

Новый сайт на Joomla требует пароли не короче 12 символов, в том числе у суперпользователя. Этот шаблон передает ваш пароль администратора установщику Joomla, а тот отклоняет более короткий: тогда сайт запустится, как только ADMIN_PASSWORD в .env станет длиннее.

Сколько памяти и диска нужно Joomla?

Joomla: небольшие требования — около 170 MB памяти вместе с MariaDB, а сайт растет вместе с изображениями и файлами, которые вы загружаете. На Pethost ему хватит тарифа Starter, и рядом останется место для других приложений.

Joomla: файл Docker Compose

Шаблон — это этот compose.yaml и переменные, которые пишутся в .env проекта при его создании. Pethost запускает файл так, как он написан.

Контейнеры: joomla (joomla:6-apache), db (mariadb:11.8).

Тома, в ночном бэкапе: joomla, db.

services:
  joomla:
    image: joomla:6-apache
    restart: unless-stopped
    depends_on:
      db:
        condition: service_healthy
    environment:
      JOOMLA_DB_HOST: db
      JOOMLA_DB_NAME: joomla
      JOOMLA_DB_USER: joomla
      JOOMLA_DB_PASSWORD: ${DB_PASSWORD}
      SITE_NAME: ${HOST}
      ADMIN_USERNAME: ${ADMIN_USERNAME}
      ADMIN_EMAIL: ${ADMIN_EMAIL}
      ADMIN_PASSWORD: ${ADMIN_PASSWORD}
    # A new Joomla opens its web installer to whoever comes first. So the image's entrypoint is
    # run first only to copy Joomla into the volume and make the database, Joomla's own CLI
    # installer then makes the site and its Super User from the fields, and Apache starts only
    # once the site is installed: a refusal (Joomla takes a password of 12 characters at least)
    # stops the start, says why in the logs, and is tried again at the next.
    #
    # PHP's own upload limit is 2 MB, too little for a photo, and the image has no variable for it.
    entrypoint:
      - sh
      - -c
      - |
        set -e
        printf 'upload_max_filesize = 64M\npost_max_size = 64M\n' > /usr/local/etc/php/conf.d/uploads.ini
        /entrypoint.sh apache2 -v > /dev/null
        if [ -e installation/joomla.php ]; then
          php installation/joomla.php install --no-interaction \
            --site-name="$$SITE_NAME" \
            --admin-user="$$ADMIN_USERNAME" \
            --admin-username="$$ADMIN_USERNAME" \
            --admin-password="$$ADMIN_PASSWORD" \
            --admin-email="$$ADMIN_EMAIL" \
            --db-type=mysqli \
            --db-host="$$JOOMLA_DB_HOST" \
            --db-user="$$JOOMLA_DB_USER" \
            --db-pass="$$JOOMLA_DB_PASSWORD" \
            --db-name="$$JOOMLA_DB_NAME" \
            --db-prefix=jos_ \
            --db-encryption=0
          rm -rf installation
          chown -R www-data:www-data .
          chmod 444 configuration.php
        fi
        exec /entrypoint.sh apache2-foreground
    volumes:
      - joomla:/var/www/html

  db:
    image: mariadb:11.8
    restart: unless-stopped
    environment:
      MARIADB_DATABASE: joomla
      MARIADB_USER: joomla
      MARIADB_PASSWORD: ${DB_PASSWORD}
      MARIADB_ROOT_PASSWORD: ${DB_ROOT_PASSWORD}
    volumes:
      - db:/var/lib/mysql
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 5s
      timeout: 5s
      retries: 20
      start_period: 30s

volumes:
  joomla:
  db:

Еще в категории «Сайты и магазины»