f4e1bc8a9543e91eac54ff8bd5fcfe01f090b00a
ForMe — мини CMS на Flask (SQLite)
Небольшое приложение для публикации HTML‑страниц по UUID.
Возможности
- Авторизация администратора (логин/пароль из переменных окружения).
- Публикация HTML со свободной разметкой; генерация ссылки
/p/<uuid>. - Редактирование и удаление опубликованных страниц в админке.
- На опубликованных страницах у авторизованных отображается плавающая кнопка “Админка”.
- Водяной знак “Made by Ruslan” в левом верхнем углу опубликованных страниц.
Важно: функционал экспорта в PDF/Word удалён — код и зависимости очищены.
Локальный запуск
- Создать и активировать виртуальное окружение (Windows PowerShell):
python -m venv .venv
.venv\Scripts\Activate.ps1
- Установить зависимости:
pip install -r requirements.txt
- (Опционально) Настроить переменные окружения:
$env:SECRET_KEY = "your-strong-secret"
$env:ADMIN_USERNAME = "ruslan"
$env:ADMIN_PASSWORD = "utOgbZ09ruslan"
# путь для БД по умолчанию: ./app.db
- Запустить приложение:
python app.py
- Открыть http://localhost:5000
Маршруты
/login— вход/admin— панель публикации и список страниц (только для авторизованных)/p/<uuid>— просмотр опубликованной страницы/— редиректит на/loginили/admin
Запуск в Docker
В проекте есть Dockerfile (gunicorn) и docker-compose.yml с томом для БД.
Вариант A. Docker (без compose)
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
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. - Вынесите БД в том/персистентный диск.
Description
Languages
HTML
51.2%
Python
46.9%
Dockerfile
1.9%