All apps · 0 apps
Norish
Docker app from grtgbln's Repository
Overview
Readme
View on GitHub
Norish
Norish is a real-time, household-first recipe app for planning meals, sharing groceries, and cooking together.
For the website and documentation see: norish.dev and docs.norish.dev
Quick start
The fastest way to try Norish is Docker Compose. At a minimum you need a DATABASE_URL and a MASTER_KEY:
[!TIP] Generate a
MASTER_KEYwithopenssl rand -base64 32. Keep it secret and stable — it derives the encryption keys, so changing it later invalidates previously encrypted data.
services:
norish:
image: norishapp/norish:latest
container_name: norish-app
restart: always
ports:
- "3000:3000"
volumes:
- norish_data:/app/uploads
environment:
AUTH_URL: http://localhost:3000
DATABASE_URL: postgres://postgres:norish@db:5432/norish
MASTER_KEY: <32-byte-base64-key> # openssl rand -base64 32
OBSCURA_ENDPOINT: ws://obscura:9222
OBSCURA_CDP_TOKEN: <random-token> # openssl rand -hex 32, same value on obscura
REDIS_URL: redis://redis:6379
UPLOADS_DIR: /app/uploads
healthcheck:
test:
[
"CMD-SHELL",
'node -e "require(''http'').get(''http://localhost:3000/api/v1/health'', r => process.exit(r.statusCode===200?0:1))"',
]
interval: 1m
timeout: 15s
retries: 3
start_period: 1m
depends_on:
- db
- redis
db:
image: postgres:17-alpine
container_name: norish-db
restart: unless-stopped
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: norish
POSTGRES_DB: norish
volumes:
- db_data:/var/lib/postgresql/data
# Renders recipe pages for URL imports
obscura:
image: norishapp/obscura:0.2.4-norish.1
container_name: norish-obscura
restart: unless-stopped
environment:
OBSCURA_CDP_TOKEN: <random-token>
redis:
image: redis:8.4.0
container_name: norish-redis
restart: unless-stopped
volumes:
- redis_data:/data
volumes:
db_data:
norish_data:
redis_data:
Contributing
Contributions are welcome! See CONTRIBUTING.md or the development docs to get started.
License
Norish is licensed under AGPL-3.0.
Nora
Last but not least, a picture of our lovely dog Nora:
Media gallery
Requirements
Requires separate PostgresDB and Chrome Headless instances.
First-time setup requires configuring OIDC settings. See instructions: https://github.com/norish-recipes/norish#first-time-auth-provider
Categories
Download Statistics
Total Downloads Over Time
Related apps
Explore more like this
Explore allDetails
norishapp/norish:latestRuntime arguments
- Web UI
http://[IP]:[PORT:3000]/- Network
bridge- Privileged
- false
Template configuration
Container Port: 3000
- Target
- 3000
- Default
- 3000
- Value
- 3000
The public URL where Norish will be accessible
- Target
- AUTH_URL
- Default
- https://norish.example.com
- Value
- https://norish.example.com
Postgres database connection URL
- Target
- DATABASE_URL
- Default
- postgresql://user:password@host:port/database
- Value
- postgresql://user:password@host:port/database
A secure, random string used for encryption and signing. Generate with 'openssl rand -base64 32'
- Target
- MASTER_KEY
WebSocket URL for a headless Chrome instance (e.g., ws://chrome:9222)
- Target
- CHROME_WS_ENDPOINT
- Default
- ws://IP_ADDRESS:PORT
- Value
- ws://IP_ADDRESS:PORT
Path to the uploads folder
- Target
- /app/uploads
- Default
- /mnt/user/appdata/norish/uploads
- Value
- /mnt/user/appdata/norish/uploads
Internal path to the uploads folder inside the container. Not recommended to change.
- Target
- RECIPES_DISK_DIR
- Default
- /app/uploads
- Value
- /app/uploads