انتشار · بدون KYC
میزبانی Ghost روی VPS آفشور
Ghost یک پلتفرم انتشار سریع و مدرن است که میتوانید در عرض چند دقیقه روی یک VPS آفشور بهصورت خودمیزبان (self-host) راهاندازی کنید و نوشتهها، مشترکین و پرداختهای خود را از فضای ابری شرکتهای ثالث دور نگه دارید.
این چیست
Ghost یک سیستم مدیریت محتوای (CMS) متنباز مبتنی بر Node.js است که برای وبلاگها، خبرنامهها و سایتهای عضویتی طراحی شده و از اشتراک ایمیلی بومی، سطوح پرداختی و ویرایشگر Markdown ساده و تمیز پشتیبانی میکند. این برنامه بهصورت ایمیج رسمی Docker با پشتیبانی MySQL 8 عرضه میشود و سایت شما را از طریق پورت اختصاصی خودش، پشت یک reverse proxy، سرویسدهی میکند.
چرا میزبانی آفشور
اجرای Ghost روی یک VPS بدون KYC که با ارز دیجیتال پرداخت میشود، یعنی نشریهی شما به حسابی وابسته نیست که بتوان هویت آن را ردیابی کرد، از پلتفرم حذفش کرد یا در صورت درخواست تحویل داد. با موقعیتهای آفشور در ردهٔ حریم خصوصی و پهنای باند نامحدود، کنترل کامل محتوا، فهرست اعضا و واریزیهای Stripe را در دست خود نگه میدارید، بدون آنکه ارائهدهندهٔ هاست دروازهبانِ کلمات شما باشد.
استقرار
یک پیکربندی مرجع کاربردی
این را روی یک instance تازه از ChainVPS کپی کنید. جایگزینها را با مقادیر واقعی جایگزین کنید، سپس آن را راهاندازی کنید.
services:
ghost:
image: ghost:5-alpine
restart: always
ports:
# Bind to localhost only; terminate TLS in a reverse proxy (nginx/Caddy)
- "127.0.0.1:2368:2368"
environment:
url: https://blog.example.com
NODE_ENV: production
database__client: mysql
database__connection__host: db
database__connection__port: 3306
database__connection__user: ghost
database__connection__password: CHANGE_ME_DB_PASSWORD
database__connection__database: ghostdb
# Optional outbound SMTP for member/newsletter email:
# mail__transport: SMTP
# mail__options__host: smtp.example.com
# mail__options__port: 587
# mail__options__auth__user: [email protected]
# mail__options__auth__pass: CHANGE_ME_SMTP
volumes:
- ghost-content:/var/lib/ghost/content
depends_on:
- db
db:
image: mysql:8.0
restart: always
command: --default-authentication-plugin=caching_sha2_password
environment:
MYSQL_ROOT_PASSWORD: CHANGE_ME_ROOT_PASSWORD
MYSQL_DATABASE: ghostdb
MYSQL_USER: ghost
MYSQL_PASSWORD: CHANGE_ME_DB_PASSWORD
volumes:
- ghost-db:/var/lib/mysql
volumes:
ghost-content:
ghost-db:
# Deploy:
# apt-get update && apt-get install -y docker.io docker-compose-v2
# docker compose up -d
# Then point a reverse proxy (Caddy/nginx) at 127.0.0.1:2368 to add HTTPS,
# and set `url:` to your real https:// domain before first boot.
فایروال
پورتهایی که باید باز شوند
| پورت | پروتکل | هدف |
|---|---|---|
| 2368 | TCP | پورت اپلیکیشن HTTP گوست - آن را روی 127.0.0.1 محدود نگه دارید و از طریق reverse proxy سرویسدهی کنید؛ هرگز آن را بهصورت عمومی در معرض قرار ندهید |
| 443 | TCP | HTTPS رو به عموم از طریق reverse proxy شما (Caddy/nginx) |
| 80 | TCP | HTTP برای صدور گواهی ACME/Let's Encrypt و ریدایرکت به 443 |
| 3306 | TCP | MySQL - فقط در شبکهی داخلی Docker؛ هرگز آن را روی هاست منتشر نکنید |
تعیین اندازه مناسب
به کدام پلن نیاز دارید
VPS Nano/Small (1-2 vCPU, 2 GB RAM)
وبلاگ شخصی یا خبرنامهی کوچک. Ghost و MySQL بهراحتی روی این پلن جا میشوند؛ برای اطمینان بیشتر 1 گیگابایت فضای swap اضافه کنید.
VPS Pro (2-4 vCPU, 4-8 GB RAM)
نشریهای فعال با عضویتهای پولی، پستهای پر از تصویر و ارسال منظم ایمیل. فضای کافی برای کش MySQL و افزایش ناگهانی ترافیک.
Dedicated (dedicated cores, 16 GB+ RAM, NVMe)
سایت پرترافیک یا مجموعهای از چند وبلاگ با کتابخانههای رسانهای بزرگ؛ MySQL را ایزوله کنید و رسانه را از طریق کش سرویس دهید تا تأخیر (latency) ثابت بماند.
بهترین مکانها: برای نشریهای که باید صرفنظر از فشارهای حذف محتوا آنلاین بماند، یکی از موقعیتهای سطح حریم خصوصی ChainVPS را انتخاب کنید: ایسلند (IS)، سوئیس (CH)، رومانی (RO)، مولداوی (MD)، هلند (NL) یا لوکزامبورگ (LU). سوئیس و ایسلند از قوانین قوی حمایت از مطبوعات/آزادی بیان و حریم خصوصی برخوردارند؛ هلند و لوکزامبورگ دسترسی کمتأخیر به مخاطبان اروپایی را با پهنای باند نامحدود برای سایتهای پر از تصویر و خبرنامه فراهم میکنند.
آن را قفل کنید
چکلیست سختسازی امنیتی
- هرگز پورت 2368 یا 3306 را روی 0.0.0.0 منتشر نکنید. Ghost را روی 127.0.0.1 محدود نگه دارید و MySQL را فقط در شبکهی داخلی Docker قرار دهید؛ سایت را منحصراً از طریق یک reverse proxy با TLS در معرض دید قرار دهید (Caddy بهصورت خودکار گواهیهای Let's Encrypt صادر میکند، یا از nginx + certbot استفاده کنید).
- متغیر محیطی `url` را پیش از نخستین راهاندازی روی دامنهی واقعی https:// خود تنظیم کنید. Ghost این URL را در لینکهای منابع جایگذاری میکند و تغییر آن بعداً نیازمند بهروزرسانی پایگاهداده و پاکسازی کش است.
- پنل مدیریت را قفل کنید: در راهاندازی اولیه یک رمز عبور طولانی و یکتا اعمال کنید و در صورتی که از موقعیتهای ثابت منتشر میکنید، دسترسی به /ghost/ را با allowlist بر اساس IP یا basic-auth در سطح پروکسی محدود کنید. احراز هویت دومرحلهای (2FA) داخلی کارکنان Ghost را فعال کنید.
- هر دو volume را طبق زمانبندی پشتیبانگیری کنید: از MySQL دامپ بگیرید (`docker compose exec db mysqldump -u ghost -p ghostdb`) و از volume محتوا (`/var/lib/ghost/content`، که تصاویر و قالبها را نگه میدارد) آرشیو تهیه کنید. نسخههای پشتیبان رمزنگاریشده را به فضای ذخیرهسازی ChainVPS یا خارج از سرور ارسال کنید.
- تگهای ایمیج را ثابت نگه دارید (ghost:5-alpine، mysql:8.0) و بهروزرسانی را آگاهانه با `docker compose pull && docker compose up -d` انجام دهید؛ پیش از پرش به نسخههای اصلی جدید Ghost، سازگاری قالب/یکپارچهسازی را تست کنید و محافظت DDoS که همراه پلن ارائه میشود را در لبهی شبکه (edge) فعال نگه دارید.
پرسشها
هاستینگ Ghost — سوالات متداول
آیا Ghost به MySQL نیاز دارد یا میتوانم از SQLite استفاده کنم؟
Ghost 5 بهطور رسمی برای محیط تولید به MySQL 8 نیاز دارد. فایل compose بالا بهصورت خودکار MySQL 8 را راهاندازی میکند. SQLite فقط برای توسعهی محلی پشتیبانی میشود و برای استقرار زنده و آفشور توصیه نمیشود.
چطور HTTPS اضافه کنم؟
خود Ghost روی پورت 2368 بهصورت HTTP ساده سرویس میدهد. یک reverse proxy جلوی آن قرار دهید - Caddy سادهترین گزینه است (بهصورت خودکار گواهیهای Let's Encrypt را صادر و تمدید میکند)، یا از nginx همراه با certbot استفاده کنید. آن را به 127.0.0.1:2368 اشاره دهید و مقدار `url` در Ghost را روی دامنهی https:// خود تنظیم کنید.
آیا میتوانم خبرنامه بفرستم بدون آنکه ردی از هویت من نزد شخص ثالث بماند؟
Ghost ایمیل اعضا را از طریق هر ارائهدهندهی SMTP یا Mailgun ارسال میکند. در یک پیکربندی متمرکز بر حریم خصوصی، از یک SMTP relay استفاده کنید که پرداخت با ارز دیجیتال یا ثبتنام حداقلی را میپذیرد و آن را از طریق متغیرهای محیطی mail__ پیکربندی کنید. ایمیل تراکنشی همچنان به یک دامنهی ارسال قابلتحویل با SPF/DKIM نیاز دارد.
به چه مقدار فضای دیسک نیاز دارم؟
هستهی Ghost بههمراه MySQL حجم کمی دارد (چند صد مگابایت). رشد واقعی از تصاویر و ویدیوهای آپلودشده در volume محتوا میآید. یک وبلاگ سبک روی 20-40 گیگابایت بهخوبی کار میکند؛ سایتهای پر از تصویر یا عضویتی باید برای ذخیرهسازی NVMe و پشتیبانگیری منظم از volume محتوا برنامهریزی کنند.
آیا سایت من در برابر افزایش ناگهانی ترافیک یا حملات DDoS دوام میآورد؟
پلنهای ChainVPS شامل محافظت DDoS در لبهی شبکه (edge) هستند و پهنای باند نامحدود است، بنابراین یک پست وایرال هزینهی اضافی به همراه نخواهد داشت. برای افزایش ناگهانی درخواستها، کشینگ در سطح پروکسی برای بازدیدهای صفحه را فعال کنید و در صورت مشاهدهی مداوم همزمانی بالا، به پلن VPS Pro یا اختصاصی مهاجرت کنید.
موارد بیشتر برای میزبانی شخصی
سایر استکهای تککلیکی
راهاندازی کنید Ghost
در 60 ثانیه آینده.
پهنای باند نامحدود · محافظت DDoS شامل است · 21 ارز دیجیتال · بدون KYC.