Files
links/README.md
Andrey K. Choi 2e535513b5 + Приведены все функции приложения в рабочий вид
+ Наведен порядок в файлах проекта
+ Наведен порядок в документации
+ Настроены скрипты установки, развертки и так далее, расширен MakeFile
2025-11-02 06:09:55 +09:00

15 KiB
Raw Blame History

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

License: MITLicense: MIT

DockerDocker

Next.jsNext.js

DjangoDjango

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

Возможности## Возможности

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

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

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

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

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

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

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

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

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

Требования### Требования

  • Docker и Docker Compose- Docker и Docker Compose

  • Make (для удобства)- Make (для удобства)

  • Git- Git

Установка### Установка

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

    bash bash

    git clone https://github.com/smartsoltech/links.git git clone https://github.com/smartsoltech/links.git

    cd links cd links

  2. Запустите установку2. Запустите установку

    bash bash

    make install make install

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

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

bashbash

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

cp .env.example .envcp .env.example .env

Отредактируйте .env файл# Отредактируйте .env файл

nano .envnano .env

Запустите контейнеры# Запустите контейнеры

docker-compose up -d --builddocker-compose up -d --build

Примените миграции# Примените миграции

docker-compose exec web python manage.py migratedocker-compose exec web python manage.py migrate

Создайте суперпользователя# Создайте суперпользователя

docker-compose exec web python manage.py createsuperuserdocker-compose exec web python manage.py createsuperuser




## 📋 Управление с помощью Make## 📋 Управление с помощью Make



Проект включает мощный Makefile для упрощения разработки:Проект включает мощный Makefile для упрощения разработки:



```bash```bash

make help              # Показать все доступные командыmake help              # Показать все доступные команды

make dev-bg           # Запуск для разработки в фонеmake dev-bg           # Запуск для разработки в фоне

make status           # Проверить статус сервисовmake status           # Проверить статус сервисов

make health           # Проверить работоспособностьmake health           # Проверить работоспособность

make logs             # Просмотр логовmake logs             # Просмотр логов

make migrate-full     # Выполнить миграции и собрать статикуmake migrate-full     # Выполнить миграции и собрать статику

make backup           # Создать бэкап базы данныхmake backup           # Создать бэкап базы данных

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

🏗️ Архитектура## 🏗️ Архитектура

Технологический стек### Технологический стек

  • Frontend: Next.js 15, React, TypeScript, Bootstrap 5

  • Backend: Django 5.2, Django REST FrameworkBackend:

  • База данных: 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


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