init commit
This commit is contained in:
121
.history/setup_20250505081728.sh
Normal file
121
.history/setup_20250505081728.sh
Normal file
@@ -0,0 +1,121 @@
|
||||
#!/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'
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Linktr Clone</title>
|
||||
</head>
|
||||
<body>
|
||||
<div id="root"></div>
|
||||
<script src="../src/index.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
EOF
|
||||
cat > src/index.js << 'EOF'
|
||||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
|
||||
ReactDOM.render(<h1>Linktr Clone</h1>, document.getElementById('root'));
|
||||
EOF
|
||||
|
||||
cd ..
|
||||
|
||||
echo "Структура проекта '${PROJECT_NAME}' создана успешно!"
|
||||
Reference in New Issue
Block a user