Files
ForME/README.md

102 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# ForMe — мини CMS на Flask (SQLite)
Небольшое приложение для публикации HTMLстраниц по UUID.
Возможности
- Авторизация администратора (логин/пароль из переменных окружения).
- Публикация HTML со свободной разметкой; генерация ссылки `/p/<uuid>`.
- Редактирование и удаление опубликованных страниц в админке.
- На опубликованных страницах у авторизованных отображается плавающая кнопка “Админка”.
- Водяной знак “Made by Ruslan” в левом верхнем углу опубликованных страниц.
Важно: функционал экспорта в PDF/Word удалён — код и зависимости очищены.
## Локальный запуск
1) Создать и активировать виртуальное окружение (Windows PowerShell):
```powershell
python -m venv .venv
.venv\Scripts\Activate.ps1
```
2) Установить зависимости:
```powershell
pip install -r requirements.txt
```
3) (Опционально) Настроить переменные окружения:
```powershell
$env:SECRET_KEY = "your-strong-secret"
$env:ADMIN_USERNAME = "ruslan"
$env:ADMIN_PASSWORD = "utOgbZ09ruslan"
# путь для БД по умолчанию: ./app.db
```
4) Запустить приложение:
```powershell
python app.py
```
5) Открыть http://localhost:5000
## Маршруты
- `/login` — вход
- `/admin` — панель публикации и список страниц (только для авторизованных)
- `/p/<uuid>` — просмотр опубликованной страницы
- `/` — редиректит на `/login` или `/admin`
## Запуск в Docker
В проекте есть `Dockerfile` (gunicorn) и `docker-compose.yml` с томом для БД.
Вариант A. Docker (без compose)
```bash
docker build -t forme .
docker run --name forme-web -p 5000:5000 \
-e SECRET_KEY=prod-secret \
-e ADMIN_USERNAME=ruslan \
-e ADMIN_PASSWORD=utOgbZ09ruslan \
-e DATABASE=/data/app.db \
-v forme_appdb:/data \
-d forme
```
Вариант B. Docker Compose
```bash
docker compose build
docker compose up -d
```
По умолчанию:
- Приложение доступно на `http://localhost:5000`
- Переменные окружения можно переопределить через `.env`
- База хранится в томе `appdb` по пути контейнера `/data/app.db`
## Структура проекта
```
app.py # точка входа
app/
__init__.py # create_app + регистрация блюпринтов
db.py # инициализация/доступ к SQLite
auth.py # логин/логаут и context processor
admin.py # админка: создать/редактировать/удалить
pages.py # публичные страницы / и /p/<uuid>
templates/
base.html, login.html, admin.html, edit.html
```
## Заметки по продакшену
- Обязательно задайте `SECRET_KEY` через переменные окружения.
- Смените дефолтные `ADMIN_USERNAME/ADMIN_PASSWORD`.
- Вынесите БД в том/персистентный диск.