SSD Nodes Learn Hosting plans →
คู่มือ Matt Connorโดย Matt Connor · อัปเดตเมื่อ 2026-08-07

วิธีติดตั้ง FreshRSS บน Ubuntu VPS ด้วย Apache และ MariaDB

คู่มือติดตั้ง FreshRSS 1.29.1 บน Ubuntu 24.04 ตั้งแต่การตั้งค่า Apache Virtual Host การกำหนดสิทธิ์ไฟล์ ไปจนถึงการตั้งค่า cron job เพื่ออัปเดตฟีดและแก้ปัญหา Mobile API

สิ่งที่คุณกำลังสร้าง

RSS reader แบบ self-hosted คือโปรแกรมอ่านฟีดที่ทำงานบนเซิร์ฟเวอร์ของคุณเอง เพื่อป้องกันไม่ให้บุคคลอื่นปิดการใช้งานหรือเปลี่ยนแปลงเนื้อหาที่คุณเห็น คู่มือนี้จะแนะนำการติดตั้ง FreshRSS บน Ubuntu 24.04 VPS โดยใช้ Apache เป็นหน้าด่าน, PHP เป็นตัวประมวลผลเบื้องหลัง, MariaDB สำหรับจัดเก็บข้อมูล และ cron job หนึ่งรายการเพื่อดึงบทความใหม่ RSS (Really Simple Syndication) คือรูปแบบไฟล์ที่เว็บไซต์เผยแพร่เพื่อให้ซอฟต์แวร์สามารถอ่านบทความได้ FreshRSS เป็นแอปพลิเคชัน PHP ที่ทำหน้าที่รวบรวมไฟล์เหล่านั้น จัดเก็บบทความ และแสดงผลผ่านหน้าเว็บ รวมถึงมี API (Application Programming Interface) สำหรับเชื่อมต่อกับแอปบนมือถือ

การติดตั้งมีขนาดเล็ก: แตกไฟล์ release, สร้างฐานข้อมูล, เขียนไฟล์ virtual host และรันตัวติดตั้งผ่าน command line งานส่วนใหญ่ในขั้นตอนถัดไปคือสิ่งที่ผู้ใช้มักทำผิดพลาด ได้แก่ การตั้งค่า refresh job, การจัดการ encoded slashes สำหรับ mobile API และการกำหนดสิทธิ์ความเป็นเจ้าของไฟล์

FreshRSS 1.29.1 เป็น release ปัจจุบัน ณ เดือนกรกฎาคม 2026 และต้องการ PHP 8.1 หรือใหม่กว่า Ubuntu 24.04 มาพร้อมกับ PHP 8.3 ดังนั้นแพ็กเกจจาก distribution จึงเพียงพอและคุณไม่จำเป็นต้องใช้ repository ของ PHP จากภายนอก

เริ่มต้นจาก LAMP stack ที่ใช้งานได้

FreshRSS เป็นแอปพลิเคชัน PHP ทั่วไป จึงต้องการพื้นฐานเดียวกันกับแอปพลิเคชันอื่น หากคุณยังไม่ได้สร้างพื้นฐานดังกล่าว ให้ทำตาม การตั้งค่า LAMP stack สำหรับ Ubuntu 24.04 ก่อนแล้วจึงกลับมาที่นี่ สรุปโดยย่อคือ:

sudo apt update
sudo apt install -y apache2 mariadb-server php libapache2-mod-php
sudo systemctl enable --now apache2 mariadb

systemctl status apache2 ควรแสดงผลเป็น active (running) หาก Apache ไม่เริ่มทำงาน สาเหตุทั่วไปคือมีกระบวนการอื่นใช้งานพอร์ต 80 อยู่ ซึ่ง sudo ss -ltnp | grep :80 จะระบุชื่อกระบวนการนั้นให้ทราบ

ส่วนขยาย PHP ที่ FreshRSS จำเป็นต้องใช้

FreshRSS กำหนดให้ libxml, cURL, JSON, PDO_MySQL, PCRE และ ctype เป็นส่วนขยายที่จำเป็น นอกจากนี้ยังต้องการ mbstring, iconv, Zlib, ZipArchive และ GMP (สำหรับระบบ 32 บิต) บน Ubuntu ส่วนขยายเหล่านี้จะมาในรูปแบบแพ็กเกจของระบบดังนี้:

sudo apt install -y php-curl php-mbstring php-xml php-zip php-mysql php-intl php-gmp
sudo systemctl restart apache2

ตรวจสอบว่า PHP โหลดส่วนขยายใดอยู่จริงด้วย php -m หากส่วนขยายใดขาดหายไป ตัวติดตั้งจะไม่หยุดทำงานทันที แต่จะไปหยุดที่หน้าจอตรวจสอบความพร้อมใช้งานพร้อมแสดงข้อความแจ้งเตือนสีแดงระบุชื่อส่วนขยายที่ขาด ซึ่งอาจทำให้ผู้ใช้สับสนได้หากมาพบปัญหาในขั้นตอนนี้ ดังนั้นควรตรวจสอบให้เรียบร้อยตั้งแต่ตอนนี้ การรีสตาร์ท Apache เป็นสิ่งสำคัญเนื่องจาก libapache2-mod-php จะโหลด PHP ไว้ภายในกระบวนการทำงานของ Apache ดังนั้นส่วนขยายที่เพิ่งติดตั้งใหม่จะไม่ถูกมองเห็นโดยเว็บเซิร์ฟเวอร์จนกว่าจะทำการรีสตาร์ทก่อน

ดาวน์โหลดรุ่นที่เผยแพร่

ติดตั้ง FreshRSS ไว้นอกไดเรกทอรี web root เริ่มต้น แล้วกำหนดค่า Apache ให้ชี้ไปยังตำแหน่งดังกล่าว การแยกไดเรกทอรีของแอปพลิเคชันออกจาก document root ช่วยให้มั่นใจได้ว่าจะมีเพียงโฟลเดอร์ public เท่านั้นที่สามารถเข้าถึงได้ผ่าน HTTP

cd /tmp
curl -fsSLO https://github.com/FreshRSS/FreshRSS/archive/refs/tags/1.29.1.tar.gz
tar xzf 1.29.1.tar.gz
sudo mv FreshRSS-1.29.1 /srv/freshrss

จากนั้นให้กำหนดสิทธิ์การเข้าถึง ซึ่งเอกสารของ FreshRSS ระบุไว้อย่างเคร่งครัดว่า: ผู้ใช้ของเว็บเซิร์ฟเวอร์ต้องเป็นเจ้าของโครงสร้างไฟล์ทั้งหมด กลุ่มผู้ใช้ต้องสามารถอ่านไฟล์ทุกไฟล์ได้ และกลุ่มผู้ใช้ต้องสามารถเขียนข้อมูลลงใน ./data/ ได้

sudo chown -R www-data:www-data /srv/freshrss
sudo chmod -R g+r /srv/freshrss
sudo chmod -R g+w /srv/freshrss/data

หากข้ามขั้นตอนนี้ไป ตัวติดตั้งจะล้มเหลวขณะเขียนไฟล์กำหนดค่า เนื่องจาก PHP ทำงานในฐานะ www-data และ www-data ไม่สามารถเขียนข้อมูลลงในไดเรกทอรีที่ root เป็นเจ้าของได้

การสร้างฐานข้อมูล

FreshRSS รองรับ SQLite, MariaDB, MySQL และ PostgreSQL โดย SQLite ไม่จำเป็นต้องตั้งค่าเพิ่มเติมและเพียงพอสำหรับการใช้งานคนเดียวที่มีฟีดจำนวนไม่กี่ร้อยรายการ ส่วน MariaDB เป็นตัวเลือกที่ดีกว่าเมื่อมีการใช้งานหลายคน เนื่องจากงานดึงข้อมูลฟีด (refresh job) และการใช้งานผ่านหน้าเว็บจะไม่แย่งกันล็อกไฟล์เดียวอีกต่อไป

sudo mariadb -e "CREATE DATABASE freshrss CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
sudo mariadb -e "CREATE USER 'freshrss'@'localhost' IDENTIFIED BY 'ReplaceThisPassword';"
sudo mariadb -e "GRANT ALL PRIVILEGES ON freshrss.* TO 'freshrss'@'localhost';"
sudo mariadb -e "FLUSH PRIVILEGES;"

ให้ใช้ utf8mb4 แทนที่ utf8 เนื่องจากฟีดมักมีอีโมจิและอักขระที่ไม่ใช่ภาษาละติน ซึ่งการเข้ารหัส utf8 แบบ 3 ไบต์แบบเดิมจะทำให้ชื่อบทความถูกตัดทอนเมื่อพบอักขระแบบ 4 ไบต์ตัวแรก

Virtual host ของ Apache

ไดเรกทอรีสาธารณะคือ p/ ไม่ใช่ส่วนบนสุดของโครงสร้างไฟล์ ข้อมูลอื่นทั้งหมด รวมถึงไฟล์ตั้งค่าที่เก็บรหัสผ่านฐานข้อมูลของคุณ จะถูกวางไว้เหนือ document root ซึ่ง Apache จะไม่เปิดเผยไฟล์เหล่านี้ผ่านเว็บ

<VirtualHost *:80>
	ServerName rss.example.com
	DocumentRoot /srv/freshrss/p/

	<Directory /srv/freshrss/p>
		AllowOverride AuthConfig FileInfo Indexes Limit
		Require all granted
	</Directory>

	ErrorLog ${APACHE_LOG_DIR}/freshrss_error.log
	CustomLog ${APACHE_LOG_DIR}/freshrss_access.log combined

	AllowEncodedSlashes On
</VirtualHost>

บันทึกไฟล์ดังกล่าวเป็น /etc/apache2/sites-available/freshrss.conf แล้วเปิดใช้งาน:

sudo a2enmod rewrite
sudo a2ensite freshrss
sudo a2dissite 000-default
sudo apache2ctl configtest
sudo systemctl reload apache2

configtest ควรแสดงผลลัพธ์เป็น Syntax OK ส่วน AllowEncodedSlashes On ดูเหมือนเป็นตัวเลือกเสริมแต่ในความเป็นจริงไม่ใช่: Google Reader API จะส่งตัวระบุฟีดที่มี %2F หากไม่มีคำสั่งนี้ Apache จะปฏิเสธคำขอเหล่านั้น ส่งผลให้แอปบนมือถือไม่สามารถซิงค์ข้อมูลได้ ในขณะที่หน้าเว็บยังคงใช้งานได้ตามปกติ

เพิ่ม HTTPS ก่อนเข้าสู่ระบบ

คุณกำลังจะพิมพ์รหัสผ่านลงในเว็บไซต์นี้ ดังนั้นควรติดตั้งใบรับรอง (certificate) ก่อน ให้ชี้ A record มาที่เซิร์ฟเวอร์ จากนั้นทำตาม ขั้นตอนการติดตั้ง Certbot สำหรับ Apache บน Ubuntu แล้วรันคำสั่ง sudo certbot --apache -d rss.example.com ตัว Certbot จะเขียนไฟล์ virtual host สำหรับพอร์ต 443 ใหม่และเพิ่มการเปลี่ยนเส้นทาง (redirect) ให้โดยอัตโนมัติ ตรวจสอบผลลัพธ์ด้วย curl -I https://rss.example.com/ ซึ่งควรจะส่งค่ากลับเป็น 200 หรือเปลี่ยนเส้นทางไปยังหน้าเข้าสู่ระบบ

เรียกใช้งานตัวติดตั้งผ่านบรรทัดคำสั่ง

FreshRSS มีตัวติดตั้งผ่านเว็บเบราว์เซอร์ แต่การใช้เวอร์ชันบรรทัดคำสั่งจะช่วยให้ทำซ้ำได้และบันทึกค่าที่เลือกไว้ได้อย่างแม่นยำ

sudo -u www-data php /srv/freshrss/cli/do-install.php \
  --default-user admin --auth-type form --environment production \
  --base-url https://rss.example.com --language en --api-enabled \
  --db-type mysql --db-host localhost --db-user freshrss \
  --db-password 'ReplaceThisPassword' --db-base freshrss
sudo -u www-data php /srv/freshrss/cli/create-user.php \
  --user admin --password 'a-long-passphrase' --api-password 'a-different-passphrase'

เรียกใช้งานทั้งสองคำสั่งในฐานะ www-data การเรียกใช้งานในฐานะ root จะทำให้ไฟล์การตั้งค่าที่สร้างขึ้นมี root เป็นเจ้าของ ซึ่งจะส่งผลให้เว็บอินเทอร์เฟซไม่สามารถบันทึกการตั้งค่าใดๆ ได้ในภายหลัง การตั้งค่า --environment production ก็มีความสำคัญเช่นกัน เนื่องจากโหมด development จะแสดงข้อความแจ้งเตือนของ PHP ลงบนหน้าเว็บ

โหลด https://rss.example.com/ และเข้าสู่ระบบด้วย admin

เหตุใดฟีดจึงไม่รีเฟรชด้วยตัวเอง

ไม่มีกระบวนการใดดึงข้อมูลฟีดของคุณจนกว่าคุณจะกำหนดค่าไว้ FreshRSS จะรีเฟรชข้อมูลเฉพาะในขณะที่เปิดเบราว์เซอร์ค้างไว้เท่านั้น ซึ่งหมายความว่าหากคุณเข้าใช้งานวันละสองครั้ง ข้อมูลบทความที่แสดงอาจเก่าถึงสิบสองชั่วโมง วิธีแก้ไขคือการใช้สคริปต์ที่มาพร้อมกับโปรเจกต์คือ app/actualize_script.php โดยสั่งรันผ่าน cron

sudo crontab -u www-data -e

เพิ่มบรรทัดนี้ลงไป:

*/20 * * * * php /srv/freshrss/app/actualize_script.php > /tmp/FreshRSS.log 2>&1

ช่วงเวลา 20 นาทีเป็นค่าต่ำสุดที่เหมาะสม เนื่องจากสคริปต์จะปฏิเสธการรีเฟรชฟีดใดๆ ที่มีความถี่มากกว่าหนึ่งครั้งต่อ 20 นาที ดังนั้นการตั้งเวลาที่ถี่กว่านี้จะทำให้สิ้นเปลือง CPU โดยเปล่าประโยชน์ ให้ลองรันด้วยตนเองก่อนหนึ่งครั้ง:

sudo -u www-data php /srv/freshrss/app/actualize_script.php

หากการทำงานปกติ ผลลัพธ์จะแสดงชื่อฟีดแต่ละรายการที่ดึงข้อมูลมาได้และจบลงโดยไม่มีข้อผิดพลาดของ PHP หากไม่แสดงผลลัพธ์ใดๆ เลย แสดงว่าผู้ใช้ที่รัน cron ไม่ถูกต้อง และหากเกิดข้อผิดพลาดด้านสิทธิ์ที่ data/ แสดงว่าขั้นตอน chmod -R g+w ถูกข้ามไป

เพิ่มฟีดรายการแรกของคุณ

ใช้ปุ่มบวกที่มุมซ้ายบนของอินเทอร์เฟซ วางที่อยู่เว็บไซต์ แล้ว FreshRSS จะค้นหาลิงก์ฟีดให้คุณโดยอัตโนมัติ เว็บไซต์ส่วนใหญ่ยังคงเผยแพร่ฟีดแม้ว่าจะไม่ได้แสดงไว้ให้เห็นชัดเจน โดยปกติจะอยู่ที่ /feed, /rss หรือ /atom.xml หมวดหมู่ทำหน้าที่เหมือนโฟลเดอร์ และการย้ายฟีดระหว่างหมวดหมู่สามารถทำได้โดยการลากวาง

หากคุณย้ายมาจากโปรแกรมอ่านฟีดอื่น ให้ส่งออกไฟล์ OPML จากที่นั่น แล้วนำเข้ามาที่หน้าการจัดการการสมัครสมาชิก OPML (outline processor markup language) เป็นรูปแบบมาตรฐานสำหรับรายการฟีด และโปรแกรมอ่านฟีดทุกตัวที่น่าใช้งานล้วนรองรับรูปแบบนี้ การนำเข้าข้อมูลจำนวนมากจะทำให้การรีเฟรชครั้งแรกทำงานช้า เนื่องจากระบบต้องดึงข้อมูลทุกฟีดพร้อมกัน ดังนั้นควรให้เวลาการทำงานของ cron ครั้งแรกก่อนที่จะตัดสินความเร็วของระบบ

อ่านผ่านโทรศัพท์มือถือของคุณ

FreshRSS รองรับ Google Reader API ซึ่งแอป RSS ส่วนใหญ่สามารถใช้งานได้ โดยมีเงื่อนไขสำคัญ 2 ประการ ประการแรก ในการตั้งค่าการยืนยันตัวตน ต้องเปิดใช้งานตัวเลือก "Allow API access" ซึ่งแฟล็ก --api-enabled ด้านบนได้ดำเนินการไปแล้ว ประการที่สอง ในหน้าโปรไฟล์ของคุณ ช่องรหัสผ่านสำหรับ API จะต้องมีค่ากำหนดไว้ ซึ่งรหัสผ่านนี้ถูกแยกออกจากรหัสผ่านสำหรับเข้าสู่ระบบปกติโดยเจตนา เนื่องจากอุปกรณ์พกพามีความเสี่ยงที่จะสูญหายได้ง่ายกว่า

ให้ไปที่ https://rss.example.com/api/ แล้วเลือก "Check full server configuration" หากการตั้งค่าถูกต้อง ระบบจะแสดงผลเป็น PASS หากเกิดข้อผิดพลาด ส่วนใหญ่มักเกิดจากการขาดบรรทัด AllowEncodedSlashes On ในการตั้งค่า ในแอปพลิเคชัน ให้ระบุที่อยู่เซิร์ฟเวอร์เป็น https://rss.example.com/api/greader.php, ระบุชื่อผู้ใช้เป็นชื่อผู้ใช้ FreshRSS ของคุณ และระบุรหัสผ่าน API ในช่องรหัสผ่าน

ทางเลือกอื่นด้วย Docker

หากคุณไม่ต้องการดูแล PHP และ Apache ด้วยตนเอง ทางโครงการมีอิมเมจอย่างเป็นทางการของ freshrss/freshrss ให้บริการ และไฟล์ compose เพียงไฟล์เดียวก็สามารถรันแอปพลิเคชันพร้อมกับฐานข้อมูลได้พร้อมกัน ข้อแลกเปลี่ยนคือสิ่งปกติที่พบได้ทั่วไป นั่นคือมีส่วนประกอบบนโฮสต์น้อยลง แต่จะมีอีกหนึ่งเลเยอร์ที่ต้องดีบั๊กเมื่อเกิดปัญหา และยังคงต้องใช้ reverse proxy สำหรับ TLS (transport layer security) หากวิธีนี้เหมาะสมกับคุณมากกว่า พื้นฐาน Docker Compose สำหรับ VPS จะครอบคลุมรูปแบบไฟล์ดังกล่าว และบรรทัดสำหรับ cron จะเปลี่ยนเป็น docker exec --user www-data freshrss php ./app/actualize_script.php

การสำรองข้อมูลและการอัปเกรด

สถานะของคุณถูกเก็บไว้ใน 2 ส่วน ได้แก่ ฐานข้อมูล และ /srv/freshrss/data/ ให้สำรองข้อมูลส่วนแรกด้วย sudo mysqldump freshrss > freshrss.sql และคัดลอกส่วนที่สองเก็บไว้ในตำแหน่งอื่นที่ไม่ใช่เซิร์ฟเวอร์นี้ นอกจากนี้ รายการสมาชิกของคุณควรถูกส่งออกเป็นไฟล์ OPML เป็นระยะ เนื่องจากไฟล์ดังกล่าวสามารถใช้สร้างการตั้งค่าการอ่านของคุณใหม่บนซอฟต์แวร์ RSS ใดก็ได้

การอัปเกรดทำได้โดยการแตกไฟล์รุ่นใหม่ทับลงในไดเรกทอรีเดิม แล้วรันคำสั่งกำหนดสิทธิ์ความเป็นเจ้าของอีกครั้ง FreshRSS จะดำเนินการย้ายข้อมูลฐานข้อมูล (migration) โดยอัตโนมัติเมื่อมีการโหลดหน้าเว็บในครั้งถัดไป โปรดสำรองข้อมูลก่อนเสมอ เนื่องจากการย้ายข้อมูลที่ล้มเหลวบนฐานข้อมูลที่คุณไม่สามารถกู้คืนได้จะทำให้เกิดสถานการณ์ที่ไม่สามารถแก้ไขได้ บริการอ่านข่าวเป็นบริการที่มีความเสี่ยงต่ำและเป็นตัวเลือกเริ่มต้นที่ดีหากคุณกำลังศึกษา รายการสิ่งที่ควรทำ self-hosting

FAQ

ทำไมฟีดของฉันถึงอัปเดตเฉพาะตอนที่เปิด FreshRSS เท่านั้น?

เพราะยังไม่มีตัวกำหนดเวลาทำงาน (scheduler) จนกว่าคุณจะสร้างขึ้นมา FreshRSS จะรีเฟรชฟีดในขณะที่เซสชันเบราว์เซอร์เปิดอยู่เท่านั้น และจะไม่ทำงานใดๆ เมื่อปิดแท็บไป ให้เพิ่มบรรทัด cron ที่เรียกใช้ app/actualize_script.php ในฐานะผู้ใช้ www-data จากนั้นลองรันสคริปต์ด้วยตนเองหนึ่งครั้งแล้วอ่านผลลัพธ์ที่ได้ หากไม่มีข้อความแสดงขึ้นมา มักหมายความว่า cron กำลังรันด้วยผู้ใช้ที่ไม่ถูกต้อง ทำให้ PHP ไม่สามารถเขียนไฟล์ลงใน data/ ได้

แอปมือถือของฉันเชื่อมต่อไม่ได้ แต่เว็บไซต์ใช้งานได้ปกติ เกิดจากอะไร?

Google Reader API จะใส่เครื่องหมายทับที่ถูกเข้ารหัส (%2F) ไว้ใน path ของคำขอ ซึ่งโดยปกติ Apache จะปฏิเสธคำขอดังกล่าว ให้เพิ่ม AllowEncodedSlashes On ไว้ภายใน virtual host แล้วโหลด Apache ใหม่ ตรวจสอบการแก้ไขโดยเปิด https://rss.example.com/api/ และรันคำสั่ง "Check full server configuration" ซึ่งควรจะแสดงผลเป็น PASS นอกจากนี้ ให้ตรวจสอบว่ามีการตั้งค่ารหัสผ่าน API ในโปรไฟล์ของคุณแล้ว เนื่องจากรหัสผ่านนี้แยกจากรหัสผ่านสำหรับล็อกอินเข้าใช้งาน

ฉันควรใช้ SQLite หรือ MariaDB?

ใช้ SQLite สำหรับผู้ใช้คนเดียว เพราะไม่ต้องติดตั้งอะไรเพิ่มเติมและไม่ต้องจัดการรหัสผ่าน ส่วน MariaDB เหมาะสำหรับกรณีที่มีผู้อ่านมากกว่าหนึ่งคนในอินสแตนซ์เดียวกัน หรือเมื่อคุณมีฟีดมากกว่าสองสามร้อยรายการ เนื่องจากงานรีเฟรชและอินเทอร์เฟซเว็บจะเขียนข้อมูลพร้อมกัน ทำให้การล็อกไฟล์เดียวกลายเป็นข้อจำกัดของระบบ การย้ายฐานข้อมูลระหว่างสองตัวนี้ในภายหลังสามารถทำได้ผ่านคำสั่ง export และ import ดังนั้นการตัดสินใจนี้จึงไม่ใช่การเลือกแบบถาวร

ตัวติดตั้งล้มเหลวเมื่อพยายามเขียนไฟล์คอนฟิกูเรชัน เกิดอะไรขึ้น?

PHP ทำงานในฐานะ www-data ภายใต้ Apache ซึ่งผู้ใช้ดังกล่าวไม่มีสิทธิ์เขียนไฟล์ลงในไดเรกทอรีที่เป็นของ root ให้รันคำสั่ง sudo chown -R www-data:www-data /srv/freshrss และ sudo chmod -R g+w /srv/freshrss/data อีกครั้ง จากนั้นจึงเริ่มตัวติดตั้งใหม่ หากคุณรันตัวติดตั้งผ่านบรรทัดคำสั่งในฐานะ root ไปแล้ว ให้ลบไฟล์ที่ถูกสร้างขึ้นภายใต้ data/ ออกก่อนเริ่มใหม่ เพราะปัญหาที่แท้จริงคือเรื่องความเป็นเจ้าของไฟล์ (ownership)

การโฮสต์ RSS reader ด้วยตนเองต้องใช้ทรัพยากรเซิร์ฟเวอร์มากแค่ไหน?

ใช้เพียงเล็กน้อยเท่านั้น การรองรับฟีดจำนวนไม่กี่ร้อยรายการบนแผนบริการขนาดเล็กสามารถทำได้อย่างสบาย เนื่องจากภาระงานจะเป็นเพียงการดึงข้อมูล HTTP สั้นๆ ทุกยี่สิบนาที และฐานข้อมูลจะมีขนาดเล็กหากมีการล้างบทความเก่าออก พื้นที่ดิสก์จะเพิ่มขึ้นตามระยะเวลาการเก็บรักษาข้อมูล ดังนั้นควรตั้งค่านโยบายการล้างบทความในการตั้งค่าการจัดเก็บถาวร แทนที่จะเก็บทุกอย่างไว้ตลอดไป