Skip to content

rwlove/PUMP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

149 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Publish Container Images Go Report Card

PUMP

Please Use More Protein — workout diary with daily set logging, body weight tracking, and training history stats.

Workout Stats: Exercise Distribution Stats: Weight Moved
Workout Stats Exercise Distribution Stats Weight Moved
Stats: Body Weight Config
Stats Body Weight Config

Architecture

Browser / Android app ──▶ pump  :8080  ──▶ PostgreSQL
                          (UI + API)

The pump monolith serves both the web UI and the JSON API on a single port (default 8080). There is no separate API or frontend port — all traffic goes through :8080.

Path prefix Purpose
/ Web UI (HTML, CSS, JS)
/api/ JSON REST API (used by the Android app and direct integrations)

Use image ghcr.io/rwlove/pump. Set POSTGRES_DSN and optionally API_KEY.

Android App

The PUMP Android app provides the same workout logging experience as the web UI, connecting to any PUMP API server you specify.

Requires Android 16 (API 36) or later.

Workout Stats Weight
(screenshot coming soon) (screenshot coming soon) (screenshot coming soon)

Installation

Scan to download the latest APK:

QR code — PUMP Android APK

Or download directly from the Releases page. You may need to allow installation from unknown sources on your device.

Configuration

On first launch, open Settings and enter:

Field Description
API URL Base URL of your PUMP API server (e.g. http://192.168.1.10:8080)
API Key Optional — must match API_KEY on the server

Configuration

All configuration is via environment variables. No config file is required.

pump

Variable Description Default
PORT Listen port 8080
HOST Listen address 0.0.0.0
POSTGRES_DSN PostgreSQL connection string (required)
API_KEY Require this value on every X-Api-Key request header; empty = no auth ""
LOG_LEVEL Log verbosity: debug, info, warn, error info
COLOR UI color mode: light or dark dark
PAGESTEP Rows per page on the body weight log 10
DISPLAY_DAYS Days of workout history shown on the main page (7/30/90/365) 30
FREQUENCY_DAYS Look-back window (days) for sorting exercises by usage frequency 30
AUTOFILL Pre-fill weight/reps from last performance when adding a set true
NODE_PATH Path to local node_modules directory; empty = use CDN for Bootstrap/Chart.js ""
TZ Timezone ""

POSTGRES_DSN must be set or the server will not start:

POSTGRES_DSN=postgres://user:password@host:5432/pump

The schema is versioned and managed automatically on startup — no manual CREATE TABLE needed.

About

The official Please Use More Protein repository!

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors