NoteTrace reads the same shared variables as the other Trace apps (PORT, BASE_URL, JWT_SECRET, DB_PATH, UPLOADS_PATH, SMTP_*, OIDC_*, AI_*, INSECURE_COOKIES, LOG_LEVEL, RECOVERY_TOKEN, TOKEN_ENC_KEY, <NAME>_FILE secrets, and the rest). Those live on the shared environment reference. This page lists the values that are specific to NoteTrace or worth calling out for it.
Port the server listens on inside the container. The sample compose file maps it to the same host port.
DB_PATH
/data/db/notetrace.db
SQLite database file. Mount /data/db as a volume.
UPLOADS_PATH
/data/uploads
Uploaded images, voice notes, files, and server-side backups. Mount /data/uploads as a volume.
UPLOAD_MAX_MB
100
The largest single upload (an image, a recording, or a file on a note), in MB. A bigger file is refused with a message saying so. Raise your reverse proxy's body limit to match (Nginx client_max_body_size).
Speech-to-text model for voice notes when Trace is set by env vars: gpt-4o-mini-transcribe on OpenAI, whisper-1 on an OpenAI-compatible server. Gemini uses AI_MODEL. Whisper-style models give timestamped transcripts.
The Docker image includes a small audio-only ffmpeg, used to convert voice recordings browsers can't play (Google Keep's 3GP and AMR) and to split long recordings for transcription. Running the server outside Docker, install ffmpeg or point these at it; without it those two features are off and everything else works.
Env var
Default
Purpose
FFMPEG_PATH
ffmpeg
ffmpeg binary.
FFPROBE_PATH
ffprobe
ffprobe binary, used to read a recording's length.
Reminders, sharing, and imports have no server settings. Server reminder delivery runs whenever a user has a push service or a reminder.fired webhook set up. Imports are sent in batches of up to 500 notes, so they fit within the server's normal request limits without tuning.