# حسابیکس - نرم‌افزار حسابداری متن‌باز

![Hesabix Logo](https://hesabix.ir/logo.png)

حسابیکس اولین نرم‌افزار حسابداری متن‌باز به زبان فارسی با رابط کاربری تحت وب است که به شما امکان مدیریت کامل امور مالی کسب و کارتان را می‌دهد.

## 📋 فهرست مطالب

- [معرفی](#معرفی)
- [ویژگی‌های کلیدی](#ویژگی‌های-کلیدی)
- [پیش‌نیازها](#پیش‌نیازها)
- [روش‌های نصب](#روش‌های-نصب)
  - [نصب خودکار در اوبونتو](#نصب-خودکار-در-اوبونتو)
  - [نصب دستی](#نصب-دستی)
  - [نصب با Docker](#نصب-با-docker)
- [پیکربندی](#پیکربندی)
  - [تنظیمات پایگاه داده](#تنظیمات-پایگاه-داده)
  - [تنظیمات ایمیل](#تنظیمات-ایمیل)
- [به‌روزرسانی](#به‌روزرسانی)
- [توسعه](#توسعه)
- [مشارکت](#مشارکت)
- [حمایت مالی](#حمایت-مالی)
- [لایسنس](#لایسنس)

## معرفی

حسابیکس یک راه‌حل جامع برای مدیریت امور مالی کسب و کارهای کوچک و متوسط است. این نرم‌افزار با رابط کاربری فارسی و امکانات کامل، به شما کمک می‌کند تا امور مالی خود را به راحتی مدیریت کنید.

**نسخه نمایشی:** [https://hesabix.ir](https://hesabix.ir)

## ویژگی‌های کلیدی

- ✅ رابط کاربری کاملاً فارسی
- ✅ پشتیبانی از چندین واحد پولی
- ✅ گزارش‌های مالی پیشرفته
- ✅ مدیریت موجودی کالا
- ✅ سیستم حقوق و دستمزد
- ✅ پشتیبانی از مالیات و عوارض
- ✅ امنیت بالا و پشتیبانی از چندین کاربر
- ✅ پشتیبانی از نسخه موبایل

## پیش‌نیازها

### سخت‌افزاری
- حداقل ۲ گیگابایت فضای خالی دیسک
- حداقل ۱ گیگابایت رم

### نرم‌افزاری
- وب سرور (Apache، NginX و...)
- پایگاه داده (MySQL، MariaDB، PostgreSQL)
- PHP نسخه ۸.۱ به بالا
- افزونه‌های PHP:
  - php-Intl
  - php-mbstring
  - php-http
  - php-raphf
  - php-zip
  - php-gd
- Composer
- Node.js و npm (برای توسعه رابط کاربری)

## روش‌های نصب

### نصب خودکار در اوبونتو

برای نصب سریع در سرورهای اوبونتو 24.04 به بالا:

```bash
cd /tmp && curl -sSL https://shell.hesabix.ir/installer.sh | tr -d '\r' > installer.sh && chmod +x installer.sh && sudo bash installer.sh
```

این اسکریپت به صورت خودکار:
- پیش‌نیازها را نصب می‌کند
- پایگاه داده را پیکربندی می‌کند
- حسابیکس را نصب و راه‌اندازی می‌کند
- تنظیمات امنیتی را اعمال می‌کند

### نصب دستی

برای نصب دستی حسابیکس، مراحل زیر را دنبال کنید:

1. **کپی پروژه:**
   - پروژه را در پوشه وب سرور کپی یا کلون کنید
   - اگر از کنترل پنل‌های اشتراکی مانند cPanel یا DirectAdmin استفاده می‌کنید، فایل‌ها را در پوشه اصلی کپی کنید

2. **ایجاد پایگاه داده:**
   - در سیستم مدیریت پایگاه داده خود (مانند phpMyAdmin) یک پایگاه داده جدید ایجاد کنید
   - نام کاربری و رمز عبور مناسب برای دسترسی به پایگاه داده تعیین کنید

3. **تنظیم فایل محیط:**
   - فایل `.env` را در پوشه اصلی پروژه ویرایش کنید
   - اطلاعات پایگاه داده را وارد کنید:
     ```env
     DATABASE_URL="mysql://user:password@localhost:3306/hesabix_db"
     ```

4. **نصب وابستگی‌ها:**
   ```bash
   composer install
   ```

5. **ایجاد فایل محیط محلی:**
   ```bash
   # برای محیط تولید
   composer dump-env prod
   
   # برای محیط توسعه
   composer dump-env dev
   ```

6. **راه‌اندازی پایگاه داده:**
   - وارد سیستم مدیریت پایگاه داده خود شوید
   - فایل `hesabixBackup/databaseFiles/hesabix-db-default.sql` را وارد کنید
   - به پوشه `hesabixCore` بروید و دستور زیر را اجرا کنید:
     ```bash
     php bin/console doctrine:schema:update --force --complete
     ```

7. **تست نصب:**
   - آدرس دامنه اصلی را در مرورگر باز کنید
   - باید صفحه اصلی API حسابیکس را مشاهده کنید

### نصب با Docker

1. مخزن را کلون کنید:
   ```bash
   git clone https://github.com/your-username/hesabix.git
   cd hesabix
   ```

2. فایل محیط را کپی و پیکربندی کنید:
   ```bash
   cp .env.example .env
   nano .env
   ```

3. اسکریپت نصب را اجرا کنید:
   ```bash
   ./docker/setup.sh
   ```

## پیکربندی

### تنظیمات پایگاه داده

فایل `.env` را ویرایش کنید و اطلاعات پایگاه داده خود را وارد کنید:

```env
DATABASE_URL="mysql://user:password@localhost:3306/hesabix_db"
```

### تنظیمات ایمیل

برای پیکربندی ارسال ایمیل، فایل `.env.local.php` را ویرایش کنید:

```php
'MAILER_DSN' => 'smtp://user:pass@smtp.example.com:port'
```

## به‌روزرسانی

برای به‌روزرسانی نرم‌افزار:

```bash
php bin/console hesabix:update
```

## توسعه

### راه‌اندازی محیط توسعه

```bash
npm install
npm run dev
```

### کامپایل برای تولید

```bash
npm run build-only
```

## مشارکت

ما از مشارکت شما استقبال می‌کنیم! برای مشارکت:

1. مخزن را فورک کنید
2. یک شاخه جدید ایجاد کنید
3. تغییرات خود را اعمال کنید
4. یک درخواست ادغام (Pull Request) ارسال کنید

## حمایت مالی

برای حمایت از توسعه حسابیکس:
[https://zarinp.al/hesabix.ir](https://zarinp.al/hesabix.ir)

## لایسنس

حسابیکس تحت مجوز GNU GPL v3 منتشر شده است. برای جزئیات بیشتر به فایل [LICENSE](LICENSE) مراجعه کنید.
