#!/usr/bin/env bash set -e # Переменные PROJECT_NAME="linktr_clone" BACKEND_DIR="backend" FRONTEND_DIR="frontend" APPS=("users" "links" "customization") # Создание корневой папки mkdir -p $PROJECT_NAME && cd $PROJECT_NAME # Инициализация Git git init cat > .gitignore << 'EOF' __pycache__/ *.pyc .env media/ node_modules/ dist/ EOF # Создание README и .env.example cat > README.md << 'EOF' # Клон Linktr.ee на Django Описание и инструкции по разработке. EOF cp /dev/null .env.example # Создание Makefile cat << 'EOF' > Makefile up: @docker-compose up -d --build down: @docker-compose down migrate: @docker-compose exec web python manage.py migrate test: @docker-compose exec web pytest --maxfail=1 --disable-warnings -q EOF # Создание docker-compose.yml и настройка cat > docker-compose.yml << 'EOF' version: '3.8' services: web: build: ./backend command: gunicorn config.wsgi:application --bind 0.0.0.0:8000 volumes: - ./backend:/app - media_volume:/app/media env_file: - .env.example ports: - "8000:8000" depends_on: - db db: image: postgres:14 volumes: - postgres_data:/var/lib/postgresql/data/ env_file: - .env.example volumes: postgres_data: media_volume: EOF # Backend: Django-проект mkdir -p $BACKEND_DIR && cd $BACKEND_DIR python -m venv venv source venv/bin/activate pip install Django psycopg2-binary djangorestframework pillow django-tailwind whitenoise gunicorn django-admin startproject config . # Создание приложений for app in "${APPS[@]}"; do python manage.py startapp $app done # Создание requirements.txt pip freeze > requirements.txt deactivate cd .. # Frontend: инициализация NPM-проекта mkdir -p $FRONTEND_DIR && cd $FRONTEND_DIR npm init -y npm install axios react react-dom mkdir public src src/components src/pages src/services src/styles cat > public/index.html << 'EOF' Linktr Clone
EOF cat > src/index.js << 'EOF' import React from 'react'; import ReactDOM from 'react-dom'; ReactDOM.render(

Linktr Clone

, document.getElementById('root')); EOF cd .. echo "Структура проекта '${PROJECT_NAME}' создана успешно!"