FreeAmir

راهنمای نصب

فهرست مطالب

  1. محیط عملیاتی — Docker Compose (پیشنهادی)
  2. همه-در-یک — دستور تکی Docker (فقط برای آزمایش)
  3. نصب استاندارد — PHP + MariaDB

روش ۱: محیط عملیاتی — Docker Compose (پیشنهادی)

از ایمیج‌های از پیش ساخته‌شده در GitHub Container Registry استفاده می‌کند. نیازی به کد منبع یا ابزارهای Build نیست — فقط Docker و یک فایل .env کافی است.

پیش‌نیازها

مراحل

۱. دانلود فایل Docker Compose و متغیرهای محیطی:

mkdir freeamir && cd freeamir
curl -O https://raw.githubusercontent.com/Jooyeshgar/FreeAmir/main/docker/production/docker-compose.prebuilt.yml
curl -O https://raw.githubusercontent.com/Jooyeshgar/FreeAmir/main/docker/production/.env.example
cp docker-compose.prebuilt.yml docker-compose.yml
cp .env.example .env

۲. ویرایش فایل .env و تنظیم رمزهای عبور و آدرس:

متغیر توضیح مقدار پیش‌فرض
APP_URL آدرس عمومی برنامه http://localhost
APP_PORT پورت میزبان برای نمایش برنامه 80
DB_PASSWORD رمز عبور کاربر پایگاه داده MariaDB change_me_strong_password
DB_ROOT_PASSWORD رمز عبور root در MariaDB change_me_root_password
DB_DATABASE نام پایگاه داده freeamir
DB_USERNAME نام کاربری پایگاه داده freeamir
PMA_PORT پورت میزبان phpMyAdmin (اختیاری) 8080

۳. دریافت ایمیج‌ها و راه‌اندازی کانتینرها:

docker compose up -d

۴. مشاهده لاگ‌های راه‌اندازی:

docker compose logs -f php-fpm

پس از راه‌اندازی، برنامه را در آدرسی که در APP_URL تنظیم کرده‌اید باز کنید (پیش‌فرض: http://localhost).

💡 (اختیاری) بارگذاری داده‌های نمونه پس از راه‌اندازی کانتینرها:

docker compose exec php-fpm php artisan db:seed --class DemoSeeder

۵. (اختیاری) راه‌اندازی phpMyAdmin برای مدیریت پایگاه داده:

docker compose --profile tools up -d

phpMyAdmin در آدرس http://localhost:8080 در دسترس خواهد بود.

۶. توقف کانتینرها:

docker compose down

روش ۲: همه-در-یک — دستور تکی Docker (فقط برای آزمایش)

⚠️ برای محیط عملیاتی توصیه نمی‌شود. این ایمیج شامل PHP-FPM، Nginx و MariaDB در یک کانتینر است و برای ارزیابی سریع طراحی شده. اگر volume نصب نشود، با حذف کانتینر تمام داده‌ها از بین می‌روند.

پیش‌نیازها

مراحل

دریافت و اجرا:

docker run -d --name freeamir -p 80:80 -v freeamir-data:/var/lib/mysql ghcr.io/jooyeshgar/freeamir-all-in-one:latest

پس از اتمام راه‌اندازی، برنامه در آدرس http://localhost در دسترس خواهد بود.

💡 (اختیاری) بارگذاری داده‌های نمونه پس از راه‌اندازی:

docker exec freeamir php artisan db:seed --class DemoSeeder

💡 برای سفارشی‌سازی آدرس یا اطلاعات پایگاه داده، متغیرهای محیطی را ارسال کنید:

docker run -d --name freeamir -p 80:80 \
  -e APP_URL=http://your-domain.com \
  -e DB_PASSWORD=secret \
  -v freeamir-data:/var/lib/mysql \
  ghcr.io/jooyeshgar/freeamir-all-in-one:latest

مشاهده پیشرفت راه‌اندازی:

docker logs -f freeamir

توقف و حذف:

docker stop freeamir && docker rm freeamir

روش ۳: نصب استاندارد — PHP + MariaDB

مستقیماً روی سرور یا سیستم شخصی با PHP، Composer، Node.js و MariaDB نصب کنید.

پیش‌نیازها

مراحل

۱. Clone کردن مخزن:

git clone https://github.com/Jooyeshgar/FreeAmir.git
cd FreeAmir

۲. نصب وابستگی‌های PHP:

composer install --no-dev --optimize-autoloader

۳. پیکربندی محیط:

cp .env.example .env

فایل .env را ویرایش کنید و مقادیر DB_HOST، DB_DATABASE، DB_USERNAME، DB_PASSWORD و APP_URL را متناسب با محیط خود تنظیم نمایید.

۴. تولید کلید برنامه:

php artisan key:generate

۵. اجرای Migration پایگاه داده:

php artisan migrate

۶. Seed کردن پایگاه داده:

php artisan db:seed

اختیاری — Seed با داده‌های نمونه:

php artisan db:seed --class DemoSeeder

۷. گرم کردن کش‌های برنامه:

php artisan optimize

۸. نصب و ساخت دارایی‌های فرانت‌اند:

npm install
npm run build

۹. پیکربندی وب‌سرور برای سرویس‌دهی از پوشه public/ و تنظیم document root. برای آزمایش سریع محلی:

php artisan serve

برنامه در آدرس http://localhost:8000 در دسترس خواهد بود.


ورود پیش‌فرض

پس از Seed شدن، رمز عبور همه کاربران password است. حساب‌های کاربری موجود:

ایمیل نقش‌ها
admin@example.com Super-Admin, Employee
accountant@example.com Accountant, Employee
seller@example.com Seller, Employee
warehouse@example.com Warehousekeeper, Employee
seller-warehouse@example.com Seller, Warehousekeeper, Employee
accountant-seller-warehouse@example.com Accountant, Seller, Warehousekeeper, Employee
employee@example.com Employee

مهاجرت پایگاه داده از نسخه قدیمی

برای مهاجرت از نسخه قدیمی مبتنی بر SQLite، به راهنمای مهاجرت پایگاه داده مراجعه کنید.