Skip to content

Deploying What To Cook

Introduction

What To Cook is a self-hosted recipe management and meal planning application designed to help you answer the eternal question: “What should I cook today?” It provides an intuitive interface for storing recipes, planning weekly meals, and generating shopping lists based on your meal plan.

The application focuses on simplicity and practical features that make daily meal planning easier for individuals and families.

Key features of What To Cook include:

  • Recipe Management: Store and organize your favorite recipes
  • Meal Planning: Plan meals for the week or month
  • Shopping Lists: Auto-generate shopping lists from meal plans
  • Ingredient Tracking: Track what you have in your pantry
  • Recipe Import: Import recipes from URLs
  • Categorization: Organize recipes by meal type, cuisine, or custom tags
  • Search and Filter: Quickly find recipes by ingredients or name
  • Serving Adjustment: Scale recipes up or down
  • Mobile-Friendly: Access and cook from your phone or tablet
  • Family Sharing: Share meal plans with family members

This guide walks you through deploying What To Cook on Klutch.sh using Docker for meal planning.

Prerequisites

Before deploying What To Cook on Klutch.sh, ensure you have:

Repository Structure

Create a GitHub repository with the following structure:

what-to-cook-deploy/
├── Dockerfile
└── .dockerignore

Dockerfile

Create a Dockerfile in your repository:

FROM whattoeattoday/what-to-cook:latest
# Web interface port
EXPOSE 3000
# The base image handles the entrypoint

Environment Variables

VariableRequiredDefaultDescription
DATABASE_URLNoSQLiteDatabase connection string
SECRET_KEYYes-Application secret key

Deployment on Klutch.sh

  1. Push your Dockerfile to your GitHub repository.
  2. Log in to Klutch.sh and create a new project.
  3. Create a new app within your project and connect your GitHub repository containing the Dockerfile.
  4. Configure the deployment settings: - Select **HTTP** as the traffic type - Set the internal port to **3000**
  5. Add environment variables: - `SECRET_KEY`: A secure random string
  6. Attach a persistent volume: - Mount path: `/app/data` - Recommended size: 1 GB - Purpose: Database and recipe images
  7. Click **Deploy** and wait for the build to complete.
  8. Access your What To Cook instance and create your account.

Post-Deployment Setup

After deployment:

  1. Create your user account
  2. Add your favorite recipes manually or import from URLs
  3. Set up your weekly meal plan
  4. Generate shopping lists
  5. Invite family members if desired

Usage Tips

Weekly Meal Planning

  1. Navigate to the meal planner
  2. Drag and drop recipes to different days
  3. Generate a shopping list for the week
  4. Check off items as you shop

Recipe Import

Many recipe websites can be imported by pasting the URL. The application will extract ingredients and instructions automatically.

Troubleshooting

Recipe Import Failing

Not all recipe websites are supported for import. Try manually entering recipes that fail to import.

Images Not Loading

Ensure the persistent volume is correctly mounted and has sufficient space.

Additional Resources