المستودع الرسمي لصورة AscendLine ERP: نظام إدارة الموارد المالية والإدارية متكامل.
naif775devops/assendline-erpيتم رفع وسوم (Tags) متعددة مع كل إصدار لمنحك المرونة الكاملة والتراجع الفوري لأي إصدار سابق عند الحاجة:
| الوسم (Tag) | الاستخدام | مثال |
|---|---|---|
latest | يعكس دائماً أحدث بناء مستقر تم رفعه على النظام | naif775devops/assendline-erp:latest |
v1.0.0 | وسم الإصدار المحدد (Release Version) للتثبيت المستقر | naif775devops/assendline-erp:v1.0.0 |
في حال واجهتك أي مشكلة في أحدث إصدار، يمكنك بكل بساطة تغيير الوسم في ملف docker-compose.yml من latest إلى رقم الإصدار المضمون السابق مثل v1.0.0:
services:
app:
image: naif775devops/assendline-erp:v1.0.0
queue:
image: naif775devops/assendline-erp:v1.0.0
ثم تشغيل الأمر:
docker compose up -d
docker-compose.yml)قم بنسخ هذا الملف وتسميته docker-compose.yml في سيرفر التشغيل:
version: '3.8'
services:
# 1. Traefik Reverse Proxy & Automatic SSL (Let's Encrypt)
traefik:
image: traefik:v3.0
container_name: ascendline_traefik
restart: always
command:
- "--api.dashboard=true"
- "--api.insecure=false"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.myresolver.acme.email=${ACME_EMAIL:[email protected]}"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "traefik_letsencrypt:/letsencrypt"
networks:
- ascendline_net
# 2. AscendLine ERP Core App (PHP 8.3 FPM)
app:
image: naif775devops/assendline-erp:v1.0.0
container_name: ascendline_app
restart: always
env_file:
- .env
volumes:
- app_storage:/var/www/html/storage
depends_on:
- db
- redis
networks:
- ascendline_net
# 3. Nginx Web Server (Serves static assets & handles FastCGI)
web:
image: nginx:1.25-alpine
container_name: ascendline_web
restart: always
ports:
- "8000:80"
volumes:
- ./docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf:ro
- app_storage:/var/www/html/storage:ro
depends_on:
- app
labels:
- "traefik.enable=true"
- "traefik.http.routers.ascendline.rule=Host(`${DOMAIN:-erp.ascendline.com}`)"
- "traefik.http.routers.ascendline.entrypoints=websecure"
- "traefik.http.routers.ascendline.tls.certresolver=myresolver"
- "traefik.http.services.ascendline.loadbalancer.server.port=80"
networks:
- ascendline_net
# 4. MySQL 8.0 Database
db:
image: mysql:8.0
container_name: ascendline_db
restart: always
environment:
MYSQL_DATABASE: ${DB_DATABASE:-ascendline_erp}
MYSQL_USER: ${DB_USERNAME:-ascendline}
MYSQL_PASSWORD: ${DB_PASSWORD:-secret_password}
MYSQL_ROOT_PASSWORD: ${DB_ROOT_PASSWORD:-root_secret_password}
volumes:
- db_data:/var/lib/mysql
networks:
- ascendline_net
# 5. Redis Cache & Queue Broker
redis:
image: redis:7-alpine
container_name: ascendline_redis
restart: always
command: redis-server --requirepass ${REDIS_PASSWORD:-secret_redis_pass}
volumes:
- redis_data:/data
networks:
- ascendline_net
# 6. Background Queue Worker
queue:
image: naif775devops/assendline-erp:v1.0.0
container_name: ascendline_queue
restart: always
command: php artisan queue:work --tries=3 --timeout=90
env_file:
- .env
volumes:
- app_storage:/var/www/html/storage
depends_on:
- app
- redis
- db
networks:
- ascendline_net
volumes:
db_data:
redis_data:
app_storage:
traefik_letsencrypt:
networks:
ascendline_net:
driver: bridge
.env)قم بإنشاء ملف باسم .env بجانب ملف docker-compose.yml وضعه بالمتغيرات التالية:
APP_NAME="AscendLine ERP"
APP_ENV=production
APP_KEY=base64:YOUR_GENERATED_32_CHAR_APP_KEY_HERE
APP_DEBUG=false
APP_URL=https://erp.ascendline.com
# Domain & SSL Settings
DOMAIN=erp.ascendline.com
[email protected]
# Database Settings
DB_CONNECTION=mysql
DB_HOST=db
DB_PORT=3306
DB_DATABASE=ascendline_erp
DB_USERNAME=ascendline
DB_PASSWORD=change_this_secure_password
DB_ROOT_PASSWORD=change_this_root_password
# Redis Settings
REDIS_HOST=redis
REDIS_PASSWORD=change_this_redis_password
REDIS_PORT=6379
SESSION_DRIVER=redis
CACHE_STORE=redis
QUEUE_CONNECTION=redis
FILESYSTEM_DISK=local
BACKUP_DISK=backups
docker run --rm naif775devops/assendline-erp:v1.0.0 php artisan key:generate --show
docker compose up -d
docker compose ps
Content type
Image
Digest
sha256:63492189f…
Size
403.7 MB
Last updated
3 days ago
docker pull naif775devops/assendline-erp