# Daneshyar Apache Deployment Commands

## Server

```text
Host: 91.107.131.171
SSH port: 2435
User: root
App dir: /var/www/daneshyar
Apache DocumentRoot: /var/www/daneshyar/public
```

پسورد را داخل فایل یا command ذخیره نکن. دستی وارد کن یا SSH key بساز.

## Connect

```bash
ssh -p 2435 root@91.107.131.171
```

## Install Apache/PHP/Composer/Node on server

روی سرور:

```bash
bash scripts/server_setup_ubuntu_apache.sh
```

اگر پروژه هنوز روی سرور نیست، محتوای `scripts/server_setup_ubuntu_apache.sh` را روی سرور کپی کن و اجرا کن.

## Local build

```bash
python3 scripts/build.py --production --ready-check --package
```

اگر local PHP/Composer نداری:

```bash
python3 scripts/build.py --production --skip-composer --ready-check --package
```

Vite build داخل `public/build` ساخته می‌شود. وقتی Apache به `public` اشاره کند، همین فایل‌ها load می‌شوند.

## Upload with rsync

```bash
rsync -az --delete \
  --exclude='.env' \
  --exclude='node_modules' \
  --exclude='.git' \
  --exclude='storage/logs/*' \
  -e "ssh -p 2435" \
  ./ root@91.107.131.171:/var/www/daneshyar/
```

## After upload on server

```bash
cd /var/www/daneshyar
composer install --no-dev --optimize-autoloader
npm ci
npm run build
php artisan storage:link
php artisan config:cache
php artisan route:cache
php artisan view:cache
chown -R www-data:www-data storage bootstrap/cache public/build
systemctl reload apache2
```

## Production `.env`

```bash
cp .env.example .env
php artisan key:generate
nano .env
```

Important production values:

```env
APP_ENV=production
APP_DEBUG=false
APP_URL=http://91.107.131.171
```

## Test after deploy

```bash
curl -I http://91.107.131.171/
curl -I http://91.107.131.171/login
python3 scripts/apache_ready_check.py
```

## SMS provider

فعلا SMS provider وصل نمی‌شود. ساختار wallet/log/approval آماده است، اما ارسال واقعی بعدا با مستندات provider انجام می‌شود.
