Files
hextra_mirror/exampleSite/content/docs/guide/deploy-site.fa.md

164 lines
7.1 KiB
Markdown
Raw Normal View History

---
2025-08-14 22:07:15 +08:00
title: استقرار سایت
prev: /docs/guide/shortcodes
next: /docs/advanced
---
2025-08-14 22:07:15 +08:00
Hugo وبسایت‌های استاتیک تولید می‌کند که امکان میزبانی انعطاف‌پذیر را فراهم می‌سازد.
این صفحه راهنماهایی برای استقرار سایت Hextra شما روی پلتفرم‌های مختلف ارائه می‌دهد.
<!--more-->
2025-08-14 22:07:15 +08:00
## GitHub Pages
2025-08-14 22:07:15 +08:00
[GitHub Pages](https://docs.github.com/pages) روش توصیه‌شده برای استقرار و میزبانی رایگان وبسایت شماست.
2025-08-14 22:07:15 +08:00
اگر سایت را با استفاده از [hextra-starter-template](https://github.com/imfing/hextra-starter-template) راه‌اندازی کرده‌اید، این قالب از پیش یک گردش کار GitHub Actions برای استقرار خودکار در GitHub Pages ارائه می‌دهد.
2025-08-14 22:07:15 +08:00
{{% details title="پیکربندی GitHub Actions" closed="true" %}}
2025-08-14 22:07:15 +08:00
در زیر یک نمونه پیکربندی از [hextra-starter-template](https://github.com/imfing/hextra-starter-template) آمده است:
```yaml {filename=".github/workflows/pages.yaml"}
2025-08-14 22:07:15 +08:00
# نمونه گردش کار برای ساخت و استقرار یک سایت Hugo در GitHub Pages
name: استقرار سایت Hugo در Pages
on:
2025-08-14 22:07:15 +08:00
# در push به شاخه پیش‌فرض اجرا می‌شود
push:
branches: ["main"]
2025-08-14 22:07:15 +08:00
# امکان اجرای دستی این گردش کار از تب Actions
workflow_dispatch:
2025-08-14 22:07:15 +08:00
# تنظیم مجوزهای GITHUB_TOKEN برای امکان استقرار در GitHub Pages
permissions:
contents: read
pages: write
id-token: write
2025-08-14 22:07:15 +08:00
# اجازه فقط یک استقرار همزمان، رد کردن اجراهای در صف بین اجرای در حال انجام و آخرین صف
# با این حال، اجراهای در حال انجام را لغو نکنید زیرا می‌خواهیم این استقرارها کامل شوند.
concurrency:
group: "pages"
cancel-in-progress: false
2025-08-14 22:07:15 +08:00
# پیش‌فرض bash
defaults:
run:
shell: bash
jobs:
2025-08-14 22:07:15 +08:00
# کار ساخت
build:
runs-on: ubuntu-latest
env:
2025-08-14 22:07:15 +08:00
HUGO_VERSION: 0.147.7
steps:
- name: Checkout
uses: actions/checkout@v4
with:
2025-08-14 22:07:15 +08:00
fetch-depth: 0 # دریافت تمام تاریخچه برای .GitInfo و .Lastmod
submodules: recursive
- name: راه‌اندازی Go
uses: actions/setup-go@v5
with:
2025-08-14 22:07:15 +08:00
go-version: '1.22'
- name: راه‌اندازی Pages
id: pages
uses: actions/configure-pages@v4
- name: راه‌اندازی Hugo
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: ساخت با Hugo
env:
2025-08-14 22:07:15 +08:00
# برای حداکثر سازگاری با ماژول‌های Hugo
HUGO_ENVIRONMENT: production
HUGO_ENV: production
run: |
hugo \
--gc --minify \
2025-08-14 22:07:15 +08:00
--baseURL "${{ steps.pages.outputs.base_url }}/"
- name: آپلود آرتیفکت
uses: actions/upload-pages-artifact@v3
with:
path: ./public
2025-08-14 22:07:15 +08:00
# کار استقرار
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
2025-08-14 22:07:15 +08:00
- name: استقرار در GitHub Pages
id: deployment
2025-08-14 22:07:15 +08:00
uses: actions/deploy-pages@v4
```
{{% /details %}}
{{< callout >}}
2025-08-14 22:07:15 +08:00
در تنظیمات مخزن، بخش **Pages** > **Build and deployment** > **Source** را روی **GitHub Actions** تنظیم کنید:
![](https://user-images.githubusercontent.com/5097752/266784808-99676430-884e-42ab-b901-f6534a0d6eee.png)
{{< /callout >}}
2025-08-14 22:07:15 +08:00
به طور پیش‌فرض، گردش کار GitHub Actions فوق `.github/workflows/pages.yaml` فرض می‌کند که سایت در `https://<USERNAME>.github.io/<REPO>/` مستقر می‌شود.
2025-08-14 22:07:15 +08:00
اگر در `https://<USERNAME>.github.io/` مستقر می‌کنید، `--baseURL` را اصلاح کنید:
```yaml {filename=".github/workflows/pages.yaml",linenos=table,linenostart=54,hl_lines=[4]}
run: |
hugo \
--gc --minify \
--baseURL "https://${{ github.repository_owner }}.github.io/"
```
2025-08-14 22:07:15 +08:00
اگر در دامنه خود مستقر می‌کنید، لطفاً مقدار `--baseURL` را متناسب با آن تغییر دهید.
2025-08-14 22:07:15 +08:00
## Cloudflare Pages
2025-08-14 22:07:15 +08:00
1. کد منبع سایت را در یک مخزن Git (مثلاً GitHub) قرار دهید.
2. به [داشبورد Cloudflare](https://dash.cloudflare.com/) وارد شوید و حساب خود را انتخاب کنید.
3. در صفحه اصلی حساب، **Workers & Pages** > **Create application** > **Pages** > **Connect to Git** را انتخاب کنید.
4. مخزن را انتخاب کنید و در بخش **Set up builds and deployments** اطلاعات زیر را ارائه دهید:
2025-08-14 22:07:15 +08:00
| تنظیمات | مقدار |
| ---------------- | -------------------- |
| شاخه تولید | `main` |
| دستور ساخت | `hugo --gc --minify` |
| دایرکتوری ساخت | `public` |
برای جزئیات بیشتر، بررسی کنید:
2025-08-14 22:07:15 +08:00
- [استقرار یک سایت Hugo](https://developers.cloudflare.com/pages/framework-guides/deploy-a-hugo-site/#deploy-with-cloudflare-pages).
- [پشتیبانی زبان و ابزارها](https://developers.cloudflare.com/pages/platform/language-support-and-tools/).
## Netlify
2025-08-14 22:07:15 +08:00
1. کد خود را به مخزن Git (GitHub, GitLab و غیره) push کنید.
2. [پروژه را به Netlify وارد کنید](https://app.netlify.com/start).
3. اگر از [hextra-starter-template][hextra-starter-template] استفاده نمی‌کنید، موارد زیر را به صورت دستی پیکربندی کنید:
2025-08-14 22:07:15 +08:00
- دستور ساخت را روی `hugo --gc --minify` تنظیم کنید.
- دایرکتوری انتشار را روی `public` مشخص کنید.
- متغیر محیطی `HUGO_VERSION` را اضافه کرده و روی `0.147.7` تنظیم کنید، یا آن را در فایل `netlify.toml` مشخص کنید.
4. استقرار دهید!
2025-08-14 22:07:15 +08:00
برای جزئیات بیشتر، [Hugo در Netlify](https://docs.netlify.com/integrations/frameworks/hugo/) را بررسی کنید.
## Vercel
2025-08-14 22:07:15 +08:00
1. کد خود را به مخزن Git (GitHub, GitLab و غیره) push کنید.
2. به [داشبورد Vercel](https://vercel.com/dashboard) بروید و پروژه Hugo خود را وارد کنید.
3. پروژه را پیکربندی کنید، Hugo را به عنوان پیش‌تنظیم فریمورک انتخاب کنید.
4. دستور ساخت و دستور نصب را بازنویسی کنید:
1. دستور ساخت را روی `hugo --gc --minify` تنظیم کنید.
2. دستور نصب را روی `yum install golang` تنظیم کنید.
2025-08-14 22:07:15 +08:00
![پیکربندی استقرار Vercel](https://github.com/imfing/hextra/assets/5097752/887d949b-8d05-413f-a2b4-7ab92192d0b3)