Skip to main content

Interactive CLI for managing Apache virtual hosts, static sites, proxies, and TLS settings.

Project description

Apache AUI

Небольшое CLI-приложение для управления Apache VirtualHost-конфигурацией:

  • статические сайты с DocumentRoot
  • SPA/static fallback rewrite rules
  • reverse proxy сайты
  • SSL через Let's Encrypt или вручную заданные сертификаты
  • интерактивное создание, редактирование и удаление сайтов

Статус проекта

Проект готов к публикации как публичный Git-репозиторий и пакет на PyPI.

Быстрый старт

python3 -m venv .venv
source .venv/bin/activate
pip install -e .
apache-aui menu

По умолчанию приложение хранит состояние в data/sites.json, а итоговый Apache-конфиг пишет в generated/apache/sites.conf.

Команды

apache-aui menu
apache-aui list
apache-aui render
apache-aui certbot my-site
apache-aui certbot my-site --run

Установка из PyPI

pip install apache-aui

Что генерируется

  • *:80 vhost для каждого сайта
  • *:443 vhost, если включен SSL
  • redirect с HTTP на HTTPS, если это включено
  • ProxyPass и ProxyPassReverse для proxy-сайтов
  • SPA rewrite rules для статических сайтов

Пример сценария

  1. Создаете сайт типа static или proxy через apache-aui menu.
  2. Включаете SSL в пункте Configure certificate.
  3. Если выбран letsencrypt, CLI сразу показывает команду certbot.
  4. Выполняете apache-aui render.
  5. Копируете содержимое generated/apache/sites.conf в ваш Apache include-файл и перезагружаете Apache.

Миграция с текущего конфига

Для вашего примера конфигов это будет выглядеть так:

  • ayusa.ru как static сайт с DocumentRoot=/var/www/ayusa и включенным SPA fallback
  • frbu.press, demo.tuda.travel, tuda.travel как обычные static
  • gl.cleverscience.tech и skolcabot.bublichki.ru как proxy сайты с целями http://localhost:8000/ и http://localhost:3000/

Приложение пока не парсит существующий Apache-конфиг автоматически, но уже позволяет быстро занести эти сайты в интерактивном режиме и дальше держать их в управляемом JSON.

Публикация пакета

python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
python -m build
python -m twine check dist/*

Для загрузки на TestPyPI:

python -m twine upload --repository testpypi dist/*

Для загрузки на PyPI:

python -m twine upload dist/*

Если публикуете через GitHub Actions, в репозитории уже подготовлены workflow для CI и релиза.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

apache_aui-0.1.0.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apache_aui-0.1.0-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file apache_aui-0.1.0.tar.gz.

File metadata

  • Download URL: apache_aui-0.1.0.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for apache_aui-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ee892c2dfc142e74be9fc63d5ce54f27c16c94c39f66af6a930083d3b8f319ef
MD5 3222f5fbc524b2f740c79e92ae7752eb
BLAKE2b-256 ebd96dc210392f6a6d3b897f582e80b825796045bb9eebc24181d79f108857e1

See more details on using hashes here.

File details

Details for the file apache_aui-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: apache_aui-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for apache_aui-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9e0df3b913bca9fa0bc75ce1dd85e1e52913d57f91b9382787e177887af135ec
MD5 35b0a5ce8dab57e9f92b17af6b0073cb
BLAKE2b-256 a84f6f08b0d18528e1660bc4a0df7eff7b7170e6f9ab0c7c847521deb6e5b0d5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page