Files
links/README.md
Andrey K. Choi e1bb1ab90a
Some checks failed
continuous-integration/drone/push Build is failing
🚀 Добавлен мастер-скрипт развертывания с полной автоматизацией
 Новые возможности:
- Мастер-развертывание с автоматической настройкой всех компонентов
- Генерация безопасных .env файлов с криптографически стойкими ключами
- Полная изоляция и защита PostgreSQL
- Автоматическая настройка Let's Encrypt SSL
- Система backup и мониторинга
- Comprehensive security audit для БД

🔧 Новые команды:
- make deploy - мастер-развертывание
- make pre-deploy-check - проверка готовности системы
- make security-audit - аудит безопасности PostgreSQL
- make ssl-setup - интерактивная настройка SSL
- make update-production-security - безопасное обновление в продакшене

📁 Новые файлы:
- scripts/master-deploy.sh - основной скрипт развертывания
- scripts/pre-deploy-check.sh - проверка системы
- scripts/ssl-manager.sh - управление SSL сертификатами
- scripts/audit-db-security.sh - аудит безопасности БД
- DEPLOYMENT.md - полное руководство по развертыванию
- COMMANDS.md - справочник команд
- SECURITY.md - документация по безопасности

🔒 Улучшения безопасности:
- Изоляция PostgreSQL в Docker сети (без внешних портов)
- SCRAM-SHA-256 аутентификация
- TLSv1.3 для БД соединений
- Удаление прав суперпользователя у приложения
- Детальное логирование всех операций БД
- Security headers в nginx
- Автообновление SSL сертификатов
2025-11-04 14:07:58 +09:00

429 lines
14 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.

# 🐱 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 с открытым исходным кодом.
## 🚀 Быстрый старт
### Мастер-развертывание (Рекомендуется)
Автоматическое развертывание с настройкой SSL, безопасности и всех компонентов:
```bash
# 1. Проверка готовности системы
make pre-deploy-check
# 2. Мастер-развертывание
make deploy
```
**Что включает:**
- ✅ Автоматическая генерация .env с безопасными ключами
- ✅ Настройка PostgreSQL с полной изоляцией
- ✅ Let's Encrypt SSL сертификаты
- ✅ Nginx с security headers
- ✅ Автоматические backup
- ✅ Мониторинг и health checks
📖 **Подробное руководство:** [DEPLOYMENT.md](DEPLOYMENT.md)
### Для разработки
```bash
# Клонирование
git clone https://github.com/smartsoltech/links.git
cd links
# Установка и запуск
make install
make dev
```
## ✨ Возможности
- 🎨 **Множество макетов**: список, сетка, компактная сетка, журнальная верстка
- 🎭 **Персонализация**: настройка цветов, фонов, иконок
- 📱 **Адаптивный дизайн**: отлично работает на всех устройствах
- 🔐 **Система аутентификации**: регистрация и управление профилем
- 📊 **Группировка ссылок**: организация ссылок по категориям
- 🌐 **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 <url>
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 за вдохновение
---
<div align="center">
<p>Сделано с ❤️ командой <a href="https://github.com/smartsoltech">SmartSolTech</a></p>
<p>
<a href="#-catlink---персональные-страницы-ссылок">⬆️ Наверх</a>
<a href="./docs/MAKEFILE.md">📚 Документация</a>
<a href="https://github.com/smartsoltech/links/issues">🐛 Issues</a>
<a href="#-вклад-в-проект">🤝 Contributing</a>
</p>
</div>