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.
- π¨βπ³ 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.
The project is built on cutting-edge web technologies:
- Framework: Next.js 16 (App Router)
- Language: TypeScript
- Database: SQLite with Drizzle ORM
- Styling: Tailwind CSS v4
- Auth: Auth.js (NextAuth v5)
- UI Components: Radix UI & Lucide Icons
- Deployment: Docker & Docker Compose
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 -dThat's it! Open http://localhost:3000 and create your account.
π Full Docker documentation: See DOCKER.md for advanced configuration, backups, and troubleshooting.
For development or if you prefer running without Docker:
-
Clone the repository
git clone https://github.com/netz-sg/pantry.git cd pantry -
Install dependencies
npm install
-
Setup Database
npm run db:push
-
Start Development Server
npm run dev
Open http://localhost:3000 in your browser.
After starting the application:
- Navigate to http://localhost:3000
- Click "Jetzt registrieren" (Register)
- 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.
Pantry includes a complete REST API for mobile app integration. All endpoints support full CRUD operations with JWT-based authentication.
- π 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)
- 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.
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.dbWhen using Docker, your data is persisted in volumes:
- pantry-data: Database files
- pantry-uploads: Uploaded images (profile pictures, recipe images)
Your overview showing recent recipes and quick stats at a glance.
Create and manage your recipes with images, ingredients, and step-by-step instructions.
Detailed view of a recipe with all ingredients, instructions, and nutritional information.
Plan your meals for the week in a clear calendar view.
This project is published under the MIT License.
