Skip to content

Deploying Vanilla Cookbook

Introduction

Vanilla Cookbook is a minimalist, self-hosted recipe management application designed for simplicity and ease of use. Built with modern web technologies, it provides a clean interface for storing, organizing, and discovering your favorite recipes without the bloat of commercial recipe platforms.

Key highlights of Vanilla Cookbook:

  • Clean Interface: Minimalist design focused on recipes, not advertisements
  • Recipe Import: Import recipes from URLs with automatic parsing
  • Categorization: Organize recipes by categories, tags, and cuisines
  • Search: Full-text search across all your recipes
  • Meal Planning: Plan your weekly meals with a built-in calendar
  • Shopping Lists: Generate shopping lists from selected recipes
  • Scaling: Automatically scale ingredient quantities for different serving sizes
  • Mobile Friendly: Responsive design works great on phones and tablets
  • Self-Hosted: Your recipes stay private on your own server

This guide walks through deploying Vanilla Cookbook on Klutch.sh using Docker, configuring recipe storage, and setting up the application for your household.

Why Deploy Vanilla Cookbook on Klutch.sh

Deploying Vanilla Cookbook on Klutch.sh provides several advantages for recipe management:

Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds Vanilla Cookbook without complex orchestration. Push to GitHub, and your recipe manager deploys automatically.

Persistent Storage: Attach persistent volumes for your recipe database and images. Your collection survives container restarts without data loss.

HTTPS by Default: Klutch.sh provides automatic SSL certificates, ensuring secure access to your recipes from anywhere.

GitHub Integration: Connect your configuration repository directly from GitHub. Updates trigger automatic redeployments.

Family Access: Share your deployed instance with family members for collaborative recipe management.

Prerequisites

Before deploying Vanilla Cookbook on Klutch.sh, ensure you have:

Preparing Your Repository

Create a GitHub repository containing your Dockerfile for Vanilla Cookbook deployment.

Repository Structure

vanilla-cookbook-deploy/
├── Dockerfile
└── .dockerignore

Creating the Dockerfile

FROM ghcr.io/vanilla-cookbook/vanilla-cookbook:latest
# Set environment variables
ENV DATABASE_URL=${DATABASE_URL:-sqlite:///data/recipes.db}
ENV SECRET_KEY=${SECRET_KEY}
ENV ALLOWED_HOSTS=${ALLOWED_HOSTS:-*}
# Create data directory
RUN mkdir -p /data /data/images
# Expose the web interface port
EXPOSE 8000
# Volume for persistent data
VOLUME ["/data"]

Environment Variables Reference

VariableRequiredDefaultDescription
DATABASE_URLNosqlite:///data/recipes.dbDatabase connection string
SECRET_KEYYes-Secret key for session security
ALLOWED_HOSTSNo*Comma-separated list of allowed hostnames

Deploying Vanilla Cookbook on Klutch.sh

    Generate a Secret Key

    Generate a secure secret key for your deployment:

    Terminal window
    openssl rand -hex 32

    Push Your Repository to GitHub

    Initialize your repository and push to GitHub with your Dockerfile and configuration files.

    Create a New Project on Klutch.sh

    Navigate to the Klutch.sh dashboard and create a new project. Give it a descriptive name like “recipes” or “cookbook”.

    Create a New App

    Within your project, create a new app. Connect your GitHub account if you haven’t already, then select the repository containing your Dockerfile.

    Configure HTTP Traffic

    In the deployment settings:

    • Select HTTP as the traffic type
    • Set the internal port to 8000

    Set Environment Variables

    Add the following environment variables:

    VariableValue
    SECRET_KEYYour generated secret key
    ALLOWED_HOSTSyour-app-name.klutch.sh

    Attach Persistent Volumes

    Add the following volume:

    Mount PathRecommended SizePurpose
    /data5 GBSQLite database and recipe images

    Deploy Your Application

    Click Deploy to start the build process. Klutch.sh will build the container, attach volumes, and provision an HTTPS certificate.

    Access Vanilla Cookbook

    Once deployment completes, access your instance at https://your-app-name.klutch.sh. Create an account to start adding recipes.

Adding Recipes

Manual Entry

  1. Click Add Recipe from the dashboard
  2. Enter the recipe title, ingredients, and instructions
  3. Add optional details like prep time, cook time, and servings
  4. Upload a photo or leave blank for a default image
  5. Assign categories and tags for organization
  6. Save your recipe

Importing from URLs

  1. Click Import Recipe
  2. Paste the URL of a recipe from a supported website
  3. Review the parsed recipe data
  4. Make any necessary corrections
  5. Save the imported recipe

Organizing Your Collection

  • Create categories for meal types (Breakfast, Lunch, Dinner, Dessert)
  • Add tags for dietary needs (Vegetarian, Gluten-Free, Dairy-Free)
  • Use cuisine tags for variety (Italian, Mexican, Asian)

Meal Planning

Creating a Meal Plan

  1. Navigate to the Meal Planner section
  2. Select a week to plan
  3. Drag recipes to specific days and meals
  4. View your weekly overview

Generating Shopping Lists

  1. Select recipes for your shopping list
  2. Click Generate Shopping List
  3. Review and edit the consolidated ingredients
  4. Check off items as you shop

Additional Resources

Conclusion

Deploying Vanilla Cookbook on Klutch.sh gives you a clean, ad-free recipe management solution with persistent storage and secure HTTPS access. The combination of Vanilla Cookbook’s minimalist design and Klutch.sh’s deployment simplicity means you can quickly organize your recipe collection and access it from anywhere.