Help & Support

Everything you need to get the most out of RangePulse.

1. Getting Started

RangePulse comes in two versions. Both include the same features: dashboard, charts, clinical PDF reports, data import/export, dark mode, and mobile support.

Plan Price What You Get
Cloud $4.99/month or $49/year Hosted for you. Sign up and start tracking immediately.
Self-Hosted Free Run on your own server with Docker. You own the data entirely.

Cloud Quick Start

  1. Sign up at rangepulse.com. Enter your email and choose a password.
  2. Choose a plan. Monthly ($4.99/mo) or annual ($49/yr). Both include all features.
  3. Add your first reading. From the dashboard, click the "+" button. Enter the date, your blood pressure, weight, heart rate, or mileage. Add optional notes (e.g., "after morning walk").
  4. View your dashboard. Your chart appears after the first reading. Add more readings over the following days to see trends develop.

Tip: You do not need to fill in every metric for every reading. If you only track blood pressure and weight, leave the other fields blank.

2. Self-Hosted Setup

Run RangePulse on your own server or computer. Your data never leaves your infrastructure. No account with us, no cloud dependency, no telemetry.

Requirements

Installing Docker (if you don't have it)

Install Docker first, then continue to the 5-step installation below.

Ubuntu / Debian / Raspberry Pi OS / Linux Mint:

curl -fsSL https://get.docker.com | sh

Fedora:

curl -fsSL https://get.docker.com | sh
sudo systemctl enable --now docker

RHEL / CentOS / AlmaLinux / Rocky Linux:

sudo dnf install -y dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin
sudo systemctl enable --now docker

macOS: Download Docker Desktop for Mac. Skip Steps 1 and 2 below — Docker Desktop handles permissions and networking.

Windows: Download Docker Desktop for Windows (requires WSL2). Skip Steps 1 and 2 below.

Supported Systems

Any machine that runs Docker. Tested on:

Installation (Copy and Paste — 5 Steps)

These instructions are tested on Ubuntu 24.04. Run each step in order. Do not skip steps.

Step 1: Give your user permission to run Docker

This only needs to be done once. After running this command, you must log out completely and log back in before continuing to Step 2.

sudo usermod -aG docker $USER

Then log out (type exit or close your terminal), log back in, and verify it worked:

docker --version

If you see a version number (e.g., Docker version 27.x), continue. If you get "permission denied," you didn't log out and back in — do that now.

Step 2: Open port 80 in your firewall

Ubuntu / Debian:

sudo ufw allow 80/tcp
sudo ufw reload

Fedora / RHEL / CentOS / AlmaLinux:

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --reload

macOS / Windows with Docker Desktop: Skip this step — Docker Desktop handles networking automatically.

Step 3: Create the RangePulse folder and configuration file

Run this entire block — it creates a folder, enters it, and writes the configuration file:

mkdir -p ~/rangepulse && cd ~/rangepulse && cat > docker-compose.yml << 'EOF'
services:
  rangepulse:
    image: rangepulse/rangepulse:latest
    ports:
      - "80:8000"
    volumes:
      - rangepulse_data:/data
    restart: unless-stopped
    labels:
      - "com.centurylinklabs.watchtower.enable=true"
    env_file:
      - .env

  watchtower:
    image: containrrr/watchtower
    restart: unless-stopped
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - WATCHTOWER_POLL_INTERVAL=86400
      - WATCHTOWER_CLEANUP=true
      - WATCHTOWER_LABEL_ENABLE=true
      - DOCKER_API_VERSION=1.45

volumes:
  rangepulse_data:
EOF

Step 4: Start RangePulse

Make sure you're in the rangepulse folder, then start it:

cd ~/rangepulse && docker compose up -d

If it's working, you'll see: Container rangepulse-rangepulse-1 Started

Wait about 10 seconds for the database to initialize on first startup.

Step 5: Open RangePulse in your browser

Go to http://localhost in your browser. You'll see the registration page. Create an account and start tracking your vitals.

Your account is 100% local. When you register, your username, email, and password are stored only on your machine. RangePulse makes zero network calls to our servers — no license check, no activation, no telemetry. Your data never leaves your network.

Troubleshooting Installation

"Permission denied" when running docker compose:

"Connection refused" or "This site can't be reached":

"no configuration file provided: not found":

Port 80 already in use:

    ports:
      - "8080:8000"  # Use port 8080 instead

Then restart: cd ~/rangepulse && docker compose up -d

Access RangePulse at http://localhost:8080 instead.

To check what's using port 80: sudo lsof -i :80

Accessing from Another Device

To access RangePulse from your phone, tablet, or another computer on the same network:

  1. Find your server's IP address:
    # Linux / macOS / Raspberry Pi:
    hostname -I
    # Look for something like 192.168.1.100
  2. On your other device, open a browser and go to http://192.168.1.100:80 (replace with your actual IP).

Can't connect from another device? Make sure you opened port 80 in your firewall (Step 2 of the installation). The firewall rule is required for local network access too — not just the internet.

Where Is My Data Stored?

All your health data is stored in a Docker volume called rangepulse_data. This persists across container restarts and updates. Your data is not inside the container — it's safe even if the container is deleted.

To see the volume location on disk:

docker volume inspect rangepulse_data

Updating to the Latest Version

Updates are automatic. Watchtower checks Docker Hub once a day and applies any new release silently — no action needed. Your Account page shows the current version and will note when a newer version is available and pending installation.

To update immediately without waiting for the daily check:

cd ~/rangepulse
docker compose pull
docker compose up -d

This pulls the latest image and restarts the container. Your data is in a Docker volume and is not affected.

Troubleshooting Updates

If the standard update does not work, use the steps below to diagnose and fix the issue.

Check whether the containers are running:

docker compose ps

You should see both rangepulse-rangepulse-1 and rangepulse-watchtower-1 with status Up. If either is missing or shows Restarting, see below.

Check what version is currently running:

docker exec rangepulse-rangepulse-1 grep APP_VERSION /srv/app.py

Check the application logs for errors:

docker logs rangepulse-rangepulse-1 --tail=50

If docker compose up -d fails with "container name already in use":
This happens when Watchtower has previously updated the container — Docker Compose loses track of it. Remove the old container and bring it back up:

docker rm -f rangepulse-rangepulse-1
docker compose up -d

If Watchtower is restarting repeatedly:

docker logs rangepulse-watchtower-1 --tail=30

Look for error messages at startup. The most common cause is a malformed docker-compose.yml. Compare your file against the template in Step 3 of the installation instructions above.

Full reset — stops everything, re-pulls the latest image, and starts fresh:
This does not delete your data. Your health data lives in the rangepulse_data Docker volume, which is preserved.

cd ~/rangepulse
docker compose down
docker compose pull
docker compose up -d

After running this, check that both containers are running:

docker compose ps

Both should show status Up (healthy) within 30 seconds.

If the app is up but you cannot log in after an update:
Your session cookie may have expired during the restart. This is normal — simply log in again with your username and password. Your data is intact.

Your data is preserved — it lives in the Docker volume, not the container image.

HTTPS Setup (Recommended for Remote Access)

RangePulse serves HTTP by default. If you access it outside your home network, you should add HTTPS. The easiest option is Caddy, which handles certificates automatically.

Caddy example — add this Caddyfile in the same directory:

health.yourdomain.com {
    reverse_proxy localhost:8000
}

Then add Caddy to your docker-compose.yml:

  caddy:
    image: caddy:latest
    ports:
      - "80:8000"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
    restart: unless-stopped

Point your domain's DNS to your server's IP, and Caddy will automatically get a Let's Encrypt certificate.

Other options:

Setting Up for Your Family

The self-hosted version supports unlimited accounts on one installation. Share the URL with your household and each person registers their own account. Every user's data is completely separate — users cannot see each other's readings, goals, or reports.

Example: you run RangePulse on a Raspberry Pi at http://192.168.1.100. Your spouse opens that URL on their phone, creates an account, and starts tracking their own blood pressure. Your daughter does the same. Three people, three separate dashboards, one server, zero monthly cost.

Admin Panel

The first user who registers is not automatically an admin. To enable the admin panel, add your email to the ADMIN_EMAILS environment variable in docker-compose.yml:

services:
  rangepulse:
    image: rangepulse/rangepulse:latest
    ports:
      - "80:8000"
    volumes:
      - rangepulse_data:/data
    environment:
      - ADMIN_EMAILS=you@example.com
    restart: unless-stopped

Then restart: docker compose up -d

The admin panel is at /admin/ and lets you:

Note: Admin access does not let you view another user's health data. It only shows account-level information (username, email, reading count).

Password Reset (Self-Hosted)

The self-hosted version does not send emails, so the "Forgot Password" link will not work unless you configure an SMTP server. If you're locked out:

  1. Access the database directly:
    docker exec -it rangepulse-rangepulse-1 \
      python3 -c "from auth import *; reset_password_cli('your@email.com', 'newpassword')"
  2. Or delete and recreate your account (your data will be lost for that account).

Uninstalling

Stop RangePulse and keep your data (in case you want to come back):

docker compose down

Stop and permanently delete all data:

docker compose down -v

Warning: The -v flag deletes the data volume with all your health readings. This cannot be undone. Export your data first if you want to keep it.

3. Dashboard Features

Adding Readings

Each reading can include any combination of the following:

Fill in the form at the top of the dashboard and click Add Entry. The entry appears in your Recent Entries list immediately — no page reload. You can add, edit, delete, and restore entries without leaving the page.

On mobile, blood pressure fields are stacked (systolic on top, diastolic below) for easier entry with one thumb.

Goal Notifications

When you save a reading that hits a goal for the first time — for example, your blood pressure drops to or below your goal — a brief notification appears at the top of the screen confirming the achievement. It dismisses automatically after a few seconds.

Time Range Selection

Use the time range selector above the chart to change which period is displayed:

Option Shows
7dLast 7 days
1mLast 30 days
3mLast 3 months
6mLast 6 months
1yLast 12 months
YTDJanuary 1 to today
AllEvery reading you have ever logged
CustomPick a specific start and end date

Chart Trend Lines

Each chart displays a trend line — a straight line calculated from your data points using linear regression. The trend line shows the overall direction of your readings over the selected time range.

Trend lines smooth out day-to-day variation so you can see the bigger picture.

Setting Goals

You can set a target goal for each metric (e.g., target weight, target blood pressure). Goals appear as a horizontal reference line on your chart so you can see at a glance how your readings compare to where you want to be.

4. Doctor Visit Report

What It Is

The "Prepare for Appointment" feature generates a clinical-quality PDF report summarizing your health data. The report includes statistical summaries, charts, AHA/ACC blood pressure classifications, trend arrows, and reading counts — designed to give your doctor the information they need at a glance.

How to Generate a Report

  1. From the dashboard, click "Prepare for Appointment".
  2. Select which metrics to include (blood pressure, weight, heart rate, mileage).
  3. Choose a date range for the report.
  4. Enter your name. This is printed on the report so your doctor can file it with your chart.
  5. Click Generate. The PDF downloads to your device.

Print the PDF or email it to your doctor's office before your appointment.

What Your Doctor Sees

The report is formatted for clinical use:

Important: The report includes a medical disclaimer. RangePulse is a tracking tool, not a medical device. Your doctor will interpret the data in the context of your full medical history.

5. Data Import & Export

Importing Data

You can import historical readings from a CSV file. The expected column format is:

date,weight,heart_rate,blood_pressure,mileage,notes

Example rows:

2026-01-15,182.4,72,128/82,3.2,Morning reading
2026-01-16,181.8,70,125/80,0,Rest day
2026-01-17,182.0,74,130/84,4.1,

Leave any column blank if you do not have data for that metric on a given day. To import, go to the Data menu at the bottom of the dashboard and choose Import Data, then upload your CSV file.

Exporting Data

You can export all of your data at any time in two formats:

Open the Data menu at the bottom of the dashboard and choose Export Data. Select CSV or JSON and the download begins immediately.

How Trend Calculations Work

RangePulse uses linear regression to calculate trend lines. This is a standard statistical method that finds the straight line that best fits your data points. It tells you the general direction of your readings over time, even when individual readings vary from day to day.

The trend line is recalculated every time you change the time range or add a new reading.

On mobile, changing the chart time range automatically updates the Trends & Insights period to match — you don't need to change both separately.

Blood Pressure Classification

RangePulse classifies each blood pressure reading according to the AHA/ACC 2017 guidelines:

Category Systolic Diastolic
NormalLess than 120Less than 80
Elevated120 – 129Less than 80
Stage 1 Hypertension130 – 13980 – 89
Stage 2 Hypertension140 or higher90 or higher

The higher category always applies. For example, a reading of 135/92 is classified as Stage 2 because the diastolic value (92) falls in the Stage 2 range, even though the systolic value (135) is Stage 1.

Flagged Readings

A reading is flagged when it falls into the Stage 2 Hypertension range (140/90 or above). Flagged readings appear highlighted on your dashboard and are called out in the doctor visit report.

A flagged reading is a visual indicator that helps you and your doctor identify readings above the threshold where clinical guidelines recommend treatment. It is not an emergency alert.

7. Account Management

Changing Your Password

Go to Account → Change Password. Enter your current password and your new password. The change takes effect immediately.

Exporting Your Data

You can download all of your data at any time. Open the Data menu at the bottom of the dashboard and choose Export Data. Select CSV or JSON format. This works on both Cloud and self-hosted.

Deleting Entries

When you delete a reading from your dashboard, it's not permanently removed. Deleted entries go to a Recycle Bin where they're kept for 35 days.

Delete All Data — found in the Data menu — soft-deletes all your entries at once. A spinner appears in the entry list while the deletion is in progress. You can restore everything within 35 days using Restore All Data in the same menu.

Account deletion is different — deleting your account permanently removes everything immediately with no recovery period.

Cancelling Your Cloud Subscription

To cancel your Cloud subscription and close your account, visit app.rangepulse.com/cancel. You do not need to be logged in. Enter your email address and your Customer ID (e.g. RP-0123 — visible on your Account page) and submit.

Changed your mind? Email hello@rangepulse.com within the 3-day window and we'll restore your account.

Deleting Your Account

To permanently delete your account and all associated data, go to your Account page and scroll to the bottom. Enter your password and click Delete My Account. A confirmation dialog will appear — confirm to proceed. This cannot be undone.

Warning: Account deletion is permanent and cannot be undone. Export your data first if you want to keep a copy.

8. Maintenance (Self-Hosted)

Backing Up Your Data

RangePulse stores all data in a Docker volume. To back up:

docker compose stop
docker run --rm -v rangepulse_data:/data -v $(pwd):/backup alpine \
  tar czf /backup/rangepulse-backup.tar.gz -C /data .
docker compose start

Store the resulting rangepulse-backup.tar.gz file somewhere safe.

Restoring from Backup

docker compose stop
docker run --rm -v rangepulse_data:/data -v $(pwd):/backup alpine \
  sh -c "rm -rf /data/* && tar xzf /backup/rangepulse-backup.tar.gz -C /data"
docker compose start

Viewing Logs

docker compose logs -f rangepulse

Press Ctrl+C to stop following the log output.

Checking Disk Usage

docker system df

Automatic Updates

RangePulse includes Watchtower in the default docker-compose.yml. Watchtower runs alongside the app and checks Docker Hub once a day for a new image. When one is available it pulls it, restarts the container, and cleans up the old image — fully automatic, no user action required.

Privacy: Watchtower only contacts Docker Hub to check the image digest and pull updates. It sends no user data, no health data, and no telemetry. It is scoped to the RangePulse container only and has no access to any other containers on your system.

To update immediately without waiting for the daily check, run:

docker compose pull && docker compose up -d

9. Troubleshooting

Container will not start

Check the logs for error messages:

docker compose logs rangepulse

Common causes:

Cannot connect to localhost

Data not appearing after import

PDF report not generating

10. Frequently Asked Questions

Is RangePulse a medical device?

No. RangePulse is a health tracking and data visualization tool. It is not a medical device, does not provide medical advice, and is not intended to diagnose, treat, cure, or prevent any disease. Always consult your doctor for medical decisions.

What is the difference between Cloud and self-hosted?

Both versions have identical features. Cloud is hosted for you at rangepulse.com — sign up and start tracking with no setup. Self-hosted is free and runs on your own server using Docker. You are responsible for updates, backups, and uptime.

Is my data sold to third parties?

No. RangePulse does not sell, share, or monetize your personal health information. If you use the self-hosted version, your data never leaves your own server.

Can I switch from Cloud to self-hosted (or vice versa)?

Yes. Export your data as CSV from your current version (open the Data menu → Export Data), then import that CSV into the other version (Data menu → Import Data). All readings and notes will transfer.

How do I cancel my Cloud subscription?

Go to app.rangepulse.com/cancel. Enter your email address and your Customer ID (shown on your Account page, e.g. RP-0123). Your subscription cancels immediately and you'll receive a confirmation email.

You can also cancel through the billing portal: log in, go to Account → Billing, click Manage subscription, and choose Cancel subscription. This stops future charges but keeps your data on the free plan indefinitely.

What happens after I cancel?

If you cancel via the /cancel page: your account is scheduled for deletion 3 days later. You'll receive a confirmation email with a link to export your data. After 3 days, your account and all health data are permanently removed.

If you cancel via the billing portal: your subscription ends at the current billing period, then your account moves to the free plan. Your data is preserved and you keep 30 days of chart history.

How secure is the Cloud version?

RangePulse Cloud is hosted on Amazon Web Services (AWS). All data is encrypted at rest and in transit. Connections use HTTPS/TLS. Passwords are hashed and salted.

Does RangePulse work on mobile?

Yes. The dashboard is fully responsive and works on phones and tablets. There is no separate app — open RangePulse in your mobile browser.

Does RangePulse support dark mode?

Yes. Toggle dark mode from the dashboard. Your preference is saved automatically.

Can multiple people use one account?

Each account is designed for one person. If multiple people want to track their vitals, each person should create their own account. The self-hosted version supports multiple accounts on a single installation.

Is the annual plan refundable?

Contact hello@rangepulse.com within 14 days of purchase for a full refund. After 14 days, you can cancel to prevent renewal, but the current period is non-refundable.

11. Contact and Support

If you have a question, found a bug, or need help:

When emailing about a technical issue, please include:

Ready to start tracking your health vitals?

Get Started Free

Medical Disclaimer: RangePulse is not a medical device and does not provide medical advice. The information displayed by RangePulse — including charts, trend lines, statistics, blood pressure classifications, and clinical PDF reports — is for informational and educational purposes only. It is not intended to diagnose, treat, cure, or prevent any disease or medical condition. Always consult your doctor or a qualified healthcare provider before making any decisions about your health, medications, or treatment. Do not disregard professional medical advice or delay seeking it because of information provided by RangePulse. If you are experiencing a medical emergency, call your local emergency number immediately.