Commit Graph

50 Commits

Author SHA1 Message Date
CI
89797e7d42 chore: bump version to 0.1.15 [skip ci] 2026-03-18 22:42:05 +00:00
41b126947a fix: write local instance config to settings.json from env vars
All checks were successful
Deploy / deploy (push) Successful in 12s
Adds LOCAL_OUTLINE_URL and LOCAL_OUTLINE_TOKEN to the generated
settings.json so the compare command can reach the outline-web container.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 23:41:57 +01:00
CI
fd1d4351da chore: bump version to 0.1.14 [skip ci] 2026-03-18 22:35:59 +00:00
14af83a52a feat: add compare command for two-instance diff (Phase 1)
All checks were successful
Deploy / deploy (push) Successful in 13s
Adds read-only `compare` command that fetches both the remote Outline
instance (via Tailscale) and a local instance (outline-web container),
matches documents by canonical path key, and reports in_sync / remote_only /
local_only / conflict status. Also adds PRD for the full two-instance sync
workflow.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 23:35:52 +01:00
CI
6352fbb03f chore: bump version to 0.1.13 [skip ci] 2026-03-16 21:42:44 +00:00
56b141e301 feat: add step-by-step connectivity diagnostics to health_check
All checks were successful
Deploy / deploy (push) Successful in 13s
Break connectivity check into three stages — DNS resolution, TCP connect,
and API auth — each reported separately so failures pinpoint the exact layer.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 22:42:35 +01:00
CI
d85c0d4780 chore: bump version to 0.1.12 [skip ci] 2026-03-16 21:06:21 +00:00
4b438f0312 fix: move extra_hosts to outline-sync-ts container
All checks were successful
Deploy / deploy (push) Successful in 17s
extra_hosts is incompatible with network_mode: service:... — move it to the
Tailscale sidecar container whose network namespace is shared with outline-sync-ui.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 22:06:13 +01:00
CI
7e3ea85f12 chore: bump version to 0.1.11 [skip ci] 2026-03-16 21:05:16 +00:00
859d41279d fix: map outline hostname to Tailscale IP of domverse
Some checks failed
Deploy / deploy (push) Failing after 11s
outline-sync runs on domverse-berlin and connects to Outline on domverse.de
via Tailscale. Docker DNS does not cross hosts, so map the hostname via
extra_hosts to the Tailscale IP 100.104.53.109.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 22:05:07 +01:00
CI
0d1f2d30f1 chore: bump version to 0.1.10 [skip ci] 2026-03-16 20:57:58 +00:00
a7cf2ea05f fix: enable manual workflow_dispatch trigger in Gitea
All checks were successful
Deploy / deploy (push) Successful in 13s
- Add inputs block to workflow_dispatch so Gitea shows the Run button
- Skip version bump on manual triggers to allow redeployment without bumping
- Fall back to VERSION file for APP_VERSION on manual runs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 21:57:49 +01:00
CI
3e6e126db8 chore: bump version to 0.1.9 [skip ci] 2026-03-15 11:45:14 +00:00
650600d7a3 fix: use outline container name in CI .env
All checks were successful
Deploy / deploy (push) Successful in 11s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 12:45:08 +01:00
CI
c8c80747a8 chore: bump version to 0.1.8 [skip ci] 2026-03-15 11:42:17 +00:00
84f7b05c7a fix: use outline container name instead of Tailscale IP
All checks were successful
Deploy / deploy (push) Successful in 12s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-15 12:42:09 +01:00
CI
b20e872c54 chore: bump version to 0.1.7 [skip ci] 2026-03-13 18:35:46 +00:00
49ab2a1599 feat: add vault download button and markdown viewer PRD to /files page
All checks were successful
Deploy / deploy (push) Successful in 12s
Adds GET /files/download endpoint that streams all vault files (excl.
.git) as a deflate-compressed vault.zip. Adds Download All button to
the /files page header. Also adds FILES_VIEWER_PRD.md planning doc.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 19:35:25 +01:00
CI
9e143a8156 chore: bump version to 0.1.6 [skip ci] 2026-03-08 11:27:46 +00:00
Claude
2a4d15fd94 fix: preserve document hierarchy in vault during pull
All checks were successful
Deploy / deploy (push) Successful in 11s
New documents now placed in parent's subdirectory (coll/Parent/Child.md)
instead of flat in the collection dir. Parent paths registered immediately
so nested children resolve correctly within the same pull.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 12:27:39 +01:00
CI
8c95bb141f chore: bump version to 0.1.5 [skip ci] 2026-03-08 11:18:09 +00:00
Claude
275af0d12d fix: use \$\$ in sidecar entrypoint so vars expand in container shell not compose
All checks were successful
Deploy / deploy (push) Successful in 13s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 12:18:03 +01:00
CI
aac0d45fcc chore: bump version to 0.1.4 [skip ci] 2026-03-08 11:08:37 +00:00
Claude
0f31b90d1a debug: print sidecar config to stdout on startup
All checks were successful
Deploy / deploy (push) Successful in 12s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 12:08:30 +01:00
CI
8967065373 chore: bump version to 0.1.3 [skip ci] 2026-03-08 11:07:08 +00:00
Claude
258990894d fix: show OUTLINE_TOKEN in full, drop TS_AUTHKEY from UI config panel
All checks were successful
Deploy / deploy (push) Successful in 11s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 12:07:03 +01:00
CI
4efc3cb4af chore: bump version to 0.1.2 [skip ci] 2026-03-08 10:59:40 +00:00
Claude
614b0114b4 feat: show masked config/secrets on dashboard for deployment debugging
All checks were successful
Deploy / deploy (push) Successful in 12s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 11:59:33 +01:00
CI
f59ae520bd chore: bump version to 0.1.1 [skip ci] 2026-03-08 10:58:22 +00:00
Claude
a1ec0e482b fix: bake APP_VERSION into image as build arg instead of runtime env
All checks were successful
Deploy / deploy (push) Successful in 13s
- Dockerfile: ARG/ENV APP_VERSION, copies VERSION file
- compose: passes build arg, removes runtime env var
- webui: reads VERSION file as fallback if env not set
- deploy: explicit build step with --build-arg

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 11:58:14 +01:00
Claude
89d21408e6 feat: add semver auto-increment and version display
- Add VERSION file (starts at 0.1.0)
- Deploy workflow bumps patch on every push, commits back [skip ci]
- APP_VERSION passed into container via env
- Version shown in page header next to title

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 11:51:35 +01:00
Claude
7553790b5a fix: keep log panel persistent and scrollable after sync completes
All checks were successful
Deploy / deploy (push) Successful in 12s
- Remove auto-reload after job completion
- Re-enable button and refresh stats in-place via /status fetch
- Increase log panel max-height to 600px, add resize:vertical
- Add IDs to stat cells for targeted DOM updates

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 11:47:19 +01:00
Claude
889c26fffe fix: route Outline API via Tailscale subnet instead of Docker DNS
All checks were successful
Deploy / deploy (push) Successful in 11s
- Add TS_EXTRA_ARGS=--accept-routes so sidecar uses VPS-advertised subnet
- Use direct container IP (172.29.0.13) instead of unresolvable hostname

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 11:43:07 +01:00
Claude
bf9b555e21 fix: use outline hostname instead of hardcoded IP in deploy workflow
All checks were successful
Deploy / deploy (push) Successful in 11s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 11:23:34 +01:00
Claude
b141dabbbf fix: revert network to domverse (correct name on deployment server)
All checks were successful
Deploy / deploy (push) Successful in 11s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 11:20:20 +01:00
Claude
6bbe06e29c fix: use container hostname and correct network name
Some checks failed
Deploy / deploy (push) Failing after 8s
- Replace hardcoded IP 172.29.0.7 with container hostname 'outline'
- Fix network name from 'domverse' to 'domnet' (actual external network)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 11:17:49 +01:00
Claude
d95413d579 rename Tailscale sidecar from ts-outline-sync to outline-sync-ts
All checks were successful
Deploy / deploy (push) Successful in 11s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 11:14:10 +01:00
Claude
556c4fcafb ci: trigger deploy
All checks were successful
Deploy / deploy (push) Successful in 11s
2026-03-07 21:36:20 +01:00
Claude
c39e8b5625 Write .env from Gitea secrets in deploy workflow
All checks were successful
Deploy / deploy (push) Successful in 11s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 21:29:53 +01:00
Claude
319a96adac Add Tailscale sidecar for internal Outline API access
All checks were successful
Deploy / deploy (push) Successful in 15s
- ts-outline-sync sidecar joins Tailscale and shares network namespace
  with the app container (network_mode: service:ts-*)
- Traefik labels on sidecar; app container has no direct network exposure
- OUTLINE_URL now uses internal Docker IP 172.29.0.7:3000 via Tailscale
  subnet route (domverse.de advertises 172.29.0.0/16)
- Add TAILSCALE_PRD.md documenting the full setup and admin checklist

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 21:27:04 +01:00
Claude
fe5bfd9e1c Fix deployment: use domverse network, public Outline URL, direct deploy
All checks were successful
Deploy / deploy (push) Successful in 10s
- Switch from domnet → domverse (runs on domverse-berlin.eu)
- OUTLINE_URL defaults to https://outline.domverse.de (public API)
- Traefik labels match domverse-berlin.eu pattern
- Revert workflow to direct docker compose (no SSH needed)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 21:07:17 +01:00
Claude
f661343de0 Fix build: generate settings.json from env vars at runtime
Some checks failed
Deploy / deploy (push) Failing after 53s
settings.json is gitignored (contains token). entrypoint.sh writes it
from OUTLINE_URL / OUTLINE_TOKEN env vars on container start.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 21:02:41 +01:00
Claude
801ab738d9 Add Gitea Actions deploy workflow
Some checks failed
Deploy / deploy (push) Failing after 11s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 20:57:30 +01:00
Claude
b3137a8af3 Add sync engine, web UI, Docker setup, and tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-07 20:54:59 +01:00
Claude
e4c69efd12 Add import tool documentation to CLAUDE.md
- Usage examples and CLI options
- Import modes (collection-per-folder, single)
- Import flow explanation
- Output example with tree visualization
- Duplicate handling and error handling reference

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 22:49:07 +01:00
Claude
4690c8f9bd Phase 8: Add error handling polish
- Dry-run continues even without API access
- Shows planned operations from metadata alone
- Better health check handling for offline testing

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 22:46:58 +01:00
Claude
a20566401a Phase 7: Add bash wrapper script import_to_outline.sh
- Docker execution on domnet network
- CLI argument passthrough
- Pre-flight checks (settings.json, source directory, metadata)
- Help text with examples
- Matches export_with_trees.sh patterns

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 22:46:03 +01:00
Claude
5315e4f346 Phase 6: Add tree-style progress visualization
- TreePrinter class for formatted output
- Tree characters (├──, └──, │) for hierarchy
- Status indicators (✓ created, ○ skipped, ✗ error)
- Box-drawing characters for header/summary
- Consistent output format matching spec

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 22:44:41 +01:00
Claude
290030f5e8 Phase 1-5: Core import script with full functionality
- OutlineImporter class with settings loading
- API helpers with retry logic
- CLI argument parsing
- Metadata loading and document tree building
- Collection import with existence checking
- Document import with ID mapping for hierarchy
- Single collection mode
- Dry-run support

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 22:42:49 +01:00
Claude
d9161f64f5 Initial commit: Export tools and import script requirements
- export_with_trees.sh: Bash wrapper for Outline export
- outline_export_fixed.py: Python export implementation
- IMPORT_SCRIPT.MD: PRD for import script (to be built)
- RALPH_PROMPT.md: Ralph Loop prompt for building import script
- CLAUDE.md: Project documentation

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 22:33:55 +01:00