# 🐱 CatLink - Персональные страницы ссылок [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Docker](https://img.shields.io/badge/Docker-Ready-blue)](https://docker.com)[![Docker](https://img.shields.io/badge/Docker-Ready-blue)](https://docker.com) [![Next.js](https://img.shields.io/badge/Next.js-15-black)](https://nextjs.org)[![Next.js](https://img.shields.io/badge/Next.js-15-black)](https://nextjs.org) [![Django](https://img.shields.io/badge/Django-5.2-green)](https://djangoproject.com)[![Django](https://img.shields.io/badge/Django-5.2-green)](https://djangoproject.com) **CatLink** - современная платформа для создания красивых персональных страниц со всеми важными ссылками в одном месте. Альтернатива Linktree с открытым исходным кодом. ## ✨ Возможности - 🎨 **Множество макетов**: список, сетка, компактная сетка, журнальная верстка - 🎭 **Персонализация**: настройка цветов, фонов, иконок - 📱 **Адаптивный дизайн**: отлично работает на всех устройствах - 🔐 **Система аутентификации**: регистрация и управление профилем - 📊 **Группировка ссылок**: организация ссылок по категориям - 🌐 **SEO-оптимизация**: дружественные URL и метатеги - 🚀 **Высокая производительность**: быстрая загрузка и отзывчивость - 🐳 **Docker Ready**: простой деплой с помощью контейнеров ## 🚀 Быстрый старт ### Требования - Docker и Docker Compose - Make (для удобства) - Git ### Установка 1. **Клонируйте репозиторий** ```bash git clone https://github.com/smartsoltech/links.git cd links ``` 2. **Запустите установку**2. **Запустите установку** ```bash ```bash make install make install ``` ``` 3. **Откройте в браузере**3. **Откройте в браузере** - Frontend: http://localhost:3000 - Frontend: http://localhost:3000 - Backend API: http://localhost:8000 - Backend API: http://localhost:8000 - Django Admin: http://localhost:8000/admin - Django Admin: http://localhost:8000/admin ### Альтернативная установка (без Make) ```bash # Копируйте пример конфигурации cp .env.example .en # Отредактируйте .env файл nano .env # Запустите контейнеры docker-compose up -d --build # Примените миграции docker-compose exec web python manage.py migrate # Создайте суперпользователя docker-compose exec web python manage.py createsuperuser ``` ## 📋 Управление с помощью Make Проект включает мощный Makefile для упрощения разработки: ```bash```bash make help # Показать все доступные команды make dev-bg # Запуск для разработки в фоне make status # Проверить статус сервисов make health # Проверить работоспособность make logs # Просмотр логов make migrate-full # Выполнить миграции и собрать статику make backup # Создать бэкап базы данных ``` 📖 **[Полное руководство по Makefile](./docs/MAKEFILE.md)** ## 🏗️ Архитектура ### Технологический стек - **Frontend**: Next.js 15, React, TypeScript, Bootstrap 5 - **Backend**: Django 5.2, Django REST Framework**Backend:** - **База данных**: PostgreSQL- Django 5.2 + Django REST Framework - **Контейнеризация**: Docker, Docker Compose- PostgreSQL - **Веб-сервер**: Nginx (для продакшена)- JWT Authentication - Django CORS Headers ### Структура проекта- Gunicorn ``` catlink/**Frontend:** ├── frontend/linktree-frontend/ # Next.js приложение- Next.js 15.3.1 ├── backend/ # Django API- React 19 ├── scripts/ # Скрипты автоматизации- TypeScript ├── docs/ # Документация- Tailwind CSS ├── storage/ # Загруженные файлы- Axios для API запросов ├── docker-compose.yml # Конфигурация Docker ├── Makefile # Команды автоматизации## Быстрый старт └── README.md # Этот файл ```### 1. Подготовка окружения ## 🎯 Использование```bash # Клонируйте репозиторий ### Для пользователейgit clone cd links 1. **Регистрация**: Создайте аккаунт на главной странице 2. **Настройка профиля**: Загрузите аватар, укажите информацию# Скопируйте переменные окружения 3. **Создание групп**: Организуйте ссылки по категориямcp .env.example .env 4. **Добавление ссылок**: Добавьте свои социальные сети и сайты``` 5. **Персонализация**: Выберите макет и цветовую схему 6. **Публикация**: Поделитесь своей персональной ссылкой### 2. Запуск проекта ### Для разработчиков```bash # Запуск всех сервисов Подробные инструкции по разработке и развертыванию:make up - 📚 **[Руководство по Makefile](./docs/MAKEFILE.md)** - Все команды разработки# Применение миграций базы данных - 🚀 **[Руководство по деплою](./docs/DEPLOYMENT.md)** - Развертывание в продакшенеmake migrate - 🔧 **[Исправления и патчи](./docs/FIXES.md)** - Известные проблемы и решения``` ## 🛠️ Разработка### 3. Доступ к приложению ### Режим разработки- **Frontend**: http://localhost:3000 ```bash- **Backend API**: http://localhost:8000/api/ # Запуск для разработки- **Django Admin**: http://localhost:8000/admin/ make dev-bg ## Команды # Просмотр логов make logs-web # Backend- `make up` - Запуск всех сервисов make logs-frontend # Frontend- `make down` - Остановка всех сервисов - `make migrate` - Применение миграций # Работа с базой данных- `make test` - Запуск тестов make migrate # Применить миграции make shell # Django shell## Структура проекта make shell-db # Подключение к БД `````` ├── backend/ # Django приложение ### Тестирование│ ├── api/ # API endpoints ```bash│ ├── users/ # Пользователи make test # Запуск тестов│ ├── links/ # Ссылки и группы make lint # Проверка кода│ ├── customization/ # Настройки дизайна make format # Форматирование кода│ └── backend/ # Настройки Django ```├── frontend/linktree-frontend/ # Next.js приложение ├── docker-compose.yml # Docker Compose конфигурация ### Работа с данными├── .env.example # Пример переменных окружения ```bash└── DEPLOYMENT.md # Подробные инструкции по развертыванию make backup # Создать бэкап``` make restore # Восстановить из бэкапа make clean # Очистить систему## Переменные окружения ``` Основные переменные в `.env`: ## 🚀 Деплой в продакшен ```env ### Простой деплой# Django ```bashDJANGO_SECRET_KEY=your-secret-key make deployDJANGO_DEBUG=True ```DJANGO_ALLOWED_HOSTS=127.0.0.1,localhost ### С SSL сертификатом# PostgreSQL ```bashDATABASE_NAME=links_db # Настройка SSLDATABASE_USER=links_user make ssl-host-setup DOMAIN=catlinks.kr EMAIL=admin@catlinks.krDATABASE_PASSWORD=links_password DATABASE_HOST=db # Или ручная настройкаDATABASE_PORT=5432 make ssl-setup make ssl-cert# Frontend ```NEXT_PUBLIC_API_URL=http://localhost:8000 ``` 📖 **[Подробное руководство по деплою](./docs/DEPLOYMENT.md)** Подробнее в `DEPLOYMENT.md`. ## 🤝 Вклад в проект ## Особенности Мы приветствуем вклад в развитие проекта! - 🔐 JWT аутентификация ### Как принять участие:- 👤 Кастомизация профилей 1. Форкните репозиторий- 📱 Адаптивный дизайн 2. Создайте ветку для новой функции: `git checkout -b feature/amazing-feature`- 🔗 Управление ссылками и группами 3. Зафиксируйте изменения: `git commit -m 'Add amazing feature'`- 🎨 Настройка внешнего вида 4. Отправьте в ветку: `git push origin feature/amazing-feature`- 📊 API для всех операций 5. Откройте Pull Request ## Разработка ### Правила разработки: - Следуйте существующему стилю кодаПроект настроен для разработки в Docker-контейнерах с горячей перезагрузкой. - Добавляйте тесты для новых функций - Обновляйте документацию при необходимостиДля разработки без Docker смотрите инструкции в `DEPLOYMENT.md`. - Проверяйте код: `make lint` ## 📄 Лицензия Этот проект распространяется под лицензией MIT. См. файл [LICENSE](LICENSE) для подробностей. ## 🆘 Поддержка ### Часто задаваемые вопросы **Q: Как изменить порт приложения?** A: Отредактируйте `.env` файл и измените переменные `FRONTEND_PORT` и `BACKEND_PORT`. **Q: Как добавить собственные домены?** A: Используйте `make ssl-host-setup DOMAIN=yourdomain.com EMAIL=your@email.com` **Q: Приложение не запускается** A: Проверьте статус: `make health` и логи: `make logs` ### Получить помощь - 📖 Проверьте [документацию](./docs/) - 🐛 [Создайте issue](https://github.com/smartsoltech/links/issues) ## 🙏 Благодарности - [Next.js](https://nextjs.org) - за потрясающий React фреймворк - [Django](https://djangoproject.com) - за надежный backend фреймворк - [Bootstrap](https://getbootstrap.com) - за отличные компоненты UI - Сообществу open source за вдохновение ---

Сделано с ❤️ командой SmartSolTech

⬆️ Наверх📚 Документация🐛 Issues🤝 Contributing