2024-02-20 01:10:50 +03:30
---
2025-08-14 22:07:15 +08:00
title: استقرار سایت
2024-02-20 01:10:50 +03:30
prev: /docs/guide/shortcodes
next: /docs/advanced
---
2025-08-14 22:07:15 +08:00
Hugo وبسایتهای استاتیک تولید میکند که امکان میزبانی انعطافپذیر را فراهم میسازد.
این صفحه راهنماهایی برای استقرار سایت Hextra شما روی پلتفرمهای مختلف ارائه میدهد.
2024-02-20 01:10:50 +03:30
<!-- more -->
2025-08-14 22:07:15 +08:00
## GitHub Pages
2024-02-20 01:10:50 +03:30
2025-08-14 22:07:15 +08:00
[GitHub Pages ](https://docs.github.com/pages ) روش توصیهشده برای استقرار و میزبانی رایگان وبسایت شماست.
2024-02-20 01:10:50 +03:30
2025-08-14 22:07:15 +08:00
اگر سایت را با استفاده از [hextra-starter-template ](https://github.com/imfing/hextra-starter-template ) راهاندازی کردهاید، این قالب از پیش یک گردش کار GitHub Actions برای استقرار خودکار در GitHub Pages ارائه میدهد.
2024-02-20 01:10:50 +03:30
2025-08-14 22:07:15 +08:00
{{% details title="پیکربندی GitHub Actions" closed="true" %}}
2024-02-20 01:10:50 +03:30
2025-08-14 22:07:15 +08:00
در زیر یک نمونه پیکربندی از [hextra-starter-template ](https://github.com/imfing/hextra-starter-template ) آمده است:
2024-02-20 01:10:50 +03:30
```yaml {filename=".github/workflows/pages.yaml"}
2025-08-14 22:07:15 +08:00
# نمونه گردش کار برای ساخت و استقرار یک سایت Hugo در GitHub Pages
name: استقرار سایت Hugo در Pages
2024-02-20 01:10:50 +03:30
on:
2025-08-14 22:07:15 +08:00
# در push به شاخه پیشفرض اجرا میشود
2024-02-20 01:10:50 +03:30
push:
branches: ["main"]
2025-08-14 22:07:15 +08:00
# امکان اجرای دستی این گردش کار از تب Actions
2024-02-20 01:10:50 +03:30
workflow_dispatch:
2025-08-14 22:07:15 +08:00
# تنظیم مجوزهای GITHUB_TOKEN برای امکان استقرار در GitHub Pages
2024-02-20 01:10:50 +03:30
permissions:
contents: read
pages: write
id-token: write
2025-08-14 22:07:15 +08:00
# اجازه فقط یک استقرار همزمان، رد کردن اجراهای در صف بین اجرای در حال انجام و آخرین صف
# با این حال، اجراهای در حال انجام را لغو نکنید زیرا میخواهیم این استقرارها کامل شوند.
2024-02-20 01:10:50 +03:30
concurrency:
group: "pages"
cancel-in-progress: false
2025-08-14 22:07:15 +08:00
# پیشفرض bash
2024-02-20 01:10:50 +03:30
defaults:
run:
shell: bash
jobs:
2025-08-14 22:07:15 +08:00
# کار ساخت
2024-02-20 01:10:50 +03:30
build:
runs-on: ubuntu-latest
env:
2025-08-14 22:07:15 +08:00
HUGO_VERSION: 0.147.7
2024-02-20 01:10:50 +03:30
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
2024-02-20 01:10:50 +03:30
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
2024-02-20 01:10:50 +03:30
env:
2025-08-14 22:07:15 +08:00
# برای حداکثر سازگاری با ماژولهای Hugo
2024-02-20 01:10:50 +03:30
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
2024-02-20 01:10:50 +03:30
with:
path: ./public
2025-08-14 22:07:15 +08:00
# کار استقرار
2024-02-20 01:10:50 +03:30
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
2024-02-20 01:10:50 +03:30
id: deployment
2025-08-14 22:07:15 +08:00
uses: actions/deploy-pages@v4
2024-02-20 01:10:50 +03:30
```
{{% /details %}}
{{< callout > }}
2025-08-14 22:07:15 +08:00
در تنظیمات مخزن، بخش **Pages** > **Build and deployment** > **Source** را روی **GitHub Actions** تنظیم کنید:
2024-02-20 01:10:50 +03:30

{{< / callout > }}
2025-08-14 22:07:15 +08:00
به طور پیشفرض، گردش کار GitHub Actions فوق `.github/workflows/pages.yaml` فرض میکند که سایت در `https://<USERNAME>.github.io/<REPO>/` مستقر میشود.
2024-02-20 01:10:50 +03:30
2025-08-14 22:07:15 +08:00
اگر در `https://<USERNAME>.github.io/` مستقر میکنید، `--baseURL` را اصلاح کنید:
2024-02-20 01:10:50 +03:30
```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` را متناسب با آن تغییر دهید.
2024-02-20 01:10:50 +03:30
2025-08-14 22:07:15 +08:00
## Cloudflare Pages
2024-02-20 01:10:50 +03:30
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** اطلاعات زیر را ارائه دهید:
2024-02-20 01:10:50 +03:30
2025-08-14 22:07:15 +08:00
| تنظیمات | مقدار |
| ---------------- | -------------------- |
| شاخه تولید | `main` |
| دستور ساخت | `hugo --gc --minify` |
| دایرکتوری ساخت | `public` |
2024-02-20 01:10:50 +03:30
برای جزئیات بیشتر، بررسی کنید:
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/ ).
2024-02-20 01:10:50 +03:30
## Netlify
2025-08-14 22:07:15 +08:00
1. کد خود را به مخزن Git (GitHub, GitLab و غیره) push کنید.
2. [پروژه را به Netlify وارد کنید ](https://app.netlify.com/start ).
2024-02-20 01:10:50 +03:30
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. استقرار دهید!
2024-02-20 01:10:50 +03:30
2025-08-14 22:07:15 +08:00
برای جزئیات بیشتر، [Hugo در Netlify ](https://docs.netlify.com/integrations/frameworks/hugo/ ) را بررسی کنید.
2024-02-20 01:10:50 +03:30
## 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` تنظیم کنید.
2024-02-20 01:10:50 +03:30
2025-08-14 22:07:15 +08:00
