What's Changed
- use environment variables (breaking change in config!)
- added session regeneration for security
- added demo mode banners
- added basics for render.com hosting (for online demo)
- added new themes by @sudo-Harshk
Breaking Change
There's now support for environment variables to allow for customization of (some) properties. The first ones I've added are relative to application authentication. To be consistent with the naming I've changed the config.yaml file so now it goes from:
# NoteDiscovery Configuration
# Easy to rebrand: just change these values!
app:
name: "NoteDiscovery"
tagline: "Your Self-Hosted Knowledge Base"
server:
host: "0.0.0.0"
port: 8000
reload: false # Set to true for development
storage:
notes_dir: "./data"
plugins_dir: "./plugins"
search:
enabled: true
security:
# Authentication settings
# Set enabled to true to require login
enabled: false
# Session secret key - CHANGE THIS TO A RANDOM STRING!
# Generate with: python -c "import secrets; print(secrets.token_hex(32))"
secret_key: "change_this_to_a_random_secret_key_in_production"
# Password hash - Generate with: python generate_password.py
password_hash: "$2b$12$t/6PGExFzdpU2PUta0iVY.eDQwvu63kH.c/d4bEnnHaQ5CspH1yrG" # Default: "admin"
# Session expiry in seconds (default: 7 days)
session_max_age: 604800
to this:
# NoteDiscovery Configuration
# Easy to rebrand: just change these values!
app:
name: "NoteDiscovery"
tagline: "Your Self-Hosted Knowledge Base"
server:
host: "0.0.0.0"
port: 8000
reload: false # Set to true for development
# CORS (Cross-Origin Resource Sharing) configuration
# For self-hosted use, "*" is fine. For production, specify allowed domains.
# Examples: ["http://localhost:8000", "https://yourdomain.com"]
allowed_origins: ["*"]
# Debug mode - shows detailed error messages (DISABLE in production!)
debug: false
storage:
notes_dir: "./data"
plugins_dir: "./plugins"
search:
enabled: true
authentication:
# Authentication settings
# Set enabled to true to require login
enabled: false
# ⚠️ SECURITY WARNING: Change these values before exposing to the internet!
# Default values below are for LOCAL TESTING ONLY
# Session secret key - CHANGE THIS TO A RANDOM STRING!
# Generate with: python -c "import secrets; print(secrets.token_hex(32))"
secret_key: "change_this_to_a_random_secret_key_in_production"
# Password hash - Generate with: python generate_password.py
# ⚠️ Default password is "admin" - CHANGE THIS for production!
password_hash: "$2b$12$t/6PGExFzdpU2PUta0iVY.eDQwvu63kH.c/d4bEnnHaQ5CspH1yrG" # Default: "admin"
# Session expiry in seconds (default: 7 days)
session_max_age: 604800Please note the rename of security to authentication, and the addition of CORS settings amongst others.
Just grab the latest version and adjust with your local one if you have it. ;-)
Also take a look at the Dockerfile to see what has changed there
Docker Images
This release is available as a Docker image:
docker pull ghcr.io/gamosoft/NoteDiscovery:0.4.5Full Changelog: v0.4.0...v0.4.5