Metadata-Version: 2.4
Name: apache-aui
Version: 0.1.0
Summary: Interactive CLI for managing Apache virtual hosts, static sites, proxies, and TLS settings.
Author: Apache AUI contributors
License-Expression: MIT
Project-URL: Homepage, https://github.com/drGOD/apache-aui
Project-URL: Repository, https://github.com/drGOD/apache-aui
Project-URL: Issues, https://github.com/drGOD/apache-aui/issues
Keywords: apache,cli,virtualhost,reverse-proxy,ssl,letsencrypt
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: System Administrators
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: Proxy Servers
Classifier: Topic :: System :: Installation/Setup
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: build>=1.2.2; extra == "dev"
Requires-Dist: twine>=6.1.0; extra == "dev"
Dynamic: license-file

# Apache AUI

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

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

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

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

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

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

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

## Команды

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

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

```bash
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.

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

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

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

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

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

```bash
python -m twine upload dist/*
```

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