mirror of
https://github.com/abort-retry-ignore/joplock.git
synced 2026-07-20 22:54:21 +00:00
Some checks are pending
Build and push Joplock image / build-and-push (push) Waiting to run
Squash-merge of the `tinymce` branch: replaces the previous editor with a dual-mode setup backed by the hidden #note-body textarea. - Rendered mode = TinyMCE 8 (persistent singleton over #tinymce-slot), markdown round-trip via Turndown (tinymceToMarkdown). - Markdown mode = CodeMirror 6 mounted in #cm-host (initCM/getCM/ cmSyncToTA/cmSetVal/mountMarkdownEditor); codemirror.min.js loaded before app.js. Full-screen CM6 code modal + language picker. - Code highlighting: hljs in preview/markdown, Prism (codesample) in rendered mode. Text expander + AI prose completion wired for both modes: - Text triggers expand in CM6 and in TinyMCE. - AI-action triggers and Ctrl/Cmd-Space run prose completion; in rendered mode the completion is offered in the same accept/dismiss popup as markdown mode (Enter/Tab insert, Esc discard), positioned at the iframe caret, inserted as DOM text nodes and synced to #note-body. Uploads: upload modal + direct drag/paste into TinyMCE and CM6, admin maxUploadMb limit with fast 413 pre-check, dropped images get a trailing blank line, upload-reload sync. Also included: per-user spellcheck toggle, runtime-toggleable debug logging, settings-page Esc dismiss, separate render/markdown font sizes, persisted editor mode, blank-line/image-spacing fixes across mode switches. Tests: cm6MarkdownMode, expanderRuntime, appRuntime, markdownToolbarClicks unit suites (558 total, all passing) + playwright specs (desktop, ai-rendered live provider E2E, upload-reload, resource-lifecycle).
52 lines
2 KiB
YAML
52 lines
2 KiB
YAML
# Sidecar deployment example: Joplock alongside an existing Joplin Server + Postgres
|
|
#
|
|
# Usage:
|
|
# 1. Edit the environment values below to match your existing setup
|
|
# 2. docker compose up -d
|
|
#
|
|
# ALTERNATELY you can just paste the joplock section into your existing joplin server
|
|
# compose file.
|
|
#
|
|
# On Linux, host.docker.internal is mapped to the host gateway so Joplock
|
|
# can reach services running on the host by default.
|
|
|
|
services:
|
|
joplock:
|
|
image: ghcr.io/abort-retry-ignore/joplock:latest
|
|
pull_policy: always
|
|
ports:
|
|
# Host port : container port
|
|
- '5444:3001'
|
|
environment:
|
|
HOST: 0.0.0.0
|
|
PORT: 3001
|
|
# Public URL where Joplock is reachable from a browser
|
|
JOPLOCK_PUBLIC_BASE_URL: http://localhost:5444
|
|
# Internal URL Joplock uses to call Joplin Server API
|
|
JOPLIN_SERVER_ORIGIN: http://host.docker.internal:22300
|
|
# Public URL users already use for Joplin Server (for sync clients)
|
|
JOPLIN_SERVER_PUBLIC_URL: http://localhost:22300
|
|
# Base path prefix if Joplin Server sits behind a reverse proxy subpath
|
|
JOPLIN_PUBLIC_BASE_PATH: ''
|
|
# Postgres connection — must be the same database used by Joplin Server
|
|
POSTGRES_HOST: host.docker.internal
|
|
POSTGRES_PORT: 5432
|
|
POSTGRES_DATABASE: joplin
|
|
POSTGRES_USER: joplin
|
|
POSTGRES_PASSWORD: joplin
|
|
# Admin account — set both to enable the admin panel in Joplock
|
|
JOPLOCK_ADMIN_EMAIL: ''
|
|
JOPLOCK_ADMIN_PASSWORD: ''
|
|
# Set to true to skip MFA for the admin account defined above
|
|
IGNORE_ADMIN_MFA: 'false'
|
|
# Full database backup storage inside the container
|
|
JOPLOCK_BACKUP_DIR: /backups
|
|
# Break-glass recovery mode for backup/restore when normal login is unavailable
|
|
JOPLOCK_RECOVERY_ENABLED: 'false'
|
|
JOPLOCK_RECOVERY_PASSWORD: ''
|
|
# Startup default for debug logging; admins can override at runtime in Settings.
|
|
DEBUG: 'false'
|
|
extra_hosts:
|
|
- 'host.docker.internal:host-gateway'
|
|
volumes:
|
|
- ./data/backups:/backups
|