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

14 KiB
Raw Permalink Blame History

🐱 CatLink - Персональные страницы ссылок

License: MITLicense: MIT

DockerDocker

Next.jsNext.js

DjangoDjango

CatLink - современная платформа для создания красивых персональных страниц со всеми важными ссылками в одном месте. Альтернатива Linktree с открытым исходным кодом.

🚀 Быстрый старт

Мастер-развертывание (Рекомендуется)

Автоматическое развертывание с настройкой SSL, безопасности и всех компонентов:

# 1. Проверка готовности системы
make pre-deploy-check

# 2. Мастер-развертывание
make deploy

Что включает:

  • Автоматическая генерация .env с безопасными ключами
  • Настройка PostgreSQL с полной изоляцией
  • Let's Encrypt SSL сертификаты
  • Nginx с security headers
  • Автоматические backup
  • Мониторинг и health checks

📖 Подробное руководство: DEPLOYMENT.md

Для разработки

# Клонирование
git clone https://github.com/smartsoltech/links.git
cd links

# Установка и запуск
make install
make dev

Возможности

  • 🎨 Множество макетов: список, сетка, компактная сетка, журнальная верстка

  • 🎭 Персонализация: настройка цветов, фонов, иконок

  • 📱 Адаптивный дизайн: отлично работает на всех устройствах

  • 🔐 Система аутентификации: регистрация и управление профилем

  • 📊 Группировка ссылок: организация ссылок по категориям

  • 🌐 SEO-оптимизация: дружественные URL и метатеги

  • 🚀 Высокая производительность: быстрая загрузка и отзывчивость

  • 🐳 Docker Ready: простой деплой с помощью контейнеров

🚀 Быстрый старт

Требования

  • Docker и Docker Compose
  • Make (для удобства)
  • Git

Установка

  1. Клонируйте репозиторий

    
    git clone https://github.com/smartsoltech/links.git
    cd links
    
  2. Запустите установку2. Запустите установку

    bash bash

    make install make install

  3. Откройте в браузере3. Откройте в браузере

Альтернативная установка (без Make)


# Копируйте пример конфигурации

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 для упрощения разработки:

bashbash

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 # Этот файл




## 🎯 Использование```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


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:

🚀 Деплой в продакшен


### Простой деплой# 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

📖 Подробное руководство по деплою

Подробнее в 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 для подробностей.

🆘 Поддержка

Часто задаваемые вопросы

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

Получить помощь

🙏 Благодарности

  • Next.js - за потрясающий React фреймворк
  • Django - за надежный backend фреймворк
  • Bootstrap - за отличные компоненты UI
  • Сообществу open source за вдохновение

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

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