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 import /etc/apache2/httpd.conf
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 для статических сайтов
  • импорт существующего Apache-конфига для миграции без ручного переноса

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

  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.

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

Для бесшовного старта можно импортировать существующий конфиг:

apache-aui import /etc/apache2/httpd.conf

CLI распознает:

  • DocumentRoot-сайты как static
  • ProxyPass/ProxyPassReverse-сайты как proxy
  • SPA fallback rules
  • ServerAlias
  • SSL-блоки с ручными сертификатами и Let's Encrypt
  • HTTP to HTTPS redirect

После импорта сайты сохраняются в data/sites.json, и ими уже можно управлять через меню или повторный render.

Пример миграции

Если у вас есть смесь статических сайтов, SPA и reverse proxy, типовой поток будет таким:

  1. Выполняете apache-aui import /etc/apache2/httpd.conf.
  2. Проверяете распознанные сайты через apache-aui list.
  3. При необходимости корректируете детали через apache-aui menu.
  4. Генерируете управляемый конфиг через apache-aui render.

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

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.1.tar.gz (13.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.1-py3-none-any.whl (13.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: apache_aui-0.1.1.tar.gz
  • Upload date:
  • Size: 13.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.1.tar.gz
Algorithm Hash digest
SHA256 bcd786316e1c661bea3a844f1031e26d09ed1660327f02631ba80608a1523ed9
MD5 7e1fb35b53c2a4198059f249616676ac
BLAKE2b-256 9690e20a54a1d71bd8b742c283b90354b55b8187570b78b4a55cfb14fe6d719c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: apache_aui-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 13.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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 8c4a4e495bf805d01085f117e30220a32ca2f58e2db6d22b541d06d8fb4321b3
MD5 befc049ac8820fc5b4fb5735ab02d8cf
BLAKE2b-256 d66ed6ca49d176124c4c27b8dbb6d8d49108830ccc9642bf15ce5ed669cb168d

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