selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

PruneMate logo

Self-host PruneMate

V1.3.3

Scheduled Docker image and resource cleanup web UI

ReleaseOpen SourceAGPL-3.0
Updated8 months ago
LanguageHTML
Setup difficultyEasy
MobileResponsive
ThemeDark mode
Stars
468
Port
8080 (Web UI port inside the container (example mapping 7676:8080))
Requires
Docker Engine
Docker
anoniemerd/prunemate
Install with Docker
Main dashboard with schedule and cleanup controlsLogin page shown when authentication is enabledExternal Docker hosts management screenNotification settings for Gotify, ntfy, Discord or TelegramPrune preview listing resources to be deleted

What is PruneMate?

PruneMate is a lightweight Flask-based web interface that keeps a Docker host tidy by running Docker's own prune commands at intervals you configure. You can set daily, weekly or monthly jobs, or turn scheduling off and trigger runs by hand, and pick which resource types to sweep: stopped containers, unused images, custom networks, volumes and the builder cache. Before a manual run, a preview screen lists the objects Docker would remove, so nothing goes until you confirm it. The app tracks cumulative figures for reclaimed disk space and deleted objects, publishes them through a /api/stats endpoint for Homepage dashboard widgets, and can send run reports to notification services such as Gotify, ntfy.sh, Discord and Telegram. Several remote Docker hosts can be handled from one UI by standing up docker-socket-proxy on each machine. Login protection is optional, using a scrypt password hash with a Basic Auth fallback for API clients. Deployment is a single container with the Docker socket plus config and log volumes mounted; images exist for amd64 and arm64. Note the project's own warning: pruning deletes everything Docker deems unused, volumes included, so understand the impact before automating it.

Should you self-host PruneMate?

PruneMate scores 46/100 on selfhost.directory (how scoring works) and ranks #5 of 5 in Docker Management. It has 468 GitHub stars.

It shipped 10 stable releases in the past year. The latest, V1.3.3, came out on 15 February 2026. New versions land roughly every 4 days.

Setup is easy: most people get it running in one sitting. An official Docker image is available. It is AGPL-3.0-licensed and written mostly in HTML.

Its closest alternative on selfhost.directory is dockge (76/100, 24 698 stars). It scores higher overall, so compare the two before you pick. See PruneMate vs dockge side by side.

Features

  • All-time statistics
  • Build cache pruning
  • Detailed run logs
  • Multi-host Management
  • Notification alerts
  • Prune preview
  • REST API
  • Scheduled cleanup
  • Selective resource cleanup
  • Timezone Support

PruneMate README

How to install PruneMate

Install PruneMate with Docker

Docker and access to Docker socket (/var/run/docker.sock)
Environment variables
PRUNEMATE_TZ,PRUNEMATE_TIME_24H,PRUNEMATE_CONFIG,PRUNEMATE_AUTH_USER,PRUNEMATE_AUTH_PASSWORD_HASH
docker run -d \
  --name prunemate \
  -p 7676:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v $(pwd)/logs:/var/log \
  -v $(pwd)/config:/config \
  -e PRUNEMATE_TZ=Europe/Amsterdam \
  -e PRUNEMATE_TIME_24H=true \
  --restart unless-stopped \
  anoniemerd/prunemate:latest

Web UI then at http://<your-server-ip>:7676/

How to configure PruneMate

  • --gen-hashCLI flag for prunemate.py that generates a Base64-encoded scrypt password hash

    CLI flag for prunemate.py that generates a Base64-encoded scrypt password hash

  • PRUNEMATE_AUTH_PASSWORD_HASHBase64-encoded password hash (enables authentication when set)

    Base64-encoded password hash (enables authentication when set)

  • PRUNEMATE_AUTH_USERadminUsername for authentication (optional, only used when auth is enabled)

    Username for authentication (optional, only used when auth is enabled)

  • PRUNEMATE_CONFIG/config/config.jsonPath to configuration file

    Path to configuration file

  • PRUNEMATE_TIME_24HtrueTime format: true for 24-hour, false for 12-hour (AM/PM)

    Time format: true for 24-hour, false for 12-hour (AM/PM)

    values: true/false

  • PRUNEMATE_TZUTCTimezone for scheduling

    Timezone for scheduling

PruneMate releases & version history

More in Docker Management

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…