Favicon of RecipeSage

RecipeSage

Keep your favorite culinary creations in one organized digital cookbook. Save new dishes, manage ingredients, and access your recipes from anywhere.

Build your ultimate digital cookbook with a dedicated personal recipe keeper. This platform allows you to save, organize, and manage all your favorite culinary creations in one secure place. Access your recipes anywhere by logging in through the web or downloading the dedicated application. Organize your meals efficiently, ensuring you never lose track of a family favorite or a new dish you want to try. Contribute to the community by engaging with an open-source platform designed for food enthusiasts. Whether you are a home cook or a professional chef, keeping your ingredients, instructions, and cooking notes neatly arranged has never been simpler. Say goodbye to messy physical recipe cards and scattered bookmarks, and enjoy a clean, user-friendly interface built specifically for managing your personal kitchen repertoire.

Directory Structure

recipesage
data
.env
docker-compose.yml

docker-compose.yml

services:
  proxy:
    image: julianpoy/recipesage-selfhost-proxy:latest
    restart: unless-stopped
    ports:
      - "8080:80"
    depends_on:
      - api
      - static

  static:
    image: julianpoy/recipesage-ui:selfhost
    restart: unless-stopped

  api:
    image: julianpoy/recipesage-api:selfhost
    restart: unless-stopped
    depends_on:
      - postgres
      - typesense
      - browserless
    environment:
      - POSTGRES_CONNECTION_STRING=postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@postgres:5432/${POSTGRES_DB}
      - TYPESENSE_HOST=typesense
      - TYPESENSE_PORT=8108
      - TYPESENSE_PROTOCOL=http
      - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
      - BROWSERLESS_HOST=browserless
      - BROWSERLESS_PORT=3000
      - TOKEN_SECRET=${TOKEN_SECRET}
      - VERIFY_EMAILS=false
    volumes:
      - ./data/userdata:/app/userdata

  postgres:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - ./data/postgres:/var/lib/postgresql/data

  typesense:
    image: typesense/typesense:0.25.2
    restart: unless-stopped
    environment:
      - TYPESENSE_DATA_DIR=/data
      - TYPESENSE_API_KEY=${TYPESENSE_API_KEY}
      - TYPESENSE_ENABLE_CORS=true
    volumes:
      - ./data/typesense:/data

  browserless:
    image: ghcr.io/browserless/chromium:latest
    restart: unless-stopped
    environment:
      - MAX_CONCURRENT_SESSIONS=10

.env

POSTGRES_USER=recipesage
POSTGRES_PASSWORD=secure_password_here
POSTGRES_DB=recipesage
TYPESENSE_API_KEY=secure_api_key_here
TOKEN_SECRET=generate_a_long_random_secret_here

Share:

Ad
Favicon

 

  
 

Similar to RecipeSage

Favicon

 

  
  
Favicon

 

  
  
Favicon