---
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>
