Link Cutter — лёгкий и расширяемый сервис для создания коротких ссылок с базовой аналитикой.
Реализован на FastAPI; хранит ссылки в PostgreSQL и использует Redis для кеша и rate‑limiting. Предназначен как MVP или основа для дальнейшего развития (кастомные домены, платные планы, webhooks, QR‑коды).
- Создание коротких ссылок (авто‑код Base62 и кастомные коды)
- Редирект с 301 и кэширование в Redis
- Сбор базовой аналитики: клики, device/platform/browser (парсинг User‑Agent), referrer, гео (по IP)
- Поддержка пользователей, API‑ключей
- Защита: rate limiting, проверка целевых URL (блокировка локальных/опасных адресов)
- Python 3.12
- FastAPI (ASGI)
- PostgreSQL (SQLAlchemy / Alembic)
- Pydentic
- Uvicorn (WSGI server)
- Redis (кеш, rate limit)
- Loguru (логирование)
- Docker / docker-compose
docker compose -f docker-compose.yml up --build -d