# مستندات آریانت > آریانت (Ariaservice، ariaservice.net) ارائه‌دهنده خدمات ابری است. این مستندات وب سرویس‌های عمومی آن روی https://api.ariaservice.net (ابر آریانت، VPS، VPS منطقه‌ای، هاست اشتراکی، سرور اختصاصی و پیامک)، ابزار خط فرمان `arianet` و پرووایدر Terraform با نام `ariaservice/arianet` را پوشش می‌دهد. --- title: "مستندات آریانت" description: "نقشه مستندات آریانت - همه وب سرویس‌ها (ابر، VPS، VPS منطقه‌ای، هاستینگ، سرور اختصاصی، پیامک)، CLI و Terraform، آدرس‌های پایه و مسیر شروع برای هر نقش." url: https://docs.ariaservice.net/intro markdown: https://docs.ariaservice.net/intro.md language: fa --- # مستندات آریانت آریانت (Ariaservice) سرور ابری، سرور مجازی، هاست اشتراکی، سرور اختصاصی و سرویس پیامک ارائه می‌دهد. هر محصول یک **وب سرویس REST** دارد، همه با **یک توکن API** کار می‌کنند و بیشترشان از طریق **CLI** و **Terraform** هم در دسترس‌اند. این صفحه نقشه کل مستندات است. - [شروع سریع](https://docs.ariaservice.net/quickstart): از ساخت توکن تا اولین سرور در چند دقیقه - [احراز هویت و توکن](https://docs.ariaservice.net/authentication): ساخت توکن، دسترسی‌ها (scope) و نگه‌داری امن - [مبانی وب سرویس](https://docs.ariaservice.net/api-conventions): خطاها، محدودیت نرخ، صفحه‌بندی و عملیات ناهمگام - [مرجع API](https://docs.ariaservice.net/api-reference): سندهای OpenAPI و مرجع تعاملی همه وب سرویس‌ها - [رابط خط فرمان (CLI)](https://docs.ariaservice.net/cli): مدیریت همه چیز از ترمینال با دستور arianet - [برای هوش مصنوعی](https://docs.ariaservice.net/ai): llms.txt، نسخه Markdown صفحه‌ها و راهنمای عامل‌ها ## محصولات و وب سرویس‌ها همه وب سرویس‌ها پشت یک دروازه هستند: `https://api.ariaservice.net`. هر محصول مسیر و نسخه خودش را دارد. | محصول | آدرس پایه | CLI | Terraform | راهنما | |---|---|---|---|---| | ابر آریانت: سرور ابری، دیسک، شبکه، فایروال، IP، لود بالانسر | `/cloud/v1` | `arianet cloud` | دارد | [وب سرویس ابر](https://docs.ariaservice.net/cloud-api) | | سرور مجازی (VPS) | `/api/v1` | `arianet vps` | - | [وب سرویس VPS](https://docs.ariaservice.net/api-endpoints) | | VPS منطقه‌ای (مثل `iran-1`) | `/vps/v1` | `arianet vps regional` ¹ | - | [VPS منطقه‌ای](https://docs.ariaservice.net/regional-vps-api) | | هاست اشتراکی و نمایندگی (cPanel، DirectAdmin) | `/hosting/v1` | `arianet hosting` ¹ | - | [هاستینگ](https://docs.ariaservice.net/hosting-api) | | سرور اختصاصی | `/baremetal/v1` | `arianet baremetal` ¹ | - | [سرور اختصاصی](https://docs.ariaservice.net/baremetal-api) | | پیامک | `/sms/v1` | `arianet sms` ¹ | - | [پیامک](https://docs.ariaservice.net/sms/api) | ¹ از CLI نسخه v0.6.0؛ نسخه قدیمی‌تر را با `arianet upgrade` به‌روز کنید. ## کدام ابزار؟ | ابزار | مناسب برای | شروع | |---|---|---| | **وب سرویس (REST)** | برنامه خودتان، با هر زبانی که HTTP بلد باشد | [شروع سریع](https://docs.ariaservice.net/quickstart) | | **رابط خط فرمان (CLI)** | کار روزمره از ترمینال، اسکریپت‌های shell و CI | [نصب در سه قدم](https://docs.ariaservice.net/cli#نصب-و-شروع-در-سه-قدم) | | **Terraform** | تعریف و نسخه‌بندی زیرساخت ابر به صورت کد | [راه‌اندازی پرووایدر](https://docs.ariaservice.net/terraform#راهاندازی-پرووایدر) | | **پنل کاربری** | کار دستی بدون کد | [panel.ariaservice.net](https://panel.ariaservice.net) | ## از کجا شروع کنم؟ - **برنامه‌نویس:** [شروع سریع](https://docs.ariaservice.net/quickstart)، سپس [مبانی وب سرویس](https://docs.ariaservice.net/api-conventions) و صفحه محصول. برای جزئیات هر endpoint به [مرجع API](https://docs.ariaservice.net/api-reference) بروید. - **مهندس DevOps:** [CLI](https://docs.ariaservice.net/cli) و [Terraform](https://docs.ariaservice.net/terraform)؛ برای هر pipeline یک توکن جدا با کمترین دسترسی بسازید ([نگه‌داری امن توکن](https://docs.ariaservice.net/authentication#نگهداری-امن-توکن)). - **مدیر یا خواننده غیر فنی:** [مفاهیم و واژه‌نامه](https://docs.ariaservice.net/concepts) هر اصطلاح را به زبان ساده توضیح می‌دهد؛ پاراگراف اول هر صفحه محصول می‌گوید آن محصول چه کاری انجام می‌دهد. - **ابزار هوش مصنوعی یا عامل خودکار:** [برای هوش مصنوعی](https://docs.ariaservice.net/ai) و فایل [`llms.txt`](pathname:///llms.txt). ## کمک بیشتر - [پنل کاربری](https://panel.ariaservice.net): سرورها، توکن‌ها و صورتحساب - [وضعیت سرویس‌ها](https://status.ariaservice.net): اگر سرویسی کار نمی‌کند، اول این صفحه را ببینید - [تماس با پشتیبانی](https://www.ariaservice.net/contact) - [CLI در GitHub](https://github.com/ariaservice/arianet-cli): سورس، انتشارها و گزارش مشکل --- title: "شروع سریع" description: "در چند دقیقه توکن API بسازید، اولین درخواست را با curl، CLI، Python، Node.js یا Go بفرستید و اولین سرور ابری خود را بسازید و حذف کنید." url: https://docs.ariaservice.net/quickstart markdown: https://docs.ariaservice.net/quickstart.md language: fa --- # شروع سریع در این صفحه یک توکن می‌سازید، اولین درخواست را می‌فرستید و یک سرور ابری می‌سازید و دوباره حذف می‌کنید. نمونه‌ها روی [وب سرویس ابر](https://docs.ariaservice.net/cloud-api) هستند؛ بقیه محصولات دقیقاً همین الگو را دارند. ## پیش‌نیازها - یک حساب آریانت با موجودی در کیف پول (ساخت سرور هزینه دارد؛ خواندن فهرست‌ها رایگان است) - `curl`، یا [CLI آریانت](https://docs.ariaservice.net/cli#نصب-و-شروع-در-سه-قدم)، یا هر زبانی که HTTP بلد باشد ## ۱. توکن بسازید 1. وارد پنل شوید و به صفحه [توکن‌های API](https://cloud.ariaservice.net/users/api-tokens) بروید. 2. یک توکن با دسترسی‌های `cloud:servers:read` و `cloud:servers:write` بسازید. 3. توکن را کپی کنید؛ **فقط یک بار** نمایش داده می‌شود. جزئیات دسترسی‌ها و محدود کردن توکن به IP در [احراز هویت و توکن](https://docs.ariaservice.net/authentication) آمده است. ## ۲. توکن را در متغیر محیطی بگذارید توکن را در کد ننویسید؛ آن را در متغیر محیطی `ARIANET_TOKEN` نگه دارید. CLI هم همین متغیر را می‌خواند. **macOS / Linux** ```bash export ARIANET_TOKEN="paste-your-token-here" ``` **Windows (PowerShell)** ```powershell $env:ARIANET_TOKEN = "paste-your-token-here" ``` ## ۳. اولین درخواست فهرست سرورهای ابری حساب شما (اگر سروری نداشته باشید، فهرست خالی است): **curl** ```bash curl -s https://api.ariaservice.net/cloud/v1/servers \ -H "Authorization: Bearer $ARIANET_TOKEN" ``` **CLI** ```bash arianet cloud servers list ``` **Python** ```python import os import requests resp = requests.get( "https://api.ariaservice.net/cloud/v1/servers", headers={"Authorization": f"Bearer {os.environ['ARIANET_TOKEN']}"}, timeout=30, ) resp.raise_for_status() for server in resp.json()["data"]: print(server["id"], server["name"], server["status"]) ``` **Node.js** ```js const resp = await fetch('https://api.ariaservice.net/cloud/v1/servers', { headers: {Authorization: `Bearer ${process.env.ARIANET_TOKEN}`}, }); if (!resp.ok) throw new Error(`${resp.status} ${await resp.text()}`); const {data} = await resp.json(); for (const server of data) console.log(server.id, server.name, server.status); ``` **Go** ```go package main import ( "encoding/json" "fmt" "net/http" "os" ) func main() { req, _ := http.NewRequest("GET", "https://api.ariaservice.net/cloud/v1/servers", nil) req.Header.Set("Authorization", "Bearer "+os.Getenv("ARIANET_TOKEN")) resp, err := http.DefaultClient.Do(req) if err != nil { panic(err) } defer resp.Body.Close() var body struct { Data []struct { ID int64 `json:"id"` Name string `json:"name"` Status string `json:"status"` } `json:"data"` } if err := json.NewDecoder(resp.Body).Decode(&body); err != nil { panic(err) } for _, s := range body.Data { fmt.Println(s.ID, s.Name, s.Status) } } ``` پاسخ `401` یعنی توکن درست فرستاده نشده و `403` یعنی توکن دسترسی لازم را ندارد ([خطاهای احراز هویت](https://docs.ariaservice.net/authentication#خطاهای-احراز-هویت)). ## ۴. اولین سرور ابتدا دیتاسنتر، پلن و ایمیج را پیدا کنید، سپس سرور را بسازید: **curl** ```bash BASE=https://api.ariaservice.net/cloud/v1 AUTH="Authorization: Bearer $ARIANET_TOKEN" curl -s $BASE/datacenters -H "$AUTH" # datacenter codes, e.g. ovh curl -s "$BASE/plans?datacenter=ovh" -H "$AUTH" # plan ids and prices curl -s "$BASE/images?type=system" -H "$AUTH" # image names, e.g. ubuntu-24.04 curl -s -X POST $BASE/servers -H "$AUTH" -H "Content-Type: application/json" \ -d '{"name":"web-1","datacenter":"ovh","plan_id":3,"image":"ubuntu-24.04"}' ``` **CLI** ```bash arianet cloud datacenters arianet cloud plans --datacenter ovh arianet cloud images list --type system arianet cloud servers create --name web-1 --datacenter ovh --plan 3 --image ubuntu-24.04 --wait ``` پاسخ ساخت `201` است و سرور، `action_id` عملیات ساخت و `root_password` را برمی‌گرداند. **رمز root فقط همین یک بار نمایش داده می‌شود.** ساخت سرور ناهمگام است؛ action را تا رسیدن `status` به `success` یا `error` بررسی کنید: ```bash curl -s $BASE/actions/812 -H "$AUTH" # {"data":{"id":812,"command":"create","status":"running","progress":40,...}} ``` ## ۵. پاک‌سازی سرور ابری ساعتی صورتحساب می‌شود. اگر فقط آزمایش می‌کردید، آن را حذف کنید: ```bash curl -s -X DELETE $BASE/servers/ -H "$AUTH" # or: arianet cloud servers delete ``` ## قدم بعدی - [مبانی وب سرویس](https://docs.ariaservice.net/api-conventions): خطاها، محدودیت نرخ، تکرار امن و عملیات ناهمگام - [وب سرویس ابر](https://docs.ariaservice.net/cloud-api): شبکه، فایروال، دیسک، IP و لود بالانسر - [Terraform](https://docs.ariaservice.net/terraform): همین سرور را به صورت کد تعریف کنید - [مرجع API](https://docs.ariaservice.net/api-reference): همه endpointها با جزئیات کامل --- title: "احراز هویت و توکن" description: "ساخت توکن API آریانت، ارسال آن به صورت Bearer، دسترسی‌های (scope) هر وب سرویس، محدودیت IP، اعضای تیم، ابطال توکن و نگه‌داری امن آن در CI." url: https://docs.ariaservice.net/authentication markdown: https://docs.ariaservice.net/authentication.md language: fa --- # احراز هویت و توکن همه وب سرویس‌ها، CLI و Terraform با **توکن شخصی API** کار می‌کنند. یک توکن برای همه محصولات کافی است؛ با دسترسی‌ها (scope) مشخص می‌کنید هر توکن چه کاری مجاز است انجام دهد. ## ساخت توکن 1. وارد پنل شوید و به صفحه [توکن‌های API](https://cloud.ariaservice.net/users/api-tokens) بروید (**تنظیمات ← توکن‌های API**). 2. نامی بگذارید که بگوید توکن مال کجاست (مثلاً `ci-deploy` یا `laptop`). 3. دسترسی‌های لازم را از [جدول زیر](#دسترسیها-scope) انتخاب کنید و در صورت نیاز تاریخ انقضا و [فهرست IP مجاز](#محدود-کردن-به-ip) بگذارید. 4. توکن را کپی کنید. **فقط یک بار نمایش داده می‌شود** و آریانت هم نسخه خوانای آن را نگه نمی‌دارد. ## ارسال توکن توکن را در هدر `Authorization` هر درخواست بفرستید: ```http GET /cloud/v1/servers HTTP/1.1 Host: api.ariaservice.net Authorization: Bearer ``` ```bash curl -s https://api.ariaservice.net/cloud/v1/servers -H "Authorization: Bearer $ARIANET_TOKEN" ``` CLI توکن را از `arianet configure`، متغیر محیطی `ARIANET_TOKEN` یا فلگ `--token` می‌خواند و Terraform از آرگومان `token` پرووایدر یا همان متغیر محیطی. ## دسترسی‌ها (scope) توکنی که **بدون هیچ scope** ساخته شود همه دسترسی‌های صاحبش را دارد. برای هر کاربرد، توکن را فقط به scopeهای لازم محدود کنید. درخواست خارج از scope توکن پاسخ `403` می‌گیرد. ### ابر آریانت (`/cloud/v1`) | Scope | اجازه | |---|---| | `cloud:servers:read` | همه `GET`ها: سرورها، دیسک‌ها، شبکه‌ها، فایروال‌ها، IPها، لود بالانسرها، ایمیج‌ها، قیمت‌ها و actionها | | `cloud:servers:write` | همه تغییرات (`POST`، `PUT`، `PATCH`، `DELETE`) | لیست قیمت عمومی (`GET /cloud/v1/public/pricing`) به توکن نیاز ندارد. ### سرور مجازی (`/api/v1`) | Scope | اجازه | |---|---| | `regions:read` | `GET /regions` | | `os:read` | `GET /os/datacenter/{id}` | | `plans:read` | `GET /plans/...` | | `servers:read` / `servers:write` | خواندن سرورها / ساخت، حذف، روشن و خاموش، نصب مجدد، تغییر نام و محافظت | | `ssh-keys:read` / `ssh-keys:write` | کلیدهای SSH | | `firewalls:read` / `firewalls:write` | فایروال‌ها، قوانین و اتصال‌ها | | `balance:read` | موجودی و تراکنش‌ها | | `invoices:read` | فاکتورها | | `tokens:read` / `tokens:write` | فهرست و ابطال توکن‌ها | `GET /auth/me` و `DELETE /auth/logout` scope لازم ندارند. ### VPS منطقه‌ای، هاستینگ و سرور اختصاصی | وب سرویس | خواندن | تغییر | |---|---|---| | VPS منطقه‌ای (`/vps/v1`) | `vps:servers:read` | `vps:servers:write` | | هاستینگ (`/hosting/v1`) | `hosting:accounts:read` | `hosting:accounts:write` | | سرور اختصاصی (`/baremetal/v1`) | `baremetal:servers:read` | `baremetal:servers:write` | ### پیامک (`/sms/v1`) | Scope | اجازه | |---|---| | `sms:messages:read` | پیام‌های ارسالی و دریافتی، batchها، ارسال‌های زمان‌بندی‌شده، قیمت‌ها و گزارش | | `sms:messages:write` | ارسال، لغو ارسال زمان‌بندی‌شده، شماره‌های مسدود و وب‌هوک | | `sms:lines:read` | خطوط ارسال | | `sms:templates:read` / `sms:templates:write` | خواندن / مدیریت قالب‌ها | درخواست خط اختصاصی (`POST /lines`) توکن بدون scope می‌خواهد. ## محدود کردن به IP توکن را می‌توان به فهرستی از آدرس‌ها یا بازه‌های IP مبدأ محدود کرد. درخواست از هر آدرس دیگر، حتی با توکن معتبر، با `403` رد می‌شود (در `/api/v1` با کد `IP_NOT_ALLOWED`). برای سرورها و runnerهای CI که IP ثابت دارند این کار را حتماً انجام دهید. ## اعضای تیم اگر توکن را عضو تیمِ یک حساب بسازد، دسترسی توکن هرگز از دسترسی خود آن عضو بیشتر نمی‌شود: سیاست‌های IAM حساب هم روی هر درخواست اعمال می‌شوند. مثلاً مدیریت نمایندگی هاست به `hosting:reseller:manage` و تغییر تنظیم ترافیک VPS منطقه‌ای به `vps:manage` در IAM نیاز دارد. ## مدیریت و ابطال توکن - در پنل، صفحه [توکن‌های API](https://cloud.ariaservice.net/users/api-tokens) توکن‌های شما را نشان می‌دهد و هر کدام را می‌توانید باطل کنید. `GET /api/v1/auth/tokens` آخرین زمان استفاده (`last_used`) و انقضای (`expires`) هر توکن را هم برمی‌گرداند. - با وب سرویس VPS: `GET /api/v1/auth/tokens` (scope `tokens:read`) و `DELETE /api/v1/auth/tokens/{id}` (scope `tokens:write`). `DELETE /api/v1/auth/logout` توکنی را که با آن درخواست فرستاده‌اید باطل می‌کند. - با CLI: `arianet auth tokens list`، `arianet auth tokens revoke `، `arianet auth whoami` و `arianet auth logout`. ## نگه‌داری امن توکن - توکن را هرگز در کد سمت کاربر (مرورگر، اپلیکیشن موبایل) یا مخزن کد قرار ندهید؛ در متغیر محیطی یا ذخیره‌گاه اسرار نگه دارید. - برای هر برنامه، سرور یا pipeline یک توکن جدا با کمترین scope لازم بسازید تا بتوانید یکی را بدون اختلال در بقیه باطل کنید. - برای توکن‌های CI تاریخ انقضا و فهرست IP بگذارید و آن‌ها را مرتب عوض کنید. - اگر توکنی لو رفت، همان لحظه آن را در پنل باطل کنید. نمونه در CI (متغیر محرمانه `ARIANET_TOKEN` در تنظیمات پروژه تعریف شده است): ```yaml title=".gitlab-ci.yml" deploy: image: alpine:3.20 script: - apk add --no-cache curl - curl -fsS https://api.ariaservice.net/cloud/v1/servers -H "Authorization: Bearer $ARIANET_TOKEN" ``` ```yaml title=".github/workflows/deploy.yml" jobs: deploy: runs-on: ubuntu-latest env: ARIANET_TOKEN: ${{ secrets.ARIANET_TOKEN }} steps: - run: curl -fsS https://api.ariaservice.net/cloud/v1/servers -H "Authorization: Bearer $ARIANET_TOKEN" ``` ## خطاهای احراز هویت | HTTP | یعنی | چه کنید | |---|---|---| | `401` | توکن نیست، نامعتبر است، منقضی یا باطل شده | هدر `Authorization: Bearer ` را بررسی کنید یا توکن تازه بسازید | | `403` | توکن معتبر است اما scope لازم را ندارد (`insufficient_scope` / `INSUFFICIENT_SCOPE`)، IP مجاز نیست (`IP_NOT_ALLOWED`)، یا حساب اجازه این کار را ندارد (`forbidden`، `identity_needed`) | scope یا فهرست IP توکن را اصلاح کنید؛ برای `identity_needed` احراز هویت حساب را در پنل کامل کنید | --- title: "مبانی وب سرویس" description: "قواعد مشترک وب سرویس‌های آریانت - آدرس‌ها و نسخه‌ها، قالب پاسخ و خطا، محدودیت نرخ و تکرار درخواست، صفحه‌بندی، عملیات ناهمگام، ایدمپوتنسی و ریجن‌ها." url: https://docs.ariaservice.net/api-conventions markdown: https://docs.ariaservice.net/api-conventions.md language: fa --- # مبانی وب سرویس همه وب سرویس‌های آریانت REST روی HTTPS هستند، JSON می‌گیرند و برمی‌گردانند و با [توکن Bearer](https://docs.ariaservice.net/authentication) احراز هویت می‌شوند. این صفحه قواعد مشترک و تفاوت‌های هر محصول را یک‌جا نشان می‌دهد تا کلاینت شما برای همه درست کار کند. ## آدرس‌ها و نسخه‌ها | وب سرویس | آدرس پایه | سند OpenAPI | |---|---|---| | ابر آریانت | `https://api.ariaservice.net/cloud/v1` | [`openapi.json`](https://api.ariaservice.net/cloud/v1/openapi.json) | | سرور مجازی (VPS) | `https://api.ariaservice.net/api/v1` | [`openapi.yaml`](pathname:///openapi.yaml) | | VPS منطقه‌ای | `https://api.ariaservice.net/vps/v1` | [`openapi.json`](https://api.ariaservice.net/vps/v1/openapi.json) | | هاستینگ | `https://api.ariaservice.net/hosting/v1` | [`openapi.json`](https://api.ariaservice.net/hosting/v1/openapi.json) | | سرور اختصاصی | `https://api.ariaservice.net/baremetal/v1` | [`openapi.json`](https://api.ariaservice.net/baremetal/v1/openapi.json) | | پیامک | `https://api.ariaservice.net/sms/v1` | [`openapi.json`](https://api.ariaservice.net/sms/v1/openapi.json) | نسخه در مسیر آمده است (`v1`). کلاینت را طوری بنویسید که **فیلدهای ناشناخته پاسخ را نادیده بگیرد**؛ فیلدها و مقدارهای تازه بدون تغییر نسخه اضافه می‌شوند. ## درخواست و پاسخ - بدنه درخواست‌های `POST`، `PUT` و `PATCH` JSON است و هدر `Content-Type: application/json` می‌خواهد. - زمان‌ها به UTC و در قالب ISO 8601 / RFC 3339 هستند (`2026-10-02T09:30:00Z`). - شناسه‌ها عدد صحیح هستند، مگر جایی که صفحه محصول خلافش را بگوید (مثلاً شماره فاکتور و شناسه پیامک متن هستند). - `PATCH` فقط فیلدهای ارسال‌شده را تغییر می‌دهد. شکل پاسخ موفق در دو خانواده متفاوت است: **ابر، VPS منطقه‌ای، هاستینگ، اختصاصی، پیامک** ```json { "data": { "id": 12, "name": "web-1" } } ``` **VPS (/api/v1)** ```json { "success": true, "data": { "id": 4821, "status": "active" } } ``` ## خطاها هر خطا یک **`code` ثابت و ماشین‌خوان** دارد. منطق برنامه را بر اساس وضعیت HTTP و `code` بنویسید، نه متن پیام؛ پیام برای انسان است و ممکن است تغییر کند. | وب سرویس | قالب خطا | |---|---| | ابر | `{"error": "...", "code": "not_found", "reason": "..."}`؛ `reason` در صورت وجود حالت را دقیق‌تر می‌کند | | VPS منطقه‌ای، هاستینگ، سرور اختصاصی | `{"error": "...", "code": "not_found"}` | | پیامک | `{"code": "not_found", "message": "..."}` | | VPS (`/api/v1`) | `{"success": false, "error": {"code": "NOT_FOUND", "message": "..."}}` | معنی وضعیت‌های HTTP در همه یکسان است: | HTTP | معنی | تکرار؟ | |---|---|---| | `400` / `422` | ورودی نادرست، یا درخواست درست است اما الان قابل انجام نیست | خیر؛ درخواست را اصلاح کنید | | `401` | توکن نیست یا نامعتبر است | خیر | | `402` | موجودی کیف پول کافی نیست | پس از شارژ | | `403` | دسترسی کافی نیست | خیر | | `404` | منبع در حساب شما وجود ندارد | خیر | | `409` / `423` | وضعیت منبع الان اجازه نمی‌دهد یا منبع درگیر عملیات دیگری است | بله، کمی بعد | | `429` | محدودیت نرخ | بله، پس از `Retry-After` | | `500` / `502` / `503` | خطای موقت سمت سرور | بله، با فاصله رو به افزایش | | `504` | پاسخ به‌موقع نرسید؛ **ممکن است درخواست اجرا شده باشد** | اول وضعیت را بخوانید | فهرست کامل `code`های هر وب سرویس در صفحه همان محصول و در سند OpenAPI آن آمده است. ## محدودیت نرخ | وب سرویس | محدودیت | |---|---| | ابر | ۶۰ درخواست در دقیقه و ۳۶۰۰ در ساعت برای هر حساب و کاربر | | VPS (`/api/v1`) | خواندن ۱۲۰ در دقیقه؛ نوشتن حدود ۲۰ در دقیقه؛ ساخت سرور ۵ در ساعت برای هر توکن ([جزئیات](https://docs.ariaservice.net/api-endpoints#محدودیت-نرخ)) | | VPS منطقه‌ای، هاستینگ، سرور اختصاصی، پیامک | برای هر فراخواننده؛ مقدار فعلی در هدرهای `RateLimit-*` | وب سرویس‌های جدید در هر پاسخ این هدرها را می‌فرستند: | هدر | معنی | |---|---| | `RateLimit-Limit` | تعداد درخواست مجاز در پنجره فعلی | | `RateLimit-Remaining` | درخواست‌های باقی‌مانده | | `RateLimit-Reset` | ثانیه تا شروع پنجره بعدی | پس از عبور از حد، پاسخ `429` است و هدر `Retry-After` (بر حسب ثانیه) می‌گوید چقدر صبر کنید. ### تکرار درخواست خطاهای `429`، `502`، `503` و خطای شبکه را با فاصله رو به افزایش (exponential backoff) تکرار کنید و `Retry-After` را اگر بود رعایت کنید. **درخواست‌هایی را که پول خرج می‌کنند فقط با [کلید ایدمپوتنسی](#تکرار-امن-ایدمپوتنسی) تکرار کنید.** **Python** ```python import os import random import time import requests RETRY = {429, 502, 503} def call(method, url, **kwargs): headers = {"Authorization": f"Bearer {os.environ['ARIANET_TOKEN']}", **kwargs.pop("headers", {})} for attempt in range(6): resp = requests.request(method, url, headers=headers, timeout=30, **kwargs) if resp.status_code not in RETRY: return resp wait = float(resp.headers.get("Retry-After", 2 ** attempt)) time.sleep(wait + random.random()) return resp ``` **bash** ```bash for attempt in 1 2 3 4 5; do code=$(curl -s -o /tmp/out.json -w '%{http_code}' "$URL" -H "Authorization: Bearer $ARIANET_TOKEN") case "$code" in 429|502|503) sleep $((2 ** attempt)) ;; *) break ;; esac done cat /tmp/out.json ``` CLI خواندن‌هایی را که به محدودیت نرخ بخورند خودش تکرار می‌کند؛ تغییرات را هرگز خودکار تکرار نمی‌کند. ## صفحه‌بندی | وب سرویس | پارامترها | اطلاعات صفحه در پاسخ | |---|---|---| | ابر | `page`، `per_page` (۱ تا ۱۰۰، پیش‌فرض ۲۵)؛ بدون این دو، کل فهرست در یک صفحه | `meta.pagination`: `page`، `per_page`، `previous_page`، `next_page`، `last_page` | | پیامک | `page`، `per_page` (حداکثر ۲۰۰) | `meta`: `total`، `current_page`، `per_page` | | VPS (`/api/v1`) | `page`، `limit` (۱ تا ۱۰۰، پیش‌فرض ۱۵) | `pagination`: `current_page`، `per_page`، `total`، `last_page` | | VPS منطقه‌ای، هاستینگ، سرور اختصاصی | فهرست‌ها کامل برمی‌گردند؛ فهرست actionها `limit` می‌گیرد | - | ## عملیات ناهمگام کاری که زمان می‌برد (ساخت، حذف، نصب مجدد، تغییر پلن، روشن و خاموش کردن) بلافاصله پاسخ `201` یا `202` می‌دهد و در پس‌زمینه انجام می‌شود. پایان آن را این‌طور دنبال کنید: | وب سرویس | چه چیزی را بررسی کنید | وضعیت نهایی | |---|---|---| | ابر | `GET /actions/{id}` با `action_id` پاسخ | `status`: `success` یا `error` | | VPS منطقه‌ای، هاستینگ | `GET /actions/{id}` | `state`: `success` یا `error` | | سرور اختصاصی | `GET /orders/{id}` (مراحل تحویل) | سفارش تحویل‌شده یا لغوشده | | پیامک | `GET /batches/{id}` یا [وب‌هوک](https://docs.ariaservice.net/sms/api#webhooks) | `completed`، `partial` یا `failed` | | VPS (`/api/v1`) | `GET /servers/{id}/status` یا `GET /servers/{id}/actions` | `status` برابر `active` / action با `success` یا `failed` | هر چند ثانیه یک بار بررسی کنید (مثلاً هر ۵ ثانیه) و برای کل انتظار سقف زمانی بگذارید. CLI با `--wait` و `actions wait` همین کار را انجام می‌دهد. ## تکرار امن (ایدمپوتنسی) اگر پاسخ سفارشی به دست شما نرسد (قطع شبکه، `504`)، نمی‌دانید سفارش ثبت شده یا نه. با **کلید ایدمپوتنسی** می‌توانید همان درخواست را بی‌خطر دوباره بفرستید: سفارش دوم ساخته نمی‌شود و پاسخ اول برمی‌گردد. | وب سرویس | درخواست‌ها | چطور | |---|---|---| | VPS (`/api/v1`) | `POST /servers` | هدر `Idempotency-Key` **اجباری** ([جزئیات](https://docs.ariaservice.net/api-endpoints#ایدمپوتنسی)) | | VPS منطقه‌ای | `POST /servers` | هدر `Idempotency-Key` | | هاستینگ | `POST /accounts` | هدر `Idempotency-Key` | | سرور اختصاصی | `POST /orders`، `POST /servers/{id}/renew` | هدر `Idempotency-Key` | | پیامک | `POST /messages` | فیلد `client_reference` (یا هدر `Idempotency-Key`) | برای هر سفارش تازه یک کلید تازه (مثلاً UUID) بسازید و تا گرفتن پاسخ قطعی همان را برای تکرارها نگه دارید. ```bash curl -s -X POST https://api.ariaservice.net/vps/v1/servers \ -H "Authorization: Bearer $ARIANET_TOKEN" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{"datacenter":"thr-1","plan_id":4,"image":"ubuntu-24.04","hostname":"web-1","billing_mode":"hourly"}' ``` ## ریجن‌ها VPS منطقه‌ای و هاستینگ در هر ریجن نصب جداگانه دارند. ریجن را با هدر `Arianet-Region` انتخاب کنید؛ بدون آن، درخواست به ریجن پیش‌فرض محصول می‌رود: ```bash curl -s https://api.ariaservice.net/hosting/v1/accounts \ -H "Authorization: Bearer $ARIANET_TOKEN" \ -H "Arianet-Region: iran-1" ``` ریجن ناشناخته پاسخ `404 region_not_found` می‌گیرد. پیامک فقط در `iran-1` اجرا می‌شود و سرور اختصاصی یک نصب دارد؛ هیچ‌کدام به این هدر نیاز ندارند. ## سقف زمان پاسخ و 504 درخواست‌هایی که به ریجن دیگری می‌روند ممکن است با `504 gateway_timeout` تمام شوند، در حالی که خود کار انجام شده باشد. پیش از تکرار، وضعیت را بخوانید (فهرست منابع یا actionها) یا از [کلید ایدمپوتنسی](#تکرار-امن-ایدمپوتنسی) استفاده کنید. --- title: "مفاهیم و واژه‌نامه" description: "توضیح ساده اصطلاحات مستندات آریانت - وب سرویس، توکن، scope، ریجن، دیتاسنتر، پلن، ایمیج، اسنپ‌شات، IP شناور، لود بالانسر، هاست، خط پیامک و صورتحساب ساعتی." url: https://docs.ariaservice.net/concepts markdown: https://docs.ariaservice.net/concepts.md language: fa --- # مفاهیم و واژه‌نامه این صفحه برای کسی است که برنامه‌نویس نیست یا تازه شروع کرده است: هر اصطلاحی که در مستندات می‌بینید، اینجا به زبان ساده توضیح داده شده است. ## پایه‌ها - **وب سرویس (API):** راهی برای اینکه یک برنامه، بدون پنل و کلیک، از آریانت چیزی بخواهد: «یک سرور بساز»، «فهرست فاکتورها را بده». برنامه یک درخواست HTTP می‌فرستد و پاسخ را به صورت JSON می‌گیرد. - **endpoint:** یک آدرس مشخص از وب سرویس همراه با متد آن، مثل `GET /servers` (فهرست سرورها) یا `POST /servers` (ساخت سرور). متدها: `GET` خواندن، `POST` ساختن یا انجام کار، `PUT` / `PATCH` تغییر، `DELETE` حذف. - **JSON:** قالب متنی ساده‌ای که داده را به صورت کلید و مقدار نشان می‌دهد، مثل `{"name": "web-1"}`. - **OpenAPI:** یک فایل ماشین‌خوان که همه endpointهای یک وب سرویس را توصیف می‌کند. ابزارها از روی آن مستندات تعاملی یا کد کلاینت می‌سازند ([مرجع API](https://docs.ariaservice.net/api-reference)). - **CLI:** برنامه خط فرمان `arianet`؛ همان کارهای پنل را با تایپ دستور در ترمینال انجام می‌دهد ([CLI](https://docs.ariaservice.net/cli)). - **Terraform:** ابزاری که زیرساخت (سرور، شبکه، فایروال) را در فایل‌های متنی تعریف می‌کند و همان را می‌سازد؛ «زیرساخت به صورت کد» ([Terraform](https://docs.ariaservice.net/terraform)). ## حساب و دسترسی - **توکن API:** رمز مخصوص برنامه‌ها. به جای نام کاربری و رمز عبور، برنامه با توکن خودش را معرفی می‌کند. مثل رمز با آن رفتار کنید ([احراز هویت](https://docs.ariaservice.net/authentication)). - **دسترسی (scope):** محدوده کارهایی که یک توکن مجاز است. توکنی که فقط `cloud:servers:read` دارد می‌تواند سرورها را ببیند اما نمی‌تواند چیزی بسازد یا پاک کند. - **کیف پول:** موجودی حساب شما. هزینه سفارش‌ها و صورتحساب ساعتی از آن کسر می‌شود؛ اگر کافی نباشد پاسخ `402` می‌گیرید. - **پروژه و برچسب (label):** راه‌هایی برای دسته‌بندی منابع ابر؛ مثلاً همه سرورهای یک مشتری در یک پروژه، یا برچسب `env=prod` روی سرورهای اصلی. ## مکان - **ریجن (region):** یک منطقه جغرافیایی با نصب جداگانه سرویس، مثل `iran-1`. در بعضی وب سرویس‌ها با هدر `Arianet-Region` انتخاب می‌شود. - **دیتاسنتر (datacenter):** ساختمان و سخت‌افزاری که سرور شما واقعاً در آن روشن است. هر ریجن یک یا چند دیتاسنتر دارد و هر دیتاسنتر کدی مثل `ovh` یا `thr-1` دارد. ## سرور و محاسبات - **سرور ابری / VPS:** یک کامپیوتر مجازی با سیستم‌عامل خودش که به اینترنت وصل است. سرور ابری ساعتی حساب می‌شود و منابعش (دیسک، شبکه، IP) جدا قابل مدیریت‌اند. - **سرور اختصاصی:** یک سرور فیزیکی کامل که فقط مال شماست؛ ماهانه حساب می‌شود و تحویلش چند مرحله دارد. - **پلن (plan):** اندازه سرور: تعداد هسته پردازنده، مقدار حافظه، دیسک و قیمت. - **ایمیج (image):** سیستم‌عامل آماده‌ای که سرور با آن نصب می‌شود، مثل `ubuntu-24.04`. - **cloud-init (user data):** اسکریپتی که بار اول روشن شدن سرور اجرا می‌شود؛ مثلاً برای نصب خودکار نرم‌افزار. - **rescue:** حالت نجات: سرور با یک سیستم‌عامل موقت روشن می‌شود تا بتوانید دیسک اصلی را تعمیر کنید. - **عملیات ناهمگام (action):** کاری که چند ثانیه یا چند دقیقه طول می‌کشد (مثل ساخت سرور). وب سرویس فوراً جواب می‌دهد «شروع شد» و شما وضعیت را بعداً می‌پرسید. ## ذخیره‌سازی و پشتیبان - **دیسک (volume):** فضای ذخیره‌سازی جدا که به سرور وصل می‌شود و می‌توان آن را جدا کرد و به سرور دیگری وصل کرد. - **اسنپ‌شات (snapshot):** عکس کامل دیسک سرور در یک لحظه؛ برای ساخت سرور جدید یا برگشت به همان حالت. - **پشتیبان (backup):** نسخه‌های خودکار روزانه از سرور که برای مدت محدودی نگه داشته می‌شوند. ## شبکه - **IP اصلی، IP شناور، IP الاستیک:** IP اصلی آدرس عمومی خود سرور است. IP شناور و الاستیک آدرس‌هایی هستند که مستقل از سرور نگه داشته می‌شوند و می‌توانید آن‌ها را از یک سرور به سرور دیگر منتقل کنید. - **شبکه خصوصی:** شبکه‌ای که فقط سرورهای شما به آن وصل‌اند؛ برای ارتباط امن سرورها با هم بدون عبور از اینترنت. - **فایروال:** قوانینی که می‌گویند کدام ترافیک به سرور برسد، مثلاً فقط پورت‌های ۲۲ و ۴۴۳. - **لود بالانسر:** ترافیک ورودی را بین چند سرور پخش می‌کند تا اگر یکی از کار افتاد سایت پایین نرود. - **NAT gateway:** به سرورهایی که IP عمومی ندارند اجازه می‌دهد به اینترنت دسترسی داشته باشند. ## هاست و پیامک - **هاست اشتراکی:** فضای میزبانی وب‌سایت روی سروری که با دیگران مشترک است، همراه کنترل پنل (cPanel یا DirectAdmin)، ایمیل، دیتابیس و DNS. - **نمایندگی هاست (reseller):** اکانتی که خودش می‌تواند برای مشتری‌هایش اکانت هاست بسازد و بفروشد. - **DNS:** دفترچه تلفن اینترنت؛ می‌گوید نام دامنه شما به کدام IP اشاره کند. - **خط پیامک:** شماره‌ای که پیامک از آن ارسال می‌شود؛ خط عمومی یا خط اختصاصی خودتان. - **وب‌هوک (webhook):** آدرسی در برنامه شما که آریانت هنگام رخ دادن اتفاقی (مثل تحویل پیامک) به آن خبر می‌دهد. ## صورتحساب - **صورتحساب ساعتی:** هزینه به ازای هر ساعتی که منبع وجود دارد کسر می‌شود؛ ماهانه حداکثر ۷۳۰ ساعت حساب می‌شود. - **ایدمپوتنسی (idempotency):** تضمین اینکه اگر یک سفارش را به‌خاطر قطعی شبکه دوباره بفرستید، دو بار انجام و دو بار حساب نشود ([جزئیات](https://docs.ariaservice.net/api-conventions#تکرار-امن-ایدمپوتنسی)). - **محدودیت نرخ (rate limit):** سقف تعداد درخواست در دقیقه یا ساعت؛ اگر از آن بگذرید پاسخ `429` می‌گیرید و باید کمی صبر کنید. --- title: "مستندات برای هوش مصنوعی" description: "استفاده از مستندات آریانت در ChatGPT، Claude، Cursor و عامل‌های خودکار - llms.txt، llms-full.txt، نسخه Markdown هر صفحه، سندهای OpenAPI و قواعد امن برای عامل‌ها." url: https://docs.ariaservice.net/ai markdown: https://docs.ariaservice.net/ai.md language: fa --- # مستندات برای هوش مصنوعی این مستندات طوری منتشر می‌شوند که مدل‌های زبانی، دستیارهای برنامه‌نویسی (Claude، ChatGPT، Cursor، Copilot) و عامل‌های خودکار بتوانند آن‌ها را کامل و دقیق بخوانند. ## فایل‌ها | فایل | محتوا | |---|---| | [`/llms.txt`](pathname:///llms.txt) | فهرست همه صفحه‌ها با توضیح کوتاه و پیوند به نسخه Markdown، به قالب [llmstxt.org](https://llmstxt.org) | | [`/llms-full.txt`](pathname:///llms-full.txt) | کل مستندات در یک فایل متنی، به ترتیب فهرست کناری | | `/<صفحه>.md` | نسخه Markdown هر صفحه؛ مثلاً [`/cloud-api.md`](pathname:///cloud-api.md) | | [`/en/llms.txt`](pathname:///en/llms.txt) و [`/en/llms-full.txt`](pathname:///en/llms-full.txt) | همان فایل‌ها به انگلیسی | | سندهای OpenAPI | توصیف ماشین‌خوان هر وب سرویس؛ فهرست در [مرجع API](https://docs.ariaservice.net/api-reference) | نسخه انگلیسی برای بیشتر مدل‌ها دقیق‌تر است؛ محتوای هر دو زبان یکی است. ## دکمه «کپی صفحه» بالای هر صفحه دکمه **کپی صفحه** متن Markdown همان صفحه را کپی می‌کند تا آن را در گفتگو بچسبانید. منوی کنار آن صفحه را مستقیم در Claude یا ChatGPT باز می‌کند یا نسخه Markdown را نشان می‌دهد. ## نمونه پرامپت ```text Read https://docs.ariaservice.net/en/llms.txt and the pages it links that you need. Using the Arianet Cloud API, write a Python script that creates a server named web-1 in datacenter ovh with plan 3 and image ubuntu-24.04, waits for the create action to finish, and prints its public IPv4. Read the token from ARIANET_TOKEN. ``` ## قواعد برای عامل‌های خودکار اگر عاملی می‌سازید که با توکن شما روی آریانت کار می‌کند: - **کمترین دسترسی:** برای عامل یک توکن جدا با کمترین [scope](https://docs.ariaservice.net/authentication#دسترسیها-scope) لازم بسازید؛ برای کارهای فقط‌خواندنی فقط scopeهای `read`. - **توکن را به مدل ندهید:** توکن را در متغیر محیطی ابزار نگه دارید، نه در پرامپت یا تاریخچه گفتگو. - **تأیید انسان برای کارهای پرهزینه یا برگشت‌ناپذیر:** ساخت، حذف، نصب مجدد، تمدید و ارسال پیامک هزینه دارند یا داده پاک می‌کنند؛ پیش از اجرا تأیید بگیرید. - **تکرار امن:** برای سفارش‌ها [کلید ایدمپوتنسی](https://docs.ariaservice.net/api-conventions#تکرار-امن-ایدمپوتنسی) بفرستید و پس از `504` پیش از تکرار وضعیت را بخوانید. - **منتظر پایان بمانید:** پاسخ `201`/`202` یعنی کار شروع شده، نه تمام شده؛ [action را دنبال کنید](https://docs.ariaservice.net/api-conventions#عملیات-ناهمگام). - **محدودیت نرخ:** هدرهای `RateLimit-*` و `Retry-After` را رعایت کنید. - **منبع حقیقت:** برای نام دقیق فیلدها به سند OpenAPI همان وب سرویس تکیه کنید، نه به حدس مدل. --- title: "آشنایی با پنل کاربری" description: "نگاهی کلی به پنل کاربری آریانت؛ منوی کناری و جابه‌جایی بین محصولات، نوار بالا، جستجو، اعلان‌ها، حالت تاریک، منوی کاربر و جابه‌جایی بین حساب‌ها." url: https://docs.ariaservice.net/panel markdown: https://docs.ariaservice.net/panel.md language: fa --- # آشنایی با پنل کاربری پنل کاربری آریانت در [panel.ariaservice.net](https://panel.ariaservice.net) در دسترس است. همه‌ی محصولات (سرور مجازی، ابر، سرور اختصاصی، هاستینگ، دامنه و پیامک)، کیف پول، صورتحساب‌ها، تیکت‌ها و تنظیمات حساب از همین پنل مدیریت می‌شوند. این راهنما همه‌ی بخش‌های پنل را قدم‌به‌قدم و با تصویر توضیح می‌دهد. اگر تازه شروع کرده‌اید، به این ترتیب پیش بروید: 1. [ثبت‌نام و ورود](https://docs.ariaservice.net/panel/login) 2. [احراز هویت](https://docs.ariaservice.net/panel/identity) 3. [شارژ حساب](https://docs.ariaservice.net/panel/wallet) 4. خرید اولین سرویس: [سرور مجازی](https://docs.ariaservice.net/panel/vps)، [ابر](https://docs.ariaservice.net/panel/cloud)، [هاستینگ](https://docs.ariaservice.net/panel/hosting) یا [سرور اختصاصی](https://docs.ariaservice.net/panel/baremetal) ![داشبورد پنل کاربری](https://docs.ariaservice.net/img/panel/dashboard-1.jpg) ## منوی کناری منوی سمت راست سه بخش دارد: - **بالای منو**: نام حساب و **شناسه مشتری**، و کادر «سرویس فعلی» که با آن بین محصولات جابه‌جا می‌شوید. - **وسط منو**: صفحه‌های همان محصول. در داشبورد، «اخیراً» (محصولاتی که اخیراً باز کرده‌اید) و «سرویس‌ها» (همه‌ی محصولات) نمایش داده می‌شود. وقتی وارد یک محصول شوید، منو به صفحه‌های همان محصول تغییر می‌کند و با «همهٔ سرویس‌ها» به داشبورد برمی‌گردید. - **پایین منو** (همیشه ثابت): - **پشتیبانی**: [تیکت‌ها](https://docs.ariaservice.net/panel/tickets) - **مالی و صورتحساب**: [افزایش موجودی](https://docs.ariaservice.net/panel/wallet)، پرداخت خودکار، ثبت فیش بانکی، [تراکنش‌ها و صورتحساب‌ها](https://docs.ariaservice.net/panel/billing) - **تنظیمات حساب**: [پروفایل و امنیت](https://docs.ariaservice.net/panel/profile)، [کلید SSH و توکن API](https://docs.ariaservice.net/panel/ssh-keys-api)، سازمان‌ها و [تیم و دسترسی‌ها](https://docs.ariaservice.net/panel/team) ## نوار بالا از چپ به راست: - **منوی حساب** (نام حساب): شناسه مشتری (با دکمه‌ی کپی)، پروفایل، تغییر رمز عبور، امنیت ورود، توکن‌های API، تراکنش‌ها، صورتحساب‌ها، سهمیهٔ منابع و خروج - **موجودی کیف پول**: با کلیک روی آن به صفحه‌ی [افزایش موجودی](https://docs.ariaservice.net/panel/wallet) می‌روید - **پشتیبانی**: میان‌بر تیکت‌ها - **اعلان‌ها** (زنگوله): پیام‌های سیستم، مثل ساخته شدن سرویس یا کم شدن موجودی؛ عدد قرمز تعداد اعلان‌های خوانده‌نشده است - **حالت روشن / تاریک** - **جستجو** (کلید میان‌بر `Ctrl+K`): پیدا کردن سریع سرویس‌ها و صفحه‌ها - **ساخت** (فقط در صفحه‌های ابر): ساخت سریع سرور، دیسک، شبکه و… ![منوی حساب](https://docs.ariaservice.net/img/panel/overview-usermenu.jpg) ![اعلان‌ها](https://docs.ariaservice.net/img/panel/overview-notifications.jpg) > **tip** - با «علامت‌گذاری همه به‌عنوان خوانده‌شده» همه‌ی اعلان‌ها را یک‌جا خوانده کنید. - کانال‌های دریافت اعلان (پیامک، ایمیل، تلگرام، پنل) را در [پروفایل ← اعلان‌ها](https://docs.ariaservice.net/panel/profile#اعلانها) تنظیم کنید. - هنگام تماس با پشتیبانی، **شناسه مشتری** را از منوی حساب کپی کنید و بدهید. ## جابه‌جایی بین حساب‌ها اگر عضو یک سازمان هستید یا کسی شما را به حسابش دعوت کرده است، از منوی حساب بین «حساب شخصی»، «سازمان‌های من» و «حساب‌های دیگران» جابه‌جا شوید. هر حساب کیف پول، سرویس‌ها و صورتحساب جدا دارد. راهنمای کامل در [تیم، سازمان و دسترسی‌ها](https://docs.ariaservice.net/panel/team). --- title: "ثبت‌نام و ورود" description: "ثبت‌نام و ورود به پنل آریانت با شماره موبایل یا ایمیل، کد پیامکی، رمز عبور، اپلیکیشن احراز هویت و کلید عبور." url: https://docs.ariaservice.net/panel/login markdown: https://docs.ariaservice.net/panel/login.md language: fa --- # ثبت‌نام و ورود ثبت‌نام و ورود در آریانت یک صفحه‌ی مشترک دارد. اگر با شماره‌ای وارد شوید که هنوز حساب ندارد، حساب جدید به‌طور خودکار ساخته می‌شود. ## قدم ۱: شماره موبایل یا ایمیل به [panel.ariaservice.net](https://panel.ariaservice.net) بروید. در صفحه‌ی «ورود | ثبت‌نام» شماره موبایل یا ایمیل خود را وارد کنید و «ادامه» را بزنید. ![صفحه ورود و ثبت‌نام](https://docs.ariaservice.net/img/panel/login-1.jpg) > **note** - ورود شما به معنای پذیرش شرایط و قوانین حریم خصوصی آریانت است. - بالای صفحه لینک «ورود» به پنل قدیم برای خرید سرویس‌های ایران و هاستینگ قدیمی هم هست؛ سرویس‌های جدید همه در همین پنل‌اند. ## قدم ۲: رمز عبور یا کد پیامکی - **اگر برای حساب رمز عبور تنظیم کرده‌اید**، صفحه‌ی «ورود به حساب کاربری» باز می‌شود. رمز را وارد کنید و «ورود» را بزنید. - **اگر رمز ندارید** (یا حساب تازه است)، یک کد تأیید به موبایل شما پیامک می‌شود. کد را وارد کنید. اگر پیامک نرسید، «ارسال مجدد کد» را بزنید یا با «تغییر شماره موبایل» شماره را اصلاح کنید. ![ورود با رمز عبور](https://docs.ariaservice.net/img/panel/login-password.jpg) با تیک «این سیستم را برای ۳۰ روز نگهدار»، تا ۳۰ روز روی همین مرورگر دوباره کد یا رمز نمی‌خواهد. دستگاه‌های به‌خاطرسپرده را در [پروفایل ← دستگاه‌ها](https://docs.ariaservice.net/panel/profile#دستگاهها) می‌بینید و حذف می‌کنید. > **caution** این گزینه را فقط روی دستگاه شخصی فعال کنید، نه روی رایانه‌ی مشترک یا عمومی. ## قدم ۳: تکمیل پروفایل (فقط بار اول) بعد از اولین ورود، فرم «تکمیل پروفایل کاربری» باز می‌شود. نام، نام خانوادگی، ایمیل و رمز عبور را وارد کنید و «ثبت اطلاعات و ادامه» را بزنید. تا این فرم کامل نشود، فقط صفحه‌های تیکت در دسترس است. ## ورود با کلید عبور (Passkey) یا اپلیکیشن احراز هویت - اگر [کلید عبور](https://docs.ariaservice.net/panel/profile#کلید-عبور-passkey) ثبت کرده‌اید، در صفحه‌ی اول «ورود با کلید عبور (Passkey)» را بزنید تا با اثر انگشت، تشخیص چهره یا قفل دستگاه وارد شوید. - اگر [اپلیکیشن احراز هویت](https://docs.ariaservice.net/panel/profile#اپلیکیشن-احراز-هویت) را فعال کرده باشید، بعد از قدم ۲ کد ۶ رقمی اپلیکیشن (یا یکی از کدهای بازیابی) پرسیده می‌شود. > **tip** اگر پیامک به دلیل اختلال به دستتان نمی‌رسد، با کلید عبور یا اپلیکیشن احراز هویت همچنان وارد پنل می‌شوید. فعال کردن دست‌کم یکی از آن‌ها را توصیه می‌کنیم. ## فراموشی رمز عبور - **اگر هنوز وارد پنل هستید** (مثلاً روی دستگاه به‌خاطرسپرده)، از منوی کاربر به «تغییر رمز عبور» بروید و «رمز عبور فعلی را فراموش کرده‌اید؟» را بزنید؛ رمز جدید با کد پیامکی تنظیم می‌شود. - **اگر وارد نیستید**، با [کلید عبور](#ورود-با-کلید-عبور-passkey-یا-اپلیکیشن-احراز-هویت) وارد شوید، یا با تلفن پشتیبانی که پایین صفحه‌ی ورود نوشته شده تماس بگیرید. --- title: "احراز هویت" description: "احراز هویت حساب در آریانت، مهلت ۲۴ ساعته پس از خرید، محدودیت حساب احرازنشده، اطلاعات حقوقی و ثبت IP سرور در سامانه شاهکار." url: https://docs.ariaservice.net/panel/identity markdown: https://docs.ariaservice.net/panel/identity.md language: fa --- # احراز هویت طبق قوانین، سرویس‌ها فقط برای حساب‌هایی که هویتشان تأیید شده باشد فعال می‌مانند. وضعیت احراز هویت در بالای [پروفایل](https://docs.ariaservice.net/panel/profile) با برچسب «هویت تأیید شده» یا «هویت تأیید نشده» نمایش داده می‌شود. > **تا احراز هویت نکرده‌اید** - فقط **یک سرور** می‌توانید بسازید. - پس از خرید اولین سرویس، پیامک یادآوری می‌گیرید و **۲۴ ساعت** مهلت دارید. پس از آن **سرویس‌ها تا تکمیل احراز هویت خاموش و قفل می‌شوند** و پس از احراز هویت خودکار آزاد می‌شوند. - هزینه‌ی سرویس‌ها در این مدت حساب می‌شود. ## مراحل احراز هویت 1. از پیام «برای ادامهٔ استفاده، هویت خود را احراز کنید» (بعد از خرید) یا از صفحه‌ی «تایید هویت»، «احراز هویت» را بزنید. 2. این‌ها را آماده کنید: - کد ملی - تاریخ تولد - شماره موبایلی که **به نام همان کد ملی** ثبت شده باشد 3. «شروع احراز هویت» را بزنید. به صفحه‌ی امن احراز هویت منتقل می‌شوید. 4. مراحل را کامل کنید. پس از پایان به پنل برمی‌گردید و نتیجه را می‌بینید. اگر ناموفق بود، «تلاش دوباره» را بزنید. ![صفحه تایید هویت](https://docs.ariaservice.net/img/panel/identity-1.jpg) > **tip** - اگر شماره موبایل حساب به نام شخص دیگری است، احراز هویت ناموفق می‌شود؛ برای تغییر شماره [تیکت](https://docs.ariaservice.net/panel/tickets) بزنید (بخش «احراز هویت»). - لینک صفحه‌ی احراز هویت فقط برای خود شما باز می‌شود و برای دیگری کار نمی‌کند. - با «بعداً انجام می‌دهم» می‌توانید فعلاً رد شوید، ولی محدودیت‌های بالا پابرجاست. ## اطلاعات حقوقی و فاکتور رسمی برای خرید به نام شرکت، در پروفایل زبانه‌ی «هویتی و حقوقی» را باز کنید، «اطلاعات حقوقی دارم» را تیک بزنید و مشخصات شرکت و نشانی را وارد کنید. [راهنمای کامل](https://docs.ariaservice.net/panel/profile#هویتی-و-حقوقی). ![زبانه هویتی و حقوقی](https://docs.ariaservice.net/img/panel/profile-identity.jpg) ## ثبت در سامانه شاهکار برای سرورهایی که IP ایران دارند، IP باید در سامانه‌ی **شاهکار** به نام مالک ثبت شود. پس از ساخت چنین سروری، دکمه‌ی «ثبت در شاهکار» نمایش داده می‌شود: 1. نوع شخص را انتخاب کنید: «شخص حقیقی» یا «شخص حقوقی». اطلاعات از زبانه‌ی «هویتی و حقوقی» پروفایل خوانده می‌شود. 2. «ارسال درخواست و دریافت کد پیامکی» را بزنید. 3. کد پیامکی را وارد کنید (برای شخص حقوقی دو کد ارسال می‌شود) و «تأیید و تکمیل ثبت» را بزنید. > **note** پیش از ثبت در شاهکار، اطلاعات زبانه‌ی «هویتی و حقوقی» را کامل کنید؛ وگرنه درخواست ثبت ارسال نمی‌شود. --- title: "داشبورد" description: "داشبورد پنل آریانت؛ خلاصه‌ی سرورها، موجودی، برآورد هزینه‌ی ماه و دسترسی سریع." url: https://docs.ariaservice.net/panel/dashboard markdown: https://docs.ariaservice.net/panel/dashboard.md language: fa --- # داشبورد داشبورد اولین صفحه‌ی بعد از ورود است و خلاصه‌ی وضعیت حساب را نشان می‌دهد. ![داشبورد پنل کاربری](https://docs.ariaservice.net/img/panel/dashboard-1.jpg) - **افزایش اعتبار** و **سرویس جدید**: دو دکمه‌ی بالای صفحه برای شارژ حساب و خرید سرویس - **کارت‌های خلاصه**: تعداد سرورهای فعال، سرویس‌های مسدود و موجودی حساب - **سرویس‌ها / برنامه‌ها**: محصولاتی که فعال کرده‌اید. برچسب «آزمایشی» یعنی محصول در دوره‌ی آزمایشی است. - **مصرف و برآورد هزینه ماه جاری**: هزینه‌ای که تا امروز ثبت شده و برآورد تا پایان ماه - **دسترسی سریع**: مدیریت سرورها، صورتحساب، پروفایل و تیکت‌ها - **آخرین فعالیت‌ها**: آخرین کارهایی که در حساب انجام شده است ![نمودار مصرف، دسترسی سریع و آخرین فعالیت‌ها](https://docs.ariaservice.net/img/panel/dashboard-2.jpg) ## منوی کناری داشبورد در داشبورد، منوی کناری دو بخش دارد: **اخیراً** (محصولاتی که اخیراً باز کرده‌اید) و **سرویس‌ها** (همه‌ی محصولات). با کلیک روی هر محصول به صفحه‌ی آن می‌روید و منو به منوی همان محصول تغییر می‌کند. با «همهٔ سرویس‌ها» به داشبورد برمی‌گردید. > **tip** - «جزئیات بیشتر» در کارت مصرف، صفحه‌ی [صورتحساب‌ها](https://docs.ariaservice.net/panel/billing) را با جزئیات هزینه‌ی هر سرویس باز می‌کند. - اگر عدد «سرویس‌های مسدود» صفر نیست، معمولاً موجودی حساب تمام شده است؛ [حساب را شارژ کنید](https://docs.ariaservice.net/panel/wallet) تا سرویس‌ها دوباره فعال شوند. - «برآورد هزینه تا پایان ماه» بر اساس مصرف فعلی حساب می‌شود؛ موجودی را از این عدد بیشتر نگه دارید. --- title: "شارژ حساب و کیف پول" description: "افزایش موجودی حساب آریانت با درگاه بانکی، رمزارز USDT، فیش بانکی و پرداخت خودکار (پرداخت هوشمند)، و مدیریت کیف پول‌ها." url: https://docs.ariaservice.net/panel/wallet markdown: https://docs.ariaservice.net/panel/wallet.md language: fa --- # شارژ حساب و کیف پول هزینه‌ی همه‌ی سرویس‌ها از موجودی کیف پول کم می‌شود. سرویس‌های ساعتی (مثل سرور مجازی و ابر) هر ساعت و سرویس‌های ماهانه (مثل سرور اختصاصی) هنگام سفارش و تمدید حساب می‌شوند. > **caution** اگر موجودی تمام شود، سرویس‌های ساعتی **مسدود** می‌شوند و بعد از مدتی حذف می‌شوند. همیشه کمی بیشتر از مصرف چند روز آینده موجودی داشته باشید، یا [پرداخت خودکار](#پرداخت-خودکار-پرداخت-هوشمند) را فعال کنید. همه‌ی صفحه‌های این بخش در منوی **مالی و صورتحساب** (پایین منوی کناری) هستند. موجودی فعلی همیشه در نوار بالای پنل دیده می‌شود و با کلیک روی آن به صفحه‌ی افزایش موجودی می‌روید. ## افزایش موجودی با درگاه بانکی 1. در «مالی و صورتحساب»، «افزایش موجودی» را باز کنید (یا در داشبورد «افزایش اعتبار» را بزنید). 2. در «مبلغ به ریال» مبلغ را وارد کنید یا یکی از مبلغ‌های آماده (۱۰، ۳۰ یا ۱۰۰ میلیون ریال) را بزنید. زیر فیلد، مبلغ به حروف نوشته می‌شود تا از درستی آن مطمئن شوید. 3. در «انتخاب درگاه پرداخت» درگاه بانک را انتخاب کنید. 4. دکمه‌ی «پرداخت … ریال» را بزنید. به صفحه‌ی بانک منتقل می‌شوید؛ پرداخت را با کارت بانکی انجام دهید. 5. بعد از پرداخت موفق به پنل برمی‌گردید و موجودی بلافاصله افزایش می‌یابد. ![صفحه افزایش موجودی](https://docs.ariaservice.net/img/panel/wallet-1.jpg) ![انتخاب مبلغ و درگاه پرداخت](https://docs.ariaservice.net/img/panel/wallet-2.jpg) > **danger** مبلغ شارژ **قابل بازگشت نیست**. پیش از پرداخت از مبلغ مطمئن شوید. > **tip** - اگر صفحه‌ی بانک باز نشد، **VPN را خاموش کنید**؛ درگاه‌های بانکی ایران فقط از IP ایران باز می‌شوند. - اگر پول از حساب شما کم شد ولی موجودی پنل افزایش نیافت، تا ۷۲ ساعت توسط بانک برگشت داده می‌شود. اگر برنگشت، با شماره‌ی پیگیری بانک [تیکت](https://docs.ariaservice.net/panel/tickets) بزنید. ## سایر روش‌های پرداخت در سمت چپ صفحه‌ی افزایش موجودی، کادر «سایر روش‌های پرداخت» این گزینه‌ها را دارد: - **پرداخت هوشمند**: شارژ خودکار حساب ([پایین‌تر](#پرداخت-خودکار-پرداخت-هوشمند)) - **پرداخت با رمز ارز**: USDT روی شبکه‌ی TRC20 با کارمزد پایین - **واریز به حساب**: به‌زودی در دسترس ## پرداخت با رمزارز (USDT TRC20) 1. در «سایر روش‌های پرداخت»، «پرداخت با رمز ارز» را بزنید. 2. مبلغ را به دلار وارد کنید یا یکی از مبلغ‌های آماده (۵ تا ۱۰۰ دلار) را بزنید. حداقل مبلغ ۱ دلار است. 3. «دریافت آدرس پرداخت» را بزنید. آدرس کیف پول، کد QR و مهلت پرداخت نمایش داده می‌شود. 4. **دقیقاً همان مبلغ** USDT را پیش از پایان مهلت به آن آدرس بفرستید. بعد از تأیید شبکه پیام «پرداخت موفق» نمایش داده می‌شود و موجودی شارژ می‌شود. ![پرداخت با USDT TRC20](https://docs.ariaservice.net/img/panel/wallet-crypto-1.jpg) > **danger** فقط **USDT روی شبکه‌ی TRON (TRC20)** بفرستید. ارسال از شبکه‌ی ERC20 یا BEP20 یا ارسال رمزارز دیگر باعث **از دست رفتن دارایی** می‌شود و قابل بازگشت نیست. ## ثبت فیش بانکی (کارت‌به‌کارت یا واریز) اگر مبلغ را مستقیم به حساب بانکی شرکت واریز کرده‌اید: 1. در «مالی و صورتحساب»، «ثبت فیش بانکی» را باز کنید و «ثبت فیش جدید» را بزنید. 2. در «حساب مقصد» حسابی را که به آن واریز کرده‌اید انتخاب کنید. شماره‌ی کارت، شماره‌ی حساب و نام صاحب حساب نمایش داده می‌شود. 3. «مبلغ واریزی (ریال)»، «کد پیگیری بانکی» (شناسه‌ی پیگیری روی رسید) و «تاریخ واریز» را وارد کنید. در صورت نیاز «توضیحات» بنویسید و فیش را ثبت کنید. 4. فیش با وضعیت «در انتظار بررسی» در جدول «فیش‌های واریزی» نمایش داده می‌شود. بعد از تأیید تیم مالی وضعیت «تایید شده» می‌شود و کیف پول شارژ می‌شود. ![صفحه ثبت و پیگیری فیش بانکی](https://docs.ariaservice.net/img/panel/wallet-deposit-1.jpg) ![فرم ثبت فیش واریز بانکی](https://docs.ariaservice.net/img/panel/wallet-deposit-2.jpg) > **tip** - **ابتدا واریز کنید، بعد فیش را ثبت کنید.** فقط به حساب‌هایی که در فهرست «حساب مقصد» پنل آمده‌اند واریز کنید. - کد پیگیری را دقیقاً مثل رسید بانک وارد کنید؛ فیش با کد پیگیری اشتباه رد می‌شود. - تاریخ واریز نمی‌تواند در آینده باشد. - شارژ با فیش دستی تأیید می‌شود و ممکن است زمان ببرد؛ برای شارژ فوری از درگاه بانکی استفاده کنید. ## پرداخت خودکار (پرداخت هوشمند) با پرداخت خودکار، هر بار موجودی حساب از حدی پایین‌تر رود، مبلغ مشخصی خودکار از حساب بانکی شما برداشت و به کیف پول اضافه می‌شود. با این کار سرویس‌ها به خاطر تمام شدن موجودی مسدود نمی‌شوند. 1. در «مالی و صورتحساب»، «پرداخت خودکار» را باز کنید. فهرست «قراردادهای فعال» با بانک، حداقل برداشت، حداکثر مبلغ، محدودیت روزانه، وضعیت و تاریخ انقضا نمایش داده می‌شود. 2. «ایجاد قرارداد جدید» را بزنید. 3. فرم «شارژ خودکار» را پر کنید: - **انتخاب بانک**: بانکی که حساب شما در آن است. - **حد آستانه برداشت (ریال)**: اگر موجودی حساب کمتر از این مقدار شد، برداشت انجام می‌شود. - **بیش‌ترین تعداد برداشت در هر روز** - **بازه زمانی قرارداد برداشت**: مدت اعتبار قرارداد (مثلاً ۱ ساله). - **مبلغ برداشتی در هر تراکنش (ریال)** 4. «ثبت قرارداد پرداخت خودکار» را بزنید و قرارداد را در صفحه‌ی بانک تأیید کنید. ![قراردادهای پرداخت خودکار](https://docs.ariaservice.net/img/panel/wallet-autopay-1.jpg) ![فرم ثبت قرارداد شارژ خودکار](https://docs.ariaservice.net/img/panel/wallet-autopay-2.jpg) > **tip** مبلغ هر برداشت را حداقل به اندازه‌ی مصرف یک روز سرویس‌هایتان بگذارید تا برداشت‌های پی‌درپی لازم نشود. سقف برداشت روزانه و مدت قرارداد را هم بانک محدود می‌کند. ## مدیریت کیف پول‌ها در «مالی و صورتحساب ← افزایش موجودی» از مسیر کیف پول‌ها، صفحه‌ی «مدیریت کیف پول‌ها» را می‌بینید: - **کیف پول پیش فرض**: کیف پولی که هزینه‌ی سرویس‌ها از آن کم می‌شود، با موجودی و وضعیت آن. - **زنگوله‌ی اعلان**: با روشن کردن آن، وقتی موجودی کم شد به شما اطلاع داده می‌شود. این گزینه را حتماً روشن کنید. - **افزایش آنلاین موجودی**: شارژ مستقیم همین کیف پول. - **ایجاد کیف پول**: ساخت کیف پول به ارز دیگر. با «تنظیم پیش‌فرض» کیف پول پیش‌فرض را عوض کنید. ![مدیریت کیف پول‌ها](https://docs.ariaservice.net/img/panel/wallet-wallets.jpg) --- title: "تراکنش‌ها و صورتحساب‌ها" description: "مشاهده‌ی تراکنش‌ها، گزارش تجمیعی مصارف، صورتحساب ماهانه، جزئیات مصرف هر سرویس، دریافت PDF فاکتور و سهمیه‌ی منابع در پنل آریانت." url: https://docs.ariaservice.net/panel/billing markdown: https://docs.ariaservice.net/panel/billing.md language: fa --- # تراکنش‌ها و صورتحساب‌ها همه‌ی صفحه‌های این بخش در منوی **مالی و صورتحساب** (پایین منوی کناری) هستند. ## تراکنش‌ها «تراکنش‌ها» همه‌ی واریزها و برداشت‌های کیف پول را با شرح، مبلغ، وضعیت و تاریخ نشان می‌دهد. با فیلترهای «همه»، «امروز»، «این هفته» و «این ماه» یا کادر جستجو تراکنش را پیدا کنید. دکمه‌ی چشم جزئیات تراکنش را نشان می‌دهد و دکمه‌ی دانلود رسید آن را. ![فهرست تراکنش‌ها](https://docs.ariaservice.net/img/panel/billing-transactions.jpg) ## صورتحساب‌ها هر ماه یک صورتحساب ساخته می‌شود که همه‌ی هزینه‌های آن ماه را جمع می‌کند. بالای صفحه‌ی «صورتحساب‌ها» **گزارش تجمیعی مصارف** است (با انتخاب ماه از فهرست بالای آن): - **مصرف کل دوره**، **مبلغ فاکتور شده** و **تخفیف اعمال‌شده** - **اعتبار کافی تا**: با موجودی فعلی و مصرف روزانه، تقریباً تا چند روز دیگر موجودی کافی است - نمودار مصرف روزانه‌ی ماه - **مصرف بر اساس محصول**: سهم هر محصول (هاستینگ، سرور مجازی، ابر و…) از هزینه - **وضعیت پرداخت فاکتورها** ![گزارش تجمیعی مصارف](https://docs.ariaservice.net/img/panel/billing-invoices-1.jpg) > **tip** عدد «اعتبار کافی تا» را دنبال کنید. وقتی به چند روز رسید، [حساب را شارژ کنید](https://docs.ariaservice.net/panel/wallet) یا [پرداخت خودکار](https://docs.ariaservice.net/panel/wallet#پرداخت-خودکار-پرداخت-هوشمند) را فعال کنید تا سرویس‌ها مسدود نشوند. پایین صفحه **لیست فاکتورها** با شماره، دوره، مبلغ کل و وضعیت هر فاکتور است. دکمه‌ی چشم («مشاهده جزئیات») فاکتور را باز می‌کند. ![لیست فاکتورها](https://docs.ariaservice.net/img/panel/billing-invoices-2.jpg) ### جزئیات صورتحساب صفحه‌ی هر صورتحساب این‌ها را نشان می‌دهد: - شماره، دوره (شروع و پایان)، ارز، وضعیت («دوره جاری»، «باز»، «درحال دریافت» و…) و روزهای باقی‌مانده‌ی دوره - **مبلغ تا این لحظه** (و معادل آن به تومان) - نمودار **سهم هر نوع منبع** از صورتحساب - **جزئیات مصرف**: با کلیک روی هر نوع منبع، ریز مصرف آن را ببینید - دکمه‌های **چاپ** و **دریافت PDF** ![جزئیات صورتحساب](https://docs.ariaservice.net/img/panel/billing-invoice-detail.jpg) > **note** صورتحساب ماه جاری تا پایان ماه باز است و مبلغ آن با هر ساعت مصرف سرویس‌های ساعتی بالا می‌رود. هزینه‌ها همان لحظه از کیف پول کم می‌شوند؛ صورتحساب گزارش همین کسرهاست، نه بدهی جدا. ## هزینه‌های یک سرویس در صفحه‌ی هر سرور ابری، زبانه‌ی «هزینه‌ها» هزینه‌ی ساعتی و ماهانه‌ی همان سرور را نشان می‌دهد ([ابر آریانت](https://docs.ariaservice.net/panel/cloud#هزینهها)). در هاست هم «صورتحساب ← مشاهده هزینه‌های این سرویس» همین کار را می‌کند. ## سهمیه منابع هر حساب برای تعداد هر نوع منبع (سرور، IP، دیسک، فایروال، اسنپ‌شات و…) سقفی دارد. «تنظیمات حساب ← سهمیهٔ منابع» سقف و مصرف فعلی هر منبع را نشان می‌دهد. اگر سقف کافی نیست، «درخواست افزایش سهمیه» بدهید. ![سهمیه منابع](https://docs.ariaservice.net/img/panel/quota.jpg) > **tip** پیش از ساخت تعداد زیادی سرور، سهمیه را بررسی کنید. اگر سهمیه پر باشد، ساخت منبع جدید با خطا رد می‌شود. درخواست افزایش سهمیه را پشتیبانی بررسی می‌کند. --- title: "پروفایل و امنیت" description: "ویرایش پروفایل، اطلاعات هویتی و حقوقی، تغییر رمز عبور، ورود دومرحله‌ای با اپلیکیشن احراز هویت و Passkey، دستگاه‌های مورد اعتماد و تنظیم اعلان‌ها در پنل آریانت." url: https://docs.ariaservice.net/panel/profile markdown: https://docs.ariaservice.net/panel/profile.md language: fa --- # پروفایل و امنیت همه‌ی این صفحه‌ها در منوی **تنظیمات حساب** (پایین منوی کناری) و منوی کاربر (نام شما در گوشه‌ی بالای پنل) هستند. ## پروفایل «تنظیمات حساب ← پروفایل» را باز کنید. بالای صفحه خلاصه‌ی حساب دیده می‌شود: نام، ایمیل، موبایل، **شناسه مشتری** و برچسب‌های وضعیت («حساب فعال»، «هویت تأیید شده / نشده»، «ایمیل تأیید شده») و موجودی حساب. صفحه‌ی پروفایل چهار زبانه دارد. ### مشخصات ![زبانه مشخصات پروفایل](https://docs.ariaservice.net/img/panel/profile-1.jpg) - **مشخصات فردی**: نام، نام خانوادگی، جنسیت و تاریخ تولد. بعد از تغییر «ذخیره تغییرات» را بزنید. این نام روی فاکتورها و مکاتبات پشتیبانی نمایش داده می‌شود. - **اطلاعات تماس**: شماره موبایل و ایمیل. - **آخرین ورود**: زمان، دستگاه و IP آخرین ورود به حساب. > **note** **شماره موبایل قابل ویرایش نیست.** برای تغییر آن [تیکت](https://docs.ariaservice.net/panel/tickets) بزنید (بخش «احراز هویت»). > **tip** اگر «آخرین ورود» زمان یا IPی را نشان می‌دهد که مربوط به شما نیست، فوراً [رمز عبور را عوض کنید](#تغییر-رمز-عبور) و [ورود دومرحله‌ای](#امنیت-ورود) را فعال کنید. ### هویتی و حقوقی اطلاعاتی که برای ثبت سرویس‌های ایران در سامانه‌ی **شاهکار** (الزام رگولاتوری) و صدور فاکتور لازم است: - **اطلاعات شخص حقیقی**: کد ملی و شماره موبایل. تا کامل نشود برچسب «ناقص» دارد. - **اطلاعات شخص حقوقی (شرکت)**: اگر به نام شرکت خرید می‌کنید، «اطلاعات حقوقی دارم» را تیک بزنید و مشخصات شرکت را وارد کنید. - **نشانی**: استان، شهرستان، خیابان، پلاک، کد پستی ۱۰ رقمی، تلفن ثابت و آدرس کامل. در پایان «ذخیره اطلاعات» را بزنید. ![زبانه هویتی و حقوقی](https://docs.ariaservice.net/img/panel/profile-identity.jpg) > **tip** اطلاعات حقیقی و حقوقی را می‌توانید هم‌زمان ثبت کنید و هنگام ثبت هر سرور یکی را انتخاب کنید. احراز هویت حساب جداست؛ [احراز هویت](https://docs.ariaservice.net/panel/identity) را ببینید. ### دستگاه‌ها دستگاه‌هایی که هنگام ورود گزینه‌ی «این دستگاه را برای ۳۰ روز به خاطر بسپار» را برایشان زده‌اید، در «دستگاه‌های مورد اعتماد» فهرست می‌شوند. این دستگاه‌ها تا ۳۰ روز بدون کد وارد می‌شوند. اگر دستگاهی را نمی‌شناسید یا دیگر از آن استفاده نمی‌کنید، آن را حذف کنید. ![زبانه دستگاه‌های مورد اعتماد](https://docs.ariaservice.net/img/panel/profile-devices.jpg) ### اعلان‌ها در «تنظیمات اعلان‌ها» برای هر رویداد سرویس (مثل اتصال دامنه به Cloudflare، کم شدن موجودی یا ساخته شدن سرور) تعیین کنید پیام از کدام کانال برسد. رویدادها بر اساس سرویس دسته‌بندی شده‌اند. آیکون‌های کنار هر رویداد کانال‌های روشن را نشان می‌دهند؛ با کلیک روی رویداد، کانال‌ها را تک‌به‌تک روشن یا خاموش کنید: | کانال | هزینه | |---|---| | پیامک | هزینه‌ی هر پیام کنار آن نوشته شده است (مثلاً ۲٬۰۰۰ ریال) | | ایمیل | رایگان | | تلگرام | رایگان؛ ابتدا باید حساب تلگرام را وصل کنید | | اعلان در پنل | رایگان | ![تنظیمات اعلان‌ها](https://docs.ariaservice.net/img/panel/profile-notifications.jpg) ![کانال‌های یک رویداد](https://docs.ariaservice.net/img/panel/profile-notifications-2.jpg) برای دریافت اعلان در تلگرام، «اتصال به تلگرام» را بزنید و ربات را در تلگرام Start کنید. > **tip** اعلان‌های مالی (کم شدن موجودی، صدور صورتحساب) را حتماً روی دست‌کم یک کانال رایگان مثل ایمیل یا تلگرام روشن نگه دارید تا سرویس‌ها به خاطر تمام شدن موجودی مسدود نشوند. ## تغییر رمز عبور «تنظیمات حساب ← تغییر رمز عبور» را باز کنید، رمز فعلی و رمز جدید را دو بار وارد کنید و «تغییر رمز عبور» را بزنید. رمز جدید باید این شرایط را داشته باشد: - حداقل ۸ کاراکتر - حداقل یک حرف بزرگ و یک حرف کوچک انگلیسی - حداقل یک عدد - حداقل یک کاراکتر ویژه (مثل `!@#$`) ![تغییر رمز عبور](https://docs.ariaservice.net/img/panel/profile-password.jpg) اگر رمز فعلی را فراموش کرده‌اید، «رمز عبور فعلی را فراموش کرده‌اید؟» را بزنید؛ رمز جدید با کد پیامکی تنظیم می‌شود. ## امنیت ورود از منوی کاربر «امنیت ورود» را باز کنید. صفحه‌ی «روش‌های ورود» دو روش ورود بدون پیامک را مدیریت می‌کند. اگر پیامک به هر دلیلی (مثل اختلال اینترنت بین‌الملل) به دستتان نرسد، با این روش‌ها همچنان وارد پنل می‌شوید. **فعال کردن دست‌کم یکی از آن‌ها را توصیه می‌کنیم.** ![روش‌های ورود](https://docs.ariaservice.net/img/panel/profile-security.jpg) ### اپلیکیشن احراز هویت اپلیکیشن (مثل Google Authenticator یا Microsoft Authenticator) هر ۳۰ ثانیه یک کد ۶ رقمی می‌سازد و برای کار به اینترنت یا پیامک نیاز ندارد. 1. در کارت «اپلیکیشن احراز هویت»، «فعال‌سازی» را بزنید. 2. اپلیکیشن را روی گوشی نصب کنید و کد QR را با آن اسکن کنید (یا کلید نمایش‌داده‌شده را دستی وارد کنید). 3. کد ۶ رقمی‌ای که اپلیکیشن نشان می‌دهد را وارد کنید و «تایید و فعال‌سازی» را بزنید. 4. **کدهای بازیابی** را که نمایش داده می‌شود در جای امنی ذخیره کنید. ![فعال‌سازی اپلیکیشن احراز هویت](https://docs.ariaservice.net/img/panel/profile-totp.jpg) > **danger** کد QR و کلید را با هیچ‌کس به اشتراک نگذارید. اگر گوشی را گم کنید، فقط با **کدهای بازیابی** وارد حساب می‌شوید؛ آن‌ها را جدا از گوشی نگه دارید. ### کلید عبور (Passkey) با کلید عبور بدون کد و پیامک، فقط با قفل دستگاه (اثر انگشت، Face ID، Windows Hello یا کلید امنیتی) وارد می‌شوید. 1. در کارت «کلید عبور (Passkey)»، «افزودن کلید عبور» را بزنید. 2. درخواست مرورگر یا سیستم‌عامل را با اثر انگشت یا قفل دستگاه تأیید کنید. 3. برای هر دستگاه (لپ‌تاپ، گوشی) یک کلید جدا ثبت کنید. هر کلید را می‌توانید تغییر نام دهید یا حذف کنید. --- title: "کلید SSH و توکن API" description: "افزودن کلید SSH برای ورود امن به سرورها و ساخت توکن API با دسترسی محدود برای CLI، Terraform و وب سرویس آریانت." url: https://docs.ariaservice.net/panel/ssh-keys-api markdown: https://docs.ariaservice.net/panel/ssh-keys-api.md language: fa --- # کلید SSH و توکن API ## کلیدهای SSH با کلید SSH بدون رمز عبور و امن‌تر وارد سرورها می‌شوید. کلیدی که اینجا ذخیره کنید، هنگام ساخت هر سرور مجازی و سرور ابری فقط با یک کلیک انتخاب می‌شود. ![صفحه کلیدهای SSH](https://docs.ariaservice.net/img/panel/keys-empty.jpg) ### ساخت کلید روی کامپیوتر اگر کلید ندارید، در ترمینال (macOS، لینوکس یا PowerShell ویندوز) بسازید و کلید عمومی را نمایش دهید: ```bash ssh-keygen -t ed25519 cat ~/.ssh/id_ed25519.pub ``` ### افزودن کلید به پنل 1. «تنظیمات حساب ← کلیدهای SSH» را باز کنید و «افزودن کلید» را بزنید. 2. خروجی دستور `cat` (متنی که با `ssh-ed25519` شروع می‌شود) را در «کلید عمومی» بچسبانید، یا با «انتخاب فایل pub.» فایل کلید عمومی را بارگذاری کنید. 3. در «نام کلید» یک نام قابل تشخیص بنویسید (مثلاً `my-laptop`). 4. اگر «پیش‌فرض» تیک داشته باشد، این کلید در ساخت سرورهای جدید از قبل انتخاب می‌شود. 5. «افزودن کلید» را بزنید. ![فرم افزودن کلید SSH](https://docs.ariaservice.net/img/panel/keys-add.jpg) کلید با نام، نوع، اثر انگشت (fingerprint) و زمان افزودن در فهرست نمایش داده می‌شود. دکمه‌های هر کلید: «لغو پیش‌فرض» یا «پیش‌فرض کردن»، «تغییر نام»، «کپی کلید عمومی» و «حذف». ![فهرست کلیدهای SSH](https://docs.ariaservice.net/img/panel/keys-list.jpg) > **danger** فقط **کلید عمومی** (فایل `.pub`) را وارد کنید. کلید خصوصی (فایل بدون پسوند `.pub`) را هرگز در هیچ سایتی وارد نکنید و به هیچ‌کس ندهید. > **note** حذف یک کلید از پنل، آن را از سرورهایی که قبلاً با آن ساخته شده‌اند برنمی‌دارد. برای قطع دسترسی، کلید را از فایل `~/.ssh/authorized_keys` روی خود سرور هم پاک کنید. ## توکن‌های API توکن API برای [CLI](https://docs.ariaservice.net/cli)، [Terraform](https://docs.ariaservice.net/terraform)، اسکریپت‌ها و [وب سرویس](https://docs.ariaservice.net/authentication) لازم است. از «تنظیمات حساب ← توکن‌های API» (یا منوی کاربر) صفحه را باز کنید. «کل توکن‌ها» و «توکن‌های فعال» بالای صفحه شمرده می‌شوند و لینک «راهنمای CLI» و «مستندات API» هم همین‌جاست. ![صفحه توکن‌های API](https://docs.ariaservice.net/img/panel/tokens-1.jpg) ### ساخت توکن 1. «ساخت توکن جدید» را بزنید. 2. در «نام توکن» کاربرد آن را بنویسید (مثلاً «لپ‌تاپ من» یا «CI سرور وب»). 3. «دسترسی» را انتخاب کنید: - **همهٔ دسترسی‌ها**: هر کاری که در پنل می‌توانید بکنید. فقط برای استفاده‌ی شخصی در CLI. - **محدود به بخش‌های انتخابی**: برای اسکریپت و CI. فقط دسترسی‌های لازم را تیک بزنید، مثلاً `servers:read` (مشاهده‌ی سرورها) یا `servers:write` (ساخت، حذف، ریستارت و نصب مجدد سرور). دکمه‌ی «فقط خواندن» همه‌ی دسترسی‌های مشاهده را یک‌جا انتخاب می‌کند. 4. «تاریخ انقضا (اختیاری)» را تعیین کنید. 5. در «IP های مجاز (اختیاری)» می‌توانید یک IP (IPv4 یا IPv6، نه بازه) بنویسید. درخواست از هر IP دیگر با خطای `IP_NOT_ALLOWED` رد می‌شود. 6. «ساخت توکن» را بزنید. ![فرم ساخت توکن API](https://docs.ariaservice.net/img/panel/tokens-new.jpg) ![انتخاب دسترسی‌های محدود توکن](https://docs.ariaservice.net/img/panel/tokens-scopes.jpg) > **danger** توکن کامل **فقط یک بار** نمایش داده می‌شود و بعد از بستن پنجره دیگر قابل مشاهده نیست. همان لحظه آن را کپی و در جای امنی (مثل مدیر رمز عبور یا Secret مخزن CI) ذخیره کنید. > **tip** - برای هر کاربرد یک توکن جدا بسازید تا در صورت لو رفتن، فقط همان را حذف کنید. - به توکن‌های اسکریپت و CI کمترین دسترسی لازم، تاریخ انقضا و IP مجاز بدهید؛ اگر توکن محدود لو برود، فقط همان بخش‌ها در خطرند. - توکنی را که لو رفته یا دیگر استفاده نمی‌شود فوراً حذف کنید. --- title: "تیکت پشتیبانی" description: "ثبت و پیگیری تیکت پشتیبانی در پنل آریانت، انتخاب بخش و سرویس، پیوست فایل و ارسال امن اطلاعات محرمانه." url: https://docs.ariaservice.net/panel/tickets markdown: https://docs.ariaservice.net/panel/tickets.md language: fa --- # تیکت پشتیبانی همه‌ی صفحه‌های پشتیبانی در منوی **پشتیبانی** (پایین منوی کناری) یا دکمه‌ی «پشتیبانی» در نوار بالای پنل هستند. ## تیکت‌های من «پشتیبانی ← تیکت‌های من» همه‌ی تیکت‌های شما را با شماره، موضوع، وضعیت، دپارتمان و زمان ایجاد نشان می‌دهد. با کادر «جستجو» و فیلتر «وضعیت» تیکت مورد نظر را پیدا کنید. ![فهرست تیکت‌ها](https://docs.ariaservice.net/img/panel/tickets-list.jpg) وضعیت‌های تیکت: | وضعیت | معنی | |---|---| | باز | ثبت شده و منتظر بررسی است | | در حال بررسی | کارشناس روی آن کار می‌کند | | نیازمند اقدام مشتری | پشتیبانی منتظر پاسخ یا کاری از طرف شماست | | پاسخ داده شده | پشتیبانی پاسخ داده است | | بسته شده | تیکت تمام شده است | ## ثبت تیکت جدید 1. «ایجاد تیکت جدید» (یا «پشتیبانی ← تیکت جدید») را بزنید. 2. **موضوع**: خلاصه‌ی مشکل در یک جمله (مثلاً «عدم دسترسی SSH به سرور»). 3. **بخش**: دپارتمان مربوط را انتخاب کنید: - **پشتیبانی**: مشکلات فنی سرویس‌ها - **فروش**: سؤال پیش از خرید، قیمت و پلن‌ها - **احراز هویت**: مشکل احراز هویت، تغییر شماره موبایل - **مدیریت**: شکایت و پیشنهاد - **بازاریابی**: همکاری و تبلیغات 4. **درباره کدام سرویس** (اختیاری): سرویسی را که مشکل دارد انتخاب کنید تا کارشناس مستقیم به آن دسترسی داشته باشد. 5. **توضیحات**: مشکل را کامل بنویسید (حداکثر ۱۰۰۰ کاراکتر). 6. **پیوست‌ها**: در صورت نیاز عکس یا فایل اضافه کنید. 7. «ارسال تیکت» را بزنید. ![فرم ایجاد تیکت جدید](https://docs.ariaservice.net/img/panel/tickets-new.jpg) > **نوشتن تیکت خوب** پاسخ سریع‌تر می‌گیرید اگر این‌ها را بنویسید: - چه کاری انجام دادید و چه انتظاری داشتید - دقیقاً چه خطایی دیدید (متن خطا یا عکس صفحه) - از چه زمانی مشکل شروع شده - چه کارهایی را قبلاً امتحان کرده‌اید (مثلاً «از کنسول VNC هم امتحان کردم») > **پیوست‌ها** فرمت‌های مجاز: PNG، JPG، PDF، ZIP و RAR. حداکثر ۵ فایل و هر فایل تا ۲۰ مگابایت. > **danger** **رمز عبور یا اطلاعات ورود سرور را در متن تیکت ننویسید.** بعد از ثبت تیکت، از بخش [اطلاعات محرمانه برای پشتیبانی](#اطلاعات-محرمانه-برای-پشتیبانی) در صفحه‌ی همان تیکت استفاده کنید. در صفحه‌ی هر سرویس هم دکمه‌ی «تیکت پشتیبانی» هست که فرم را با همان سرویس پر می‌کند. این راه سریع‌تر است. ## پیگیری و پاسخ به تیکت با باز کردن هر تیکت، شماره، موضوع، بخش و وضعیت آن و گفتگو با پشتیبانی را می‌بینید. در این صفحه می‌توانید: - در کادر پایین صفحه پاسخ بنویسید، فایل پیوست کنید و «ارسال پاسخ» را بزنید - به هر پاسخ پشتیبانی امتیاز دهید («ثبت امتیاز») - اجازه‌ی دسترسی پشتیبانی به سرور یا هاست را بدهید یا بردارید («ذخیره‌ی اجازه‌ها») - وقتی مشکل حل شد، «بستن تیکت» را بزنید ![صفحه یک تیکت](https://docs.ariaservice.net/img/panel/tickets-detail.jpg) ## اطلاعات محرمانه برای پشتیبانی اگر کارشناس برای بررسی به رمز یا اطلاعات ورود سرور نیاز دارد، آن را در متن تیکت ننویسید: 1. در صفحه‌ی تیکت، «افزودن اطلاعات محرمانه» را بزنید. 2. **عنوان** (مثلاً «SSH سرور» یا «ورود به پنل»)، آدرس یا IP، پورت، نام کاربری، رمز عبور و در صورت نیاز توضیح را وارد کنید. 3. «ثبت رمزنگاری‌شده» را بزنید. ![فرم اطلاعات محرمانه](https://docs.ariaservice.net/img/panel/tickets-secrets.jpg) > **info** این اطلاعات **رمزنگاری‌شده** نگهداری می‌شود، هر بار که کارشناس آن را ببیند در همین صفحه به شما نمایش داده می‌شود و **با بسته شدن تیکت برای همیشه پاک می‌شود**. پس از حل مشکل، رمزهایی را که فرستاده‌اید عوض کنید. ## بستن تیکت وقتی مشکل حل شد، «بستن تیکت» را بزنید و در پنجره‌ی تأیید دوباره «بستن تیکت» را بزنید. ![تأیید بستن تیکت](https://docs.ariaservice.net/img/panel/tickets-close.jpg) > **note** - به تیکت بسته‌شده نمی‌توان پاسخ جدید فرستاد؛ اگر دوباره مشکل داشتید، تیکت جدید ثبت کنید. - وقتی وضعیت تیکت «نیازمند اقدام مشتری» است، پشتیبانی منتظر شماست؛ تا پاسخ ندهید، کار جلو نمی‌رود. --- title: "تیم، سازمان و دسترسی‌ها" description: "دعوت اعضای تیم، تعریف سیاست دسترسی مثل IAM، گروه‌بندی سرویس‌ها در Workspace با بودجه، و ساخت سازمان با کیف پول جدا در پنل آریانت." url: https://docs.ariaservice.net/panel/team markdown: https://docs.ariaservice.net/panel/team.md language: fa --- # تیم، سازمان و دسترسی‌ها با این امکانات می‌توانید همکارانتان را به حساب اضافه کنید، بدون آنکه رمز حساب را به آن‌ها بدهید، و دقیق تعیین کنید هر کدام به چه چیزی دسترسی دارند. > **note** بخش «تیم و دسترسی‌ها» فقط برای **صاحب حساب** نمایش داده می‌شود. وقتی وارد حساب دیگری شده‌اید، این بخش دیده نمی‌شود. ## اعضای تیم «تنظیمات حساب ← اعضای تیم» را باز کنید. هر عضو با شماره موبایل خودش وارد می‌شود، اما در محدوده‌ی همین حساب و فقط بر اساس سیاست‌های دسترسی متصل‌شده عمل می‌کند. ![اعضای تیم](https://docs.ariaservice.net/img/panel/team-members.jpg) ### دعوت عضو جدید 1. «دعوت عضو جدید» را بزنید. 2. **شماره موبایل** عضو را وارد کنید. 3. **سیاست‌های دسترسی (اختیاری)**: سیاست‌هایی که عضو باید داشته باشد. می‌توانید بعداً هم تنظیم کنید. 4. **تاریخ انقضای دسترسی (اختیاری)**: برای همکاری موقت (مثلاً یک پیمانکار) تاریخ پایان بگذارید؛ پیش‌فرض «نامحدود» است. 5. «دعوت» را بزنید. ![فرم دعوت عضو جدید](https://docs.ariaservice.net/img/panel/team-invite.jpg) عضو با همان شماره موبایل و کد پیامکی وارد پنل می‌شود و حساب شما را از منوی حساب (گوشه‌ی بالای پنل) در «حساب‌های دیگران» انتخاب می‌کند. > **caution** عضوی که هیچ سیاستی ندارد، به هیچ چیز دسترسی ندارد. بعد از دعوت، حتماً سیاست مناسب را به او وصل کنید. ## سیاست‌های دسترسی سیاست‌های دسترسی مثل IAM Policy در AWS کار می‌کنند: هر سیاست مجموعه‌ای از کارها (اکشن‌ها) را روی یک یا چند منبع (سرویس) مجاز می‌کند و به اعضای تیم وصل می‌شود. ![سیاست‌های دسترسی](https://docs.ariaservice.net/img/panel/policies.jpg) 1. «ایجاد سیاست جدید» را بزنید. 2. **نام سیاست** (مثلاً «دسترسی فقط‌خواندنی مالی») و در صورت تمایل **توضیحات** را وارد کنید. 3. در «دسترسی‌ها»، با «افزودن سرویس» سرویس را اضافه کنید و کارهای مجاز آن را انتخاب کنید. محدوده‌ی سیاست را هم تعیین کنید: همه‌ی منابع، یک Workspace یا سرویس‌های خاص. 4. «ذخیره» را بزنید. ![ساخت سیاست دسترسی جدید](https://docs.ariaservice.net/img/panel/policy-new.jpg) > **tip** - اصل **کمترین دسترسی**: به هر عضو فقط همان کارهایی را بدهید که لازم دارد. مثلاً حسابدار فقط دسترسی مشاهده‌ی بخش مالی، و توسعه‌دهنده فقط سرورهای یک Workspace. - تا سرویسی اضافه نکنید و دسترسی‌های آن را انتخاب نکنید، سیاست هیچ دسترسی‌ای نمی‌دهد. ## Workspace ها Workspace گروهی از سرویس‌ها است، مثلاً برای یک پروژه یا یک مشتری. با Workspace می‌توانید: - با یک سیاست دسترسی، عضو تیم را فقط به سرویس‌های همان گروه محدود کنید - برای گروه **بودجه‌ی ماهانه** و آستانه‌ی هشدار تعیین کنید - «مصرف ماه جاری» و «گزارش مصرف» هر گروه را جدا ببینید ![Workspace ها](https://docs.ariaservice.net/img/panel/workspaces.jpg) «ایجاد Workspace جدید» را بزنید، نام و توضیحات بدهید و سپس از «مدیریت سرویس‌ها» سرویس‌ها را به آن اضافه کنید. ## سازمان‌ها سازمان یک حساب کاملاً جداست: **کیف پول، صورتحساب، سرویس‌ها و تیم خودش** را دارد. برای جدا نگه‌داشتن هزینه و دسترسی چند کسب‌وکار، برای هر کدام یک سازمان بسازید. 1. «تنظیمات حساب ← سازمان‌ها» را باز کنید و «سازمان جدید» را بزنید. 2. نام سازمان را وارد کنید. 3. بین سازمان‌ها و حساب شخصی‌تان از منوی حساب در بالای صفحه (سوییچ حساب) جابه‌جا شوید. ![سازمان‌ها](https://docs.ariaservice.net/img/panel/organizations.jpg) > **note** موجودی کیف پول حساب شخصی در سازمان قابل استفاده نیست و برعکس؛ هر سازمان را جدا [شارژ کنید](https://docs.ariaservice.net/panel/wallet). --- title: "سرور مجازی (VPS)" description: "خرید سرور مجازی ساعتی در پنل آریانت قدم به قدم، و مدیریت آن؛ کنسول VNC، اطلاعات ورود، حالت رسکیو، DNS معکوس، نصب مجدد، ارتقای پلن، تعویض IP، پشتیبان‌گیری، فایروال و حذف." url: https://docs.ariaservice.net/panel/vps markdown: https://docs.ariaservice.net/panel/vps.md language: fa --- # سرور مجازی (VPS) سرور مجازی آریانت **ساعتی** حساب می‌شود: هزینه‌ی هر ساعت از موجودی کیف پول کم می‌شود و هر وقت سرور را حذف کنید، هزینه هم قطع می‌شود. > **پیش از خرید بدانید** - برای خرید باید موجودی کیف پول دست‌کم به اندازه‌ی چند ساعت کار سرور باشد. [شارژ حساب](https://docs.ariaservice.net/panel/wallet) - اگر موجودی تمام شود، سرور مسدود می‌شود. اعلان‌های موجودی را در [پروفایل](https://docs.ariaservice.net/panel/profile#اعلانها) روشن نگه دارید. - برای ورود امن‌تر، پیش از خرید یک [کلید SSH](https://docs.ariaservice.net/panel/ssh-keys-api) به پنل اضافه کنید. ## خرید سرور مجازی در منوی «سرور مجازی / VPS»، «سرویس جدید» را بزنید (یا در داشبورد «سرویس جدید»). همه‌ی مراحل در یک صفحه است و کادر **خلاصه سفارش** در کنار صفحه انتخاب‌ها، **هزینه‌ی ساعتی** و **هزینه‌ی ماهانه‌ی تقریبی** را همیشه نشان می‌دهد. ### ۱. منطقه و دیتاسنتر در «انتخاب منطقه» کشور یا قاره (ایران، اروپا، ترکیه، آمریکا، استرالیا) را انتخاب کنید. سپس در «دیتاسنترهای موجود» دیتاسنتر را از فهرست برگزینید. زیر فهرست، «مشخصات فنی دیتاسنتر» نمایش داده می‌شود. ![انتخاب منطقه](https://docs.ariaservice.net/img/panel/vps-buy-1.jpg) ![فهرست دیتاسنترهای یک منطقه](https://docs.ariaservice.net/img/panel/vps-buy-2.jpg) > **tip** امکانات دیتاسنترها با هم فرق دارد؛ مثلاً تعویض IP، پشتیبان‌گیری یا ترافیک نامحدود فقط در برخی دیتاسنترهاست. اگر به امکان خاصی نیاز دارید، پیش از خرید مشخصات دیتاسنتر را بخوانید. ### ۲. سیستم‌عامل در «انتخاب سیستم عامل»، سیستم‌عامل (Ubuntu، Debian، AlmaLinux، Rocky Linux، CentOS، Fedora، Mikrotik و…) را بزنید و از فهرست زیر آن **نسخه** را انتخاب کنید. زبانه‌ی «بازارچه» اپلیکیشن‌های آماده را نشان می‌دهد. ![انتخاب سیستم‌عامل و نسخه](https://docs.ariaservice.net/img/panel/vps-buy-3.jpg) ### ۳. پلن در «انتخاب پلن» یکی از گروه‌های «استاندارد»، «رم بالا» یا «پردازش بالا» را باز کنید. هر پلن پردازنده، رم، فضای دیسک و **قیمت ساعتی** دارد؛ با «جزئیات» مشخصات کامل آن را ببینید. برچسب «پیشنهادی» پرکاربردترین پلن است و پلن «ناموجود» فعلاً قابل خرید نیست. واحد قیمت را می‌توانید از «ارز» بالای جدول عوض کنید. ![جدول پلن‌ها](https://docs.ariaservice.net/img/panel/vps-buy-4.jpg) ### ۴. روش ورود به سرور در «انتخاب روش ورود به سرور» یکی را انتخاب کنید: - **کلید (SSH Key)** (توصیه‌شده): کلید ذخیره‌شده‌ی خود را انتخاب کنید یا با «افزودن کلید جدید» همین‌جا اضافه کنید. امنیت بالاتری دارد و نیازی به رمز عبور نیست. - **پسورد (Password)**: رمز را خودتان وارد کنید یا رمز تصادفی بسازید. ![انتخاب کلید SSH برای ورود](https://docs.ariaservice.net/img/panel/vps-buy-5.jpg) ### ۵. ساخت سرویس خلاصه‌ی سفارش را بررسی کنید و «ساخت سرویس» را بزنید. پنجره‌ی «شرایط و قوانین دیتاسنتر» باز می‌شود؛ آن را بخوانید، «قوانین این دیتاسنتر را خواندم و می‌پذیرم» را تیک بزنید و «تایید و ادامه» را بزنید. ![قوانین دیتاسنتر پیش از ساخت سرور](https://docs.ariaservice.net/img/panel/vps-buy-rules.jpg) > **قوانین مهم دیتاسنتر** - **پورت ۲۵** (ارسال مستقیم ایمیل) به‌صورت پیش‌فرض بسته است تا جلوی هرزنامه گرفته شود. پورت‌های ۴۶۵ و ۵۸۷ باز هستند. اگر برای میل‌سرور به پورت ۲۵ نیاز دارید، [تیکت](https://docs.ariaservice.net/panel/tickets) بزنید. - اگر کارت شبکه‌ی دوم به سرور وصل کنید، آدرس آن خودکار از DHCP گرفته می‌شود. - دیسک (والیوم) **خالی** که به سرور وصل شود، خودکار با ext4 فرمت و در مسیر `/mnt/volume-…` مونت می‌شود. دیسکی که داده دارد هرگز فرمت نمی‌شود. اگر می‌خواهید خودتان دیسک را پارتیشن‌بندی کنید، پیش از اولین راه‌اندازی آن را وصل نکنید. ### ۶. ساخته شدن سرور صفحه‌ی «در حال آماده‌سازی سرویس شما» مراحل را زنده نشان می‌دهد: ثبت درخواست، تخصیص منابع و آدرس شبکه، ساخت و راه‌اندازی سرور، و فعال‌سازی نهایی. این کار معمولاً یکی دو دقیقه طول می‌کشد و لازم نیست صفحه را تازه کنید. ![در حال آماده‌سازی سرویس](https://docs.ariaservice.net/img/panel/vps-creating-1.jpg) ![مرحله‌ی فعال‌سازی نهایی](https://docs.ariaservice.net/img/panel/vps-creating-2.jpg) وقتی پیام «سرویس شما با موفقیت ساخته شد!» نمایش داده شد، «رفتن به مدیریت سرویس» را بزنید. ![سرویس با موفقیت ساخته شد](https://docs.ariaservice.net/img/panel/vps-created.jpg) ## مدیریت سرور در «سرور مجازی / VPS» فهرست سرورها با موقعیت، پلن و IP نمایش داده می‌شود. دکمه‌ی مانیتور کنسول VNC را باز می‌کند و دکمه‌ی چرخ‌دنده صفحه‌ی مدیریت سرور را. ![فهرست سرورهای مجازی](https://docs.ariaservice.net/img/panel/vps-list.jpg) بالای صفحه‌ی مدیریت، نام، وضعیت، IP، موقعیت و سیستم‌عامل سرور و دکمه‌های اصلی است: «خاموش کردن / روشن کردن»، «راه‌اندازی مجدد»، «کنسول VNC»، «تغییر پلن»، «فعال‌سازی محافظت»، «نصب مجدد»، «تعویض آی‌پی»، «تیکت پشتیبانی» و «حذف سرویس». ![صفحه مدیریت سرور مجازی](https://docs.ariaservice.net/img/panel/vps-manage-1.jpg) ### مشخصات، اطلاعات ورود و شبکه زبانه‌ی «مشخصات سرویس» این‌ها را نشان می‌دهد: - **منابع**: پردازنده، حافظه، دیسک و چرخه‌ی پرداخت (ساعتی) - **مشخصات**: نام سرویس (با آیکون مداد قابل تغییر است)، پلن، سیستم‌عامل و تاریخ ایجاد - **اطلاعات ورود**: نام کاربری `root` و رمز عبور (یا «ورود با کلید SSH»)، و دکمه‌های «بازنشانی رمز root» و «حالت رسکیو» - **شبکه**: IPv4، IPv6، Gateway، Subnet، MAC و **Reverse DNS** با دکمه‌ی کپی کنار هر مقدار، آن را کپی کنید. برای اتصال: ```bash ssh root@IP-سرور ``` ![مشخصات، اطلاعات ورود و شبکه‌ی سرور](https://docs.ariaservice.net/img/panel/vps-manage-2.jpg) ### DNS معکوس (Reverse DNS) در بخش شبکه، در کادر Reverse DNS نام دامنه (مثلاً `mail.example.com`) را بنویسید و «ذخیره» را بزنید. برای حذف، فیلد را خالی کنید و ذخیره بزنید. > **note** - ابتدا در DNS دامنه یک رکورد A (یا AAAA برای IPv6) بسازید که به همین IP اشاره کند؛ وگرنه Reverse DNS پذیرفته نمی‌شود. - در برخی رنج‌های IP، تنظیم Reverse DNS فعلاً ممکن نیست و همین پیام کنار IP نوشته می‌شود. - برای ارسال ایمیل از سرور، Reverse DNS باید با نام میل‌سرور یکی باشد. ### روشن، خاموش و راه‌اندازی مجدد با «خاموش کردن» / «روشن کردن» و «راه‌اندازی مجدد» در بالای صفحه سرور را کنترل کنید. برای جلوگیری از اشتباه، خاموش کردن تأیید می‌خواهد. > **note** سرور خاموش هم هزینه دارد، چون منابع آن (دیسک، IP و…) برای شما رزرو می‌ماند. برای قطع هزینه، سرویس را [حذف کنید](#حذف-سرور). ### کنسول VNC زبانه‌ی «کنسول VNC» (یا دکمه‌ی «کنسول VNC» بالای صفحه) صفحه‌ی خود سرور را مستقیم در مرورگر نشان می‌دهد. «Connect» را بزنید. با دکمه‌ی گوشه‌ی بالا می‌توانید کنسول را در پنجره‌ی جدید باز کنید. ![کنسول VNC در مرورگر](https://docs.ariaservice.net/img/panel/vps-vnc.jpg) > **tip** وقتی SSH در دسترس نیست (مثلاً فایروال اشتباه بسته شده یا شبکه‌ی سرور خراب است)، از کنسول VNC وارد شوید و مشکل را رفع کنید. ### حالت رسکیو اگر سرور بالا نمی‌آید یا رمز را گم کرده‌اید، «حالت رسکیو» را بزنید. سرور با یک سیستم موقت راه‌اندازی می‌شود و دیسک اصلی را می‌توانید مونت و تعمیر کنید. در پایان «خروج از رسکیو» را بزنید تا سرور دوباره از دیسک اصلی بالا بیاید. ### تاریخچه عملیات زبانه‌ی «تاریخچه عملیات» همه‌ی کارهای انجام‌شده روی سرور (ساخت، خاموش و روشن، نصب مجدد و…) را با زمان، مدت و نتیجه («موفق»، «در انتظار» یا «ناموفق») نشان می‌دهد. ![تاریخچه عملیات سرور](https://docs.ariaservice.net/img/panel/vps-history.jpg) ### پشتیبان‌گیری خودکار با پشتیبان‌گیری خودکار هر شب یک نسخه از دیسک سرور گرفته و **۷ روز** نگه‌داری می‌شود. هزینه‌ی آن **۲۰٪ هزینه‌ی ساعتی سرور** است. 1. در زبانه‌ی «پشتیبان‌گیری» (یا کادر سبز بالای صفحه)، «فعال‌سازی» را بزنید. 2. از آن به بعد، نسخه‌ها هر شب ساعت ۲ بامداد گرفته می‌شوند. 3. برای برگرداندن سرور به یکی از ۷ روز گذشته، روی نسخه‌ی مورد نظر «بازگردانی» را بزنید. ![زبانه پشتیبان‌گیری](https://docs.ariaservice.net/img/panel/vps-backup.jpg) > **tip** همه‌ی نسخه‌های پشتیبان حساب در «سرور مجازی / VPS ← نسخه‌های پشتیبان» هم دیده می‌شوند. اگر سروری را حذف کنید، نسخه‌هایش تا ۷ روز می‌مانند و می‌توانید از آن‌ها یک سرور تازه بسازید. ### نصب مجدد سیستم‌عامل «نصب مجدد» را بزنید، سیستم‌عامل و نسخه‌ی جدید را انتخاب کنید و تأیید کنید. ![نصب مجدد سیستم‌عامل](https://docs.ariaservice.net/img/panel/vps-reinstall.jpg) > **danger** نصب مجدد **همه‌ی اطلاعات، فایل‌ها و تنظیمات روی دیسک** را برای همیشه پاک می‌کند. پیش از آن از داده‌های مهم نسخه‌ی پشتیبان بگیرید. ### ارتقای پلن «تغییر پلن» را بزنید و پلن بزرگ‌تر را «انتخاب» کنید. قیمت ساعتی و ماهانه‌ی هر پلن در جدول آمده و هزینه‌ی جدید از لحظه‌ی تغییر پلن حساب می‌شود. ![ارتقای پلن سرور](https://docs.ariaservice.net/img/panel/vps-change-plan.jpg) > **caution** - فقط **ارتقا** ممکن است؛ کاهش منابع وجود ندارد. - در ارتقا ممکن است سرور یک بار خاموش و روشن شود؛ آن را در برنامه‌ی کاری خود در نظر بگیرید و پیش از ارتقا از اطلاعات نسخه‌ی پشتیبان بگیرید. ### تعویض آی‌پی در دیتاسنترهایی که این امکان را دارند، «تعویض آی‌پی» یک IP جدید به سرور می‌دهد. قوانین همان دیتاسنتر بالای صفحه نوشته شده است. نمونه‌ی قوانین یک دیتاسنتر: - هر سرور **یک بار تعویض رایگان** دارد و تعویض‌های بعدی هزینه دارند که فقط پس از تعویض موفق از کیف پول کم می‌شود. - هر سرور حداکثر تعداد مشخصی تعویض دارد (مثلاً ۵ بار)؛ تعویض‌های ناموفق شمرده نمی‌شوند. - تعویض خودکار و بدون تیکت انجام می‌شود؛ سرور یک بار راه‌اندازی مجدد می‌شود و حدود یک دقیقه بعد IP جدید در دسترس است. - **IP قبلی به سرور شما برنمی‌گردد.** - روی سرور «محافظت‌شده» تعویض ممکن نیست؛ ابتدا محافظت را غیرفعال کنید. - پیش از تخصیص، فیلتر بودن IP جدید قابل بررسی نیست. ![صفحه تعویض آی‌پی](https://docs.ariaservice.net/img/panel/vps-ip-change.jpg) ### محافظت «فعال‌سازی محافظت» جلوی حذف یا نصب مجدد اشتباهی سرور را می‌گیرد. تا محافظت فعال است، حذف، نصب مجدد و تعویض IP انجام نمی‌شود. ### فایروال در «سرور مجازی / VPS ← دیوارآتش / Firewall» فایروال بسازید و ترافیک ورودی و خروجی سرورها را کنترل کنید: 1. «ایجاد فایروال» را بزنید، دیتاسنتر را انتخاب کنید و یک نام (مثلاً `web-server-rules`) بدهید. 2. قوانین فایروال (پورت، پروتکل و IPهای مجاز) را تعریف کنید. 3. فایروال را به سرورهای همان دیتاسنتر وصل کنید. ![فهرست فایروال‌ها](https://docs.ariaservice.net/img/panel/vps-firewalls.jpg) ![ساخت فایروال جدید](https://docs.ariaservice.net/img/panel/vps-firewall-new.jpg) > **caution** پیش از بستن پورت‌ها، مطمئن شوید پورت SSH (معمولاً ۲۲) برای IP خودتان باز است؛ وگرنه فقط از [کنسول VNC](#کنسول-vnc) به سرور دسترسی خواهید داشت. ## حذف سرور 1. «حذف سرویس» را بزنید. 2. در «چرا می‌خواهید این سرویس را حذف کنید؟» یک دلیل انتخاب کنید و در صورت تمایل توضیح بنویسید. 3. هشدارها را بخوانید، نام دقیق سرویس را (با دکمه‌ی «کپی») در کادر تأیید وارد کنید و «تایید حذف نهایی» را بزنید. ![دلیل حذف سرویس](https://docs.ariaservice.net/img/panel/vps-delete-1.jpg) ![تأیید حذف نهایی](https://docs.ariaservice.net/img/panel/vps-delete-2.jpg) > **danger** - حذف **غیرقابل بازگشت** است و همه‌ی اطلاعات سرور پاک می‌شود. - IP سرور آزاد می‌شود و ممکن است به سرویس دیگری داده شود. - حذف فوری انجام می‌شود و هزینه از همان لحظه قطع می‌شود. > **حذف زودهنگام** اگر سرور ساعتی را **کمتر از ۶۰ دقیقه** پس از ساخت حذف کنید، حذف زودهنگام حساب می‌شود و حداقل هزینه‌ی آن با تعداد حذف‌های زودهنگام شما در ۲۴ ساعت گذشته پله‌ای بالا می‌رود: به ترتیب ۱، ۲، ۵، ۱۰، ۲۴ و ۴۸ ساعت کارکرد. اگر ۲۴ ساعت حذف زودهنگام نداشته باشید، دوباره از پله‌ی اول حساب می‌شود. --- title: "ابر آریانت" description: "ساخت سرور ابری ساعتی در پنل آریانت قدم به قدم، و مدیریت آن؛ شبکه و DNS معکوس، اسنپ‌شات، پشتیبان‌گیری، هزینه‌ها، حالت نجات، دیسک، فایروال، پروژه‌ها و حذف." url: https://docs.ariaservice.net/panel/cloud markdown: https://docs.ariaservice.net/panel/cloud.md language: fa --- # ابر آریانت ابر آریانت (Cloud Computing) سرور ابری **ساعتی** با شبکه‌ی خصوصی، IP شناور و الاستیک، دیسک جدا، فایروال، اسنپ‌شات و لود بالانسر است. هزینه فقط برای ساعت‌هایی است که منبع وجود دارد و هر ماه برابر ۷۳۰ ساعت حساب می‌شود. ## نمای کلی «سرور ابری / Cloud Computing ← نمای کلی» خلاصه‌ی حساب ابری را نشان می‌دهد: تعداد سرورها (روشن و خاموش)، دیسک‌ها، فایروال‌ها، **هزینه‌ی تخمینی** ماهانه و ساعتی، میان‌برهای ساخت سرور، دیسک و فایروال، سرورها و فعالیت‌های اخیر، و دیتاسنترهای فعال. ![نمای کلی ابر](https://docs.ariaservice.net/img/panel/cloud-overview.jpg) منوی کناری ابر چهار بخش دارد: - **محاسبات**: پروژه‌ها، محدودیت‌ها، سرورها، سرور جدید - **ذخیره‌سازی**: دیسک‌ها، اسنپ‌شات‌ها، پشتیبان‌گیری - **شبکه**: شبکه‌های خصوصی، روترها، لود بالانسرها، آی‌پی‌های شناور و الاستیک - **امنیت**: فایروال‌ها دکمه‌ی «ساخت» در نوار بالا (میان‌بر کیبورد C) از هر صفحه‌ی ابر منوی ساخت سرور، دیسک، شبکه‌ی خصوصی، فایروال، IP شناور، لود بالانسر و اسنپ‌شات را باز می‌کند. ## ساخت سرور ابری «سرور جدید» را بزنید. صفحه هشت بخش شماره‌دار دارد و کادر **خلاصه سفارش** در کنار صفحه همه‌ی انتخاب‌ها و هزینه‌ی هر جزء، **هزینه‌ی ساعتی** و **هزینه‌ی ماهانه‌ی تقریبی** را نشان می‌دهد. ### ۱. منطقه و ۲. سیستم‌عامل منطقه را انتخاب کنید. روی کارت هر منطقه امکانات آن (IPv4، IPv6، شبکه‌ی خصوصی، IP شناور، IP الاستیک، NAT و…) نوشته شده است. سپس سیستم‌عامل و نسخه‌ی آن را انتخاب کنید. زبانه‌های «اپلیکیشن‌ها»، «اسنپ‌شات‌های من» و «پشتیبان‌ها» هم هست؛ یعنی می‌توانید سرور جدید را از اسنپ‌شات یا پشتیبان یک سرور دیگر بسازید. ![انتخاب منطقه و سیستم‌عامل](https://docs.ariaservice.net/img/panel/cloud-buy-1.jpg) ### ۳. پلن پلن را از گروه «استاندارد»، «پردازشی» یا «رم بالا» انتخاب کنید. برای هر پلن پردازنده، رم، دیسک، ترافیک، قیمت ساعتی و ماهانه نوشته شده است. هزینه‌ی ساعتی از کیف پول کم می‌شود و قیمت ماهانه **سقف** هزینه است. ![انتخاب پلن سرور ابری](https://docs.ariaservice.net/img/panel/cloud-buy-2.jpg) > **note** بالای جدول حداقل نیازمندی‌های سیستم‌عامل انتخاب‌شده (مثلاً ۵۱۲ مگابایت رم و ۱۰ گیگابایت دیسک) نوشته می‌شود. پلن‌هایی که این حداقل را ندارند غیرفعال‌اند. ### ۴. شبکه و ۵. فایروال - **آی‌پی عمومی**: سرور مستقیم از اینترنت در دسترس است. IPv4 و IPv6 عمومی را جدا روشن یا خاموش کنید (هر دو رایگان). - **فقط شبکهٔ خصوصی**: بدون IP عمومی؛ مناسب پایگاه داده و سرویس‌های داخلی. - **شبکه‌های خصوصی (اختیاری)**: سرورهای یک شبکه‌ی خصوصی با IP داخلی و بدون هزینه‌ی ترافیک به هم وصل می‌شوند. - **فایروال**: فایروال آماده را انتخاب کنید یا با «ساخت فایروال» بسازید. ![شبکه و فایروال سرور ابری](https://docs.ariaservice.net/img/panel/cloud-buy-3.jpg) > **caution** سروری که فایروال ندارد **همه‌ی ترافیک ورودی** را می‌پذیرد. برای سرورهای عمومی حتماً فایروال بگذارید و فقط پورت‌های لازم را باز کنید. ### ۶. دیسک و پشتیبان‌گیری و ۷. روش ورود - **دیسک‌های اضافه**: دیسک اصلی همراه پلن است. دیسک‌های جدای همان منطقه را می‌توانید انتخاب کنید تا پس از روشن شدن سرور به آن وصل شوند؛ هزینه‌ی آن‌ها جدا حساب می‌شود. - **پشتیبان‌گیری خودکار**: هر روز یک نسخه‌ی کامل از دیسک سرور گرفته و چند نسخه‌ی آخر نگه‌داری می‌شود. هزینه: **۲۰٪ هزینه‌ی پلن**. - **روش ورود**: «کلید SSH» (کلیدهای ذخیره‌شده، «افزودن کلید جدید» یا «کلید یک‌بارمصرف» فقط برای همین سرور) یا «رمز عبور». ![دیسک، پشتیبان‌گیری و روش ورود](https://docs.ariaservice.net/img/panel/cloud-buy-4.jpg) > **note** با کلید SSH، ورود با رمز از راه SSH بسته می‌شود، ولی کنسول همچنان با رمز root کار می‌کند. ### ۸. نام و تنظیمات پیشرفته - **پروژه**: منبع جدید در این پروژه ساخته می‌شود و هزینه‌اش به همین پروژه نسبت داده می‌شود. - **نام سرور (hostname)**: حروف انگلیسی، عدد، نقطه و خط تیره؛ تا ۶۳ کاراکتر. با دکمه‌ی کنار آن نام تصادفی بسازید. - **تعداد سرور**: چند سرور یکسان هم‌زمان بسازید. - **برچسب‌ها (اختیاری)**: جفت‌های کلید/مقدار مثل `env=prod` برای دسته‌بندی و جستجو. - **اسکریپت راه‌اندازی (cloud-init)**: در اولین روشن شدن اجرا می‌شود؛ مثلاً نصب بسته‌ها یا ساخت کاربر. - **روشن شدن پس از ساخت** ![نام و تنظیمات پیشرفته](https://docs.ariaservice.net/img/panel/cloud-buy-5.jpg) > **caution** تا [احراز هویت](https://docs.ariaservice.net/panel/identity) نکرده‌اید، فقط **یک سرور** می‌توانید بسازید. ### ساخت «ساخت سرور» را بزنید. صفحه‌ی ساخت مراحل را زنده نشان می‌دهد: ثبت درخواست، آماده‌سازی شبکه و فایروال، ساخت ماشین مجازی، راه‌اندازی سیستم‌عامل، اتصال IP و دیسک‌ها و آماده. «گزارش رویدادها» هم جزئیات هر مرحله را می‌نویسد. معمولاً ساخت کمتر از یک دقیقه طول می‌کشد و **هزینه فقط پس از آماده شدن سرور** کسر می‌شود. ![در حال ساخت سرور ابری و رمز root](https://docs.ariaservice.net/img/panel/cloud-creating.jpg) > **danger** اگر رمز root ساخته شده باشد، **فقط یک بار** در همین صفحه نمایش داده می‌شود و بعداً قابل مشاهده نیست. با دکمه‌ی چشم آن را ببینید و با «کپی» همان لحظه در جای امنی ذخیره کنید. وقتی پیام «سرور با موفقیت ساخته شد» آمد، «مدیریت سرور» را بزنید. ![سرور ابری با موفقیت ساخته شد](https://docs.ariaservice.net/img/panel/cloud-created.jpg) > **مهلت احراز هویت** اگر هویت خود را تأیید نکرده‌اید، پس از ساخت اولین سرور پیامک یادآوری می‌گیرید و **۲۴ ساعت** مهلت دارید. پس از آن سرویس‌ها تا تکمیل احراز هویت خاموش و قفل می‌شوند و پس از احراز هویت خودکار آزاد می‌شوند. ## صفحه‌ی سرور بالای صفحه نام و وضعیت سرور، IPv4 و IPv6 (با دکمه‌ی کپی)، منطقه، پروژه («انتقال به پروژهٔ دیگر»)، سیستم‌عامل، پلن و هزینه‌ی ماهانه و ساعتی است. دکمه‌های عملیات: خاموش کردن، ری‌استارت، کنسول، تغییر پلن، نصب مجدد، حالت نجات، محافظت، بیشتر، تیکت پشتیبانی و حذف سرور. ![صفحه مدیریت سرور ابری](https://docs.ariaservice.net/img/panel/cloud-server-1.jpg) | زبانه | کار | |---|---| | مشخصات | نام، وضعیت، پلن، سیستم‌عامل، دیتاسنتر، شبکه و دستور SSH آماده | | نمودارها | مصرف پردازنده، شبکه و دیسک | | شبکه | IPهای عمومی، تغییر IP، **DNS معکوس** | | فایروال | فایروال‌های متصل | | دیسک‌ها | ساخت و اتصال دیسک جدا | | اسنپ‌شات | گرفتن و بازگرداندن اسنپ‌شات | | پشتیبان‌گیری | پشتیبان‌گیری خودکار روزانه | | حالت نجات | راه‌اندازی با سیستم موقت برای تعمیر | | کنسول | صفحه‌ی سرور در مرورگر | | هزینه‌ها | هزینه‌ی ساعتی و ماهانه‌ی هر جزء | | تاریخچه عملیات | همه‌ی کارهای انجام‌شده | | تنظیمات | نام، برچسب‌ها، محافظت، بازنشانی رمز root | ### شبکه و DNS معکوس زبانه‌ی «شبکه» آدرس‌های عمومی سرور را با نوع، زیرشبکه و دروازه و **DNS معکوس** هر کدام نشان می‌دهد. با «تغییر IP» آدرس IPv4 را عوض کنید. ![زبانه شبکه سرور ابری](https://docs.ariaservice.net/img/panel/cloud-network.jpg) برای تنظیم DNS معکوس (PTR)، کنار IP «ویرایش» را بزنید، نام دامنه (مثلاً `mail.example.com`) را وارد کنید و «ذخیره» را بزنید. ![تنظیم DNS معکوس](https://docs.ariaservice.net/img/panel/cloud-rdns.jpg) > **note** پیش از ثبت، در DNS دامنه یک رکورد A بسازید که این نام را به همین IP برساند؛ وگرنه دیتاسنتر نام را نمی‌پذیرد. برای برگرداندن نام پیش‌فرض دیتاسنتر، کادر را خالی بگذارید. DNS معکوس برای سرور ایمیل لازم است. ### اسنپ‌شات اسنپ‌شات یک کپی کامل از دیسک اصلی سرور است. پیش از تغییرات مهم (به‌روزرسانی، نصب نرم‌افزار) «گرفتن اسنپ‌شات» را بزنید تا در صورت مشکل، سرور را به همان لحظه برگردانید یا از آن سرور جدید بسازید. ![اسنپ‌شات‌های سرور](https://docs.ariaservice.net/img/panel/cloud-snapshots.jpg) > **caution** اسنپ‌شات **تا وقتی حذفش نکنید می‌ماند، حتی پس از حذف سرور**، و بر اساس حجم واقعی هر نسخه هزینه دارد (مبلغ هر گیگابایت در ماه در همین صفحه نوشته شده است). اسنپ‌شات‌های قدیمی را حذف کنید. ### هزینه‌ها زبانه‌ی «هزینه‌ها» هزینه‌ی فعلی هر بخش سرور را ساعتی و ماهانه (بدون مالیات بر ارزش افزوده) نشان می‌دهد. صورتحساب بر اساس ساعت‌های واقعی استفاده است. ![هزینه‌های سرور ابری](https://docs.ariaservice.net/img/panel/cloud-costs.jpg) ### حالت نجات، کنسول، نصب مجدد و تغییر پلن - **حالت نجات**: سرور با سیستم موقت بالا می‌آید تا دیسک اصلی را تعمیر کنید (مثلاً فراموشی رمز یا خرابی بوت). در پایان از حالت نجات خارج شوید. - **کنسول**: صفحه‌ی سرور در مرورگر؛ وقتی SSH در دسترس نیست. - **نصب مجدد**: سیستم‌عامل جدید نصب می‌شود و **همه‌ی اطلاعات دیسک اصلی پاک می‌شود**. - **تغییر پلن**: سرور را بزرگ‌تر کنید. - **محافظ**: جلوی حذف و نصب مجدد اشتباهی را می‌گیرد. ## حذف سرور ابری 1. «حذف سرور» را بزنید (یا در زبانه‌ی «هزینه‌ها» دکمه‌ی «حذف سرور»). 2. دلیل حذف را انتخاب کنید و در صورت تمایل توضیح بنویسید. 3. فهرست «پاک می‌شود» و «می‌ماند» را بخوانید. 4. نام دقیق سرور را وارد کنید و «حذف برای همیشه» را بزنید. ![دلیل حذف سرور ابری](https://docs.ariaservice.net/img/panel/cloud-delete-1.jpg) ![تأیید حذف سرور ابری](https://docs.ariaservice.net/img/panel/cloud-delete-2.jpg) > **danger** - حذف برگشت‌ناپذیر است: سرور و دیسک اصلی با همه‌ی فایل‌ها پاک می‌شود و IPهای آن آزاد می‌شوند و ممکن است به دیگری برسند. - هزینه‌ی ساعتی سرور از همان لحظه متوقف می‌شود، ولی **اسنپ‌شات‌ها، دیسک‌های جدا و IPهای شناور و الاستیک می‌مانند و هزینه‌شان ادامه دارد**. اگر لازمشان ندارید، از منوی ابر جدا حذفشان کنید. ## منابع دیگر ابر هر یک از این منابع در منوی ابر صفحه‌ی خودش را دارد: دیسک‌ها، شبکه‌های خصوصی، روترها، IPهای شناور و الاستیک، فایروال‌ها، اسنپ‌شات‌ها، پشتیبان‌ها، لود بالانسرها و پروژه‌ها. در هر صفحه با دکمه‌ی ساخت، منبع جدید بسازید و از صفحه‌ی همان منبع حذفش کنید. «محدودیت‌ها» سقف تعداد هر منبع در حساب شما را نشان می‌دهد. --- title: "سرور اختصاصی" description: "سفارش سرور اختصاصی در پنل آریانت قدم به قدم، پیگیری مراحل سفارش، اطلاعات ورود یک‌باره، نصب سیستم عامل، تمدید و لغو سفارش." url: https://docs.ariaservice.net/panel/baremetal markdown: https://docs.ariaservice.net/panel/baremetal.md language: fa --- # سرور اختصاصی سرور اختصاصی یک سرور فیزیکی کامل در دیتاسنترهای OVHcloud (کانادا، اروپا، آسیا و استرالیا) است که فقط در اختیار شماست. اجاره‌ی آن **ماهانه و پیش‌پرداخت** است. > **پیش از سفارش بدانید** - سرور بعد از پرداخت از دیتاسنتر خریداری می‌شود و تحویل آن **تا ۷۲ ساعت** و در برخی پیکربندی‌ها بیشتر طول می‌کشد. تحویل فوری تضمین نمی‌شود. - سرور **بدون سیستم‌عامل** تحویل داده می‌شود؛ سیستم‌عامل را بعد از تحویل خودتان از پنل نصب می‌کنید. - اولین پرداخت = اجاره‌ی ماه اول + **هزینه‌ی راه‌اندازی یک‌باره**. این مبلغ هنگام ثبت سفارش از کیف پول کم می‌شود، پس پیش از سفارش [حساب را شارژ کنید](https://docs.ariaservice.net/panel/wallet). - تمدید **خودکار نیست**؛ هر ماه باید دستی تمدید کنید. ## سفارش سرور اختصاصی در منوی «سرور اختصاصی»، «سفارش سرور اختصاصی» را بزنید. سفارش ده مرحله دارد و در هر مرحله «ادامه» شما را به مرحله‌ی بعد و «مرحله قبل» به مرحله‌ی قبل می‌برد. با کلیک روی شماره‌ی هر مرحله‌ی تکمیل‌شده در نوار بالا هم می‌توانید به آن برگردید. کادر «خلاصهٔ سفارش» در کنار صفحه انتخاب‌ها و قیمت را همیشه نشان می‌دهد. ### ۱. ارائه‌دهنده‌ی دیتاسنتر ارائه‌دهنده (فعلاً OVHcloud) را انتخاب کنید. روی کارت آن کشورهای موجود، تعداد مدل‌ها و ارزان‌ترین قیمت نوشته شده است. ![مرحله اول سفارش سرور اختصاصی: انتخاب ارائه‌دهنده‌ی دیتاسنتر](https://docs.ariaservice.net/img/panel/bm-order-1.jpg) ### ۲. دسته‌بندی هر دسته برای یک کاربرد طراحی شده است؛ مثلاً Kimsufi و So you Start اقتصادی‌اند، Game برای سرور بازی با فرکانس بالا، Advance برای کسب‌وکار و Scale و High Grade برای مجازی‌سازی و پردازش سنگین. قیمت روی هر کارت قیمت ارزان‌ترین مدل همان دسته است. ![مرحله دوم: انتخاب دسته‌بندی سرور](https://docs.ariaservice.net/img/panel/bm-order-2.jpg) ### ۳. مدل و پردازنده با فیلترها (سازنده‌ی پردازنده، کشور، حداقل هسته، حداقل رم، نوع دیسک، نوع سرور و سقف قیمت ماهانه) مدل مناسب را پیدا کنید و روی آن کلیک کنید. فهرست را می‌توانید بر اساس «ارزان‌ترین»، «بیشترین هسته» یا «بیشترین فرکانس» مرتب کنید. ![مرحله سوم: انتخاب مدل و پردازنده با فیلترها](https://docs.ariaservice.net/img/panel/bm-order-3.jpg) > **tip** کلید «فقط مدل‌های موجود» را روشن کنید. مدل‌های ناموجود هم نمایش داده می‌شوند ولی قابل سفارش نیستند. حتی مدلی که «موجود» است ممکن است در برخی دیتاسنترها یا با برخی دیسک‌ها ناموجود باشد؛ اگر در مرحله‌های بعد گزینه‌ای فعال نبود، دیتاسنتر یا مدل دیگری انتخاب کنید. ### ۴. کشور و دیتاسنتر دیتاسنترها بر اساس قاره و کشور دسته‌بندی شده‌اند. زیر هر دیتاسنتر زمان تحویل («تحویل تا ۷۲ ساعت») یا «ناموجود» نوشته شده است. ![مرحله چهارم: انتخاب کشور و دیتاسنتر](https://docs.ariaservice.net/img/panel/bm-order-4.jpg) ### ۵. حافظه‌ی رم رم پایه‌ی مدل «شامل قیمت» است. رم بیشتر هزینه‌ی ماهانه‌ی اضافه دارد که کنار گزینه نوشته شده است. ![مرحله پنجم: انتخاب حافظه رم](https://docs.ariaservice.net/img/panel/bm-order-5.jpg) ### ۶. دیسک تعداد و نوع دیسک (HDD، SSD یا NVMe) و نوع RAID را انتخاب کنید. از این مرحله به بعد، کادر خلاصه مبلغ «اجارهٔ ماه اول»، «راه‌اندازی (یک‌بار)» و «پرداخت اول» را نشان می‌دهد. ![مرحله ششم: انتخاب دیسک و RAID](https://docs.ariaservice.net/img/panel/bm-order-6.jpg) ### ۷. شبکه پهنای باند عمومی سرور. پهنای باند پایه شامل قیمت است. ![مرحله هفتم: پهنای باند شبکه](https://docs.ariaservice.net/img/panel/bm-order-7.jpg) ### ۸. امکانات اضافه (اختیاری) لایسنس سیستم‌عامل (مثل Windows Server)، لایسنس نرم‌افزار و امکانات دیگر. هزینه‌ی ماهانه‌ی هر گزینه کنار آن نوشته شده است. اگر لازم ندارید، بدون انتخاب «ادامه» را بزنید. ![مرحله هشتم: امکانات اضافه و لایسنس‌ها](https://docs.ariaservice.net/img/panel/bm-order-8.jpg) ### ۹. قوانین قوانین سرور اختصاصی را کامل بخوانید، «قوانین را خواندم و می‌پذیرم» را تیک بزنید و «ادامه» را بزنید. ![مرحله نهم: قوانین سرور اختصاصی](https://docs.ariaservice.net/img/panel/bm-order-9.jpg) ### ۱۰. سبد خرید و پرداخت خلاصه‌ی کامل سفارش و مبلغ نمایش داده می‌شود. در صورت تمایل «نام سرور (اختیاری)» را وارد کنید و «پرداخت از کیف پول» را بزنید. ![مرحله دهم: سبد خرید](https://docs.ariaservice.net/img/panel/bm-order-10.jpg) ![سبد خرید: جزئیات مبلغ، موجودی کیف پول و دکمه پرداخت](https://docs.ariaservice.net/img/panel/bm-order-11.jpg) اگر موجودی کیف پول از «پرداخت اول» کمتر باشد، سفارش ثبت نمی‌شود و پیام «موجودی کیف پول برای این سفارش کافی نیست» با مبلغ لازم نمایش داده می‌شود. با لینک «شارژ کیف پول» حساب را شارژ کنید و دوباره «پرداخت از کیف پول» را بزنید؛ انتخاب‌های شما باقی می‌ماند. ![پیام کافی نبودن موجودی کیف پول](https://docs.ariaservice.net/img/panel/bm-order-low-balance.jpg) ## پیگیری سفارش بعد از پرداخت، صفحه‌ی سفارش باز می‌شود. همین صفحه از «سرورهای اختصاصی ← سفارش‌ها» یا از صفحه‌ی سرور با «مشاهدهٔ سفارش و مراحل آن» هم در دسترس است. «وضعیت سفارش» همان مراحلی است که کارشناس ما می‌بیند و هر تغییر به شما اطلاع داده می‌شود: 1. **پرداخت شد، در انتظار خرید از دیتاسنتر** 2. **در حال خرید از دیتاسنتر** 3. **سفارش در دیتاسنتر ثبت شد**: از این مرحله به بعد سفارش قابل لغو نیست. 4. **دیتاسنتر در حال آماده‌سازی سرور** 5. **تحویل گرفته شد، در حال آماده‌سازی نهایی** 6. **فعال**: اطلاعات ورود در صفحه‌ی سرور آماده است. «مدیریت سرور» را بزنید. ![صفحه وضعیت سفارش سرور اختصاصی](https://docs.ariaservice.net/img/panel/bm-order-status.jpg) > **لغو سفارش** تا پیش از مرحله‌ی «سفارش در دیتاسنتر ثبت شد»، دکمه‌ی «لغو سفارش و بازگشت کامل وجه» فعال است و کل مبلغ به کیف پول برمی‌گردد. بعد از خرید سرور از دیتاسنتر، مبلغ دوره قابل بازگشت نیست. > **مغایرت قیمت** پیش از خرید، قیمت روز دیتاسنتر و نرخ ارز دوباره بررسی می‌شود. اگر قیمت روز بیش از ۱٪ از مبلغ پرداختی شما بیشتر باشد، سفارش متوقف می‌شود و در صفحه‌ی سفارش دو راه دارید: «پرداخت مابه‌التفاوت از کیف پول» یا لغو سفارش و بازگشت کامل وجه. ## مدیریت سرور اختصاصی در «سرورهای اختصاصی» فهرست سرورها با وضعیت، IP، موقعیت، مدل و تاریخ پایان دوره نمایش داده می‌شود. روی سرور کلیک کنید. ![صفحه مدیریت سرور اختصاصی](https://docs.ariaservice.net/img/panel/bm-server-1.jpg) بالای صفحه نام، وضعیت، IP و موقعیت سرور و دکمه‌های اصلی است: «نصب مجدد سیستم‌عامل»، «نمایش اطلاعات ورود»، «تمدید»، «تیکت پشتیبانی»، «روشن / خاموش کردن» و «راه‌اندازی مجدد». کارت «پیشنهاد من» تاریخ شروع، **تاریخ پرداخت بعدی** و نوع تمدید را نشان می‌دهد. > **note** در تصاویر این صفحه برچسب «نمونه آزمایشی» دیده می‌شود، چون از یک سرور نمونه گرفته شده‌اند. سرور واقعی شما این برچسب را ندارد. ### اطلاعات ورود اطلاعات ورود (IP، نام کاربری `root` و رمز عبور) **فقط یک بار** نمایش داده می‌شود. 1. در بخش «اطلاعات ورود»، «نمایش اطلاعات ورود (فقط یک‌بار)» را بزنید و در پنجره‌ی تأیید «نمایش اطلاعات» را بزنید. 2. با دکمه‌ی کپی کنار هر مورد، آن را کپی کنید و **همان لحظه** در جای امنی (مثلاً یک مدیر رمز عبور) ذخیره کنید. ![اطلاعات ورود سرور اختصاصی](https://docs.ariaservice.net/img/panel/bm-credentials.jpg) > **danger** با بستن یا تازه‌کردن صفحه، اطلاعات ورود دیگر نمایش داده نمی‌شود. بعد از اولین ورود، رمز root را عوض کنید. ### نصب سیستم‌عامل 1. در بخش «نصب سیستم‌عامل»، سیستم‌عامل را انتخاب کنید (مثل Ubuntu، Debian، AlmaLinux، Rocky Linux یا Proxmox). 2. در صورت تمایل «نام سرور (اختیاری)» و «کلید عمومی SSH (اختیاری)» را وارد کنید. با کلید SSH می‌توانید بدون رمز وارد شوید. [ساخت کلید SSH](https://docs.ariaservice.net/panel/ssh-keys-api) 3. «نصب سیستم‌عامل» را بزنید و در پنجره‌ی هشدار دوباره «نصب سیستم‌عامل» را تأیید کنید. ![فرم نصب سیستم‌عامل روی سرور اختصاصی](https://docs.ariaservice.net/img/panel/bm-os-install.jpg) ![هشدار پاک شدن داده‌ها پیش از نصب سیستم‌عامل](https://docs.ariaservice.net/img/panel/bm-os-confirm.jpg) پیام «سیستم‌عامل در حال نصب است؛ این کار چند دقیقه طول می‌کشد» نمایش داده می‌شود. > **danger** نصب یا نصب مجدد سیستم‌عامل **همه‌ی داده‌های همه‌ی دیسک‌ها** را پاک می‌کند و قابل بازگشت نیست. پیش از نصب مجدد از داده‌ها پشتیبان بگیرید. ### تمدید - صورتحساب تمدید **۷ روز پیش از پایان دوره** صادر و به شما اطلاع داده می‌شود. - با «تمدید» در صفحه‌ی سرور، مبلغ از کیف پول پرداخت می‌شود. - اگر تا **۳ روز مانده به پایان دوره** پرداخت نشود، سرور تمدید نمی‌شود. > **پایان دوره** سرور تمدیدنشده در پایان دوره مسدود و طبق مهلت دیتاسنتر حذف می‌شود. همه‌ی داده‌ها پاک می‌شوند و قابل بازیابی نیستند. پشتیبان‌گیری بر عهده‌ی شماست. ## نکات مهم - هرگونه حمله، اسپم، اسکن، فیشینگ یا محتوای غیرقانونی ممنوع است و به تعلیق سرویس **بدون بازگشت وجه** منجر می‌شود. [مرکز رسیدگی تخلفات](https://docs.ariaservice.net/panel/abuse-center) - برای هر مشکلی از دکمه‌ی «تیکت پشتیبانی» در صفحه‌ی همان سرور استفاده کنید تا تیکت به سرور وصل شود. [تیکت پشتیبانی](https://docs.ariaservice.net/panel/tickets) - تاریخ پرداخت بعدی را در کارت «پیشنهاد من» دنبال کنید و اعلان‌های موجودی را در [پروفایل](https://docs.ariaservice.net/panel/profile#اعلانها) روشن نگه دارید. --- title: "هاستینگ" description: "خرید هاست اشتراکی یا نمایندگی در پنل آریانت قدم به قدم، اتصال دامنه با نیم‌سرور، ورود به کنترل‌پنل، ایمیل، دیتابیس، امنیت CageFS، تمدید، ترافیک مازاد و حذف هاست." url: https://docs.ariaservice.net/panel/hosting markdown: https://docs.ariaservice.net/panel/hosting.md language: fa --- # هاستینگ هاست اشتراکی آریانت روی سرورهای دیتاسنتر تهران با **گواهی SSL رایگان** و کنترل‌پنل آماده ارائه می‌شود. پرداخت هاست **پیش‌پرداخت** است و برای دوره‌ی انتخابی (هفتگی تا سالانه) از کیف پول کم می‌شود. ## خرید هاست در منوی «هاستینگ»، «خرید هاستینگ» را بزنید. خرید سه مرحله دارد: **دیتاسنتر و پلن**، **دامنه** و **تایید نهایی**. کادر «خلاصه سفارش» در کنار صفحه انتخاب‌ها، مبلغ سفارش و موجودی کیف پول را نشان می‌دهد. ### ۱. دیتاسنتر، نوع هاست و پلن 1. **دیتاسنتر**: محل سرور هاست (مثلاً تهران). 2. **نوع هاست**: - **هاست اشتراکی**: یک هاست آماده برای سایت خودتان؛ مناسب سایت شخصی، شرکتی و فروشگاهی، با پنل مدیریت آماده و ایمیل و دیتابیس. - **نمایندگی هاست**: برای فروش هاست با برند خودتان؛ ساخت اکانت برای مشتریان و مدیریت آن‌ها در WHM یا DirectAdmin. 3. **پلن و دوره پرداخت**: ابتدا دوره را انتخاب کنید (هفتگی، ماهانه، سه‌ماهه، شش‌ماهه یا سالانه) تا قیمت همه‌ی پلن‌ها برای همان دوره نمایش داده شود. سپس پلن را «انتخاب» کنید. فضا، پهنای باند، تعداد ساب‌دامین، رم و پردازنده‌ی هر پلن روی کارت آن نوشته شده است. ![انتخاب دیتاسنتر و نوع هاست](https://docs.ariaservice.net/img/panel/host-buy-1.jpg) ![انتخاب دوره پرداخت و پلن](https://docs.ariaservice.net/img/panel/host-buy-2.jpg) > **tip** دوره‌های طولانی‌تر ارزان‌ترند: سه‌ماهه ۵٪، شش‌ماهه ۱۰٪ و سالانه ۱۷٪ تخفیف دارند. برای آزمایش، دوره‌ی هفتگی را بگیرید. «ادامه» را بزنید. ### ۲. دامنه و مشخصات اکانت - **دامنه**: اگر دامنه دارید «دامنه از قبل دارم» را انتخاب و نام آن را وارد کنید؛ وگرنه «ثبت دامنه‌ی جدید». - **رمز عبور cPanel**: رمز ورود به کنترل‌پنل؛ حداقل ۸ کاراکتر با یک حرف بزرگ، یک حرف کوچک و یک عدد. با «تولید خودکار» رمز قوی بسازید. - **ایمیل تماس (اختیاری)** ![دامنه و رمز cPanel](https://docs.ariaservice.net/img/panel/host-buy-3.jpg) ### ۳. تایید نهایی دامنه و ایمیل را در «مرور سفارش» بررسی کنید و «ثبت سفارش هاستینگ» را بزنید. مبلغ دوره از کیف پول کم می‌شود. ![مرور و ثبت سفارش هاست](https://docs.ariaservice.net/img/panel/host-buy-4.jpg) صفحه‌ی «در حال آماده‌سازی هاستینگ شما» باز می‌شود. ساخت اکانت معمولاً کمتر از یک دقیقه طول می‌کشد. پس از پیام «هاستینگ شما با موفقیت ساخته شد!»، «مشاهده هاستینگ من» را بزنید. ![در حال آماده‌سازی هاست](https://docs.ariaservice.net/img/panel/host-creating.jpg) ![هاست با موفقیت ساخته شد](https://docs.ariaservice.net/img/panel/host-created.jpg) ## مدیریت هاست در «هاستینگ‌های من» هاست را باز کنید. بالای صفحه دامنه، وضعیت، پلن، موقعیت، نام کاربری، IP و نسخه‌ی PHP، دکمه‌ی «ورود به کنترل‌پنل»، «تیکت» و منوی «…» (تیکت پشتیبانی، تغییر رمز عبور، تغییر پلن، بازنشانی کامل، حذف هاست) است. ![صفحه مدیریت هاست](https://docs.ariaservice.net/img/panel/host-manage-1.jpg) ### نمای کلی - **میان‌برها**: فایل منیجر، ترمینال (خط فرمان در مرورگر)، وب‌میل، حساب‌های ایمیل، دیتابیس‌ها، تغییر رمز عبور، تغییر پلن و بازنشانی کامل - **مصرف منابع**: فضای دیسک، تعداد حساب‌های ایمیل و دیتابیس‌ها - **ترافیک**: دانلود و آپلود این دوره، سهمیه‌ی دانلود و نمودار مصرف روزانه (آپلود رایگان است) - **آدرس IP هاست** - **اتصال دامنه (Name Server)** و **فعالیت‌های اخیر** ![نیم‌سرورها، IP هاست و ترافیک](https://docs.ariaservice.net/img/panel/host-manage-2.jpg) ### اتصال دامنه به هاست 1. در بخش «اتصال دامنه (Name Server)»، «کپی همه» را بزنید. 2. وارد پنل ثبت‌کننده‌ی دامنه‌ی خود شوید و بخش «Name Server / DNS» را باز کنید. 3. نیم‌سرورهای فعلی را با نیم‌سرورهای آریانت (مثلاً `ns1.ariaservice.net` و `ns2.ariaservice.net`) جایگزین و ذخیره کنید. > **note** اعمال تغییر نیم‌سرور ممکن است **۲۴ تا ۴۸ ساعت** طول بکشد. اگر دامنه را از آریانت گرفته‌اید، نیم‌سرورها را در صفحه‌ی [دامنه](https://docs.ariaservice.net/panel/domains) تغییر دهید. > **tip** IP هاست را برای معرفی سایت به بانک یا درگاه پرداخت استفاده کنید. ### ایمیل زبانه‌ی «ایمیل» حساب‌های ایمیل سازمانی دامنه (مثل `info@example.com`) را نشان می‌دهد. با «حساب جدید» ایمیل بسازید و با «وب‌میل» ایمیل‌ها را در مرورگر بخوانید و بفرستید. ![حساب‌های ایمیل هاست](https://docs.ariaservice.net/img/panel/host-email.jpg) ### دیتابیس در زبانه‌ی «دیتابیس» دیتابیس MySQL و کاربر آن را بسازید؛ نام دیتابیس، نام کاربری و رمز را در تنظیمات سایت (مثلاً `wp-config.php` وردپرس) وارد کنید. ### امنیت و منابع - **ایزوله‌سازی حساب (CageFS)**: فایل‌ها و پردازه‌های سایت شما برای کاربران دیگر سرور دیده نمی‌شوند. - **محافظت از لینک‌ها (LinkSafe)**: جلوی حمله‌های symlink و hardlink به فایل‌های دیگران گرفته می‌شود. - **هشدارها**: رویدادهایی مثل حمله‌های مسدودشده، پر شدن فضای دیسک و رسیدن به سقف منابع. - **منابع اختصاصی و مصرف**: سقف منابع پلن و بیشترین مصرف در بازه‌ی انتخاب‌شده (یک ساعت تا ۳۰ روز). ![امنیت و منابع هاست](https://docs.ariaservice.net/img/panel/host-security.jpg) > **tip** اگر سایت کند است یا خطای 508 می‌دهد، در «منابع اختصاصی و مصرف» ببینید به سقف پردازنده یا رم رسیده‌اید یا نه. در این صورت [پلن را ارتقا دهید](#تنظیمات). ### کش Redis در زبانه‌ی «کش Redis» می‌توانید Redis را برای سرعت بیشتر سایت (مثلاً با افزونه‌ی کش وردپرس) فعال کنید. ### صورتحساب و تمدید زبانه‌ی «صورتحساب» دوره‌ی پرداخت، **تاریخ تمدید بعدی**، هزینه‌ی هر دوره و کلید **تمدید خودکار** را نشان می‌دهد. با «مشاهده هزینه‌های این سرویس» همه‌ی پرداخت‌های همین هاست را ببینید. ![صورتحساب و تمدید هاست](https://docs.ariaservice.net/img/panel/host-billing.jpg) > **caution** تمدید خودکار را روشن کنید و موجودی کیف پول را پیش از تاریخ تمدید کافی نگه دارید تا هاست مسدود نشود. ### تنظیمات - **رمز عبور**: تغییر رمز ورود به کنترل‌پنل - **پلن**: ارتقا به پلن بالاتر - **تغییر دامنه‌ی اصلی**: اولین تغییر رایگان است - **کنترل‌پنل**: ورود مستقیم به پنل مدیریت هاست - **ترافیک مازاد**: اگر «پرداخت ترافیک مازاد» روشن باشد، پس از تمام شدن سهمیه‌ی دانلود دوره، هزینه‌ی هر گیگابایت اضافه از کیف پول کم می‌شود و سایت از دسترس خارج نمی‌شود. ![تنظیمات هاست](https://docs.ariaservice.net/img/panel/host-settings.jpg) ### بازنشانی کامل «بازنشانی کامل» هاست را به روز اول برمی‌گرداند. > **danger** بازنشانی کامل **همه‌ی فایل‌ها، ایمیل‌ها و دیتابیس‌های هاست** را پاک می‌کند. پیش از آن نسخه‌ی پشتیبان بگیرید. ## حذف هاست 1. از منوی «…» بالای صفحه، «حذف هاست» را بزنید. 2. نام دامنه را برای تأیید بنویسید. 3. «می‌دانم که همه‌ی داده‌ها برای همیشه حذف می‌شود و قابل بازگشت نیست» را تیک بزنید و «حذف همیشگی هاست» را بزنید. ![منوی عملیات بیشتر هاست](https://docs.ariaservice.net/img/panel/host-menu.jpg) ![تأیید حذف هاست](https://docs.ariaservice.net/img/panel/host-delete.jpg) > **danger** حذف هاست برگشت‌ناپذیر است: همه‌ی فایل‌ها، دیتابیس‌ها و ایمیل‌ها پاک می‌شوند و **هزینه‌ی دوره‌ی پرداخت‌شده بازگردانده نمی‌شود**. --- title: "دامنه، SSL و Cloudflare" description: "ثبت، انتقال و تمدید دامنه در پنل آریانت، پروفایل دامنه، نیم‌سرور، قفل دامنه، DNSSEC، گواهی SSL و اتصال Cloudflare." url: https://docs.ariaservice.net/panel/domains markdown: https://docs.ariaservice.net/panel/domains.md language: fa --- # دامنه، SSL و Cloudflare در منوی «دامنه و DNS»، صفحه‌ی «دامنه‌های من» همه‌ی دامنه‌ها را با وضعیت، تاریخ انقضا، تمدید خودکار و نیم‌سرورها نشان می‌دهد. دکمه‌های «ثبت دامنه جدید»، «انتقال دامنه» و «گواهی SSL» بالای همین صفحه‌اند. ![دامنه‌های من](https://docs.ariaservice.net/img/panel/domains-list.jpg) ## پروفایل دامنه برای ثبت دامنه، ابتدا یک **پروفایل دامنه** لازم است: اطلاعات مالک و نیم‌سرورهای پیش‌فرض، تا برای همه‌ی دامنه‌ها با همان مشخصات به رجیستری ارسال شود. 1. در «دامنه و DNS ← پروفایل دامنه»، «پروفایل جدید» را بزنید. 2. فرم را **با حروف لاتین** پر کنید: - **نام پروفایل** (برای شناختن آن در پنل) و در صورت تمایل «پروفایل پیش‌فرض» - **نام کامل** و **ایمیل** مالک - **تلفن** با فرمت `+کدکشور.شماره`، مثلاً `+98.2112345678` - **سازمان** (اختیاری)، **کشور** (کد دوحرفی بزرگ، مثلاً `IR`)، **استان**، **شهر**، **کد پستی** و **آدرس کامل** - **نیم‌سرورها**: حداقل ۲ و حداکثر ۶ نیم‌سرور؛ با «افزودن نیم‌سرور» بیشتر اضافه کنید 3. «ذخیره پروفایل» را بزنید. ![فرم ساخت پروفایل دامنه](https://docs.ariaservice.net/img/panel/domains-profile-new.jpg) پروفایل‌ها با نام تماس، تلفن، آدرس و نیم‌سرورها در فهرست نمایش داده می‌شوند و با «ویرایش»، «پیش‌فرض» و دکمه‌ی حذف مدیریت می‌شوند. ![فهرست پروفایل‌های دامنه](https://docs.ariaservice.net/img/panel/domains-profiles.jpg) > **caution** اطلاعات مالک دامنه را درست و به نام خودتان وارد کنید؛ مالکیت قانونی دامنه با همین اطلاعات است و برای انتقال یا بازیابی دامنه لازم می‌شود. ایمیل مالک باید در دسترس باشد؛ پیام‌های تأیید رجیستری به آن فرستاده می‌شود. ## ثبت دامنه 1. در «دامنه و DNS ← ثبت دامنه جدید» نام کامل دامنه (مثلاً `example.com`) را بنویسید و Enter یا «افزودن و بررسی» را بزنید. می‌توانید تا ۱۰ دامنه را پشت سر هم به صف بررسی اضافه کنید؛ هر دامنه با فاصله‌ی ۵ ثانیه بررسی می‌شود. 2. در «نتایج بررسی دامنه‌ها» وضعیت هر دامنه («قابل ثبت»، «ثبت شده» یا «پرمیوم») و قیمت سالانه‌ی آن به ریال نمایش داده می‌شود. دامنه‌های قابل ثبت را «افزودن» کنید. ![جستجوی دامنه](https://docs.ariaservice.net/img/panel/domains-register.jpg) ![نتیجه بررسی دامنه‌ها](https://docs.ariaservice.net/img/panel/domains-search.jpg) 3. در «دامنه‌های انتخاب شده» برای هر دامنه **نیم‌سرورها**، **مدت ثبت** (۱ تا ۱۰ سال) و **پروفایل** را تعیین کنید. قیمت هر دامنه و **مجموع قیمت** پایین جدول به‌روز می‌شود. 4. «ادامه و ثبت درخواست» را بزنید. مبلغ از کیف پول کم می‌شود و وضعیت ثبت در «وضعیت ثبت دامنه‌ها» به‌روز می‌شود. ![سبد خرید دامنه](https://docs.ariaservice.net/img/panel/domains-cart.jpg) > **tip** - پیش از ثبت، [حساب را شارژ کنید](https://docs.ariaservice.net/panel/wallet)؛ موجودی باید دست‌کم برابر «مجموع قیمت» باشد. - اگر دامنه را برای [هاست آریانت](https://docs.ariaservice.net/panel/hosting) می‌خواهید، نیم‌سرورهای آریانت را بگذارید تا دامنه بدون کار اضافه به هاست وصل شود. - دامنه‌ها در گروه‌های حداکثر ۱۰تایی برای ثبت فرستاده می‌شوند. ## انتقال دامنه به آریانت در «انتقال دامنه»، نام دامنه و کد انتقال (EPP / Auth Code) را وارد کنید، پروفایل را انتخاب کنید و «ثبت درخواست انتقال» را بزنید. کد انتقال را از ثبت‌کننده‌ی فعلی بگیرید و قفل دامنه را آنجا بردارید. ## مدیریت دامنه - **تمدید دامنه** و **تمدید خودکار** - **نیم‌سرورها**: تغییر DNS دامنه - **حفاظت از اطلاعات**: مخفی کردن اطلاعات مالک در WHOIS - **امنیت و عملیات**: قفل دامنه، درخواست کد EPP برای انتقال - **مدیریت DNSSEC** - **رویدادها**: تاریخچه‌ی کارهای انجام‌شده روی دامنه ## گواهی SSL 1. در «گواهی SSL»، «درخواست SSL» را بزنید و پلن را انتخاب کنید (برای همه‌ی زیردامنه‌ها، پلن با پشتیبانی از Wildcard را بگیرید). 2. دامنه را وارد کنید. اعتبارسنجی از طریق DNS انجام می‌شود. 3. بعد از ثبت سفارش، رکوردهای DNS لازم نمایش داده می‌شوند. آن‌ها را در DNS دامنه اضافه کنید و «بررسی DNS و صدور گواهی» را بزنید. 4. پس از صدور، گواهی را دانلود کنید. ## Cloudflare در «مدیریت Cloudflare» با یک API Token حساب Cloudflare خود را متصل کنید و «تست اتصال» را بزنید. بعد می‌توانید دامنه‌ها را به Cloudflare اضافه کنید و رکوردهای DNS را از همین پنل مدیریت کنید. --- title: "پیامک" description: "ارسال پیامک تکی و گروهی در پنل آریانت، برآورد هزینه، زمان‌بندی، خطوط ارسال، قالب‌ها، پیام‌های دریافتی، وب‌هوک و اتصال با API." url: https://docs.ariaservice.net/panel/sms markdown: https://docs.ariaservice.net/panel/sms.md language: fa --- # پیامک با سرویس پیامک آریانت پیامک تکی و انبوه بفرستید، پیام‌های دریافتی را ببینید و از نرم‌افزار خودتان با API پیامک بفرستید. **هزینه‌ی پیامک از همان کیف پول حساب** کم می‌شود. ## نمای کلی «پیامک ← نمای کلی» آمار ۳۰ روز اخیر را نشان می‌دهد: تعداد ارسال‌شده، تحویل‌شده، ناموفق و هزینه، به‌همراه موجودی کیف پول. ![نمای کلی پیامک](https://docs.ariaservice.net/img/panel/sms-dashboard.jpg) منوی پیامک سه بخش دارد: - **پیام‌ها**: ارسال پیامک، ارسال‌ها، پیام‌ها، زمان‌بندی‌شده، دریافتی - **تنظیمات**: خطوط ارسال، قالب‌ها، مسدودشده‌ها، وب‌هوک، وب سرویس - **گزارش**: گزارش‌ها ## ارسال پیامک 1. «ارسال پیامک» را باز کنید. 2. در **گیرندگان** شماره‌ها را هر کدام در یک خط بنویسید (حداکثر **۱۰۰ شماره** در هر ارسال). زیر کادر تعداد شماره‌های معتبر نوشته می‌شود. 3. **خط ارسال** را انتخاب کنید؛ گیرنده این شماره را به‌عنوان فرستنده می‌بیند. 4. در صورت نیاز یک **قالب** انتخاب کنید یا **متن پیام** را بنویسید. 5. برای ارسال در آینده، «ارسال در زمان مشخص» را تیک بزنید و زمان را انتخاب کنید. 6. کادر **برآورد هزینه** را بررسی کنید و «ارسال» را بزنید. ![فرم ارسال پیامک و برآورد هزینه](https://docs.ariaservice.net/img/panel/sms-send.jpg) > **بخش‌بندی پیام و هزینه** پیامک طولانی در چند **بخش** فرستاده می‌شود و هزینه برای هر بخش حساب می‌شود: - متن فارسی: هر بخش تا **۷۰** نویسه - متن انگلیسی: هر بخش تا **۱۶۰** نویسه زیر کادر متن، تعداد نویسه‌ها و بخش‌ها نوشته می‌شود. «برآورد هزینه» = تعداد گیرندگان × بخش‌های هر پیام × قیمت هر بخش. > **tip** - پیش از ارسال انبوه، متن را یک بار برای شماره‌ی خودتان بفرستید. - شماره‌ها را با فرمت `09xxxxxxxxx` بنویسید؛ شماره‌های نامعتبر شمرده نمی‌شوند. - برای ارسال به بیش از ۱۰۰ نفر، چند ارسال جدا انجام دهید یا از [API](#اتصال-با-api) استفاده کنید. ## پیگیری ارسال‌ها - **ارسال‌ها**: هر ارسال گروهی با وضعیت تحویل هر شماره؛ با «خروجی CSV» فایل آن را بگیرید. - **پیام‌ها**: تک‌تک پیام‌های ارسالی - **زمان‌بندی‌شده**: ارسال‌های آینده؛ تا پیش از زمان ارسال می‌توانید «لغو» کنید. - **دریافتی**: پاسخ‌هایی که به خطوط شما رسیده است - **گزارش‌ها**: آمار ارسال و هزینه در بازه‌ی دلخواه ## خطوط ارسال «خطوط ارسال» شماره‌های فرستنده‌ی شما را با وضعیت و تاریخ درخواست نشان می‌دهد. برای خط اختصاصی «درخواست خط جدید» را بزنید. ![خطوط ارسال](https://docs.ariaservice.net/img/panel/sms-lines.jpg) ## قالب‌ها و مسدودشده‌ها - **قالب‌ها**: متن‌های آماده برای ارسال سریع - **مسدودشده‌ها**: شماره‌هایی که برایشان پیامک فرستاده نمی‌شود (مثلاً کسانی که لغو عضویت کرده‌اند) ## اتصال با API «وب سرویس» نشانی API (`https://api.ariaservice.net/sms/v1`)، فایل OpenAPI، دسترسی‌های لازم توکن و نمونه‌ی ارسال با `curl` را نشان می‌دهد. 1. «ساخت توکن API پیامک» را بزنید و فقط دسترسی‌های لازم را بدهید، مثلاً `sms:messages:write` برای ارسال و `sms:messages:read` برای خواندن وضعیت. 2. توکن را در هدر `Authorization: Bearer ` هر درخواست بفرستید. ![وب سرویس پیامک](https://docs.ariaservice.net/img/panel/sms-api.jpg) در «وب‌هوک» یک آدرس تعیین کنید تا وضعیت تحویل و پیام‌های دریافتی برای نرم‌افزار شما فرستاده شود. مستندات کامل: [وب سرویس پیامک](https://docs.ariaservice.net/sms/api). درباره‌ی امنیت توکن: [توکن‌های API](https://docs.ariaservice.net/panel/ssh-keys-api#توکنهای-api). --- title: "مرکز رسیدگی تخلفات" description: "مشاهده‌ی گزارش‌های تخلف (Abuse) سرویس‌ها در پنل آریانت، امتیاز سوءاستفاده، پاسخ به گزارش و درخواست فعال‌سازی مجدد." url: https://docs.ariaservice.net/panel/abuse-center markdown: https://docs.ariaservice.net/panel/abuse-center.md language: fa --- # مرکز رسیدگی تخلفات اگر از یکی از سرویس‌های شما گزارش تخلف (Abuse) برسد، مثل ارسال اسپم، حمله، اسکن یا فیشینگ، گزارش در «مرکز سوءاستفاده» ثبت و به شما اطلاع داده می‌شود. سرویسی که به دلیل تخلف مسدود شده باشد، لینک این مرکز را در صفحه‌ی خود نشان می‌دهد. نشانی مستقیم: [panel.ariaservice.net/abuse-center](https://panel.ariaservice.net/abuse-center). ## نمای کلی - **امتیاز سوءاستفاده**: وضعیت کلی حساب («سالم» یعنی گزارش باز ندارید) - تعداد گزارش‌ها بر اساس **شدت**: کم، متوسط، زیاد، بحرانی و حل‌شده - تعداد کل گزارش‌ها، باز، حل‌شده و معلق - **فهرست گزارش‌ها** با شناسه، عنوان، نوع، شدت، وضعیت، تاریخ و **مهلت پاسخ**؛ با جستجو و فیلتر وضعیت، شدت و نوع ![مرکز سوءاستفاده](https://docs.ariaservice.net/img/panel/abuse-1.jpg) ## پاسخ به گزارش 1. گزارش را باز کنید. نوع، شدت، مهلت پاسخ، سرویس مربوط، «مدارک و مستندات» و «تاریخچه گزارش» را می‌بینید. 2. «پاسخ» را بزنید و نوع پاسخ را انتخاب کنید: **توضیح**، **اعتراض**، **مدرک رفع مشکل** یا **درخواست فعال‌سازی**. 3. توضیح کامل بنویسید (حداقل ۲۰ نویسه) و در صورت نیاز تا **۵ فایل** (هر کدام تا ۵ مگابایت) پیوست کنید. 4. پاسخ را بفرستید و وضعیت گزارش را دنبال کنید. > **tip** - **پیش از پایان مهلت پاسخ** جواب دهید؛ گزارش بی‌پاسخ ممکن است به تعلیق سرویس برسد. - ابتدا مشکل را روی سرور رفع کنید (بدافزار را پاک کنید، رمزها را عوض کنید، سرویس آلوده را ببندید) و بعد «مدرک رفع مشکل» بفرستید. پاسخ بدون رفع مشکل باعث فعال‌سازی مجدد نمی‌شود. - اگر گزارش را اشتباه می‌دانید، «اعتراض» بزنید و مدارک (مثلاً لاگ‌ها) را پیوست کنید. > **danger** هرگونه حمله، اسپم، اسکن، فیشینگ یا محتوای غیرقانونی ممنوع است و ممکن است به تعلیق سرویس **بدون بازگشت وجه** منجر شود. --- title: "وب سرویس ابر آریانت" description: "وب سرویس ابر آریانت روی api.ariaservice.net/cloud/v1 - سرورها، دیسک‌ها، شبکه‌ها، فایروال‌ها، IPها، لود بالانسرها، ایمیج‌ها، قیمت‌ها و محدودیت نرخ." url: https://docs.ariaservice.net/cloud-api markdown: https://docs.ariaservice.net/cloud-api.md language: fa --- # وب سرویس ابر آریانت وب سرویس ابر، منابع **ابر آریانت** را مدیریت می‌کند: سرورها، دیسک‌ها (Volume)، شبکه‌های خصوصی، NAT gateway، فایروال‌ها، IPهای شناور، elastic و اصلی، لود بالانسرها، ایمیج‌ها، اسنپ‌شات‌ها و پشتیبان‌ها. دستورهای [`arianet cloud`](https://docs.ariaservice.net/cli#ابر-آریانت) و [پرووایدر Terraform](https://docs.ariaservice.net/terraform) روی همین وب سرویس ساخته شده‌اند. - **آدرس پایه:** `https://api.ariaservice.net/cloud/v1` - **قالب:** JSON روی HTTPS - **احراز هویت:** توکن شخصی API که به صورت Bearer ارسال می‌شود ([احراز هویت و توکن](https://docs.ariaservice.net/authentication)) - **OpenAPI 3.1:** [`https://api.ariaservice.net/cloud/v1/openapi.json`](https://api.ariaservice.net/cloud/v1/openapi.json) که در [مرجع تعاملی](https://docs.ariaservice.net/cloud-api-reference) قابل مرور است > **VPS یا ابر؟** VPSهایی که از `/api/v1/servers` (دستورهای `arianet vps`) سفارش داده می‌شوند در [وب سرویس VPS](https://docs.ariaservice.net/api-endpoints) توضیح داده شده‌اند. این صفحه فقط درباره ابر آریانت است. هر دو وب سرویس همان توکن را می‌پذیرند. ## شروع سریع 1. در پنل، در [cloud.ariaservice.net/users/api-tokens](https://cloud.ariaservice.net/users/api-tokens) توکنی با دسترسی‌های `cloud:servers:read` (همه `GET`ها) و `cloud:servers:write` (همه تغییرات) بسازید. 2. وب سرویس را صدا بزنید: ```bash export ARIANET_TOKEN="paste-your-token-here" BASE=https://api.ariaservice.net/cloud/v1 AUTH="Authorization: Bearer $ARIANET_TOKEN" curl -s $BASE/datacenters -H "$AUTH" # datacenter codes, e.g. ovh curl -s "$BASE/plans?datacenter=ovh" -H "$AUTH" # plan ids and prices curl -s "$BASE/images?type=system" -H "$AUTH" # image slugs, e.g. ubuntu-24.04 curl -s -X POST $BASE/servers -H "$AUTH" -H "Content-Type: application/json" \ -d '{"name":"web-1","datacenter":"ovh","plan_id":3,"image":"ubuntu-24.04","ssh_key_ids":[5],"labels":{"role":"web"}}' ``` پاسخ ساخت `201` است و سرور، `action_id` عملیات ساخت و یک `root_password` را برمی‌گرداند که **فقط یک بار** نمایش داده می‌شود (و هرگز به صورت خوانا ذخیره نمی‌شود). با `count` (۱ تا ۱۰) چند سرور در یک درخواست ساخته می‌شود. عملیات را تا پایان دنبال کنید (بخش [عملیات ناهمگام](#عملیات-ناهمگام)). ## احراز هویت ```text Authorization: Bearer ``` | دسترسی (scope) | اجازه | |---|---| | `cloud:servers:read` | همه `GET`ها | | `cloud:servers:write` | همه `POST`، `PUT`، `PATCH` و `DELETE`ها | منابع همیشه متعلق به حساب صاحب توکن هستند. توکن نبود، نامعتبر یا باطل‌شده پاسخ `401` می‌گیرد؛ توکن بدون دسترسی لازم یا استفاده از IP خارج از فهرست مجاز توکن، پاسخ `403` می‌گیرد. ## لیست قیمت عمومی لیست قیمت به **توکن نیاز ندارد** و از هر origin قابل فراخوانی است (یک دقیقه کش می‌شود): ```bash curl -s https://api.ariaservice.net/cloud/v1/public/pricing curl -s "https://api.ariaservice.net/cloud/v1/public/pricing?datacenter=ovh" ``` ```json { "pricing": { "vat_included": false, "hours_per_month": 730, "server_types": [ { "id": 1, "name": "C1", "group": "shared", "cores": 1, "memory_mb": 2048, "disk_gb": 20, "included_traffic_gb": 20000, "minimum_usage_hours": 1, "prices": [ { "location": "ovh", "price_hourly": { "net": 900, "currency": "IRR" }, "price_monthly": { "net": 657000, "currency": "IRR" } } ] } ], "resources": [ { "sku": "volume_gb", "location": "ovh", "unit": "...", "price_hourly": { "net": 0, "currency": "IRR" }, "price_monthly": { "net": 0, "currency": "IRR" } } ] } } ``` `server_types` همه پلن‌ها را با قیمت هر مکان و `resources` بقیه قیمت‌ها (`primary_ipv4`، `floating_ipv4`، `floating_ipv6`، `elastic_ipv4`، `volume_gb`، `snapshot_gb`، `backup` به صورت درصدی از پلن، انواع لود بالانسر و `nat_gateway`) را دارد. قیمت‌ها بدون مالیات بر ارزش افزوده و از همان ردیف‌هایی هستند که صورتحساب استفاده می‌کند. `GET /pricing` (با توکن) ردیف‌های قیمت حساب خود شما را برمی‌گرداند. ## فهرست‌ها، برچسب‌ها و پروژه‌ها هر فهرست منابع این پارامترها را می‌پذیرد: | پارامتر | توضیح | |---|---| | `label_selector` | عبارت‌های جداشده با کاما که همه باید برقرار باشند: `key=value`، `key!=value`، `key` (برچسب را دارد) یا `!key` (ندارد). مثال: `env=prod,tier!=db`. selector نادرست پاسخ `422 invalid_label_selector` می‌گیرد. | | `project_id` | فقط منابع این پروژه | | `page`، `per_page` | صفحه‌بندی اختیاری: `per_page` بین ۱ و ۱۰۰، پیش‌فرض ۲۵. بدون `page` و `per_page` کل فهرست در یک صفحه برمی‌گردد. | ```json { "data": [ { "id": 12, "name": "web-1" } ], "meta": { "pagination": { "page": 1, "per_page": 25, "previous_page": null, "next_page": null, "last_page": 1 } } } ``` منابع `labels` (جفت‌های کلید/مقدار) دارند و به یک پروژه تعلق دارند (اگر هنگام ساخت `project_id` ندهید، پروژه پیش‌فرض حساب). `PATCH` نام، برچسب‌ها، محافظت در برابر حذف (`protection_delete`) و پروژه را تغییر می‌دهد؛ فقط فیلدهای ارسال‌شده تغییر می‌کنند. ## عملیات ناهمگام تغییری که زمان می‌برد پاسخ `202` (یا برای ساخت `201`) با یک `action_id` می‌گیرد. action را تا وقتی `status` برابر `success` یا `error` شود بررسی کنید: ```bash curl -s $BASE/actions/812 -H "$AUTH" # {"data":{"id":812,"command":"create","status":"running","progress":40,"resource":{...},"error":null,"started_at":"...","finished_at":null}} ``` `GET /actions` همه actionهای حساب (از جدید به قدیم) و `GET //{id}/actions` actionهای یک منبع را برمی‌گرداند. با CLI: `arianet cloud actions wait `. ## خطاها همه خطاها یک قالب دارند: ```json { "error": "Human-readable message", "code": "not_found", "reason": "..." } ``` بر اساس `code` که ثابت است تصمیم بگیرید. `reason` وقتی چند حالت برای یک خطا وجود دارد آن را دقیق‌تر می‌کند (مثلاً نوع منبع برای `quota_exceeded`). کدهای هر وضعیت HTTP در `x-error-codes` سند OpenAPI آمده است. | HTTP | `code` رایج | |---|---| | 400 | `invalid_input` | | 401 | `unauthorized` | | 402 | موجودی برای سفارش کافی نیست | | 403 | `forbidden`، `identity_needed` | | 404 | `not_found` | | 409 | وضعیت منبع الان اجازه نمی‌دهد (`already_attached`، `ip_change_fee_not_confirmed`، ...) | | 422 | درخواست درست است اما رد شد (`datacenter_closed`، `invalid_label_selector`، `quota_exceeded`، `plan_sold_out`، ...) | | 423 | `locked`، `server_locked`، `lb_locked`: منبع درگیر عملیات دیگری است | | 429 | `rate_limit_exceeded` | | 503 | `unavailable`، `datacenter_unavailable`، ... (همراه `Retry-After`) | ## محدودیت نرخ حساب و کاربر صاحب هر توکن می‌توانند **۳۶۰۰ درخواست در ساعت** و **۶۰ درخواست در دقیقه** ارسال کنند. هر پاسخ این هدرها را دارد: | هدر | معنی | |---|---| | `RateLimit-Limit` | تعداد درخواست مجاز در پنجره فعلی | | `RateLimit-Remaining` | درخواست‌های باقی‌مانده در پنجره | | `RateLimit-Reset` | ثانیه تا شروع پنجره بعدی | پس از عبور از محدودیت، پاسخ `429` با کد `rate_limit_exceeded` و هدر `Retry-After` (بر حسب ثانیه) است. همین مدت صبر کنید و دوباره تلاش کنید. پاسخ `503` هم `Retry-After` دارد. ```bash curl -s -D - -o /dev/null $BASE/servers -H "$AUTH" | grep -i -e ratelimit -e retry-after ``` ## سرورها | متد و مسیر | کاربرد | |---|---| | `GET /servers` | فهرست سرورها | | `POST /servers` | ساخت یک سرور، یا تا ۱۰ سرور با `count` | | `GET /servers/{id}` | یک سرور | | `PATCH /servers/{id}` | تغییر `name`، `labels`، `protection_delete`، `protection_rebuild` یا `project_id` | | `DELETE /servers/{id}` | حذف سرور (گزینه‌ها در ادامه) | | `POST /servers/{id}/actions/{op}` | `poweron`، `poweroff` (سخت)، `shutdown` (ACPI)، `reboot`، `reset`، `rebuild` (`{"image":"..."}`)، `change_plan` (`{"plan_id":4}`)، `enable_rescue`، `disable_rescue`، `reset_password`، `change_ipv4` (برای تغییر پولی `{"confirm_paid":true}`) | | `POST /servers/{id}/actions/attach_to_network`، `detach_from_network` | شبکه‌های خصوصی | | `POST /servers/{id}/actions/enable_backup`، `disable_backup`، `change_backup_window`، `create_backup`، `restore_backup` | پشتیبان‌ها | | `POST /servers/{id}/actions/create_image` | گرفتن اسنپ‌شات | | `GET /servers/{id}/costs` | هزینه سرور (در ادامه) | | `GET /servers/{id}/actions`، `/backups`، `/snapshots`، `/metrics`، `/networking`، `/storage`، `/events`، `/ip-changes` | جزئیات و تاریخچه | | `POST /servers/{id}/console` | لینک یک‌بارمصرف کنسول VNC با اعتبار ۶۰ ثانیه | فیلدهای بدنه ساخت: `name`، `datacenter`، `plan_id`، `image` (الزامی)؛ `ssh_key_ids`، `ssh_keys`، `user_data` (cloud-init، حداکثر ۳۲ کیلوبایت)، `start_after_create`، `firewall_ids`، `networks`، `volume_ids`، `backups`، `labels`، `project_id`، `count`. مقدار `image` نامی مثل `ubuntu-24.04` یا `snapshot:` / `backup:` است. ### حذف سرور ```bash curl -s -X DELETE "$BASE/servers/12?keep_backups=true&delete_snapshots=true" -H "$AUTH" ``` | پارامتر query | پیش‌فرض | توضیح | |---|---|---| | `keep_backups` | `false` | پشتیبان‌های کامل‌شده به صورت اسنپ‌شات نگه داشته شوند و تا زمان حذف بر اساس GB هزینه داشته باشند (اگر موجودی کافی نباشد `402`) | | `delete_snapshots` | `false` | اسنپ‌شات‌های سرور هم حذف شوند؛ اسنپ‌شات‌های محافظت‌شده باقی می‌مانند. به طور پیش‌فرض اسنپ‌شات‌ها پس از حذف سرور باقی می‌مانند و هزینه دارند. | | `reason` | - | دلیل: `price`، `performance`، `ip_filtered`، `no_longer_needed`، `migrating`، `support` یا `other` | | `note` | - | توضیح کوتاه (با `reason=other` الزامی، حداکثر ۵۰۰ کاراکتر) | اگر محافظت در برابر حذف فعال باشد، ابتدا آن را خاموش کنید (`PATCH /servers/{id}` با `{"protection_delete": false}`). ### هزینه سرور `GET /servers/{id}/costs` نرخ ساعتی و ماهانه فعلی سرور را به تفکیک هر بخش و هزینه نسخه‌های آن پس از حذف را برمی‌گرداند: ```json { "data": { "server_id": 12, "hours_per_month": 730, "lines": [ { "type": "server", "id": 12, "name": "web-1", "sku": "...", "quantity": 1, "unit": "...", "hourly_price": 3300, "monthly_price": 2409000, "currency": "IRR" }, { "type": "volume", "id": 7, "name": "data", "sku": "volume_gb", "quantity": 50, "unit": "...", "hourly_price": 0, "monthly_price": 0, "currency": "IRR" } ], "totals": [ { "currency": "IRR", "hourly_price": 3300, "monthly_price": 2409000 } ], "snapshots": { "count": 1, "size_gb": 20, "hourly_price": 0, "monthly_price": 0, "currency": "IRR" }, "kept_backups": { "count": 0, "size_gb": 0, "hourly_price": 0, "monthly_price": 0, "currency": "IRR" } } } ``` `type` هر ردیف یکی از `server`، `primary_ipv4`، `floating_ip`، `elastic_ip`، `volume` یا `backup` است؛ `quantity` برابر ۱، حجم دیسک بر حسب GB یا درصد پشتیبان از پلن است. `totals` جمع ردیف‌ها به تفکیک ارز است. `snapshots` پس از حذف هزینه دارند و `kept_backups` فقط با `keep_backups=true`. (اعداد بالا نمونه هستند.) ## منابع دیگر | منبع | مسیرها | |---|---| | دیسک‌ها | `/volumes`، `/volumes/{id}`، `POST /volumes/{id}/actions/{op}` (`attach` با `server_id`، `detach`، `resize` با `size_gb` فقط افزایشی)، `GET /volume-prices` | | شبکه‌های خصوصی | `/networks`، `/networks/{id}`، `POST /networks/{id}/subnets`، `DELETE /networks/{id}/subnets/{subnet}`، `PUT /networks/{id}/routes` | | NAT gateway | `/nat-gateways`، `/nat-gateways/{id}` | | فایروال‌ها | `/firewalls`، `/firewalls/{id}` (`PUT` قوانین را جایگزین می‌کند)، `PUT /firewalls/{id}/servers`، `POST /firewalls/{id}/actions/{op}` (`apply_to_resources`، `remove_from_resources`) | | IPهای شناور | `/floating-ips`، `/floating-ips/{id}`، `POST /floating-ips/{id}/actions/{op}` (`assign`، `unassign`، `change_dns_ptr`) | | IPهای elastic | `/elastic-ips`، `/elastic-ips/{id}`، `POST /elastic-ips/{id}/actions/{op}` (`assign`، `unassign`) | | IPهای اصلی | `/primary-ips`، `/primary-ips/{id}`، `POST /primary-ips/{id}/actions/change_dns_ptr` | | لود بالانسرها | `/load-balancers`، `/load-balancers/{id}`، `POST /load-balancers/{id}/actions/{op}` (سرویس‌ها، هدف‌ها، نوع، الگوریتم، شبکه خصوصی)، `GET /load-balancers/{id}/health`، `GET /load-balancer-types` | | ایمیج‌ها | `GET /images`، `GET /images/custom`، `GET /datacenters/{code}/images` | | اسنپ‌شات و پشتیبان | `/snapshots`، `/snapshots/{id}`، `/backups`، `/backups/{id}`، `POST /backups/{id}/actions/convert` (نگه‌داشتن پشتیبان به صورت اسنپ‌شات) | | کاتالوگ و حساب | `GET /datacenters`، `GET /plans`، `GET /pricing`، `GET /public/pricing`، `GET /limits` | | Actionها | `GET /actions`، `GET /actions/{id}`، `GET /actions/{id}/events` | همه فیلدها، بدنه‌ها و پاسخ‌ها در [مرجع تعاملی](https://docs.ariaservice.net/cloud-api-reference) و [سند OpenAPI](https://api.ariaservice.net/cloud/v1/openapi.json) آمده‌اند. ## ابزارها - [CLI](https://docs.ariaservice.net/cli#ابر-آریانت): `arianet cloud ...` - [پرووایدر Terraform](https://docs.ariaservice.net/terraform): `ariaservice/arianet` --- title: "وب سرویس VPS" description: "وب سرویس VPS آریانت روی api.ariaservice.net/api/v1 - سفارش سرور با Idempotency-Key، عملیات ناهمگام، کلیدهای SSH، فایروال‌ها، موجودی، فاکتورها، دسترسی‌ها و کدهای خطا." url: https://docs.ariaservice.net/api-endpoints markdown: https://docs.ariaservice.net/api-endpoints.md language: fa --- # وب سرویس VPS این صفحه برای خرید و مدیریت **سرور مجازی (VPS)** با کد است. ابزار خط فرمان `arianet` (دستورهای `arianet vps`)، ربات تلگرام و یکپارچه‌سازی‌های همکاران همه از همین سرویس استفاده می‌کنند و کد خود شما هم می‌تواند از آن استفاده کند. توصیف ماشین‌خوان آن در فایل `openapi.yaml` کنار همین مستندات منتشر می‌شود. - **آدرس پایه:** `https://api.ariaservice.net/api/v1` - **قالب:** درخواست و پاسخ JSON روی HTTPS - **احراز هویت:** توکن شخصی API که به صورت Bearer ارسال می‌شود ([احراز هویت و توکن](https://docs.ariaservice.net/authentication)) - **OpenAPI 3.0:** [`openapi.yaml`](pathname:///openapi.yaml) که در [مرجع تعاملی](https://docs.ariaservice.net/vps-api-reference) قابل مرور است > **ابر آریانت** این صفحه **وب سرویس VPS** (`/api/v1` و دستورهای `arianet vps`) را توضیح می‌دهد. سرورها، دیسک‌ها، شبکه‌ها، فایروال‌ها، IPها و لود بالانسرهای ابر آریانت وب سرویس جداگانه‌ای روی `https://api.ariaservice.net/cloud/v1` دارند: [وب سرویس ابر](https://docs.ariaservice.net/cloud-api)، [مرجع تعاملی](https://docs.ariaservice.net/cloud-api-reference) و [پرووایدر Terraform](https://docs.ariaservice.net/terraform) را ببینید. ## شروع سریع ### ۱. ساخت توکن وارد پنل شوید، به **تنظیمات ← توکن‌های API** بروید، یک توکن بسازید و آن را کپی کنید. توکن فقط یک بار نمایش داده می‌شود. می‌توانید توکن را به دسترسی‌های (scope) مورد نیازش و به آدرس‌های IP مجاز محدود کنید. ```bash export ARIANET_TOKEN="paste-your-token-here" ``` ### ۲. اولین درخواست ```bash curl https://api.ariaservice.net/api/v1/balance \ -H "Authorization: Bearer $ARIANET_TOKEN" ``` ### ۳. خرید سرور ابتدا شناسه‌های لازم (دیتاسنتر، پلن، سیستم‌عامل) را پیدا کنید و سپس سرور را بسازید. هدر `Idempotency-Key` اجباری است؛ بخش [ایدمپوتنسی](#ایدمپوتنسی) را ببینید. ```bash BASE=https://api.ariaservice.net/api/v1 AUTH="Authorization: Bearer $ARIANET_TOKEN" curl -s $BASE/regions -H "$AUTH" # datacenter ids curl -s $BASE/plans/datacenter/9 -H "$AUTH" # plan ids and prices curl -s $BASE/os/datacenter/9 -H "$AUTH" # os ids curl -s -X POST $BASE/servers \ -H "$AUTH" \ -H "Idempotency-Key: $(uuidgen)" \ -H "Content-Type: application/json" \ -d '{"plan_id":101,"datacenter_id":9,"os_id":55,"hostname":"web-1","auth_type":"password","auth_value":"Str0ng!Passw0rd"}' ``` تا زمانی که سرور در حال ساخت است پاسخ `202 Accepted` است. با `GET /servers/{id}/status` تا زمانی که `status` برابر `active` شود وضعیت را بررسی کنید. ## احراز هویت توکن را در هدر `Authorization` هر درخواست بفرستید: ``` Authorization: Bearer ``` توکن نبودن، نامعتبر بودن، منقضی یا ابطال‌شده بودن پاسخ `401 UNAUTHORIZED` دارد. ### دسترسی‌ها (Scope) هر توکن می‌تواند فهرستی از scope داشته باشد. توکنی که بدون scope ساخته شود نامحدود است. درخواست خارج از scope توکن پاسخ `403 INSUFFICIENT_SCOPE` می‌گیرد. | Scope | اجازه می‌دهد | |---|---| | `regions:read` | `GET /regions` | | `os:read` | `GET /os/datacenter/{id}` | | `plans:read` | `GET /plans/...` | | `servers:read` | `GET /servers`، `/servers/{id}`، `/servers/{id}/status`، `/servers/{id}/actions` | | `servers:write` | ساخت، حذف، راه‌اندازی مجدد، روشن/خاموش، تغییر نام، نصب مجدد، محافظت | | `balance:read` | `GET /balance`، `/balance/transactions` | | `invoices:read` | `GET /invoices`، `/invoices/{number}` | | `ssh-keys:read` / `ssh-keys:write` | فهرست و مشاهده / ساخت، ویرایش و حذف کلید SSH | | `firewalls:read` / `firewalls:write` | فهرست و مشاهده / مدیریت فایروال، قوانین و اتصال‌ها | | `tokens:read` / `tokens:write` | `GET /auth/tokens` / `DELETE /auth/tokens/{id}` | `GET /auth/me` و `DELETE /auth/logout` به scope نیازی ندارند. ### فهرست IP مجاز توکن را می‌توان به فهرستی از آدرس‌های مبدأ محدود کرد. درخواست از هر آدرس دیگر پاسخ `403 IP_NOT_ALLOWED` می‌گیرد. ### نکات امنیتی توکن - هرگز توکن را در کد سمت کاربر یا مخزن کد قرار ندهید؛ آن را در متغیر محیطی یا ذخیره‌گاه اسرار نگه دارید. - برای هر برنامه یک توکن جدا و فقط با scopeهای لازم بسازید تا بتوانید یکی را بدون اختلال در بقیه ابطال کنید. - توکن‌ها را مرتب بچرخانید؛ ابطال با `DELETE /auth/tokens/{id}` انجام می‌شود. ## پاسخ‌ها همه پاسخ‌ها از یک قالب واحد استفاده می‌کنند. ```json { "success": true, "data": { "id": 4821, "status": "active" } } ``` فهرست‌ها `pagination` هم دارند: ```json { "success": true, "data": [ { "id": 4821 } ], "pagination": { "current_page": 1, "per_page": 15, "total": 40, "last_page": 3 } } ``` خطاها: ```json { "success": false, "error": { "code": "INSUFFICIENT_BALANCE", "message": "Not enough balance. Required balance: 4.50" } } ``` منطق برنامه را بر اساس `error.code` بنویسید. `error.message` برای انسان نوشته شده و ممکن است تغییر کند. فهرست‌ها `page` (پیش‌فرض ۱) و `limit` (۱ تا ۱۰۰، پیش‌فرض ۱۵؛ مقدار خارج از بازه به ۱۵ برمی‌گردد) می‌گیرند. زمان‌ها به UTC و با قالب ISO 8601 هستند (`2026-10-02T09:30:00Z`). ### کدهای خطا | HTTP | `error.code` | معنی | |---|---|---| | 400 | `VALIDATION_ERROR` | فیلدی ارسال نشده یا نامعتبر است؛ پیام نام آن را می‌گوید | | 400 | `INVALID_ID` | شناسه در مسیر عدد نیست | | 400 | `IDEMPOTENCY_KEY_REQUIRED` | `POST /servers` بدون `Idempotency-Key` | | 400 | `INVALID_IDEMPOTENCY_KEY` | کلید ۸ تا ۱۲۸ نویسه از `A-Z a-z 0-9 _ - : .` نیست | | 400 | `NO_DEFAULT_WALLET` | `currency_id` داده نشده و حساب کیف پول پیش‌فرض ندارد | | 400 | `BAD_REQUEST` | پلتفرم درخواست را نامعتبر دانست | | 401 | `UNAUTHORIZED` | توکن نبودن، نامعتبر، منقضی یا ابطال‌شده | | 402 | `INSUFFICIENT_BALANCE` | موجودی کیف پول برای سفارش کافی نیست | | 403 | `FORBIDDEN` | حساب فعال نیست یا اجازه این کار را ندارد | | 403 | `INSUFFICIENT_SCOPE` | توکن scope لازم برای این نقطه پایانی را ندارد | | 403 | `IP_NOT_ALLOWED` | درخواست از آدرسی خارج از فهرست مجاز توکن آمده است | | 404 | `NOT_FOUND` | منبع در حساب شما وجود ندارد | | 409 | `CONFLICT` | درخواستی با همان `Idempotency-Key` هنوز در حال اجراست؛ کمی بعد دوباره تلاش کنید | | 422 | `VALIDATION_ERROR` | درخواست درست است اما اکنون قابل انجام نیست (سرور محافظت‌شده، پلن تمام‌شده، استفاده از کلید با بدنه متفاوت و ...) | | 422 | `FEATURE_NOT_SUPPORTED` | این دیتاسنتر این منبع (مثلاً فایروال یا کلید SSH) را ارائه نمی‌دهد؛ فیلد `supports` در `GET /regions` را ببینید | | 429 | `RATE_LIMIT_EXCEEDED` | تعداد درخواست‌ها بیش از حد است | | 502 | `UPSTREAM_ERROR` | پلتفرم نتوانست درخواست را کامل کند؛ دوباره تلاش کنید | | 503 | `UPSTREAM_UNAVAILABLE` / `WRITES_UNAVAILABLE` | پلتفرم موقتاً در دسترس نیست؛ با همان کلید دوباره تلاش کنید | | 500 | `INTERNAL_ERROR` | خطای پیش‌بینی‌نشده | خطاهای 429، 502 و 503 را با فاصله‌گذاری فزاینده (back-off) دوباره بفرستید. تکرار درخواست ساخت تا زمانی که همان `Idempotency-Key` را بفرستید بی‌خطر است. ## محدودیت نرخ محدودیت‌ها برای هر کاربر اعمال می‌شوند، به جز ساخت سرور که برای هر توکن است. هر نمونه از API آن‌ها را مستقل اعمال می‌کند، پس آن‌ها را عددی دقیق ندانید و حد پایین بگیرید. | گروه | محدودیت | |---|---| | خواندن | ۱۲۰ در دقیقه، burst برابر ۲۰ | | نوشتن (عملیات، کلید SSH، فایروال، توکن) | حدود ۲۰ در دقیقه، burst برابر ۵ | | `POST /servers` | burst برابر ۵ و سپس ۵ در ساعت برای هر توکن؛ پلتفرم علاوه بر آن ۱۰ در ساعت برای هر حساب را سقف می‌گذارد | با رسیدن به حد مجاز، API پاسخ `429 RATE_LIMIT_EXCEEDED` می‌دهد. ساخت سرور هدر `Retry-After` (به ثانیه) هم می‌فرستد. هدرهای `X-RateLimit-*` ارسال نمی‌شوند. ## عملیات ناهمگام ساخت، حذف، نصب مجدد، راه‌اندازی مجدد و روشن یا خاموش کردن سرور پاسخ **`202 Accepted`** می‌دهند: درخواست بررسی و شروع شده اما کار هنوز تمام نشده است. برای دانستن پایان کار: - با `GET /servers/{id}/status` تا زمانی که `status` برابر `active` و `instance_status` برابر `RUNNING` شود (یا پس از خاموش کردن `STOPPED`) وضعیت را بررسی کنید، یا - تاریخچه عملیات را با `GET /servers/{id}/actions` بخوانید (`status` یکی از `pending`، `running`، `success` یا `failed` است). یک حلقه انتظار نمونه: ```bash until [ "$(curl -s $BASE/servers/4821/status -H "$AUTH" | jq -r .data.status)" = "active" ]; do sleep 5 done ``` تغییر نام و تغییر محافظت بلافاصله اعمال می‌شوند و پاسخ `200` دارند. ## ایدمپوتنسی ساخت سرور هزینه دارد، بنابراین `POST /servers` هدر `Idempotency-Key` را الزامی می‌کند: ۸ تا ۱۲۸ نویسه از `A-Z a-z 0-9 _ - : .`، مثلاً یک UUID. - اگر با **همان کلید و همان بدنه** دوباره بفرستید، هرگز سرور دوم ساخته نمی‌شود. پاسخ اصلی تا ۲۴ ساعت دوباره برگردانده می‌شود و هدر `Idempotent-Replayed: true` دارد. - **همان کلید با بدنه متفاوت** پاسخ `422` می‌گیرد. - تکرار در حالی که درخواست اول **هنوز در حال اجراست** پاسخ `409 CONFLICT` می‌گیرد؛ چند ثانیه صبر کنید و دوباره بفرستید. - برای هر سفارش جدید کلید تازه بسازید و تا گرفتن پاسخ قطعی آن را نگه دارید. پاسخ تکرارشده شامل رمز root است، پس با کلید مثل یک راز رفتار کنید. ## مرجع endpointها بخش‌های بعد همه endpointها را به ترتیب منبع توضیح می‌دهند. همین اطلاعات به صورت تعاملی در [مرجع تعاملی VPS](https://docs.ariaservice.net/vps-api-reference) هم هست. ## حساب ### GET /auth/me کاربری که توکن متعلق به اوست. ```json { "success": true, "data": { "id": 17, "email": "user@example.com", "mobile": null, "status": "active", "verified": true } } ``` ### GET /auth/tokens توکن‌های API شما. مقدار محرمانه هرگز برگردانده نمی‌شود، فقط یک `prefix` برای شناسایی. ```json { "success": true, "data": { "tokens": [ { "id": 3, "name": "ci", "prefix": "ak_3f9c", "last_used": "2026-10-02T08:12:44Z", "expires": null, "created_at": "2026-09-01T10:00:00Z" } ] } } ``` ### `DELETE /auth/tokens/{id}` ابطال یکی از توکن‌های شما. پاسخ: `{"message": "Token revoked successfully"}`. ### DELETE /auth/logout ابطال توکنی که با آن این درخواست را فرستاده‌اید. ## کاتالوگ داده‌های کاتالوگ که پیش از خرید سرور لازم دارید. ### GET /regions Scope: `regions:read`. مناطق همراه دیتاسنترهایشان. `id` دیتاسنتر همان `datacenter_id` است که در سایر نقاط پایانی استفاده می‌شود. `supports` نشان می‌دهد هر دیتاسنتر کدام منابع اختیاری را دارد: اگر `ssh_keys` و `firewalls` برابر `true` باشند، می‌توانید آن‌ها را آنجا بسازید. ساختن آن‌ها در دیتاسنتری که مقدارش `false` است، پیش از ارسال به پلتفرم با `422 FEATURE_NOT_SUPPORTED` رد می‌شود. ```json { "success": true, "data": { "items": [ { "id": 2, "name": "Germany", "is_region": true, "status": "active", "is_default": false, "country_code": "DE", "flag": "https://.../de.svg", "datacenters": [ { "id": 9, "name": "Falkenstein", "is_default": false, "status": "active", "country_code": "DE", "flag": "https://.../de.svg", "features": [ { "name": "IPv6", "details": null, "quantity": 1 } ], "supports": { "ssh_keys": true, "firewalls": true } } ] } ] } } ``` ### `GET /os/datacenter/{datacenter_id}` Scope: `os:read`. سیستم‌عامل‌ها به تفکیک خانواده. `id` یک قالب، یا یکی از `children` آن (نسخه‌ها)، همان `os_id` برای ساخت و نصب مجدد است. ```json { "success": true, "data": { "groups": [ { "id": 1, "name": "Ubuntu", "type": "linux", "order": 1, "templates": { "data": [ { "id": 55, "name": "Ubuntu 24.04", "image_file": "ubuntu-24.04", "status": true, "datacenter": { "id": 9, "name": "fsn1", "display_name": "Falkenstein" }, "os_group": { "id": 1, "name": "Ubuntu", "type": "linux" }, "children": { "data": [] } } ] } } ] } } ``` ### `GET /plans/datacenter/{datacenter_id}` Scope: `plans:read`. پلن‌های قابل سفارش در یک دیتاسنتر، به تفکیک خانواده و همراه قیمت به ازای هر ارز. ```json { "success": true, "data": { "groups": [ { "id": 1, "name": "Standard", "plans": [ { "id": 101, "name": "std-2", "display_name": "Standard 2", "recommended": true, "cycle": "hourly", "cpu": { "size": 2, "unit": "vCPU" }, "ram": { "size": 4, "unit": "GB" }, "storage": { "size": 80, "unit": "GB" }, "prices": [ { "code": "USD", "currency": "US Dollar", "hourly": "0.0070", "monthly": "4.50", "yearly": "48.00" } ] } ] } ] } } ``` ### `GET /plans/{id}` Scope: `plans:read`. یک پلن، با همان قالب یکی از آیتم‌های بالا. ## سرورها سرور در هر جا که فهرست یا دریافت شود به این شکل است: ```json { "id": 4821, "status": "active", "instance_status": "RUNNING", "name": "web-1", "hostname": "web-1", "ip_addresses": [ { "ip": "203.0.113.10", "type": "primary" } ], "protected": false, "cycle": "hourly", "plan": { "id": 101, "name": "std-2" }, "datacenter": { "id": 9, "name": "fsn1", "display_name": "Falkenstein", "country": "DE" }, "os": { "id": 55, "name": "Ubuntu 24.04" }, "created_at": "2026-10-02T09:30:00Z" } ``` `status` وضعیت پلتفرم است (`creating`، `active`، `suspended`، `powering_on`، `powering_off`، `restarting`، `reinstalling_os`، `failed`، `terminated` و ...)؛ `instance_status` همان است که ارائه‌دهنده گزارش می‌کند (`RUNNING`، `STOPPED`، `REBOOTING`، `REBUILDING`، `BUILD`، `ERROR` و ...). `type` آدرس یکی از `primary`، `secondary` یا `floating` است. ### GET /servers Scope: `servers:read`. سرورهای شما، جدیدترین اول. پارامترها: `page`، `limit`، `status` (فیلتر). ### `GET /servers/{id}` Scope: `servers:read`. یک سرور. ### `GET /servers/{id}/status` Scope: `servers:read`. پاسخی کوچک که بررسی مکرر آن ارزان است. ```json { "success": true, "data": { "id": 4821, "status": "active", "instance_status": "RUNNING" } } ``` ### `GET /servers/{id}/actions` Scope: `servers:read`. تاریخچه عملیات یک سرور، جدیدترین اول. پارامتر: `limit` (۱ تا ۱۰۰، پیش‌فرض ۱۵). ```json { "success": true, "data": { "server_id": 4821, "actions": [ { "id": "9b1f0c5e", "type": "restart", "status": "success", "started_at": "2026-10-02T09:40:00Z", "finished_at": "2026-10-02T09:40:09Z", "created_at": "2026-10-02T09:40:00Z" } ] } } ``` ### POST /servers Scope: `servers:write`. هدر: `Idempotency-Key` (اجباری). پاسخ `202`. | فیلد | اجباری | توضیح | |---|---|---| | `plan_id` | بله | از `/plans/datacenter/{id}` | | `datacenter_id` | بله | از `/regions` | | `os_id` | بله | از `/os/datacenter/{id}` | | `currency_id` | خیر | ارز کیف پول؛ پیش‌فرض ارز کیف پول اصلی شماست (در نبود آن `NO_DEFAULT_WALLET`) | | `hostname` | خیر | نام سرور، حداکثر ۲۵۵ نویسه (`hostnames` هم به عنوان هم‌نام پذیرفته می‌شود و اولویت دارد) | | `auth_type` | خیر | `password` (پیش‌فرض) یا `ssh` | | `auth_value` | با `password` | رمز root | | `ssh_key_id` | با `ssh` | یکی از کلیدهای SSH شما (`auth_id` هم به عنوان هم‌نام پذیرفته می‌شود) | | `project_id` | خیر | پروژه‌ای که سرور در آن قرار می‌گیرد | | `service_count` | خیر | ۱ تا ۱۰ | ```json { "success": true, "data": { "id": 4821, "status": "creating", "instance_status": null, "name": "web-1", "ip_addresses": [], "protected": false, "cycle": "hourly", "plan": { "name": "std-2" }, "datacenter": { "id": 9 }, "os": { "name": "Ubuntu 24.04" }, "root_password": "Str0ng!Passw0rd", "created_at": "2026-10-02T09:30:00Z" } } ``` `root_password` فقط در همین پاسخ (و در تکرار ایدمپوتنت) برمی‌گردد و برای سرورهایی که با کلید SSH ساخته شوند وجود ندارد. آدرس‌ها معمولاً کمی بعد ظاهر می‌شوند؛ سرور را دوباره بخوانید. هزینه بلافاصله از کیف پول رزرو می‌شود. خطاهای ممکن: `402 INSUFFICIENT_BALANCE`، `403`، `409`، `422`، `429`. ### `DELETE /servers/{id}` Scope: `servers:write`. غیرقابل بازگشت است. سرور محافظت‌شده باید ابتدا محافظتش خاموش شود. پاسخ `202`. بدنه اختیاری: `{"reason": "other", "note": "..."}` (پیش‌فرض `reason` برابر `other` است و `note` تا ۱۰۰۰ نویسه). ```json { "success": true, "data": { "server_id": 4821, "message": "Server deletion started" } } ``` ### `POST /servers/{id}/restart` Scope: `servers:write`. بدنه اختیاری `{"mode": "soft" | "hard"}`. پاسخ `202` با `{"server_id": 4821, "message": "Restart started"}`. ### `POST /servers/{id}/power-on` Scope: `servers:write`. پاسخ `202` با `{"server_id": 4821, "message": "Power on started"}`. ### `POST /servers/{id}/power-off` Scope: `servers:write`. پاسخ `202` با `{"server_id": 4821, "message": "Power off started"}`. سرور خاموش ممکن است همچنان صورتحساب شود. ### `POST /servers/{id}/rename` Scope: `servers:write`. بدنه `{"name": "web-2"}` (۱ تا ۳۰ نویسه). پاسخ `200` با `{"server_id": 4821, "name": "web-2"}`. نام جدید در خواندن سرور به صورت `name` نمایش داده می‌شود؛ `hostname` نام میزبان در سمت ارائه‌دهنده است و تغییر نمی‌کند. ### `POST /servers/{id}/reinstall` Scope: `servers:write`. بدنه `{"os_id": 56}`. **همه داده‌های سرور پاک می‌شود.** پاسخ `202` با `{"server_id": 4821, "message": "Reinstall started"}`. ### `POST /servers/{id}/toggle-protection` Scope: `servers:write`. بدنه `{"enabled": true}` یا `{"enabled": false}` وضعیت را صریحاً تعیین می‌کند؛ بدون بدنه وضعیت فعلی برعکس می‌شود، پس شکل صریح را ترجیح دهید. پاسخ `200` با `{"server_id": 4821, "protected": true}`. ## کلیدهای SSH هر کلید به یک دیتاسنتر تعلق دارد، چون ارائه‌دهندگان کلیدها را به تفکیک مکان نگه می‌دارند. ```json { "id": 12, "name": "laptop", "key": "ssh-ed25519 AAAAC3Nza... me@laptop", "protected": false, "datacenter_id": 9, "created_at": "2026-10-01T12:00:00Z" } ``` | نقطه پایانی | Scope | توضیح | |---|---|---| | `GET /ssh-keys` | `ssh-keys:read` | صفحه‌بندی‌شده | | `GET /ssh-keys/{id}` | `ssh-keys:read` | | | `POST /ssh-keys` | `ssh-keys:write` | بدنه `name`، `public_key`، `datacenter_id` (همگی اجباری) و `is_protected`. پاسخ `201` | | `PUT /ssh-keys/{id}` | `ssh-keys:write` | بدنه `name` و/یا `is_protected`؛ دست‌کم یکی. خود کلید قابل تغییر نیست | | `DELETE /ssh-keys/{id}` | `ssh-keys:write` | سرورهایی که قبلاً با این کلید ساخته شده‌اند تغییری نمی‌کنند | ## فایروال‌ها ```json { "id": 7, "name": "web", "protected": false, "datacenter_id": 9, "rules": [ { "id": "r-91c2", "direction": "ingress", "protocol": "tcp", "port_range": "443", "remote_ip": "0.0.0.0/0", "description": "https" } ], "created_at": "2026-10-01T12:00:00Z" } ``` | نقطه پایانی | Scope | توضیح | |---|---|---| | `GET /firewalls` | `firewalls:read` | صفحه‌بندی‌شده | | `GET /firewalls/{id}` | `firewalls:read` | همراه قوانین | | `POST /firewalls` | `firewalls:write` | بدنه `name`، `datacenter_id` (اجباری) و `description`. خالی ساخته می‌شود؛ قوانین را بعداً اضافه کنید. پاسخ `201` | | `PUT /firewalls/{id}` | `firewalls:write` | بدنه `name` و/یا `description`؛ دست‌کم یکی. پاسخ شامل قوانین نیست | | `DELETE /firewalls/{id}` | `firewalls:write` | | | `POST /firewalls/{id}/rules` | `firewalls:write` | بدنه `direction` (`ingress`/`egress`) و `protocol` (`tcp`، `udp`، `icmp`، `esp`، `gre`) اجباری؛ `port_range`، `remote_ip`، `description` اختیاری. `port_range` عدد یا بازه صعودی ۱ تا ۶۵۵۳۵ و `remote_ip` آدرس یا CIDR معتبر است، وگرنه `400`. پاسخ `201` با قانون جدید | | `DELETE /firewalls/{id}/rules/{rule_id}` | `firewalls:write` | `rule_id` همان رشته `id` قانون است | | `POST /firewalls/{id}/attach` | `firewalls:write` | بدنه `{"server_ids": [4821]}`، ۱ تا ۵۰ شناسه، سرورهای همان دیتاسنتر فایروال | | `POST /firewalls/{id}/detach` | `firewalls:write` | همان بدنه | ## صورتحساب ### GET /balance Scope: `balance:read`. یک کیف پول به ازای هر ارز. `primary` کیف پول پیش‌فرضی است که هنگام ساخت سرور و نبود `currency_id` استفاده می‌شود. ```json { "success": true, "data": { "wallets": [ { "id": 31, "balance": 25.4, "primary": true, "status": "active", "currency": { "id": 1, "code": "USD", "name": "US Dollar", "symbol": "$" } } ] } } ``` ### GET /balance/transactions Scope: `balance:read`. صفحه‌بندی‌شده. ```json { "id": 905, "mode": "debit", "amount": 4.5, "status": "paid", "reference": "0b6c...", "type": "service", "currency": { "id": 1, "code": "USD", "name": "US Dollar", "symbol": "$" }, "created_at": "2026-10-02T09:30:00Z" } ``` ### GET /invoices Scope: `invoices:read`. صفحه‌بندی‌شده، جدیدترین اول؛ فاکتورهای با مبلغ صفر فهرست نمی‌شوند. پارامترها: `page`، `limit`، `status` (`draft`، `issued`، `paid`، `overdue`، `cancelled`). ```json { "number": "INV-2026-000123", "status": "paid", "payment_status": "paid", "subtotal": 4.5, "discount": 0, "tax": 0, "total": 4.5, "issued_at": "2026-10-02T09:30:00Z", "due_at": "2026-10-09T09:30:00Z", "paid_at": "2026-10-02T09:31:00Z" } ``` ### `GET /invoices/{number}` Scope: `invoices:read`. یک فاکتور همراه اقلامش. شماره متن است (`2041` یا `INV-2026-000123`)؛ هرگز آن را به عدد صحیح تبدیل نکنید. ```json { "...": "invoice fields as above", "items": [ { "amount": 4.5, "currency": { "id": 1, "code": "USD", "name": "US Dollar", "symbol": "$" }, "description": "std-2 hourly" } ] } ``` ## مهاجرت از نسخه‌های قبلی - آدرس پایه `https://api.ariaservice.net/api/v1` است. - `POST /servers` اکنون هدر `Idempotency-Key` را الزامی می‌کند و پاسخ `202` می‌دهد؛ پاسخ ساخت و عملیات، شیءهای کوچک و ثابت هستند، نه سرور کامل. - حذف قانون فایروال با `id` قانون انجام می‌شود (`DELETE /firewalls/{id}/rules/{rule_id}`)، نه با جایگاه آن در فهرست. - فایروال خالی ساخته می‌شود؛ قوانین را با `POST /firewalls/{id}/rules` اضافه کنید. - ساخت کلید SSH به `datacenter_id` نیاز دارد. - جدید: `GET /servers/{id}/actions`، `GET /invoices`، `GET /invoices/{number}` و scope با نام `invoices:read`. --- title: "وب سرویس VPS منطقه‌ای" description: "وب سرویس VPS منطقه‌ای آریانت (مثل iran-1) روی api.ariaservice.net/vps/v1 - سفارش، روشن و خاموش، نصب مجدد، تغییر پلن، کنسول و ترافیک." url: https://docs.ariaservice.net/regional-vps-api markdown: https://docs.ariaservice.net/regional-vps-api.md language: fa --- # وب سرویس VPS منطقه‌ای VPSهای منطقه‌ای (مثل ریجن `iran-1`) وب سرویس خودشان را دارند: سفارش سرور، روشن و خاموش کردن، نصب مجدد، تغییر پلن، تغییر رمز root، کنسول مرورگر و ترافیک. دستورهای [`arianet vps regional`](https://docs.ariaservice.net/cli#product-commands) روی همین وب سرویس ساخته شده‌اند. - **آدرس پایه:** `https://api.ariaservice.net/vps/v1` - **قالب:** JSON روی HTTPS - **احراز هویت:** توکن شخصی API که به صورت Bearer ارسال می‌شود ([احراز هویت و توکن](https://docs.ariaservice.net/authentication)) - **OpenAPI 3.1:** [`https://api.ariaservice.net/vps/v1/openapi.json`](https://api.ariaservice.net/vps/v1/openapi.json) که در [مرجع تعاملی](https://docs.ariaservice.net/regional-vps-api-reference) قابل مرور است > **کدام وب سرویس؟** VPSهایی که از `/api/v1/servers` سفارش داده می‌شوند (دستورهای `arianet vps`) در [وب سرویس VPS](https://docs.ariaservice.net/api-endpoints) توضیح داده شده‌اند. این صفحه درباره VPSهای منطقه‌ای است که در پنل هم در کنار بقیه VPSها دیده می‌شوند. هر دو وب سرویس همان توکن را می‌پذیرند. ## شروع سریع 1. در پنل، در [cloud.ariaservice.net/users/api-tokens](https://cloud.ariaservice.net/users/api-tokens) توکنی با دسترسی‌های `vps:servers:read` و `vps:servers:write` بسازید. 2. وب سرویس را صدا بزنید: ```bash export ARIANET_TOKEN="paste-your-token-here" BASE=https://api.ariaservice.net/vps/v1 AUTH="Authorization: Bearer $ARIANET_TOKEN" curl -s $BASE/datacenters -H "$AUTH" curl -s "$BASE/plans?datacenter=thr-1" -H "$AUTH" curl -s "$BASE/images?datacenter=thr-1" -H "$AUTH" curl -s -X POST $BASE/servers -H "$AUTH" -H "Content-Type: application/json" \ -d '{"datacenter":"thr-1","plan_id":4,"image":"ubuntu-24.04","hostname":"web-1","billing_mode":"hourly"}' ``` پاسخ سفارش، سرور و یک `action` را برمی‌گرداند. اگر `password` نفرستید، رمز root ساخته می‌شود و **فقط یک بار** در همین پاسخ برمی‌گردد. عملیات را با `GET /actions/{id}` تا رسیدن `state` به `success` یا `error` دنبال کنید. ## احراز هویت و دسترسی‌ها | دسترسی (scope) | اجازه | |---|---| | `vps:servers:read` | دیدن دیتاسنترها، پلن‌ها، ایمیج‌ها، سرورها، ترافیک و عملیات | | `vps:servers:write` | همه تغییرات: سفارش، حذف، روشن و خاموش، نصب مجدد، تغییر پلن، تغییر رمز و کنسول | توکن بدون هیچ دسترسی، بدون محدودیت است. برای عضو تیم، سیاست‌های IAM سرورهای VPS حساب هم اعمال می‌شوند. ## ریجن‌ها ریجن با هدر `Arianet-Region` انتخاب می‌شود؛ بدون آن درخواست به ریجن پیش‌فرض (امروز `iran-1`) می‌رود. ریجن ناشناخته پاسخ `404 region_not_found` می‌گیرد. درخواست‌های این ریجن از مسیر ارتباطی امن بین ریجن‌ها عبور می‌کنند، بنابراین stream رویدادها (`text/event-stream`) در آن پشتیبانی نمی‌شود و پاسخ `501 streaming_unsupported` می‌گیرد؛ وضعیت را با `GET /actions/{id}` دنبال کنید. ## منابع | متد و مسیر | کاربرد | |---|---| | `GET /datacenters` ، `GET /plans` ، `GET /images` | کاتالوگ ریجن | | `GET /servers` ، `POST /servers` | فهرست و سفارش سرور | | `GET /servers/{id}` ، `DELETE /servers/{id}` | جزئیات و حذف (هزینه تا همان لحظه تسویه می‌شود) | | `POST /servers/{id}/actions/{op}` | `start`، `stop` (خاموش کردن عادی)، `restart`، `kill` (قطع برق) | | `POST /servers/{id}/reinstall` | نصب مجدد از ایمیج (`{"image":"..."}`)؛ دیسک پاک می‌شود | | `POST /servers/{id}/resize` | انتقال به پلن دیگر (`{"plan_id":5}`)؛ دیسک فقط بزرگ می‌شود | | `POST /servers/{id}/reset-password` | تغییر رمز root | | `POST /servers/{id}/console` | آدرس یک‌بارمصرف کنسول مرورگر | | `GET /servers/{id}/traffic` | ترافیک و سهمیه دوره (`from`، `to`، `granularity`) | | `PUT /servers/{id}/traffic-settings` | روشن یا خاموش کردن پرداخت ترافیک مازاد (`{"overage_billing": true}`)؛ خاموش یعنی مازاد هرگز حساب نمی‌شود و پس از تمام شدن سهمیه دوره، شبکه تا دوره بعد قطع می‌شود. برای عضو تیم به دسترسی IAM `vps:manage` نیاز دارد | | `GET /servers/{id}/actions` ، `GET /actions` ، `GET /actions/{id}` | عملیات ناهمگام | ## خطاها خطاها JSON به شکل `{"error": "...", "code": "..."}` هستند. | HTTP | `code` | |---|---| | 400 | `invalid_input`، `invalid_region` | | 401 | `unauthorized` | | 402 | موجودی کافی نیست | | 403 | `forbidden`، `insufficient_scope` | | 404 | `not_found`، `region_not_found` | | 409 | وضعیت سرور الان اجازه نمی‌دهد | | 429 | `rate_limit_exceeded` | | 501 | `streaming_unsupported` | | 503 | `vps_unavailable`، `region_unavailable` | | 504 | `gateway_timeout`: ریجن به‌موقع پاسخ نداد؛ ممکن است درخواست اجرا شده باشد، قبل از تکرار وضعیت را بررسی کنید | --- title: "وب سرویس هاستینگ" description: "وب سرویس هاست اشتراکی آریانت روی api.ariaservice.net/hosting/v1 - سفارش و مدیریت اکانت، DNS، ایمیل، دیتابیس، SSH، ریجن‌ها و خطاها." url: https://docs.ariaservice.net/hosting-api markdown: https://docs.ariaservice.net/hosting-api.md language: fa --- # وب سرویس هاستینگ وب سرویس هاستینگ، **هاست اشتراکی** آریانت (cPanel و DirectAdmin) را مدیریت می‌کند: سفارش اکانت، تمدید و تغییر پلن، رکوردهای DNS، صندوق‌های ایمیل، دیتابیس‌ها و کاربرانشان، کلیدهای SSH، PHP، ردیس و ترافیک. دستورهای [`arianet hosting`](https://docs.ariaservice.net/cli#product-commands) روی همین وب سرویس ساخته شده‌اند. نمایندگی هاست هم از همین وب سرویس مدیریت می‌شود ([نمایندگی هاست](#reseller)). - **آدرس پایه:** `https://api.ariaservice.net/hosting/v1` - **قالب:** JSON روی HTTPS - **احراز هویت:** توکن شخصی API که به صورت Bearer ارسال می‌شود ([احراز هویت و توکن](https://docs.ariaservice.net/authentication)) - **OpenAPI 3.1:** [`https://api.ariaservice.net/hosting/v1/openapi.json`](https://api.ariaservice.net/hosting/v1/openapi.json) که در [مرجع تعاملی](https://docs.ariaservice.net/hosting-api-reference) قابل مرور است ## شروع سریع 1. در پنل، در [cloud.ariaservice.net/users/api-tokens](https://cloud.ariaservice.net/users/api-tokens) توکنی با دسترسی‌های `hosting:accounts:read` و `hosting:accounts:write` بسازید. 2. وب سرویس را صدا بزنید: ```bash export ARIANET_TOKEN="paste-your-token-here" BASE=https://api.ariaservice.net/hosting/v1 AUTH="Authorization: Bearer $ARIANET_TOKEN" curl -s $BASE/datacenters -H "$AUTH" curl -s "$BASE/plans?kind=shared" -H "$AUTH" curl -s -X POST $BASE/accounts -H "$AUTH" -H "Content-Type: application/json" \ -d '{"datacenter":"thr","plan_id":3,"term":"monthly","domain":"example.com","password":"S3cret-pass"}' ``` پاسخ سفارش، اکانت و یک `action` را برمی‌گرداند؛ ساخت اکانت ناهمگام است و با `GET /actions/{id}` تا رسیدن `state` به `success` یا `error` دنبال می‌شود. هزینه از کیف پول حساب کسر می‌شود. ## احراز هویت و دسترسی‌ها ```text Authorization: Bearer ``` | دسترسی (scope) | اجازه | |---|---| | `hosting:accounts:read` | دیدن اکانت‌ها، مصرف، DNS، ایمیل‌ها و دیتابیس‌ها | | `hosting:accounts:write` | همه تغییرات: سفارش، تمدید، تغییر پلن، حذف، ورود یک‌بارمصرف به پنل، DNS، ایمیل، دیتابیس، SSH، PHP، ردیس و ترافیک | توکن بدون هیچ دسترسی، بدون محدودیت است. دسترسی توکن هیچ‌وقت از دسترسی صاحبش بیشتر نمی‌شود: برای عضو تیم، سیاست‌های IAM حساب هم اعمال می‌شوند (مثلاً نمایندگی هاست به `hosting:reseller:manage` نیاز دارد). ## ریجن‌ها هاستینگ در هر ریجن نصب جداگانه دارد. ریجن با هدر `Arianet-Region` انتخاب می‌شود و بدون آن درخواست به ریجن پیش‌فرض می‌رود: ```bash curl -s $BASE/accounts -H "$AUTH" -H "Arianet-Region: iran-1" ``` هر اکانت فقط در ریجنی که در آن ساخته شده دیده می‌شود. ریجن ناشناخته پاسخ `404 region_not_found` می‌گیرد. ## منابع | متد و مسیر | کاربرد | |---|---| | `GET /datacenters` | دیتاسنترهای ریجن | | `GET /plans` | پلن‌های قابل فروش (`datacenter`، `kind=shared\|reseller`) | | `GET /accounts` ، `POST /accounts` | فهرست و سفارش اکانت | | `GET /accounts/{id}` ، `PATCH /accounts/{id}` ، `DELETE /accounts/{id}` | جزئیات، تمدید خودکار (`auto_renew`)، حذف | | `POST /accounts/{id}/actions/{op}` | `change_plan` (`{"plan_id":4}`)، `renew`، `reset` (`{"password":"..."}`) | | `POST /accounts/{id}/password` | تغییر رمز پنل، FTP و SSH | | `POST /accounts/{id}/login` | لینک یک‌بارمصرف ورود به پنل | | `GET /accounts/{id}/usage` ، `/nameservers` ، `/traffic` ، `/alerts` | مصرف، نیم‌سرورها، ترافیک، هشدارها | | `/accounts/{id}/dns-records` | رکوردهای DNS (`GET`، `POST`، `PUT /{record}`، `DELETE /{record}`) | | `/accounts/{id}/email-accounts` | صندوق‌های ایمیل | | `/accounts/{id}/databases` ، `/database-users` | دیتابیس‌ها و کاربرانشان | | `/accounts/{id}/ssh-keys` ، `/shell` | کلیدهای SSH و دسترسی شل | | `/accounts/{id}/php` ، `/redis` ، `/traffic/settings` | PHP، ردیس، پرداخت ترافیک مازاد | | `GET /actions` ، `GET /actions/{id}` | عملیات ناهمگام | جزئیات بدنه و پاسخ هر endpoint در [مرجع تعاملی](https://docs.ariaservice.net/hosting-api-reference) آمده است. ## نمایندگی هاست (reseller) {#reseller} اکانت نمایندگی (`kind=reseller`) می‌تواند برای مشتری‌های خودش، روی پکیج‌هایی که در کنترل پنل تعریف کرده، اکانت بسازد و آن‌ها را مدیریت کند. همه این مسیرها زیر `/accounts/{id}/reseller` هستند و `{id}` شناسه اکانت نمایندگی است؛ اکانت مشتری با `username` آن مشخص می‌شود. | متد و مسیر | کاربرد | |---|---| | `GET /accounts/{id}/reseller/usage` | تعداد اکانت‌ها، دیسک و پهنای باند مصرف‌شده در برابر سقف پلن، و اینکه oversell مجاز است یا نه | | `GET /accounts/{id}/reseller/packages` | پکیج‌های تعریف‌شده و تعداد اکانت روی هر کدام | | `GET /accounts/{id}/reseller/accounts` ، `POST /accounts/{id}/reseller/accounts` | فهرست اکانت‌های مشتری؛ ساخت اکانت روی یکی از پکیج‌ها در محدوده پلن | | `DELETE /accounts/{id}/reseller/accounts/{username}` | حذف اکانت مشتری و داده‌هایش | | `POST /accounts/{id}/reseller/accounts/{username}/package` | انتقال به پکیج دیگر | | `POST /accounts/{id}/reseller/accounts/{username}/password` | تغییر رمز پنل، FTP و SSH | | `POST /accounts/{id}/reseller/accounts/{username}/login` | لینک یک‌بارمصرف ورود به پنل مشتری | | `POST /accounts/{id}/reseller/accounts/{username}/suspend` ، `/unsuspend` | تعلیق و رفع تعلیق | | `POST /accounts/{id}/reseller/accounts/{username}/reset` | بازگرداندن اکانت به حالت تازه (همان نام کاربری، دامنه و پکیج؛ فایل‌ها، ایمیل، دیتابیس و DNS پاک می‌شوند) | برای عضو تیم، این مسیرها علاوه بر scope توکن به دسترسی IAM `hosting:reseller:manage` نیاز دارند. ## خطاها خطاها JSON به شکل `{"error": "...", "code": "..."}` هستند؛ بر اساس `code` تصمیم بگیرید، نه متن پیام. | HTTP | `code` | |---|---| | 400 | `invalid_input`، `invalid_region` | | 401 | `unauthorized` | | 402 | موجودی کافی نیست | | 403 | `forbidden`، `insufficient_scope` (توکن دسترسی هاستینگ ندارد) | | 404 | `not_found`، `region_not_found` | | 409 | وضعیت اکانت الان اجازه نمی‌دهد | | 429 | `rate_limit_exceeded` (همراه `Retry-After`) | | 503 | `hosting_unavailable`، `region_unavailable` (همراه `Retry-After` در صورت امکان) | | 504 | `gateway_timeout`: ریجن به‌موقع پاسخ نداد؛ ممکن است درخواست اجرا شده باشد، قبل از تکرار وضعیت را بررسی کنید | هدرهای `RateLimit-Limit`، `RateLimit-Remaining` و `RateLimit-Reset` در هر پاسخ می‌آیند. --- title: "وب سرویس سرور اختصاصی" description: "وب سرویس سرور اختصاصی (Baremetal) آریانت روی api.ariaservice.net/baremetal/v1 - کاتالوگ، قیمت، سفارش، تمدید، مشخصات ورود و نصب سیستم‌عامل." url: https://docs.ariaservice.net/baremetal-api markdown: https://docs.ariaservice.net/baremetal-api.md language: fa --- # وب سرویس سرور اختصاصی وب سرویس سرور اختصاصی، کاتالوگ سرورها، قیمت‌گذاری یک پیکربندی، سفارش، پیگیری مراحل تحویل، تمدید ماهانه، دریافت مشخصات ورود و نصب سیستم‌عامل را پوشش می‌دهد. دستورهای [`arianet baremetal`](https://docs.ariaservice.net/cli#product-commands) روی همین وب سرویس ساخته شده‌اند. - **آدرس پایه:** `https://api.ariaservice.net/baremetal/v1` - **قالب:** JSON روی HTTPS - **احراز هویت:** توکن شخصی API که به صورت Bearer ارسال می‌شود ([احراز هویت و توکن](https://docs.ariaservice.net/authentication)) - **OpenAPI 3.1:** [`https://api.ariaservice.net/baremetal/v1/openapi.json`](https://api.ariaservice.net/baremetal/v1/openapi.json) که در [مرجع تعاملی](https://docs.ariaservice.net/baremetal-api-reference) قابل مرور است ## شروع سریع 1. در پنل، در [cloud.ariaservice.net/users/api-tokens](https://cloud.ariaservice.net/users/api-tokens) توکنی با دسترسی‌های `baremetal:servers:read` و `baremetal:servers:write` بسازید. 2. کاتالوگ را بخوانید، پیکربندی را قیمت بگیرید و سفارش دهید: ```bash export ARIANET_TOKEN="paste-your-token-here" BASE=https://api.ariaservice.net/baremetal/v1 AUTH="Authorization: Bearer $ARIANET_TOKEN" curl -s "$BASE/plans?range=rise" -H "$AUTH" curl -s "$BASE/plans/eco/24rise01/options" -H "$AUTH" curl -s $BASE/rules -H "$AUTH" # the rules version the order must accept curl -s -X POST $BASE/quote -H "$AUTH" -H "Content-Type: application/json" \ -d '{"catalog":"eco","plan_code":"24rise01","datacenter":"fra","memory":"ram-32g","storage":"softraid-2x512nvme","bandwidth":"1gbps"}' curl -s -X POST $BASE/orders -H "$AUTH" -H "Content-Type: application/json" \ -d '{"catalog":"eco","plan_code":"24rise01","datacenter":"fra","memory":"ram-32g","storage":"softraid-2x512nvme","bandwidth":"1gbps","rules_version":"2026-10","accept_rules":true}' ``` مبلغ سفارش روی کیف پول نگه داشته می‌شود و تحویل مراحلی دارد که با `GET /orders/{id}` دیده می‌شوند. پیش از شروع خرید می‌توان سفارش را لغو کرد و کل مبلغ آزاد می‌شود. ## احراز هویت و دسترسی‌ها | دسترسی (scope) | اجازه | |---|---| | `baremetal:servers:read` | کاتالوگ، قیمت، سفارش‌ها، سرورها و تمدیدها | | `baremetal:servers:write` | سفارش و لغو، پرداخت تمدید، نمایش مشخصات ورود و نصب سیستم‌عامل | توکن بدون هیچ دسترسی، بدون محدودیت است. سرور اختصاصی فقط یک نصب دارد؛ هدر `Arianet-Region` برای آن پاسخ `404 region_not_found` می‌گیرد. ## منابع | متد و مسیر | کاربرد | |---|---| | `GET /suppliers` ، `GET /ranges` ، `GET /plans` | کاتالوگ | | `GET /plans/{catalog}/{plan}/options` | دیتاسنترها، حافظه، دیسک و پهنای باند با قیمت | | `GET /rules` | قوانینی که سفارش باید بپذیرد | | `POST /quote` | قیمت یک پیکربندی (چیزی نگه داشته نمی‌شود) | | `GET /orders` ، `POST /orders` ، `GET /orders/{id}` | سفارش‌ها و مراحلشان | | `POST /orders/{id}/cancel` | لغو پیش از شروع خرید | | `GET /servers` ، `GET /servers/{id}` | سرورهای تحویل‌شده | | `POST /servers/{id}/credentials/reveal` | مشخصات ورود (**فقط یک بار** نمایش داده می‌شود) | | `GET /servers/{id}/renewals` ، `POST /servers/{id}/renew` | تمدیدها و پرداخت تمدید ماه بعد | | `GET /servers/{id}/os-templates` ، `POST /servers/{id}/reinstall` ، `GET /servers/{id}/reinstall` | نصب سیستم‌عامل (دیسک‌ها پاک می‌شوند) و وضعیت آن | ## خطاها خطاها JSON به شکل `{"error": "...", "code": "..."}` هستند. | HTTP | `code` | |---|---| | 400 | `invalid_input` | | 401 | `unauthorized` | | 402 | موجودی کافی نیست | | 403 | `forbidden`، `insufficient_scope` | | 404 | `not_found`، `region_not_found` | | 409 | وضعیت سفارش یا سرور الان اجازه نمی‌دهد | | 429 | `rate_limit_exceeded` | | 503 | `baremetal_unavailable` | --- title: "وب سرویس پیامک" description: "وب سرویس پیامک آریانت روی api.ariaservice.net/sms/v1 - ارسال پیامک، گزارش تحویل، خطوط، قالب‌ها، شماره‌های مسدود و وب‌هوک." url: https://docs.ariaservice.net/sms/api markdown: https://docs.ariaservice.net/sms/api.md language: fa --- # وب سرویس پیامک وب سرویس پیامک برای ارسال پیامک از خطوط شما، خواندن پیام‌های ارسالی و دریافتی، و مدیریت قالب‌ها، شماره‌های مسدود و وب‌هوک است. دستورهای [`arianet sms`](https://docs.ariaservice.net/cli#product-commands) روی همین وب سرویس ساخته شده‌اند. کیف پول، شارژ، تیکت و اعضای تیم بخشی از حساب آریانت هستند و در این وب سرویس نیستند. - **آدرس پایه:** `https://api.ariaservice.net/sms/v1` - **قالب:** JSON روی HTTPS - **احراز هویت:** توکن شخصی API که به صورت Bearer ارسال می‌شود ([احراز هویت و توکن](https://docs.ariaservice.net/authentication)) - **OpenAPI 3.0:** [`https://api.ariaservice.net/sms/v1/openapi.json`](https://api.ariaservice.net/sms/v1/openapi.json) که در [مرجع تعاملی](https://docs.ariaservice.net/sms-api-reference) قابل مرور است > **وب سرویس قبلی پیامک** آدرس‌های قبلی `sms-api.ariaservice.net/api/v1` و کلیدهای قبلی آن در دوره انتقال کار می‌کنند و پاسخ‌هایشان هدر `Deprecation: true` و پیوندی به همین صفحه دارد. برای پروژه‌های جدید از این وب سرویس و توکن حساب آریانت استفاده کنید. ## شروع سریع 1. در پنل، در [cloud.ariaservice.net/users/api-tokens](https://cloud.ariaservice.net/users/api-tokens) توکنی با دسترسی‌های لازم (جدول زیر) بسازید. 2. خطوط ارسال را ببینید و از یکی از آن‌ها پیامک بفرستید (`from` شماره خط یا `id` آن است): ```bash export ARIANET_TOKEN="paste-your-token-here" BASE=https://api.ariaservice.net/sms/v1 AUTH="Authorization: Bearer $ARIANET_TOKEN" curl -s $BASE/lines -H "$AUTH" curl -s -X POST $BASE/messages -H "$AUTH" -H "Content-Type: application/json" \ -d '{"from":"300074360","recipients":["09121234567","09351234567"],"body":"Your code is 1234","client_reference":"order-981"}' ``` پاسخ `202 Accepted` است: ```json {"batch_id":"01JC8Z...","status":"processing","total_recipients":2,"total_cost_rial":3000,"filtered_blocked_count":0} ``` هر ارسال یک batch می‌سازد و هزینه از کیف پول حساب کسر می‌شود؛ وضعیت را با `GET /batches/{id}` و `GET /messages?batch_id=...` دنبال کنید. شماره‌هایی که در فهرست مسدود شما هستند ارسال نمی‌شوند (`filtered_blocked_count`). قیمت هر پیام، و اینکه هزینه به ازای هر پیام است یا هر بخش پیامک، در `GET /prices` آمده است. ## ارسال `POST /messages` این فیلدها را می‌گیرد: | فیلد | نوع | | |---|---|---| | `recipients` | آرایه رشته، ۱ تا ۱۰۰ | شماره‌های موبایل (الزامی) | | `from` | رشته عددی | شماره خط (`number`) یا `id` آن از `GET /lines` (الزامی) | | `body` | رشته، حداکثر ۲۰۰۰ نویسه | متن پیام؛ الزامی مگر اینکه `template_id` داده شود | | `template_id` | عدد | ارسال یکی از قالب‌های شما به جای `body` | | `scheduled_at` | زمان ISO 8601 در آینده | ارسال در زمان مشخص به جای همین حالا | | `client_reference` | رشته | شناسه شما برای این ارسال؛ اگر نباشد هدر `Idempotency-Key` به کار می‌رود. ارسال تکراری با همان شناسه دوباره انجام نمی‌شود | با `scheduled_at` هنوز چیزی ارسال یا کسر نمی‌شود: پاسخ `{"scheduled_id":12,"status":"pending","scheduled_at":"..."}` است، ارسال در `GET /scheduled` دیده می‌شود و تا وقتی در انتظار است با `DELETE /scheduled/{id}` لغو می‌شود. ## فهرست‌ها و صفحه‌بندی همه فهرست‌ها `page` و `per_page` (حداکثر ۲۰۰) می‌گیرند و این‌طور پاسخ می‌دهند: ```json {"data":[...],"meta":{"total":134,"current_page":1,"per_page":50}} ``` `GET /messages` بر اساس `batch_id`، `status` و `to` هم فیلتر می‌شود و `GET /blocked-recipients` بر اساس `phone`. ## احراز هویت و دسترسی‌ها | دسترسی (scope) | اجازه | |---|---| | `sms:messages:read` | پیام‌های ارسالی و دریافتی، batchها، ارسال‌های زمان‌بندی‌شده، قیمت‌ها و گزارش | | `sms:messages:write` | ارسال و لغو ارسال زمان‌بندی‌شده، شماره‌های مسدود و وب‌هوک | | `sms:lines:read` | خطوط ارسال | | `sms:templates:read` | قالب‌ها | | `sms:templates:write` | ساخت، ویرایش و حذف قالب | توکن بدون هیچ دسترسی، بدون محدودیت است؛ درخواست خط اختصاصی (`POST /lines`) چنین توکنی می‌خواهد. پیامک فقط در ریجن `iran-1` اجرا می‌شود و به هدر `Arianet-Region` نیازی ندارد. ## منابع | متد و مسیر | کاربرد | |---|---| | `POST /messages` | ارسال فوری یا در `scheduled_at` (بخش [ارسال](#ارسال)) | | `GET /messages` ، `GET /messages/{id}` | پیام‌های ارسالی و وضعیت تحویل | | `GET /batches` ، `GET /batches/{id}` | batchهای ارسال | | `GET /scheduled` ، `DELETE /scheduled/{id}` | ارسال‌های زمان‌بندی‌شده و لغو ارسال در انتظار | | `GET /inbound` | پیام‌های دریافتی روی خطوط شما | | `GET /lines` ، `POST /lines` | خطوط ارسال؛ درخواست خط اختصاصی (`number`، `note`) | | `GET /templates` ، `POST /templates` ، `GET`/`PUT`/`DELETE /templates/{id}` | قالب‌ها (`name`، `body`) | | `GET /blocked-recipients` ، `POST /blocked-recipients` ، `DELETE /blocked-recipients/{id}` | شماره‌های مسدود؛ ورودی `phone` و `note`، خروجی `mobile` و `reason` | | `GET /webhook` ، `PUT /webhook` ، `POST /webhook/secret` | وب‌هوک (`url`، `enabled`، `events`) و ساخت کلید امضای جدید؛ بخش [وب‌هوک](#webhooks) | | `GET /reports/summary` | ارسال‌شده، تحویل‌شده، ناموفق و هزینه، با ریز روزانه (`from`، `to`) | | `GET /prices` | قیمت هر پیام و پله‌های حجمی | جزئیات بدنه و پاسخ هر endpoint در [مرجع تعاملی](https://docs.ariaservice.net/sms-api-reference) آمده است. ## وضعیت‌ها | شیء | مقدارهای `status` | |---|---| | پیام (`GET /messages`) | `queued` در صف، `sent` ارسال‌شده، `delivered` تحویل‌شده، `failed` ناموفق، `undelivered` تحویل‌نشده، `rejected` ردشده، `expired` منقضی | | ارسال (`GET /batches`) | `pending`، `processing`، `partial` بخشی ناموفق، `completed`، `failed` | | زمان‌بندی‌شده (`GET /scheduled`) | `scheduled`، `processing`، `sent`، `failed`، `cancelled` | فیلتر `status` در `GET /messages` و `GET /batches` همین مقدارها را می‌گیرد. ## جزئیات پیام و تایم‌لاین {#timeline} هر پیام در `GET /messages` این فیلدها را هم دارد: | فیلد | معنی | |---|---| | `operator` | اپراتور گیرنده از روی پیش‌شماره: `mci` همراه اول، `mtn` ایرانسل، `rightel` رایتل، `other` (برای شماره‌های ترابردشده تقریبی است) | | `encoding` | `unicode` (فارسی) یا `gsm` (لاتین) | | `queued_at` | زمان ثبت در صف | | `provider.name` | درگاه ارسال، مثلاً `magfa` | | `provider.message_id` | شناسه‌ی پیگیری پیام در اپراتور (مگفا) | | `provider.status_code` | آخرین کد وضعیت اپراتور: `0` هنوز وضعیتی نیست، `8` تحویل به اپراتور، `1` تحویل به گوشی، `2` به گوشی تحویل نشد، `16` به اپراتور نرسید، `-1` منقضی | | `provider.error_code` | کد خطای مگفا وقتی پیام را نپذیرفته است | | `delivery_checks` | تعداد استعلام وضعیت تحویل | | `last_checked_at` | زمان آخرین استعلام | `GET /messages/{id}` علاوه بر این‌ها `timeline` را برمی‌گرداند: فهرست مرحله‌ها به ترتیب زمان، هر کدام با `type`، `at`، `status_code` و `error_code`. | `type` | معنی | |---|---| | `queued` | ثبت در صف | | `sent_to_provider` | ارسال به مگفا و دریافت شناسه‌ی پیگیری | | `provider_refused` | مگفا پیام را نپذیرفت (هزینه برگشت داده می‌شود) | | `status_checked` | استعلام وضعیت بدون نتیجه‌ی نهایی | | `delivered_to_operator` | تحویل به شبکه‌ی اپراتور، در انتظار گوشی | | `delivered` | تحویل به گوشی گیرنده | | `not_delivered` | به گوشی تحویل نشد | | `not_sent_to_operator` | به شبکه‌ی اپراتور نرسید | | `expired` | گزارش تحویل در ۲۴ ساعت نیامد | | `rejected` | رد شد | هر ارسال در `GET /batches` هم `channel` (`panel`، `api` یا `system`)، `sender_ip` (پوشیده، مثل `85.133.133.x`) و `completed_at` دارد. ## وب‌هوک {#webhooks} با `PUT /webhook` آدرس، روشن یا خاموش بودن و رویدادهای دلخواه را تنظیم کنید: ```bash curl -s -X PUT $BASE/webhook -H "$AUTH" -H "Content-Type: application/json" \ -d '{"url":"https://example.com/sms-hook","enabled":true,"events":["message.delivered","message.failed","inbound.received"]}' ``` | رویداد | چه زمانی | |---|---| | `batch.completed` | پایان هر ارسال؛ برای وب‌هوک روشن همیشه فرستاده می‌شود | | `message.delivered` | پیام به گیرنده تحویل شد | | `message.failed` | پیام هرگز تحویل نمی‌شود (`failed`، `undelivered`، `rejected`، `expired`) | | `inbound.received` | پیامکی روی خط اختصاصی شما دریافت شد | سه رویداد آخر فقط وقتی فرستاده می‌شوند که در `events` باشند؛ به‌طور پیش‌فرض خاموش‌اند. هر رویداد یک `POST` با بدنهٔ `{"event","occurred_at","data"}` است و `data` همان شکلی را دارد که API برای آن شیء برمی‌گرداند: ```json {"event":"message.delivered","occurred_at":"2026-11-12T17:20:00+00:00","data":{"id":"01m78c...","batch_id":"01m78c...","to":"09121234567","from":"300074360","body":"Your code is 1234","parts":1,"status":"delivered","cost_rial":1750,"error":null,"sent_at":"...","delivered_at":"...","created_at":"..."}} ``` هدر `X-Signature` برابر HMAC-SHA256 بدنهٔ خام با کلید امضای وب‌هوک شماست؛ آن را بررسی کنید. پاسخ غیر 2xx تا ۵ بار با فاصلهٔ رو به افزایش دوباره فرستاده می‌شود. ## خطاها خطاها JSON هستند: `{"code": "...", "message": "..."}`. | HTTP | معنی | |---|---| | 401 | توکن نبود یا نامعتبر است | | 402 | `insufficient_balance`: موجودی کافی نیست | | 403 | `insufficient_scope`، `forbidden`، `identity_needed`، `account_suspended` یا `sender_line_not_usable` (این خط برای ارسال حساب شما نیست) | | 404 | `not_found` (مثلاً قالبِ حساب دیگر) | | 422 | `validation_failed`، `all_recipients_blocked`، `already_blocked`، `not_cancellable` | | 429 | `rate_limit_exceeded` / `rate_limited` | | 503 | `sms_unavailable`، `region_unavailable` | | 504 | `gateway_timeout`: پاسخ به‌موقع نرسید؛ ممکن است ارسال انجام شده باشد، قبل از تکرار `GET /messages` را بررسی کنید (`client_reference` برای همین است) | --- title: "رابط خط فرمان آریانت (CLI)" description: "نصب و استفاده از ابزار خط فرمان arianet برای مدیریت VPS، منابع ابر آریانت، کلیدهای SSH، فایروال‌ها و صورتحساب." url: https://docs.ariaservice.net/cli markdown: https://docs.ariaservice.net/cli.md language: fa --- # رابط خط فرمان آریانت (CLI) ابزار **Arianet CLI** (دستور `arianet`) کلاینت رسمی خط فرمان پلتفرم آریانت است و با یک توکن API این‌ها را مدیریت می‌کند: - **VPS**های شما (`arianet vps ...`) از طریق [وب سرویس VPS](https://docs.ariaservice.net/api-endpoints) - سرورها، دیسک‌ها، شبکه‌های خصوصی، فایروال‌ها، IPهای شناور، لود بالانسرها و ایمیج‌های **ابر آریانت** (`arianet cloud ...`) از طریق [وب سرویس ابر](https://docs.ariaservice.net/cloud-api) - کلیدهای SSH، فایروال‌ها، موجودی و فاکتورها این ابزار یک فایل اجرایی مستقل برای macOS، لینوکس و ویندوز است. سورس و نسخه‌ها: [github.com/ariaservice/arianet-cli](https://github.com/ariaservice/arianet-cli). صفحه معرفی: [ariaservice.net/developers/cli](https://www.ariaservice.net/developers/cli). برای تعریف زیرساخت به صورت کد، [پرووایدر Terraform](https://docs.ariaservice.net/terraform) را ببینید. ## نصب و شروع در سه قدم ### ۱. نصب دستور مناسب سیستم‌عامل خود را در ترمینال اجرا کنید: - macOS / Linux: `curl -fsSL https://raw.githubusercontent.com/ariaservice/arianet-cli/main/scripts/install.sh | sh` - Windows: `irm https://raw.githubusercontent.com/ariaservice/arianet-cli/main/scripts/install.ps1 | iex` سپس یک ترمینال جدید باز کنید و `arianet version` را اجرا کنید تا مطمئن شوید نصب شده است. ### ۲. اتصال به حساب در پنل، صفحه [توکن‌های API](https://cloud.ariaservice.net/users/api-tokens) یک توکن بسازید و آن را به CLI بدهید: ```bash arianet configure ``` توکن را paste کنید (روی صفحه نمایش داده نمی‌شود). دسترسی‌های لازم هر دستور در بخش [دسترسی‌های توکن](#دسترسیهای-توکن) آمده است. ### ۳. اولین دستور ```bash arianet vps list ``` فهرست سرورهای مجازی شما نمایش داده می‌شود. برای سرورهای ابر آریانت: `arianet cloud servers list`. برای سفارش سرور، بخش‌های [VPS](#vps) و [ابر آریانت](#ابر-آریانت) را ببینید.
روش‌های دیگر نصب (Homebrew، apt، rpm، دانلود دستی، بررسی امضا) **macOS و لینوکس (Homebrew)** ```bash brew trust ariaservice/arianet # recent Homebrew versions require trusting third-party taps brew install ariaservice/arianet/arianet ``` فرمول ([ariaservice/homebrew-arianet](https://github.com/ariaservice/homebrew-arianet)) فقط آرشیو انتشار را از مخزن CLI دانلود و SHA-256 آن را بررسی می‌کند. **اوبونتو / دبیان (apt)** ```bash sudo install -d -m 0755 /etc/apt/keyrings curl -fsSL https://ariaservice.github.io/arianet-cli/arianet-archive-keyring.gpg \ | sudo tee /etc/apt/keyrings/arianet.gpg >/dev/null echo "deb [signed-by=/etc/apt/keyrings/arianet.gpg] https://ariaservice.github.io/arianet-cli stable main" \ | sudo tee /etc/apt/sources.list.d/arianet.list sudo apt update && sudo apt install arianet ``` مخزن امضا شده است و کلید آن فقط برای همین مخزن معتبر است (`signed-by`). اثر انگشت کلید: `305A 2F52 0920 153A FC89 8F4A C420 B09C 99E5 515B`. بسته هیچ اسکریپت نصب یا حذفی ندارد. **درباره اسکریپت نصب macOS و لینوکس** اسکریپت آرشیو انتشار را دانلود می‌کند، SHA-256 آن را با `checksums.txt` تطبیق می‌دهد (اگر `cosign` نصب باشد امضا را هم بررسی می‌کند) و فایل اجرایی را در `~/.local/bin` (یا اگر قابل نوشتن باشد `/usr/local/bin`) کپی می‌کند. **ویندوز (دستی)** به جای اسکریپت PowerShell بالا می‌توانید فایل `arianet__windows_amd64.zip` را از [صفحه انتشارها](https://github.com/ariaservice/arianet-cli/releases) دانلود کنید، `arianet.exe` را از آن بیرون بیاورید و پوشه آن را به `PATH` اضافه کنید. سپس یک ترمینال جدید باز کنید: ```powershell arianet version ``` **دانلود دستی (همه سیستم‌ها)** آرشیو سیستم خود و فایل `checksums.txt` را از [صفحه انتشارها](https://github.com/ariaservice/arianet-cli/releases) دانلود کنید. نام آرشیوها `arianet___.tar.gz` است (`darwin` یا `linux`، `amd64` یا `arm64`) و بسته‌های `.deb` و `.rpm` هم منتشر می‌شوند. ```bash sha256sum --check --ignore-missing checksums.txt # macOS: shasum -a 256 -c --ignore-missing checksums.txt tar -xzf arianet___.tar.gz sudo install -m 0755 arianet /usr/local/bin/arianet arianet version ``` فایل `checksums.txt` امضای Sigstore بدون کلید (`checksums.txt.sigstore.json`) دارد که با `cosign verify-blob` قابل بررسی است و هر آرشیو یک SBOM هم دارد. ساخت از سورس: `git clone https://github.com/ariaservice/arianet-cli.git && cd arianet-cli && go build -trimpath -o arianet ./cmd/arianet`
CLI فقط با آدرس API تنظیم‌شده (پیش‌فرض `https://api.ariaservice.net`) و حداکثر روزی یک بار با GitHub برای یافتن نسخه جدید (بخش [اعلان نسخه جدید](#اعلان-نسخه-جدید)) ارتباط می‌گیرد و هیچ داده تله‌متری ارسال نمی‌کند. ## به‌روزرسانی از نسخه **v0.5.0** به بعد، CLI خودش را به‌روز می‌کند: ```bash arianet upgrade # upgrade to the latest release (asks first) arianet upgrade --check # only report whether a newer release exists arianet upgrade -y # no confirmation prompt arianet upgrade --version v0.5.0 # install a specific release arianet update # same as: arianet upgrade ``` `arianet upgrade` تشخیص می‌دهد CLI چطور نصب شده و به همان روش به‌روزش می‌کند؛ در macOS، لینوکس و ویندوز: | روش نصب | کاری که `arianet upgrade` انجام می‌دهد | |---|---| | Homebrew | دستور `brew upgrade ariaservice/arianet/arianet` را اجرا و خروجی آن را نمایش می‌دهد. | | apt / dpkg | دستور `sudo apt-get update && sudo apt-get install --only-upgrade arianet` را اجرا می‌کند (اگر امکان پرسیدن نباشد، فقط دستور را چاپ می‌کند). | | اسکریپت نصب، دانلود دستی یا zip ویندوز | آرشیو انتشار مناسب سیستم‌عامل و معماری را دانلود، با checksumهای انتشار تطبیق و فایل اجرایی را در جای خودش جایگزین می‌کند. اگر مرحله‌ای خطا بدهد، نسخه قبلی حفظ می‌شود. | اگر آخرین نسخه را داشته باشید همین را اعلام می‌کند و چیزی تغییر نمی‌دهد. در نسخه‌های v0.4.x و قدیمی‌تر، به همان روش نصب به‌روز کنید (`brew upgrade ariaservice/arianet/arianet`، `sudo apt update && sudo apt install --only-upgrade arianet` یا اجرای دوباره اسکریپت نصب). ### اعلان نسخه جدید وقتی نسخه جدیدی منتشر شود، `arianet` پس از اجرای یک دستور، پیام کوتاهی همراه با دستور به‌روزرسانی مناسب روش نصب شما روی stderr چاپ می‌کند: ```text A new release of arianet is available: 0.4.0 → 0.5.0 To upgrade, run: brew upgrade ariaservice/arianet/arianet ``` CLI حداکثر روزی یک بار و در پس‌زمینه آخرین نسخه را از GitHub می‌پرسد و این کار هرگز دستوری را کند یا ناموفق نمی‌کند. این اعلان با `-o json`، وقتی stderr ترمینال نیست، وقتی متغیر `CI` تنظیم شده یا وقتی `ARIANET_NO_UPDATE_NOTIFIER` هر مقداری داشته باشد نمایش داده نمی‌شود: ```bash export ARIANET_NO_UPDATE_NOTIFIER=1 ``` ## تنظیمات تنظیمات در فایل `config.yaml` داخل پوشه تنظیمات کاربر (در لینوکس `~/.config/arianet/` و در macOS `~/Library/Application Support/arianet/`) با دسترسی `0600` ذخیره می‌شود. `arianet configure show` مسیر دقیق و مقادیر فعال را نشان می‌دهد. ```bash arianet configure # interactive setup (token typed without echo) printf '%s' "$TOKEN" | arianet configure --token-stdin arianet configure --token # avoid on shared machines: visible in the process list and shell history arianet configure --output json # default output format arianet configure --api-url # API base URL arianet configure show # show the current configuration ``` اولویت از بالا به پایین: فلگ خط فرمان، متغیر محیطی، فایل تنظیمات. اگر آدرس API چیزی غیر از پیش‌فرض باشد، هر دستور روی stderr هشدار می‌دهد که توکن به چه میزبانی ارسال می‌شود. | متغیر محیطی | توضیح | |------------------------------|----------------------------------------------------------| | `ARIANET_TOKEN` | توکن API | | `ARIANET_API_URL` | آدرس پایه API (پیش‌فرض `https://api.ariaservice.net`) | | `ARIANET_NO_UPDATE_NOTIFIER` | با هر مقداری، اعلان نسخه جدید را خاموش می‌کند | ### فلگ‌های سراسری | فلگ | توضیح | |-----------------|-----------------------------------------------| | `-o, --output` | `table` (پیش‌فرض) یا `json` | | `--token` | توکن API فقط برای همین دستور | | `--api-url` | آدرس پایه API فقط برای همین دستور | هر دستور فلگ `--help` دارد که فلگ‌ها را همراه با مثال نشان می‌دهد. اسکریپت تکمیل خودکار: `arianet completion bash|zsh|fish|powershell`. ## دسترسی‌های توکن توکن را می‌توان به دسترسی‌های لازم محدود کرد. اگر توکن دسترسی لازم را نداشته باشد، دستور با `INSUFFICIENT_SCOPE` خطا می‌دهد. | دستورها | دسترسی (scope) | |-------------------------------------------------|-----------------------------| | `region list` | `regions:read` | | `os list` | `os:read` | | `plan list`، `plan get` | `plans:read` | | `vps list/get/status/actions` | `servers:read` | | `vps create/delete/restart/power-*/reinstall/rename/toggle-protection` | `servers:write` | | `balance`، `balance transactions` | `balance:read` | | `balance invoices` | `invoices:read` | | `auth tokens list`، `auth tokens revoke` | `tokens:read`، `tokens:write` (`auth whoami` و `auth logout` دسترسی لازم ندارند) | | `ssh list/get`، `ssh add/update/delete` | `ssh-keys:read`، `ssh-keys:write` | | `firewall list/get`، بقیه دستورهای `firewall` | `firewalls:read`، `firewalls:write` | | دستورهای `cloud` (خواندن / تغییر) | `cloud:servers:read` / `cloud:servers:write` | | `cloud pricing` | نیاز ندارد (عمومی) | | دستورهای `hosting` (خواندن / تغییر) | `hosting:accounts:read` / `hosting:accounts:write` | | دستورهای `vps regional` (خواندن / تغییر) | `vps:servers:read` / `vps:servers:write` | | دستورهای `baremetal` (خواندن / تغییر) | `baremetal:servers:read` / `baremetal:servers:write` | | `sms send`، `scheduled cancel`، `blocked add/delete`، `webhook` / `sms messages`، `batches`، `scheduled list`، `inbound`، `prices`، `report` | `sms:messages:write` / `sms:messages:read` | | `sms lines list` (`sms lines request`: توکن بدون دسترسی) | `sms:lines:read` | | `sms templates list` / بقیه دستورهای `sms templates` | `sms:templates:read` / `sms:templates:write` | توکن را می‌توان به فهرستی از IPهای مبدأ هم محدود کرد؛ درخواست از جای دیگر با `IP_NOT_ALLOWED` رد می‌شود. ## VPS `arianet vps` سرورهای مجازی (VPS) را مدیریت می‌کند. `server`، `servers` و `srv` نام‌های مستعار آن هستند، پس اسکریپت‌های قدیمی که `arianet server ...` را صدا می‌زنند همچنان کار می‌کنند. شناسه‌های `--region`، `--plan`، `--os` و `--ssh-key` از دستورهای `list` متناظر به دست می‌آیند. ### کاتالوگ ```bash arianet region list # orderable locations; the ID column is the --region value arianet plan list --region # plans in a region: vCPU, RAM and disk in GB, price arianet plan get # plan details and pricing arianet os list --region # OS templates available in a region ``` ### فهرست و جزئیات ```bash arianet vps list arianet vps list --status terminated arianet vps list --page 2 --limit 20 arianet vps get arianet vps status arianet vps actions --limit 50 ``` بدون `--status`، فهرست VPSهای فعال و معلق را نشان می‌دهد. وضعیت‌های دیگر: `creating`، `pending`، `failed`، `terminated`، `powering_on`، `powering_off`، `restarting` و `reinstalling_os`. `vps actions` عملیات انجام‌شده روی VPS (ساخت، ری‌استارت، نصب مجدد و ...) را از جدید به قدیم با نتیجه آن‌ها نشان می‌دهد. ### ساخت ```bash arianet vps create # interactive wizard arianet vps create --plan 5 --region 1 --os 3 --hostname web-01 arianet vps create --plan 5 --region 1 --os 3 --ssh-key 2 arianet vps create --plan 5 --region 1 --os 3 --password '' arianet vps create --plan 5 --region 1 --os 3 --no-wait --yes --output json ``` | فلگ | توضیح | |---------------------|----------------------------------------------------------------| | `--plan` | شناسه پلن | | `--region` | شناسه منطقه (دیتاسنتر) | | `--os` | شناسه سیستم‌عامل | | `--hostname` | نام میزبان | | `--ssh-key` | ورود با این کلید SSH ذخیره‌شده به جای رمز عبور | | `--password` | رمز root دلخواه | | `--currency` | شناسه ارز پرداخت (پیش‌فرض: کیف پول پیش‌فرض) | | `--idempotency-key` | استفاده دوباره از یک کلید برای تکرار امن سفارش | | `--no-wait` | بازگشت بلافاصله پس از پذیرش سفارش | | `--timeout` | حداکثر زمان انتظار برای فعال شدن VPS (پیش‌فرض `15m`) | | `-y, --yes` | رد شدن از پرسش تأیید | - اگر نه `--ssh-key` و نه `--password` بدهید، یک رمز root قوی و تصادفی ساخته و **فقط یک بار** چاپ می‌شود. آن را ذخیره کنید. - بدون `--plan`، `--region` یا `--os` راهنمای تعاملی آن‌ها را می‌پرسد. این راهنما با `--output json` اجرا نمی‌شود؛ در اسکریپت هر سه شناسه را بدهید. - به طور پیش‌فرض دستور تا فعال شدن VPS صبر می‌کند. **تکرار امن.** هر سفارش یک کلید idempotency دارد. اگر پس از ارسال سفارش شبکه قطع شود، اجرای همان دستور با همان `--idempotency-key` نتیجه اصلی را برمی‌گرداند و VPS دوم خریده نمی‌شود. **محدودیت نرخ.** ساخت VPS برای هر توکن و هر حساب محدودیت نرخ دارد و CLI مدت انتظار را اعلام می‌کند. ### عملیات ```bash arianet vps restart [--wait] [--timeout 15m] [--yes] arianet vps power-on [--wait] arianet vps power-off [--wait] [--yes] arianet vps reinstall --os [--wait] [--yes] arianet vps delete [--wait] [--yes] arianet vps rename --name # 1-30 characters arianet vps toggle-protection [--enable | --disable] ``` ری‌استارت، روشن/خاموش کردن، نصب مجدد و حذف به محض پذیرش عملیات بازمی‌گردند. با `--wait` تا پایان عملیات صبر می‌شود: پیشرفت روی stderr نوشته می‌شود و اگر عملیات شکست بخورد یا زمان تمام شود، کد خروج غیرصفر است. این دستورها هرگز خودکار تکرار نمی‌شوند. `toggle-protection` با `--enable` یا `--disable` وضعیت را صریحاً تنظیم می‌کند (تکرار آن در اسکریپت امن است)؛ بدون این دو، وضعیت برعکس می‌شود. VPS محافظت‌شده نه حذف می‌شود و نه نصب مجدد. ### کلیدهای SSH ```bash arianet ssh list [--page 2 --limit 20] arianet ssh get arianet ssh add --name laptop --key-file ~/.ssh/id_ed25519.pub --region arianet ssh add --name laptop --key "ssh-ed25519 AAAA..." --region arianet ssh update --name arianet ssh delete [--yes] ``` هر کلید SSH متعلق به یک منطقه است، پس هنگام افزودن `--region` لازم است. هنگام سفارش با `--ssh-key ` از آن استفاده کنید. `arianet cloud ssh-keys` همین گروه دستورها است. ### فایروال‌ها ```bash arianet firewall list arianet firewall get arianet firewall create --name web-fw --region [--description "..."] arianet firewall update [--name ] [--description "..."] arianet firewall delete [--yes] arianet firewall rule add --direction ingress --proto tcp --port 443 --remote-ip 0.0.0.0/0 arianet firewall rule add --direction ingress --proto tcp --port 22 --remote-ip 203.0.113.7/32 --description office arianet firewall rule add --direction ingress --proto icmp --remote-ip 0.0.0.0/0 arianet firewall rule remove [--yes] arianet firewall attach --server 42,43 arianet firewall detach --server 42 ``` - فایروال جدید هیچ قانونی ندارد. قانون اضافه کنید و سپس با `attach` آن را به VPSها وصل کنید. - فلگ‌های `rule add`: `--direction ingress|egress` (پیش‌فرض `ingress`)، `--proto tcp|udp|icmp|esp|gre` (پیش‌فرض `tcp`)، `--port` (پورت یا بازه مثل `8000-9000`، برای tcp و udp لازم)، `--remote-ip` (لازم؛ `0.0.0.0/0` یعنی همه)، `--description`. - شناسه قانون در `rule remove` همان رشته ستون **Rule ID** در خروجی `firewall get` است. - `attach` و `detach` در هر بار تا ۵۰ سرور می‌پذیرند. این دستورها فایروال‌های VPS را مدیریت می‌کنند. فایروال‌های ابر آریانت با [`arianet cloud firewalls`](#فایروالهای-ابر) مدیریت می‌شوند. ## ابر آریانت `arianet cloud` منابع ابر آریانت را از طریق [وب سرویس ابر](https://docs.ariaservice.net/cloud-api) روی `/cloud/v1` (پیش‌فرض `https://api.ariaservice.net/cloud/v1`) و با همان توکن مدیریت می‌کند. توکن برای خواندن به `cloud:servers:read` و برای تغییر به `cloud:servers:write` نیاز دارد. رفتار مشترک: - **فهرست‌ها** `--label-selector` (عبارت‌های جداشده با کاما که همه باید برقرار باشند: `key=value`، `key!=value`، `key`، `!key`؛ مثلاً `"env=prod,tier!=db"`)، `--project-id` و `--page` / `--per-page` (حداکثر ۱۰۰) می‌پذیرند. بدون `--page` همه صفحه‌ها دریافت می‌شوند. - **ساخت‌ها** `--labels key=value` (قابل تکرار یا جداشده با کاما) و `--project-id` می‌پذیرند. - دستورهای **`update`** نام، برچسب‌ها (`--labels`، `--clear-labels`)، محافظت در برابر حذف (`--protection-delete=true|false`) و پروژه (`--project-id`) را تغییر می‌دهند. - **عملیات** به صورت ناهمگام اجرا می‌شوند و یک action برمی‌گردانند که CLI شناسه آن را چاپ می‌کند. `--wait` تا پایان آن صبر می‌کند (پیشرفت روی stderr، `--timeout` با پیش‌فرض `15m`) و در صورت شکست یا اتمام زمان، کد خروج غیرصفر است. - `get` با `describe` و `show`، `list` با `ls` و `delete` با `rm` هم کار می‌کند (حذف بدون `-y` تأیید می‌گیرد). - خواندن‌هایی که به محدودیت نرخ بخورند پس از `Retry-After` (اگر حداکثر ۳۰ ثانیه باشد) تکرار می‌شوند. تغییرات هرگز خودکار تکرار نمی‌شوند. ### کاتالوگ و حساب ```bash arianet cloud datacenters # locations (the --datacenter codes); alias: locations arianet cloud plans [--datacenter ] # server types (the --plan IDs) arianet cloud images list [--type system|app|snapshot|backup] [--datacenter ] arianet cloud images get # e.g. ubuntu-24.04 arianet cloud pricing [--datacenter ] # public price list, no token needed arianet cloud pricing --account # your account's own price rows (needs a token) arianet cloud limits [--datacenter ] # quotas and usage per datacenter ``` `cloud pricing` لیست قیمت عمومی (`/cloud/v1/public/pricing`) را بدون مالیات بر ارزش افزوده می‌خواند و توکن نمی‌فرستد، پس قبل از `arianet configure` هم کار می‌کند. ### سرورهای ابری ```bash arianet cloud servers list [--label-selector env=prod] [--page 1 --per-page 50] arianet cloud servers get arianet cloud servers create --name web-1 --datacenter ovh --plan 3 --image ubuntu-24.04 --ssh-key-id 5 --wait arianet cloud servers create --name web --count 3 --datacenter ovh --plan 3 --image ubuntu-24.04 \ --labels env=prod --firewall 2 --network 4 --no-ipv6 arianet cloud servers create --name db-1 --datacenter ovh --plan 5 --image debian-12 \ --user-data-file cloud-init.yaml --backups --project-id 2 -o json ``` | فلگ `create` | توضیح | |----------------------|-------| | `--name` | نام سرور (با `--count`: `name`، `name-2`، ...) | | `--datacenter` | کد دیتاسنتر (`arianet cloud datacenters`) | | `--plan` | شناسه پلن (`arianet cloud plans`) | | `--image` | ایمیج (`arianet cloud images list`) | | `--ssh-key-id` | شناسه کلید SSH ذخیره‌شده (قابل تکرار) | | `--ssh-key` | کلید عمومی برای نصب (قابل تکرار) | | `--count` | ساخت همزمان چند سرور | | `--firewall` | شناسه فایروال (قابل تکرار) | | `--network` | شناسه شبکه خصوصی (قابل تکرار) | | `--volume` | شناسه دیسک برای اتصال (قابل تکرار) | | `--no-ipv4`، `--no-ipv6` | بدون آدرس عمومی IPv4 / IPv6 | | `--backups` | فعال کردن پشتیبان‌گیری روزانه | | `--user-data-file` | فایل user data برای cloud-init | | `--no-start` | سرور پس از ساخت روشن نشود | | `--labels`، `--project-id`، `--wait`، `--timeout` | مانند بالا | ```bash arianet cloud servers update [--name n] [--labels k=v | --clear-labels] [--protection-delete=true] [--protection-rebuild=true] arianet cloud servers delete [--reason price] [--note "..."] [--keep-backups] [--delete-snapshots] [--yes] [--wait] arianet cloud servers power-on|power-off|shutdown|reboot|reset [--wait] arianet cloud servers rebuild --image ubuntu-24.04 [--wait] # erases the disk arianet cloud servers change-type --plan [--wait] # aliases: resize, change-plan arianet cloud servers enable-rescue # prints the rescue password once arianet cloud servers disable-rescue arianet cloud servers reset-password # prints the new root password once arianet cloud servers change-ipv4 [--confirm-paid] # new public IPv4 arianet cloud servers attach-network --network [--subnet ] [--ip 10.0.1.5] arianet cloud servers detach-network --network arianet cloud servers enable-backup [--window-hour 3] # hour in UTC, 0-23 arianet cloud servers change-backup-window --window-hour 4 arianet cloud servers disable-backup arianet cloud servers create-backup [--wait] arianet cloud servers restore-backup --backup [--wait] # erases the disk arianet cloud servers create-image --name before-upgrade [--description "..."] [--wait] arianet cloud servers actions arianet cloud servers costs ``` - `power-off` برق را قطع می‌کند (توقف سخت)؛ `shutdown` از سیستم‌عامل می‌خواهد خاموش شود (ACPI). `reboot` راه‌اندازی مجدد عادی و `reset` ری‌ست سخت است. - مقدار `delete --reason` یکی از `price`، `performance`، `ip_filtered`، `no_longer_needed`، `migrating`، `support` و `other` است (`other` به `--note` نیاز دارد). `--keep-backups` پشتیبان‌های کامل‌شده را به صورت اسنپ‌شات نگه می‌دارد که تا زمان حذف، بر اساس GB هزینه دارند. `--delete-snapshots` اسنپ‌شات‌های محافظت‌نشده سرور را هم حذف می‌کند؛ به طور پیش‌فرض اسنپ‌شات‌ها پس از حذف سرور باقی می‌مانند. - `costs` نرخ ساعتی و ماهانه فعلی سرور را به تفکیک هر بخش (پلن، IPv4 اصلی، IPهای شناور و elastic، دیسک‌های متصل، افزونه پشتیبان)، جمع کل و هزینه اسنپ‌شات‌ها و پشتیبان‌های نگه‌داشته‌شده پس از حذف نشان می‌دهد. - اگر تغییر IP هزینه داشته باشد، `change-ipv4` به `--confirm-paid` نیاز دارد. - رمز root یا rescue که `create`، `rebuild`، `enable-rescue`، `reset-password` یا `restore-backup` برمی‌گردانند فقط یک بار چاپ می‌شود. آن را ذخیره کنید. ### دیسک‌ها (Volume) ```bash arianet cloud volumes list|get|update|delete ... arianet cloud volumes create --name data --size 50 --datacenter ovh arianet cloud volumes create --name data --size 50 --server 12 --filesystem ext4 --wait arianet cloud volumes attach --server [--wait] arianet cloud volumes detach arianet cloud volumes resize --size 100 [--wait] # grow only, size in GB ``` ### شبکه‌های خصوصی ```bash arianet cloud networks list|get|update|delete ... arianet cloud networks create --name backend --datacenter ovh --ip-range 10.0.0.0/16 [--subnet-ip-range 10.0.1.0/24] [--wait] arianet cloud networks subnets add --ip-range 10.0.2.0/24 arianet cloud networks subnets delete arianet cloud networks routes set --route 10.100.0.0/16=10.0.1.5 # destination=gateway, repeatable arianet cloud networks routes set --clear ``` ### فایروال‌های ابر ```bash arianet cloud firewalls list|get|update|delete ... arianet cloud firewalls create --name web \ --rule direction=in,protocol=tcp,port=443,source=0.0.0.0/0,source=::/0 \ --rule direction=in,protocol=tcp,port=22,source=203.0.113.4/32 --server 12 arianet cloud firewalls create --name web --rules-file rules.json arianet cloud firewalls rules set --rule direction=in,protocol=tcp,port=80,source=0.0.0.0/0 arianet cloud firewalls rules set --rules-file rules.json | --clear arianet cloud firewalls apply-to --server 12 --server 13 arianet cloud firewalls apply-to --label-selector "env=prod,tier!=db" --wait arianet cloud firewalls remove-from --label-selector env=prod arianet cloud firewalls set-servers --server 12,13 | --none ``` هر قانون به شکل `direction=in|out,protocol=tcp|udp|icmp|esp|gre,port=<پورت یا بازه>,source=` است (`source=` قابل تکرار است، برای قوانین خروجی `destination=` و به صورت اختیاری `description=`). `rules set` همه قوانین را یکجا جایگزین می‌کند. هدف label selector از برچسب‌ها پیروی می‌کند: سرورهایی که بعداً برچسب منطبق بگیرند فایروال را می‌گیرند و سرورهایی که آن را از دست بدهند، فایروال را هم از دست می‌دهند. ### IPهای شناور ```bash arianet cloud floating-ips list|get|update|delete ... arianet cloud floating-ips create --type ipv4 --datacenter ovh --name vip arianet cloud floating-ips create --type ipv4 --server 12 --wait arianet cloud floating-ips assign --server [--wait] arianet cloud floating-ips unassign arianet cloud floating-ips dns-ptr --ptr web.example.com | --reset ``` ### لود بالانسرها ```bash arianet cloud load-balancers types arianet cloud load-balancers list|get|update|delete ... arianet cloud load-balancers create --name web --datacenter ovh --type lb11 \ --service tcp:80 --service tcp:443 --target label_selector:role=web --wait arianet cloud load-balancers add-service --protocol http --listen-port 80 --health-protocol http --health-path /healthz arianet cloud load-balancers update-service --port 80 --protocol tcp --listen-port 80 --destination-port 8081 arianet cloud load-balancers delete-service --listen-port 443 arianet cloud load-balancers set-services --services-file services.json [--algorithm least_connections] arianet cloud load-balancers add-target --server 12 | --ip
| --label-selector role=web [--use-private-ip] arianet cloud load-balancers remove-target --target-id 17 arianet cloud load-balancers change-algorithm --algorithm round_robin|least_connections arianet cloud load-balancers change-type --type lb21 arianet cloud load-balancers attach-network --network 4 arianet cloud load-balancers detach-network arianet cloud load-balancers health ``` سرویس‌ها روی `tcp`، `http` یا `https` (عبور مستقیم TLS) گوش می‌دهند. فلگ‌های سرویس شامل `--destination-port`، `--proxyprotocol`، `--sticky-sessions`، `--cookie-name` و بررسی سلامت (`--health-protocol tcp|http`، `--health-port`، `--health-path`، `--health-domain`، `--health-status-code`، `--health-interval`، `--health-timeout`، `--health-retries`) است. `--no-public-interface` در `create` یک لود بالانسر فقط خصوصی می‌سازد. ### Actionها ```bash arianet cloud actions list [--resource-type server --resource-id 12] [--status running|success|error] [--since ] arianet cloud actions get arianet cloud actions wait [...] [--timeout 30m] ``` ## هاستینگ، VPS منطقه‌ای، سرور اختصاصی و پیامک {#product-commands} > **از نسخه v0.6.0** این گروه‌های دستور از CLI نسخه **v0.6.0** در دسترس‌اند. نسخه قدیمی‌تر را با `arianet upgrade` به‌روز کنید. این گروه‌ها وب سرویس‌های [هاستینگ](https://docs.ariaservice.net/hosting-api)، [VPS منطقه‌ای](https://docs.ariaservice.net/regional-vps-api)، [سرور اختصاصی](https://docs.ariaservice.net/baremetal-api) و [پیامک](https://docs.ariaservice.net/sms/api) را با همان توکن صدا می‌زنند. همه دستورهایشان `--region ` را برای انتخاب ریجن می‌پذیرند (بدون آن ریجن پیش‌فرض محصول) و با `-o json` پاسخ وب سرویس را همان‌طور که هست چاپ می‌کنند. برای هر endpoint که دستوری ندارد، `api [--data JSON]` در هر گروه هست. دستورهای ساخت، `--data` یا `--file` را هم برای کل بدنه JSON می‌پذیرند. ### هاستینگ ```bash arianet hosting datacenters | plans [--datacenter ] [--kind shared|reseller] arianet hosting accounts list|get|usage|nameservers|traffic|actions arianet hosting accounts create --datacenter --plan-id --term monthly --domain example.com --password '...' arianet hosting accounts change-plan --plan-id | renew | password --password '...' | login | delete arianet hosting dns list|add|update|delete ... arianet hosting email list|add|update|delete ... arianet hosting databases list|create|delete|grant|users|user-create|user-password|user-delete ... arianet hosting ssh-keys list|add|delete ... arianet hosting actions list|get|wait ``` ### VPS منطقه‌ای `arianet vps` (بدون `regional`) همچنان VPSهای `/api/v1/servers` را مدیریت می‌کند. VPSهای منطقه‌ای (مثل `iran-1`) زیر `arianet vps regional` هستند: ```bash arianet vps regional datacenters | plans | images arianet vps regional servers list|get|delete|start|stop|restart|kill|console|traffic|actions arianet vps regional servers create --datacenter --plan-id --image ubuntu-24.04 --hostname web-1 --billing-mode hourly [--wait] arianet vps regional servers reinstall --image | resize --plan-id | reset-password arianet vps regional actions list|get|wait ``` رمز root ساخته‌شده فقط یک بار چاپ می‌شود. ### سرور اختصاصی ```bash arianet baremetal suppliers | ranges | plans | rules | options arianet baremetal quote --catalog eco --plan-code --datacenter --memory --storage --bandwidth arianet baremetal orders create ... --rules-version --accept-rules arianet baremetal orders list|get|cancel arianet baremetal servers list|get|credentials|renewals|renew|os-templates|reinstall-status arianet baremetal servers reinstall --template ``` ### پیامک ```bash arianet sms lines list | request [--number ] [--note "..."] arianet sms send --from --to 09121234567 --to 09351234567 --body "Your code is 1234" [--reference order-981] arianet sms send --from --to 09121234567 --template --at 2026-12-01T09:00:00+03:30 arianet sms messages list [--status failed] [--batch ] [--to ] [--page 2 --per-page 100] | get arianet sms batches list|get arianet sms scheduled list | cancel arianet sms inbound | prices | report [--from 2026-11-01] [--to 2026-11-30] arianet sms templates list|get|create|update|delete arianet sms blocked list [--phone ] | add | delete arianet sms webhook get | set --url | rotate-secret ``` ## موجودی و فاکتورها ```bash arianet balance # wallet balance arianet balance transactions [--page 2] arianet balance invoices [--status paid] [--page 2 --limit 20] arianet balance invoices get # one invoice with its line items ``` ## قالب‌های خروجی خروجی پیش‌فرض `table` برای انسان است. `-o json` (`--output json`) داده API را به صورت JSON برای اسکریپت چاپ می‌کند: ```bash arianet vps list -o json | jq -r '.[] | select(.status == "active") | .id' arianet cloud servers list --label-selector env=prod -o json | jq -r '.[].id' ``` با `-o json`: - stdout فقط نتیجه JSON را دارد. پیشرفت، خروجی `--wait` و راهنماها روی stderr می‌روند و اعلان نسخه جدید نمایش داده نمی‌شود. - پرسش‌های تأیید روی stderr نوشته می‌شوند. در اسکریپت `--yes` بدهید تا منتظر ورودی نماند. - برای دستورهای ابر، پاسخ همان‌طور که API برگردانده چاپ می‌شود و پس از `--wait`، `actions` نهایی هم اضافه می‌شود. - خطاها روی stderr به این شکل نوشته می‌شوند: ```json {"success":false,"error":{"code":"INSUFFICIENT_BALANCE","message":"...","status":402}} ``` ### کدهای خروج | کد | معنی | |------|------------------------------------------------------------------------| | `0` | موفق | | `1` | هر خطایی، از جمله `--wait` ناموفق، با اتمام زمان یا متوقف‌شده | ## نمونه اسکریپت‌ها سفارش VPS و گرفتن شناسه آن: ```bash out=$(arianet vps create --plan 5 --region 1 --os 3 --hostname web-01 \ --ssh-key 2 --yes --output json) || exit 1 id=$(echo "$out" | jq -r '.id') ``` تکرار امن با کلیدی که خودتان تعیین می‌کنید: ```bash key="order-$(date +%Y%m%d)-web-01" until arianet vps create --plan 5 --region 1 --os 3 --hostname web-01 \ --ssh-key 2 --yes --idempotency-key "$key" --output json; do sleep 30 done ``` ساخت سه سرور ابری پشت یک لود بالانسر: ```bash arianet cloud servers create --name web --count 3 --datacenter ovh --plan 3 \ --image ubuntu-24.04 --ssh-key-id 5 --labels role=web --wait arianet cloud load-balancers create --name web --datacenter ovh --type lb11 \ --service tcp:80 --target label_selector:role=web --wait ``` ## رفع مشکل | پیام / کد | علت و راه‌حل | |---------------------------------|---------------------------------------------------------------------------------------------| | `No API token configured` | `arianet configure` را اجرا کنید یا `ARIANET_TOKEN` را تنظیم کنید. | | `UNAUTHORIZED` | توکن اشتباه، باطل یا منقضی است. `arianet configure show` را بررسی و توکن جدید بسازید. | | `INSUFFICIENT_SCOPE` | توکن دسترسی این دستور را ندارد ([دسترسی‌های توکن](#دسترسیهای-توکن)). | | `IP_NOT_ALLOWED` | توکن به IPهای دیگری محدود شده است. | | `INSUFFICIENT_BALANCE` | کیف پول را شارژ و دوباره تلاش کنید. `arianet balance` موجودی را نشان می‌دهد. | | `NO_DEFAULT_WALLET` | کیف پول پیش‌فرض ندارید. `--currency ` بدهید. | | `FEATURE_NOT_SUPPORTED` | این منطقه کلید SSH یا فایروال ندارد. `arianet region list` پشتیبانی هر منطقه را نشان می‌دهد. | | `RATE_LIMIT_EXCEEDED` / `rate_limit_exceeded` | درخواست‌ها زیاد است. پیام مدت انتظار را می‌گوید. | | `UPSTREAM_ERROR` / `UPSTREAM_UNAVAILABLE` / `WRITES_UNAVAILABLE` | موقتاً در دسترس نیست. صبر و دوباره تلاش کنید؛ سفارش VPS را با همان `--idempotency-key` تکرار کنید. | | `VALIDATION_ERROR` / `invalid_input` | یک ورودی رد شد. پیام نام فیلد را می‌گوید. | اگر `vps create` پس از ارسال سفارش قطع شد، پیش از سفارش دوباره `arianet vps list` را بررسی کنید یا همان دستور را با `--idempotency-key` چاپ‌شده دوباره اجرا کنید. ## پشتیبانی - [وب سرویس VPS](https://docs.ariaservice.net/api-endpoints) · [وب سرویس ابر](https://docs.ariaservice.net/cloud-api) · [پرووایدر Terraform](https://docs.ariaservice.net/terraform) - صفحه معرفی: [ariaservice.net/developers/cli](https://www.ariaservice.net/developers/cli) - پنل: [cloud.ariaservice.net](https://cloud.ariaservice.net) - گزارش مشکل: [github.com/ariaservice/arianet-cli/issues](https://github.com/ariaservice/arianet-cli/issues) --- title: "پرووایدر Terraform" description: "مدیریت سرورها، دیسک‌ها، شبکه‌ها، فایروال‌ها، IPهای شناور و لود بالانسرهای ابر آریانت به صورت کد با پرووایدر Terraform با نام ariaservice/arianet." url: https://docs.ariaservice.net/terraform markdown: https://docs.ariaservice.net/terraform.md language: fa --- # پرووایدر Terraform پرووایدر Terraform با نام **`ariaservice/arianet`** منابع ابر آریانت را به صورت کد مدیریت می‌کند: سرورها، دیسک‌ها، شبکه‌های خصوصی (زیرشبکه‌ها، مسیرها)، فایروال‌ها، IPهای شناور، لود بالانسرها (سرویس‌ها، هدف‌ها) و کلیدهای SSH حساب شما. به Terraform نسخه ۱.۰ یا بالاتر نیاز دارد. - رجیستری: [registry.terraform.io/providers/ariaservice/arianet](https://registry.terraform.io/providers/ariaservice/arianet) (نسخه فعلی **0.1.0**) - سورس: [github.com/ariaservice/terraform-provider-arianet](https://github.com/ariaservice/terraform-provider-arianet) - صفحه معرفی: [ariaservice.net/developers/terraform](https://www.ariaservice.net/developers/terraform) پرووایدر از [وب سرویس ابر](https://docs.ariaservice.net/cloud-api) استفاده می‌کند؛ مستندات کامل هر resource در رجیستری است. ## راه‌اندازی پرووایدر ```hcl terraform { required_providers { arianet = { source = "ariaservice/arianet" version = "~> 0.1" } } } provider "arianet" { # Read from ARIANET_TOKEN when not set here. token = var.arianet_token } variable "arianet_token" { type = string sensitive = true } ``` سپس `terraform init` را اجرا کنید. ### احراز هویت در [cloud.ariaservice.net/users/api-tokens](https://cloud.ariaservice.net/users/api-tokens) یک توکن شخصی API با دسترسی‌های **`cloud:servers:read`** و **`cloud:servers:write`** بسازید (اگر `arianet_ssh_key` را مدیریت می‌کنید، دسترسی‌های کلید SSH یعنی `ssh-keys:read` / `ssh-keys:write` را هم اضافه کنید). توکن را در فایل `.tf` ننویسید و آن را export کنید: ```bash export ARIANET_TOKEN="paste-your-token-here" terraform plan ``` ### آرگومان‌های پرووایدر | آرگومان | متغیر محیطی | پیش‌فرض | توضیح | |-----------------|----------------------|-------------------------------|-------| | `token` | `ARIANET_TOKEN` | الزامی | توکن API (حساس) | | `endpoint` | `ARIANET_API_URL` | `https://api.ariaservice.net` | آدرس ریشه API؛ باید `https` باشد (`http` فقط برای localhost) | | `poll_interval` | | `2s` | فاصله بررسی action در حال اجرا؛ تا ۱۰ ثانیه افزایش می‌یابد | | `max_retries` | | `5` | تعداد تکرار برای HTTP 429 (با رعایت `Retry-After` و در غیر این صورت `RateLimit-Reset`) و برای خواندن روی 502/503/504 | عملیات طولانی یک action برمی‌گردانند و پرووایدر تا پایان آن صبر می‌کند؛ سقف انتظار با بلوک `timeouts` هر resource تعیین می‌شود (مثلاً `timeouts { create = "20m" }`). منبعی که هنگام refresh پاسخ 404 بدهد از state حذف می‌شود. ## Resourceها | Resource | کاربرد | |---|---| | `arianet_server` | سرور ابری. تغییر `plan_id` اندازه آن را در جا تغییر می‌دهد؛ `backups` پشتیبان روزانه را روشن/خاموش می‌کند؛ `keep_backups` / `delete_snapshots` سرنوشت نسخه‌های آن هنگام destroy را تعیین می‌کنند. | | `arianet_volume` | دیسک بلاکی (`size` بر حسب GB؛ افزایش اندازه در جا انجام می‌شود). | | `arianet_volume_attachment` | اتصال دیسک به سرور. | | `arianet_network` | شبکه خصوصی (`ip_range` و `subnet_ip_range` اختیاری برای اولین زیرشبکه). | | `arianet_network_subnet` | زیرشبکه اضافه برای یک شبکه. | | `arianet_network_route` | مسیر ایستا (`destination` ← `gateway`) در یک شبکه. | | `arianet_firewall` | فایروال با بلوک‌های `rule` و `apply_to` اختیاری (سرورها یا label selector). | | `arianet_firewall_attachment` | اعمال فایروال روی سرورها (`server_ids`) یا label selectorها (`label_selectors`). | | `arianet_floating_ip` | آدرس شناور IPv4 یا IPv6، با `server_id` و DNS معکوس (`dns_ptr`) اختیاری. | | `arianet_floating_ip_assignment` | اختصاص IP شناور به سرور. | | `arianet_load_balancer` | لود بالانسر (`type` مثل `lb11`، `algorithm`، `network_id` و `public_interface` اختیاری). | | `arianet_load_balancer_service` | یک listener: `protocol` (`tcp`، `http`، `https` با عبور مستقیم TLS)، پورت‌ها، `health_check` و گزینه‌های `http`. | | `arianet_load_balancer_target` | یک هدف: سرور، IP یا label selector، به صورت اختیاری از طریق شبکه خصوصی. | | `arianet_ssh_key` | یک کلید SSH حساب شما. | همه resourceها از `terraform import` پشتیبانی می‌کنند، مثلاً `terraform import arianet_server.web 123` (زیرمنابع شناسه ترکیبی دارند، مثل `21/80` برای سرویس لود بالانسر). resourceهایی که این ویژگی‌ها را دارند `labels` (map)، `project_id` (پیش‌فرض پروژه پیش‌فرض حساب؛ تغییر آن منبع را جابه‌جا می‌کند) و `protection_delete` (پیش از destroy باید `false` باشد) را می‌پذیرند. ### آرگومان‌های `arianet_server` | آرگومان | توضیح | |---|---| | `name`، `datacenter`، `plan_id`، `image` | الزامی. `datacenter` کد مکان است (`arianet_locations`) و `image` نامی مثل `ubuntu-24.04` یا ارجاع به اسنپ‌شات/پشتیبان (`arianet_image(s)`). تغییر `datacenter` یا `image` سرور را جایگزین می‌کند. | | `ssh_key_ids`، `ssh_keys` | شناسه کلیدهای ذخیره‌شده و/یا کلیدهای عمومی که هنگام ساخت نصب می‌شوند | | `user_data` | user data برای cloud-init | | `enable_ipv4`، `enable_ipv6` | آدرس‌های عمومی (IPv4 به طور پیش‌فرض فعال است) | | `firewall_ids`، `network_ids` | فایروال‌هایی که مستقیم اعمال می‌شوند؛ شبکه‌های خصوصی متصل هنگام ساخت | | `backups` | پشتیبان روزانه (هزینه جداگانه) | | `keep_backups` | هنگام destroy، پشتیبان‌های کامل‌شده نگه داشته شوند (پس از آن بر اساس GB هزینه دارند). به صورت `?keep_backups=true` ارسال می‌شود. | | `delete_snapshots` | هنگام destroy، اسنپ‌شات‌های سرور هم حذف شوند (در غیر این صورت باقی می‌مانند و هزینه دارند). به صورت `?delete_snapshots=true` ارسال می‌شود. | | `start_after_create`، `protection_delete`، `protection_rebuild`، `labels`، `project_id` | | فقط‌خواندنی: `ipv4_address`، `ipv6_address`، `status`، `disk_gb`، `locked`، `rescue_enabled` و `root_password` (حساس؛ فقط هنگام ساخت برمی‌گردد و وقتی کلید SSH استفاده شود و API رمزی برنگرداند خالی است). `keep_backups` / `delete_snapshots` را **پیش از** `terraform destroy` تنظیم و apply کنید؛ هنگام حذف سرور از state خوانده می‌شوند. ## Data sourceها | Data source | خروجی | |---|---| | `arianet_locations` | دیتاسنترها: `code`، `name`، `country`، `features`، `orderable` | | `arianet_plans` | پلن‌ها (به صورت اختیاری برای یک `datacenter`): `id`، `name`، `vcpu`، `ram_mb`، `disk_gb`، `traffic_gb`، `hourly_price`، `monthly_price`، `available` | | `arianet_images`، `arianet_image` | ایمیج‌ها بر اساس `type` (`system`، `app`، `snapshot`، `backup`)، `datacenter` و `label_selector`؛ `arianet_image` یکی را با `id`، `image`، `name` یا `most_recent` انتخاب می‌کند | | `arianet_pricing` | لیست قیمت عمومی (`/cloud/v1/public/pricing`): `server_types` با قیمت هر مکان، بقیه `resources`، `vat_included` | | `arianet_server_costs` | `GET /servers/{id}/costs`: ردیف‌های `lines`، `totals`، `snapshots`، `kept_backups` | | `arianet_load_balancer_types` | انواع لود بالانسر و محدودیت‌های آن‌ها | | `arianet_server`، `arianet_network` | یافتن منبع موجود با `id`، `name` یا `label_selector` | | `arianet_ssh_key` | یافتن یکی از کلیدهای SSH شما با `id`، `name` یا `fingerprint` | ## نمونه کامل یک شبکه خصوصی، سه سرور وب پشت یک لود بالانسر، فایروالی که از برچسب `role=web` پیروی می‌کند و یک دیسک داده: ```hcl terraform { required_providers { arianet = { source = "ariaservice/arianet" version = "~> 0.1" } } } provider "arianet" {} # token from ARIANET_TOKEN locals { datacenter = "ovh" } data "arianet_plans" "dc" { datacenter = local.datacenter } resource "arianet_ssh_key" "me" { name = "laptop" public_key = file("~/.ssh/id_ed25519.pub") } resource "arianet_network" "private" { name = "private" datacenter = local.datacenter ip_range = "10.0.0.0/16" subnet_ip_range = "10.0.1.0/24" } resource "arianet_server" "web" { count = 3 name = "web-${count.index + 1}" datacenter = local.datacenter plan_id = data.arianet_plans.dc.plans[0].id image = "ubuntu-24.04" ssh_key_ids = [arianet_ssh_key.me.id] network_ids = [arianet_network.private.id] labels = { role = "web" } user_data = <<-EOT #cloud-config packages: [nginx] EOT } resource "arianet_firewall" "web" { name = "web" rule { direction = "in" protocol = "tcp" port = "22" source_ips = ["203.0.113.4/32"] } rule { direction = "in" protocol = "tcp" port = "80" source_ips = ["0.0.0.0/0", "::/0"] } apply_to = [{ label_selector = "role=web" }] } resource "arianet_load_balancer" "web" { name = "web" datacenter = local.datacenter type = "lb11" algorithm = "round_robin" network_id = arianet_network.private.id } resource "arianet_load_balancer_service" "http" { load_balancer_id = arianet_load_balancer.web.id protocol = "http" listen_port = 80 destination_port = 80 health_check = { protocol = "http" port = 80 interval = 10 timeout = 5 retries = 3 http = { path = "/" status_codes = ["2??"] } } } resource "arianet_load_balancer_target" "web" { load_balancer_id = arianet_load_balancer.web.id type = "label_selector" label_selector = "role=web" use_private_ip = true } resource "arianet_volume" "data" { name = "data" datacenter = local.datacenter size = 50 filesystem = "ext4" } resource "arianet_volume_attachment" "data" { volume_id = arianet_volume.data.id server_id = arianet_server.web[0].id } data "arianet_server_costs" "web1" { server_id = arianet_server.web[0].id } output "load_balancer_ip" { value = arianet_load_balancer.web.ipv4 } output "web1_monthly_cost" { value = data.arianet_server_costs.web1.totals } ``` ```bash export ARIANET_TOKEN="..." terraform init terraform plan terraform apply ``` قیمت‌ها پیش از apply: `curl -s https://api.ariaservice.net/cloud/v1/public/pricing` یا `arianet cloud pricing` (بدون نیاز به توکن). ## همچنین ببینید - [وب سرویس ابر](https://docs.ariaservice.net/cloud-api) · [CLI](https://docs.ariaservice.net/cli) (`arianet cloud ...`) - مستندات هر resource در [رجیستری Terraform](https://registry.terraform.io/providers/ariaservice/arianet/latest/docs) --- title: "مرجع API" description: "همه وب سرویس‌های آریانت در یک نگاه - آدرس پایه، سند OpenAPI، مرجع تعاملی، دسترسی‌ها و راهنمای هر کدام، به همراه ساخت کلاینت از روی OpenAPI." url: https://docs.ariaservice.net/api-reference markdown: https://docs.ariaservice.net/api-reference.md language: fa --- # مرجع API هر وب سرویس آریانت یک **سند OpenAPI** دارد که همه endpointها، پارامترها، بدنه‌ها، پاسخ‌ها و کدهای خطا را توصیف می‌کند. مرجع تعاملی از روی همین سند ساخته می‌شود و می‌توانید در آن endpointها را جستجو کنید. | وب سرویس | آدرس پایه | مرجع تعاملی | OpenAPI | Scopeها | راهنما | |---|---|---|---|---|---| | ابر آریانت | `https://api.ariaservice.net/cloud/v1` | [مرجع](https://docs.ariaservice.net/cloud-api-reference) | [JSON](https://api.ariaservice.net/cloud/v1/openapi.json) | `cloud:servers:*` | [ابر](https://docs.ariaservice.net/cloud-api) | | سرور مجازی (VPS) | `https://api.ariaservice.net/api/v1` | [مرجع](https://docs.ariaservice.net/vps-api-reference) | [YAML](pathname:///openapi.yaml) | `servers:*`، `regions:read`، ... | [VPS](https://docs.ariaservice.net/api-endpoints) | | VPS منطقه‌ای | `https://api.ariaservice.net/vps/v1` | [مرجع](https://docs.ariaservice.net/regional-vps-api-reference) | [JSON](https://api.ariaservice.net/vps/v1/openapi.json) | `vps:servers:*` | [VPS منطقه‌ای](https://docs.ariaservice.net/regional-vps-api) | | هاستینگ | `https://api.ariaservice.net/hosting/v1` | [مرجع](https://docs.ariaservice.net/hosting-api-reference) | [JSON](https://api.ariaservice.net/hosting/v1/openapi.json) | `hosting:accounts:*` | [هاستینگ](https://docs.ariaservice.net/hosting-api) | | سرور اختصاصی | `https://api.ariaservice.net/baremetal/v1` | [مرجع](https://docs.ariaservice.net/baremetal-api-reference) | [JSON](https://api.ariaservice.net/baremetal/v1/openapi.json) | `baremetal:servers:*` | [سرور اختصاصی](https://docs.ariaservice.net/baremetal-api) | | پیامک | `https://api.ariaservice.net/sms/v1` | [مرجع](https://docs.ariaservice.net/sms-api-reference) | [JSON](https://api.ariaservice.net/sms/v1/openapi.json) | `sms:*` | [پیامک](https://docs.ariaservice.net/sms/api) | قواعد مشترک (خطاها، محدودیت نرخ، صفحه‌بندی، عملیات ناهمگام) در [مبانی وب سرویس](https://docs.ariaservice.net/api-conventions) آمده است. ## ساخت کلاینت از روی OpenAPI با هر ابزار OpenAPI می‌توانید برای زبان خودتان کلاینت بسازید. نمونه با [OpenAPI Generator](https://openapi-generator.tech): ```bash npx @openapitools/openapi-generator-cli generate \ -i https://api.ariaservice.net/cloud/v1/openapi.json \ -g python -o ./arianet-cloud-client ``` یا وارد کردن سند در Postman / Insomnia: **Import ← Link** و آدرس سند OpenAPI را بدهید، سپس در تنظیمات احراز هویت نوع **Bearer Token** را با توکن خود انتخاب کنید. ## نسخه‌های این سایت مرجع‌های تعاملی از نسخه‌ای از سند می‌خوانند که همراه این سایت منتشر می‌شود (وب سرویس‌ها هدر CORS نمی‌فرستند). منبع حقیقت، سندی است که خود وب سرویس در `/openapi.json` برمی‌گرداند.