استقرار سایت
Hugo وبسایتهای استاتیک تولید میکند که امکان میزبانی انعطافپذیر را فراهم میسازد. این صفحه راهنماهایی برای استقرار سایت Hextra شما روی پلتفرمهای مختلف ارائه میدهد.
GitHub Pages
GitHub Pages روش توصیهشده برای استقرار و میزبانی رایگان وبسایت شماست.
اگر سایت را با استفاده از hextra-starter-template راهاندازی کردهاید، این قالب از پیش یک گردش کار GitHub Actions برای استقرار خودکار در GitHub Pages ارائه میدهد.
پیکربندی GitHub Actions
در زیر یک نمونه پیکربندی از hextra-starter-template آمده است:
# نمونه گردش کار برای ساخت و استقرار یک سایت Hugo در GitHub Pages
name: استقرار سایت Hugo در Pages
on:
# در push به شاخه پیشفرض اجرا میشود
push:
branches: ["main"]
# امکان اجرای دستی این گردش کار از تب Actions
workflow_dispatch:
# تنظیم مجوزهای GITHUB_TOKEN برای امکان استقرار در GitHub Pages
permissions:
contents: read
pages: write
id-token: write
# اجازه فقط یک استقرار همزمان، رد کردن اجراهای در صف بین اجرای در حال انجام و آخرین صف
# با این حال، اجراهای در حال انجام را لغو نکنید زیرا میخواهیم این استقرارها کامل شوند.
concurrency:
group: "pages"
cancel-in-progress: false
# پیشفرض bash
defaults:
run:
shell: bash
jobs:
# کار ساخت
build:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.147.7
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # دریافت تمام تاریخچه برای .GitInfo و .Lastmod
submodules: recursive
- name: راهاندازی Go
uses: actions/setup-go@v5
with:
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:
# برای حداکثر سازگاری با ماژولهای Hugo
HUGO_ENVIRONMENT: production
HUGO_ENV: production
run: |
hugo \
--gc --minify \
--baseURL "${{ steps.pages.outputs.base_url }}/"
- name: آپلود آرتیفکت
uses: actions/upload-pages-artifact@v3
with:
path: ./public
# کار استقرار
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: استقرار در GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

به طور پیشفرض، گردش کار GitHub Actions فوق .github/workflows/pages.yaml
فرض میکند که سایت در https://<USERNAME>.github.io/<REPO>/
مستقر میشود.
اگر در https://<USERNAME>.github.io/
مستقر میکنید، --baseURL
را اصلاح کنید:
|
|
اگر در دامنه خود مستقر میکنید، لطفاً مقدار --baseURL
را متناسب با آن تغییر دهید.
Cloudflare Pages
- کد منبع سایت را در یک مخزن Git (مثلاً GitHub) قرار دهید.
- به داشبورد Cloudflare وارد شوید و حساب خود را انتخاب کنید.
- در صفحه اصلی حساب، Workers & Pages > Create application > Pages > Connect to Git را انتخاب کنید.
- مخزن را انتخاب کنید و در بخش Set up builds and deployments اطلاعات زیر را ارائه دهید:
تنظیمات | مقدار |
---|---|
شاخه تولید | main |
دستور ساخت | hugo --gc --minify |
دایرکتوری ساخت | public |
برای جزئیات بیشتر، بررسی کنید:
Netlify
- کد خود را به مخزن Git (GitHub, GitLab و غیره) push کنید.
- پروژه را به Netlify وارد کنید.
- اگر از [hextra-starter-template][hextra-starter-template] استفاده نمیکنید، موارد زیر را به صورت دستی پیکربندی کنید:
- دستور ساخت را روی
hugo --gc --minify
تنظیم کنید. - دایرکتوری انتشار را روی
public
مشخص کنید. - متغیر محیطی
HUGO_VERSION
را اضافه کرده و روی0.147.7
تنظیم کنید، یا آن را در فایلnetlify.toml
مشخص کنید.
- دستور ساخت را روی
- استقرار دهید!
برای جزئیات بیشتر، Hugo در Netlify را بررسی کنید.
Vercel
- کد خود را به مخزن Git (GitHub, GitLab و غیره) push کنید.
- به داشبورد Vercel بروید و پروژه Hugo خود را وارد کنید.
- پروژه را پیکربندی کنید، Hugo را به عنوان پیشتنظیم فریمورک انتخاب کنید.
- دستور ساخت و دستور نصب را بازنویسی کنید:
- دستور ساخت را روی
hugo --gc --minify
تنظیم کنید. - دستور نصب را روی
yum install golang
تنظیم کنید.
- دستور ساخت را روی