Back to Projects

BagTagger

Docker-hosted inventory management for online sellers

Python Flask Docker SQLite JavaScript GHCR

Project Overview

A fully Docker-hosted web application for managing inventory across storage bags and boxes. Built for online sellers who need to track what's in storage, what's listed, and what's been sold - with photo evidence throughout the pipeline.

Deploy with a single docker-compose up -d and access it at localhost:5050. CI/CD via GitHub Actions automatically builds and pushes images to GitHub Container Registry.

Key Features

  • Container Management - Create and manage bags/boxes as storage containers with custom names and descriptions
  • Item Tracking - Add items with photos, track their location across containers
  • Status Workflow - Full pipeline: In Storage → Listed → Sold, with timestamps at each stage
  • Search & Filter - Find items instantly across all containers
  • Photo Storage - Upload and associate images with items for visual identification
  • Statistics Dashboard - Visual overview of inventory, sales, and platform analytics
  • Encrypted Backup & Restore - Export and import your entire inventory as .btbk files
  • Platform Analytics - Track which selling platforms perform best with revenue analytics and date filtering

Tech Stack

Built with a Python/Flask backend serving a responsive HTML/CSS/JS frontend, with SQLite for data persistence. Containerized with Docker using named volumes (inventory-data, uploads-data) for data persistence. Automated CI/CD pipeline builds multi-architecture images and pushes to GHCR.

Deployment

Designed for self-hosting on any Docker-capable machine, including TrueNAS Scale. The project includes both a development compose file and a production deploy configuration, plus a PowerShell update script for remote server management.

View on GitHub

Dev Journal