#!/usr/bin/env bash set -e # Запустите этот скрипт из корня вашего репозитория (~/links) # Переменные BACKEND_DIR="backend" FRONTEND_DIR="frontend" APPS=("users" "links" "customization") # 1. Создаем .gitignore и README cat > .gitignore << 'EOF' __pycache__/ *.pyc .env media/ node_modules/ dist/ .venv/ EOF if [ ! -f README.md ]; then echo "# Клон Linktr.ee на Django" > README.md fi echo "Настраиваем backend-проект" # 2. Создаем backend-проект mkdir -p $BACKEND_DIR && cd $BACKEND_DIR # Виртуальное окружение python3 -m venv .venv source .venv/bin/activate # Устанавливаем зависимости pip install Django psycopg2-binary djangorestframework pillow django-tailwind whitenoise gunicorn # Инициализируем Django-проект (если не создан) if [ ! -f config/manage.py ]; then django-admin startproject config . fi # Создаем приложения, если их нет for app in "${APPS[@]}"; do if [ ! -d "$app" ]; then python manage.py startapp $app fi done # Генерируем requirements.txt pip freeze > requirements.txt deactivate cd .. # 3. Dockerfile для backend cat > $BACKEND_DIR/Dockerfile << 'EOF' FROM python:3.10-slim WORKDIR /app COPY requirements.txt . RUN pip install --no-cache-dir -r requirements.txt COPY . . CMD ["gunicorn", "config.wsgi:application", "--bind", "0.0.0.0:8000"] EOF echo "Создаем docker-compose.yml" # 4. docker-compose.yml в корне cat > docker-compose.yml << 'EOF' version: '3.8' services: web: build: ./backend volumes: - ./backend:/app - media_volume:/app/media env_file: - .env ports: - "8000:8000" depends_on: - db db: image: postgres:14 volumes: - postgres_data:/var/lib/postgresql/data/ env_file: - .env volumes: postgres_data: media_volume: EOF echo "Настраиваем frontend-проект" # 5. Frontend: инициализация mkdir -p $FRONTEND_DIR && cd $FRONTEND_DIR if [ ! -f package.json ]; then npm init -y npm install axios react react-dom fi mkdir -p public src/components src/pages src/services src/styles # public/index.html cat > public/index.html << 'EOF' Linktr Clone
EOF # src/index.js cat > src/index.js << 'EOF' import React from 'react'; import ReactDOM from 'react-dom'; ReactDOM.render(

Linktr Clone

, document.getElementById('root')); EOF cd .. echo "Проект настроен успешно!"