از ایمیجهای از پیش ساختهشده در 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
⚠️ برای محیط عملیاتی توصیه نمیشود. این ایمیج شامل 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، Composer، Node.js و MariaDB نصب کنید.
pdo_mysql، gd، intl، zip، bcmath، mbstring، xml، opcache۱. 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، به راهنمای مهاجرت پایگاه داده مراجعه کنید.