Skip to main content

These are the docs for 0.25.0-beta, an older release.

See the current docs (0.25.1-beta) for what Norish does today.

Quick start

The fastest way to run Norish is using Docker Compose. Save the file below as docker-compose.yml and run:

docker compose up -d

Then open http://localhost:3000. The first user to sign in becomes the server owner/admin see First run below.

docker-compose.yml
services:
norish:
image: norishapp/norish:latest
container_name: norish-app
restart: always
ports:
- "3000:3000"
user: "1000:1000"
volumes:
- norish_data:/app/uploads
environment:
AUTH_URL: http://localhost:3000
DATABASE_URL: postgres://postgres:norish@db:5432/norish
MASTER_KEY: REPLACE_WITH_A_RANDOM_KEY
OBSCURA_ENDPOINT: ws://obscura:9222
OBSCURA_CDP_TOKEN: REPLACE_WITH_A_RANDOM_TOKEN
REDIS_URL: redis://redis:6379
UPLOADS_DIR: /app/uploads
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: REPLACE_WITH_A_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:

Generating a MASTER_KEY

The compose above already includes a random MASTER_KEY, generated in your browser each time you load this page. If you rather create your own run:

openssl rand -base64 32

Keep it secret. The encryption keys are derived from the MASTER_KEY, changing it invalidates previously encrypted data.

Production template

A fuller, commented template lives in the repository at docker-compose.example.yml.

What's in the stack

ServiceWhy it's needed
norishThe Norish app server.
dbPostgreSQL, the Database.
redisReal-time events and background jobs.
obscuraThe headless browser.

First run

The first user to sign in becomes the server owner and server admin. After that user registration is disabled automatically and ongoing settings are managed in Settings => Admin.

Norish includes email & password sign-in. Next to email & password you can also use OIDC, GitHub, and/or Google, see Authentication.

Next steps