---
title: التحديث والتشغيل التلقائي
description: تحديث منصة IIoT إلى إصدارات صور جديدة وإعدادها لتبدأ تلقائيًا عند إقلاع الخادم.
section: Deployment
weight: 2
related:
  - installation
  - operations/backup-and-restore
  - security/security-mechanisms
---

import Steps from '@/components/docs/Steps.astro';

بعد تثبيت المنصة وتشغيلها، اتّبع الخطوات التالية لتحديثها إلى إصدارات صور جديدة ولجعلها تبدأ تلقائيًا عند إقلاع الخادم.

<Steps>

### حدّث البرنامج

لتحديث البرنامج، أوقف الحاويات في `/opt/vadtelnewweb`:

```bash
docker-compose down
```

ثم انتقل إلى `/var/lib/unicloud` ونفّذ ما يلي.

- أوقف خدمة `unicloud`:

```bash
sudo service unicloud stop
```

- أوقف تشغيل الحاويات:

```bash
docker-compose down
```

انسخ ملفات الصور المضغوطة الجديدة وفُكّ ضغطها:

```bash
gunzip vadtel-nginx-latest.tar.gz
gunzip vadtel-app-latest.tar.gz
gunzip anytelemetry-latest.tar.gz
gunzip pgbouncer-latest.tar.gz
gunzip vadteljsondaemon-latest.tar.gz
gunzip logrotate-latest.tar.gz
gunzip postgres-15.1-alpine.tar.gz
gunzip redis-6.0.16-alpine.tar.gz
gunzip vector-latest.tar.gz
```

حمّل الصور إلى Docker:

```bash
docker load -i vadtel-nginx-latest.tar
docker load -i vadtel-app-latest.tar
docker load -i anytelemetry-latest.tar
docker load -i pgbouncer-latest.tar
docker load -i vadteljsondaemon-latest.tar
docker load -i logrotate-latest.tar
docker load -i postgres-15.1-alpine.tar
docker load -i redis-6.0.16-alpine.tar
docker load -i vector-latest.tar.gz
```

تحقق من توفر الصور:

```bash
docker images
```

إذا حُمّلت الصور دون أخطاء، فشغّل الأوامر التالية من مجلد `/var/lib/unicloud`:

```shell
sudo service unicloud start
docker-compose up -d
```

ثم انتقل إلى `/opt/vadtelnewweb` وشغّل التطبيق:

```shell
docker-compose up -d
```

تحقق من الحاويات قيد التشغيل:

```bash
docker ps
```

### اضبط التشغيل التلقائي

أنشئ ملف الإعداد `/etc/docker/daemon.json` أو حرّره أو انسخه، وأضف ما يلي
(عدّل القيم عند الحاجة):

```json title="daemon.json"
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "50m",
    "max-file": "3"
  }
}
```

بعد ذلك، أنشئ سكربت تشغيل تلقائي للتطبيق. تحتاج إلى ملف `docker-compose-vadtel.service`
بالمحتوى أدناه، حيث يكون `WorkingDirectory` هو المسار إلى `docker-compose.yml`.

افتح الملف:

```shell
nano /etc/systemd/system/docker-compose-vadtel.service
```

أضف المحتوى التالي:

```ini title="docker-compose-vadtel.service"
[Unit]
Description=Docker Compose vadtel Application Service
Requires=docker.service
After=docker.service
StartLimitIntervalSec=60

[Service]
WorkingDirectory=/opt/vadtelnewweb
ExecStart=/usr/bin/docker-compose up
ExecStop=/usr/bin/docker-compose down
TimeoutStartSec=0
Restart=on-failure
StartLimitBurst=3

[Install]
WantedBy=multi-user.target
```

لتفعيل سكربت التشغيل التلقائي من `/etc/systemd/system/`، شغّل:

```shell
sudo systemctl enable docker-compose-vadtel
```

</Steps>
