Skip to content

Norish

Norish is a real-time, household-first recipe app for planning meals, sharing groceries and cooking together.


Terminal window
mkdir -p {{DOCKER_PATH_VAR}}/norish && cd {{DOCKER_PATH_VAR}}/norish
Terminal window
nano compose.yml
compose.yml
services:
norish:
image: norishapp/norish:latest
container_name: norish-app
restart: always
ports:
- "3009:3000"
user: "1000:1000"
volumes:
- norish_data:/app/uploads
environment:
AUTH_URL: ${AUTH_URL}
DATABASE_URL: ${DATABASE_URL}
MASTER_KEY: ${MASTER_KEY}
OBSCURA_ENDPOINT: ${OBSCURA_ENDPOINT}
REDIS_URL: ${REDIS_URL}
UPLOADS_DIR: ${UPLOADS_DIR}
TRUSTED_ORIGINS: ${TRUSTED_ORIGINS}
BETTER_AUTH_TRUSTED_ORIGINS: ${BETTER_AUTH_TRUSTED_ORIGINS}
PASSWORD_AUTH_ENABLED: ${PASSWORD_AUTH_ENABLED}
ENABLE_REGISTRATION: ${ENABLE_REGISTRATION}
depends_on:
- db
- redis
db:
image: postgres:17-alpine
container_name: norish-db
restart: unless-stopped
environment:
POSTGRES_USER: ${POSTGRES_USER}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_DB: ${POSTGRES_DB}
volumes:
- db_data:/var/lib/postgresql/data
obscura:
image: norishapp/obscura:0.2.0-norish.1
container_name: norish-obscura
restart: unless-stopped
redis:
image: redis:8.4.0
container_name: norish-redis
restart: unless-stopped
volumes:
- redis_data:/data
volumes:
db_data:
norish_data:
redis_data:
Terminal window
nano .env
.env
AUTH_URL={{SERVER_IP_VAR}}:3009
DATABASE_URL=postgres://postgres:norish@db:5432/norish
MASTER_KEY=<32-byte-base64-key> # Generate with: openssl rand -base64 32
OBSCURA_ENDPOINT=ws://obscura:9222
REDIS_URL=redis://redis:6379
UPLOADS_DIR=/app/uploads
TRUSTED_ORIGINS={{SERVER_IP_VAR}}:3009,http://localhost:3009,http://127.0.0.1:3009
# Enable if having issues with Auth
# BETTER_AUTH_TRUSTED_ORIGINS={{SERVER_IP_VAR}}:3009,http://localhost:3009,http://127.0.0.1:3009
ENABLE_REGISTRATION=true
# Option 1=Password auth - basic auth with email/password
# If not set defaults to disabled if OIDC or OAuth is configured.
# Defaults to true if no other auth providers are configured.
# PASSWORD_AUTH_ENABLED=false # Enable/disable password auth default: false
# Option 2=OIDC (Authentik, Keycloak, PocketID, etc.)
# OIDC_NAME=NoraId
# OIDC_ISSUER=https://nora.example.com
# OIDC_CLIENT_ID=<client-id>
# OIDC_CLIENT_SECRET=<client-secret>
# OIDC_WELLKNOWN=https://auth.example.com/.well-known/openid-configuration
POSTGRES_USER=postgres
POSTGRES_PASSWORD=norish
POSTGRES_DB=norish
Terminal window
docker compose up -d

http://localhost:3009 or http://{{SERVER_IP_VAR}}:3009