Skip to content
/ pantry Public

A modern, self-hosted kitchen & pantry manager. Manage recipes, plan meals, track inventory, and generate shopping lists. Single-user app with Docker deployment.

Notifications You must be signed in to change notification settings

netz-sg/pantry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

30 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Pantry πŸ₯—

Pantry Logo

Your Personal Kitchen & Pantry Manager

Manage Recipes β€’ Meal Planner β€’ Shopping List β€’ Pantry Inventory

Version Next.js TypeScript Tailwind CSS Drizzle ORM Docker

πŸ“– About the Project

Pantry is a modern, self-hosted web application designed to help you organize your household digitally. From managing your favorite recipes and planning your entire week to automatically generating shopping lists – Pantry is your central hub for everything food-related.

Designed as a single-user application for personal or household use, with easy Docker deployment for quick setup.

✨ Features

  • πŸ‘¨β€πŸ³ Recipe Management: Create, edit and organize your favorite recipes with images and detailed instructions.
  • πŸ“… Interactive Meal Planner: Plan your meals for the week with an intuitive calendar view.
  • 🏷️ Categories & Tags: Organize recipes by categories (breakfast, lunch, dinner, etc.) and custom tags.
  • πŸ›’ Smart Shopping List: Add ingredients directly from recipes to your shopping list with one click.
  • πŸ“¦ Pantry Inventory: Keep track of your pantry items, expiry dates, and low stock alerts.
  • πŸ‘€ Personalization: User profile with custom profile picture and settings.
  • πŸ” Secure Authentication: Username/password login with NextAuth.
  • πŸ“± REST API: Complete REST API with JWT authentication for mobile app integration.
  • 🌍 Internationalization: Full support for English, German, and Chinese with bilingual data storage.
  • 🐳 Docker Ready: One-command deployment with Docker Compose.

πŸ›  Tech Stack

The project is built on cutting-edge web technologies:

πŸš€ Quick Start

Option 1: Docker Deployment (Recommended)

The fastest way to get started:

# 1. Clone the repository
git clone https://github.com/netz-sg/pantry.git
cd pantry

# 2. Start with Docker Compose
docker-compose up -d

That's it! Open http://localhost:3000 and create your account.

πŸ“– Full Docker documentation: See DOCKER.md for advanced configuration, backups, and troubleshooting.

Option 2: Local Development

For development or if you prefer running without Docker:

  1. Clone the repository

    git clone https://github.com/netz-sg/pantry.git
    cd pantry
  2. Install dependencies

    npm install
  3. Setup Database

    npm run db:push
  4. Start Development Server

    npm run dev

    Open http://localhost:3000 in your browser.

πŸ” First Time Setup

After starting the application:

  1. Navigate to http://localhost:3000
  2. Click "Jetzt registrieren" (Register)
  3. Create your account with:
    • Name: Your display name
    • Username: Your login username (min. 3 characters)
    • Password: Your secure password (min. 8 characters)

Important: This is a single-user application. After the first user registers, no additional registrations are possible.

πŸ“± REST API

Pantry includes a complete REST API for mobile app integration. All endpoints support full CRUD operations with JWT-based authentication.

Available Endpoints

  • πŸ” Authentication: Login & token verification (POST /api/auth/login, GET /api/auth/verify)
  • πŸ‘¨β€πŸ³ Recipes: Complete recipe management with ingredients & instructions (/api/recipes)
  • πŸ“¦ Pantry: Pantry inventory management (/api/pantry)
  • πŸ›’ Shopping List: Shopping list operations (/api/shopping)
  • πŸ“… Meal Planner: Weekly meal planning with date range queries (/api/planner)
  • ⭐ Favorites: Manage favorite recipes (/api/favorites)
  • πŸ‘€ User: Profile and settings management (/api/user)

Key Features

  • JWT Authentication: 30-day token validity with Bearer authentication
  • Bilingual Support: All content fields include both German and English variants
  • Complete Data: Recipe endpoints return full details including ingredients, instructions, and favorite status
  • Relational Data: Efficient queries with automatic relation loading
  • Standardized Responses: Consistent success/error response format

πŸ“– Full API Documentation: See API.md for detailed endpoint specifications, request/response examples, and authentication flow.

πŸ“¦ Environment Variables

Optional environment variables (with defaults):

# Authentication
AUTH_SECRET=your-secret-key-here  # Used for NextAuth and JWT signing
NEXTAUTH_URL=http://localhost:3000

# Database (SQLite)
DATABASE_URL=file:./data/pantry.db

🐳 Docker Volumes

When using Docker, your data is persisted in volumes:

  • pantry-data: Database files
  • pantry-uploads: Uploaded images (profile pictures, recipe images)

πŸ“Έ Screenshots

Dashboard

Your overview showing recent recipes and quick stats at a glance.

Dashboard Overview

Recipe Management

Create and manage your recipes with images, ingredients, and step-by-step instructions.

Recipe Management

Recipe Detail View

Detailed view of a recipe with all ingredients, instructions, and nutritional information.

Recipe Detail View

Meal Planner

Plan your meals for the week in a clear calendar view.

Meal Planner

πŸ“„ License

This project is published under the MIT License.


Made with ❀️ by netz-sg

About

A modern, self-hosted kitchen & pantry manager. Manage recipes, plan meals, track inventory, and generate shopping lists. Single-user app with Docker deployment.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •