Skip to content

Repository files navigation

Attic

GitHub Release GitHub License Docker Pulls

Self-hosted home inventory for everything you own.

Attic is an open-source home inventory application for individuals and households. Catalog everything you own—from appliances and tools to electronics, books, games, and furniture—and keep its location, condition, purchase information, warranty, photos, receipts, and manuals together.

Attic mirrors the way a home is organized with nested locations such as rooms, shelves, cupboards, and boxes. Categories and custom fields capture the right details for each kind of belonging, while collections group related items without changing where they are stored. It works for a focused collection or an entire household inventory.

Key Features

Home Inventory

  • Full CRUD with custom attributes per category (strings, numbers, booleans, dates, dropdowns)
  • Hierarchical categories and locations; child categories inherit their ancestors' custom fields
  • Condition tracking (new, used, damaged, or custom states)
  • Warranty expiration monitoring on the dashboard
  • File attachments for invoices, manuals, and photos
  • Shared household collections with names, descriptions, and icons (e.g. PS5 games, books, furniture). Assign assets to any number of collections from the asset form and filter inventory by collection. Deleting a collection preserves its assets.
  • Purchase dates, prices, and notes with dashboard value summaries

Search & Discovery

  • Full-text search across asset names and descriptions
  • Filter by category, location, and condition
  • Category filters include assets assigned to descendant categories

Smart Integrations

  • Automated imports from Google Books, TMDB (movies and TV), BoardGameGeek, and IGDB (video games)
  • Metadata and cover images populated automatically
  • Plugin system for adding new import sources

Google Books works without credentials, but Google may apply a low shared quota to unauthenticated requests. Set ATTIC_GOOGLE_BOOKS_API_KEY to a Google Books API key for reliable imports in a self-hosted or shared deployment. The key is sent only to Google Books API requests.

IGDB imports require ATTIC_IGDB_CLIENT_ID and ATTIC_IGDB_CLIENT_SECRET from a Twitch application. Attic exchanges these credentials for a short-lived access token and keeps the token in memory only.

Self-Hosted & Secure

  • Docker-based deployment with complete data ownership
  • Local password authentication and OIDC/SSO (Keycloak compatible)
  • REST API with Swagger documentation
  • Local or S3-compatible storage for attachments
  • Dark mode with mobile-responsive UI

Quick Start

Prerequisites

  • Docker & Docker Compose
  • Go 1.27+
  • Bun 1.1+
  • Make

Development Setup

  1. Clone the repository and start infrastructure:

    git clone git@github.com:lmmendes/attic.git
    cd attic
    docker compose up -d
  2. Run database migrations:

    make migrate-up
  3. Start the backend:

    cd backend
    go run ./cmd/server
  4. Start the frontend (new terminal):

    cd frontend
    bun install
    bun run dev
  5. Open the app:

    Service URL
    Frontend http://localhost:3000
    Backend API http://localhost:8080
    API Docs http://localhost:8080/api/docs
    Keycloak http://localhost:8180

    Default test credentials: testuser / testpassword

Browser integration tests

The Playwright suite exercises real browser workflows against a running Attic instance, including login, category/attribute handoffs, and feature settings.

cd frontend
bunx playwright install chromium
bun run test:e2e

The local suite targets the Nuxt development server at http://127.0.0.1:3000. Set E2E_BASE_URL when testing another running instance.

GitHub Actions runs the same suite against the compiled application and a disposable PostgreSQL database on every pull request.

Production Deployment

cp .env.example .env
# Edit .env with your production values

docker compose -f docker-compose.prod.yml up -d --build
docker compose -f docker-compose.prod.yml exec backend \
  /app/migrate -path /migrations -database "$DATABASE_URL" up

For more details, visit getattic.dev.

Tech Stack

Component Technology
Backend Go 1.27, Chi router, PostgreSQL
Frontend Nuxt 4, Nuxt UI 4, Tailwind CSS
Auth Local passwords or OIDC/SSO
Storage S3-compatible (AWS S3, MinIO, LocalStack)

Contributors

Social

Star History Chart

License

MIT

About

Self-hosted home inventory management. Track everything. Lose nothing.

Topics

Resources

Security policy

Stars

81 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages