SELF-HOSTING

PriceBuddy: The Ultimate Guide to Self-Hosted Price Tracking

Stop wasting time manually refreshing product pages. PriceBuddy is a powerful, open-source solution that automates price monitoring across the web. Unlike cloud services that track you while you track prices, PriceBuddy runs on your own infrastructure, keeping your shopping habits completely private.

What is PriceBuddy?

PriceBuddy is a self-hosted application built on the Laravel framework. It is designed for privacy-conscious shoppers and HomeLab enthusiasts. It monitors product URLs, records price history, and sends alerts when prices drop—all from your personal server, VPS, or Raspberry Pi.

Why Choose PriceBuddy? (Cloud vs. Self-Hosted)

FeatureCommercial/Cloud AppsPriceBuddy (Self-Hosted)
Data PrivacyTracks your browsing/shopping habits100% Private (Data never leaves your server)
CostSubscription fees ($5-$50/mo)Free (Open Source) + Hosting costs
FlexibilityLimited to supported storesUniversal (Custom CSS/Regex/JSONPath scrapers)
OwnershipService can shut down anytimeYou own the code and data

Key Features

  • Universal Tracking: Monitor Amazon, eBay, Best Buy, or niche stores using custom selectors.
  • Multi-URL Support: Track a single product (e.g., “Sony Headphones”) across multiple retailers to find the lowest price instantly.
  • Visual Analytics: Interactive charts showing minimum, maximum, and average price trends over time.
  • Smart Alerts: Receive notifications via Email, Webhooks, or Telegram when prices hit your target.
  • Headless Scraping: Built-in support for JavaScript-heavy websites that standard scrapers cannot read.

Installation Guide: Deploying PriceBuddy with Docker

This guide assumes you have Docker and Docker Compose installed.

Prerequisites

  • Hardware: 1 CPU Core, 1GB RAM (Recommended).
  • Storage: 2-5GB disk space.
  • Software: Docker v20.10+ & Docker Compose v2.0+.

Step 1: Set Up Directory and Files

Open your terminal and create a folder for the project:

mkdir pricebuddy
cd pricebuddy

Download the official composition file:

wget https://raw.githubusercontent.com/jez500/pricebuddy/main/docker-compose.yml

Step 2: Configure Environment

Crucial Step: You must create an environment file before starting.

touch .env

If you wish to customize settings (like mail servers), edit the .env file. For a basic local setup, the empty file is sufficient to start.

Step 3: Launch Containers

Start the application stack (App, MySQL, Redis) in the background:

docker compose up -d

Step 4: Access and Secure

  1. Navigate to http://localhost:8080 in your browser.
  2. Default Login:
  3. Action Required: Immediately go to Settings > Users and change your password.

User Guide: How to Track and Save

1. Adding Products

You have three ways to add items to your dashboard:

  • Direct URL: Paste a link from a supported retailer. PriceBuddy scrapes the title, image, and price automatically.
  • Search (SearXNG): If configured, search for products directly within the app and select retailers.
  • Multi-Store Tracking: Open an existing product and click “Add URL” to track the same item at a competitor.

2. Configuring Price Alerts

Don’t get spammed. Set smart rules in the Alerts tab of any product:

  • Absolute Target: “Notify me when price is ≤ $150.”
  • Percentage Drop: “Notify me on a 20% discount.”
  • Any Drop: “Notify me whenever the price decreases.”

3. Advanced: Adding Custom Stores

If a website isn’t supported out of the box, you can teach PriceBuddy how to read it using CSS Selectors.

  1. Go to Settings > Stores > Add Store.
  2. Inspect the product page in your browser (Right-click > Inspect).
  3. Copy the CSS Selectors for the required fields:
FieldExample SelectorDescription
Price.product-price or span.offer-priceThe HTML tag containing the dollar amount.
Titleh1.product-titleThe main name of the product.
Imageimg.main-image|srcThe image tag. Append |src to grab the URL.
PRO TIP:
Use Open Graph tags (e.g., meta[property="og:price:amount"]|content) for more reliable scraping that survives website redesigns.

Troubleshooting Common Issues

Issue: 500 Error on First Load

  • Cause: Missing .env file.
  • Fix: Run touch .env in your directory, then run docker compose down and docker compose up -d.

Issue: “Port 8080 in use”

  • Fix: Edit docker-compose.yml. Change "8080:8080" to "8090:8080". Access via localhost:8090.

Issue: Price Not Updating

  • Cause: The site uses JavaScript to load prices.
  • Fix: In the Store Settings, enable “Use Browser” (Headless Scraping) to render the page before extracting data.

Ready to Start Saving?

Self-hosting PriceBuddy empowers you to build a personal database of price history, ensuring you never overpay again.

Next Step: Would you like me to generate a specific docker-compose.yml configuration that includes a reverse proxy (like Nginx) so you can access PriceBuddy securely over the internet?

You may also like

Subscribe
Notify of
guest

0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments