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:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- Basic familiarity with Docker and containerization concepts
Preparing Your Repository
Create a GitHub repository containing your Dockerfile for Vanilla Cookbook deployment.
Repository Structure
vanilla-cookbook-deploy/├── Dockerfile└── .dockerignoreCreating the Dockerfile
FROM ghcr.io/vanilla-cookbook/vanilla-cookbook:latest
# Set environment variablesENV DATABASE_URL=${DATABASE_URL:-sqlite:///data/recipes.db}ENV SECRET_KEY=${SECRET_KEY}ENV ALLOWED_HOSTS=${ALLOWED_HOSTS:-*}
# Create data directoryRUN mkdir -p /data /data/images
# Expose the web interface portEXPOSE 8000
# Volume for persistent dataVOLUME ["/data"]Environment Variables Reference
| Variable | Required | Default | Description |
|---|---|---|---|
DATABASE_URL | No | sqlite:///data/recipes.db | Database connection string |
SECRET_KEY | Yes | - | Secret key for session security |
ALLOWED_HOSTS | No | * | Comma-separated list of allowed hostnames |
Deploying Vanilla Cookbook on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 8000
Generate a Secret Key
Generate a secure secret key for your deployment:
openssl rand -hex 32Push 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:
Set Environment Variables
Add the following environment variables:
| Variable | Value |
|---|---|
SECRET_KEY | Your generated secret key |
ALLOWED_HOSTS | your-app-name.klutch.sh |
Attach Persistent Volumes
Add the following volume:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/data | 5 GB | SQLite 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
- Click Add Recipe from the dashboard
- Enter the recipe title, ingredients, and instructions
- Add optional details like prep time, cook time, and servings
- Upload a photo or leave blank for a default image
- Assign categories and tags for organization
- Save your recipe
Importing from URLs
- Click Import Recipe
- Paste the URL of a recipe from a supported website
- Review the parsed recipe data
- Make any necessary corrections
- 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
- Navigate to the Meal Planner section
- Select a week to plan
- Drag recipes to specific days and meals
- View your weekly overview
Generating Shopping Lists
- Select recipes for your shopping list
- Click Generate Shopping List
- Review and edit the consolidated ingredients
- 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.