CheckBag

CheckBag

Docker app from Preposterous' Repository

Overview

CheckBag is designed to sit between a reverse proxy and self-hosted services to provide graphs and analytics about who's trying to do what on your homelab.

CheckBag Logo

CheckBag Demo

What is CheckBag?

CheckBag is an analytics dashboard designed for homelab owners, providing insights into who's accessing your services and from where.

Why?

A dashboard like Cloudflare's is helpful, but doesn't clearly tell you what traffic is actually allowed through, nor does it give you much for filtering options with the collected data. CheckBag changes this and aims to be a simple to use dashboard that provides meaningful insights into what your network is doing.

How?

To collect these insights, CheckBag is a proxy that sits between your reverse proxy (ex. NGINX Proxy Manager) and your services, and uses Valkey to store rolling analytics. These analytics can be queried for and turned into a dashboard accessible through your browser.

Installation

Manual Installation

CheckBag is deployed via Docker, and requires a little configuration to get up and going.

Step 1: Install Docker

Docker is used to "containerize" CheckBag to ensure all of its assets are accounted for. CheckBag is built for a Linux deployment on a NAS or similar server, which typically run some form of Linux.

Step 2: Downloading Files

  1. Go to the releases page and find the latest version of CheckBag.
  2. Download docker-compose.yml and example.env.
  3. Move the files to a folder that you can find again later, and don't mind sticking around.
  4. Rename example.env to .env. Note: this may make the file disappear, so you may need to show hidden files. On Linux it's usually ctrl + h or use ls -a, macOS is cmd + shift + ., and Windows is Win + h to show hidden files.

Step 3: Configure CheckBag

Open .env, and you'll see some options. Most notably you'll need to add a secure password to CACHE_PASSWORD since this will be used to secure access to collected data. The remaining options can stay the same if you'd like, or can be updated.

Step 4: Ready for Launch

  1. Open a terminal or command line window at the directory you saved your CheckBag files to.
  2. Run docker compose up -d (-d lets you reuse your terminal if you still want it), and CheckBag will launch. You can access it on the WebUI port specified in the .env file.

Unraid Installation

Step 1: The Unraid UI

  • Open the Unraid UI.
  • On the top bar, go to Apps.

Step 2: Install Valkey

  • Search for Valkey. There should be a single result.
  • Click on Valkey, and install. Note the Valkey Port.

Step 3: Install CheckBag

  • Back in the Apps section, search for CheckBag.
  • Click on CheckBag, and install.
  • Set the Valkey IP and port. The IP can be found by going to the top bar > Docker. Find the Valkey row and use the Container IP.
  • You can leave the Valkey Password blank, and the CheckBag Data directory and WebUI and Proxy Port the same unless there are conflicts.
  • Hit Apply to install.

Adding Services

Point each of your endpoints listed in your reverse proxy at CheckBag. You'll need to know the IP address of the system CheckBag's running on to get this working. Here's an example of this with NGINX Proxy Manager:

NGINX Configuration Details Screen NGINX Configuration Custom Locations Screen

In this example, you'll need to use a Custom Location at the location / for your proxy host. The NGINX config can be found below, paste it in the advanced configuration by hitting the gear icon in the top right. Replace CHECKBAG-IP and CHECKBAG-PORT with your own. This will need to be done for all sub-domains.

location / {
    proxy_set_header Host $host;
    proxy_pass http://CHECKBAG-IP:CHECKBAG-PORT/api/service/;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_read_timeout 86400s;
    proxy_send_timeout 86400s;
    proxy_connect_timeout 86400s;
}

Compatibility

  • CheckBag has been tested with CloudFlare for the domain provider and proxy, which provides headers for some information like country of origin. CheckBag may not be out of the box compatible with other proxy hosts, and may require some additional tuning in your reverse proxy. It's highly recommended to add an issue for such problems.
  • The provided Docker Image in the release page is built for Linux x86/ARM.
  • If you're using CloudFlare, ensure your domain has Rules > Settings > Remove "X-Powered-By" header and Remove visitor IP headers disabled, and Add visitor location headers enabled.

Media gallery

Install CheckBag on Unraid in a few clicks.

Find CheckBag in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for CheckBag Review the template variables and paths Click Install

Requirements

Valkey v18

Related apps

Details

Repository
ghcr.io/benjaminroberts01375/checkbag:latest
Last Updated2026-07-15
First Seen2025-09-04

Runtime arguments

Web UI
http://[IP]:[PORT:8080]
Network
bridge
Shell
sh
Privileged
false
Extra Params
--user 99:100

Template configuration

WebUI and Proxy PortPorttcp
Target
8080
Value
8769
Valkey IPVariable

Does not include port or protocol

Target
CACHE_ADDRESS
Valkey PortVariable
Target
CACHE_PORT
Value
6379
Valkey PasswordVariable

If Valkey was setup with --requirepass

Target
CACHE_PASSWORD
CheckBag DataPathrw

Settings and user data

Target
/CheckBag
Default
/mnt/user/appdata/CheckBag
Value
/mnt/user/appdata/CheckBag
Cache ID LengthVariable

When an identifier is created (ex. JWT), how long the ID should be.

Target
CACHE_ID_LENGTH
Default
15
Value
15
Service ID LengthVariable

When a service is created, it's created with a random ID. This sets how long the ID is.

Target
SERVICE_ID_LENGTH
Default
15
Value
15
Log ColorVariable

Color used for outputting logs

Target
COLOR
Default
blue
Value
blue
RoleVariable

Text used to describe backend service

Target
ROLE
Default
Backend
Value
Backend
Backend Internal PortVariable

Port to launch backend service from

Target
PORT
Default
8080
Value
8080