gateway: port: 9000 components: castle-gateway: description: Caddy reverse proxy gateway run: runner: command working_dir: . argv: - caddy - run - --config - /home/payne/.castle/generated/Caddyfile - --adapter - caddyfile manage: systemd: exec_reload: caddy reload --config /home/payne/.castle/generated/Caddyfile --adapter caddyfile expose: http: internal: port: 9000 health_path: / central-context: description: Content storage API run: runner: python_uv_tool working_dir: central-context env: CENTRAL_CONTEXT_DATA_DIR: /data/castle/central-context CENTRAL_CONTEXT_PORT: '9001' tool: central-context manage: systemd: {} expose: http: internal: port: 9001 health_path: /health proxy: caddy: path_prefix: /central-context notification-bridge: description: Desktop notification forwarder. This taps into your notifications system on the desktop and will forward all notifications the the central context server. run: runner: python_uv_tool working_dir: notification-bridge env: CENTRAL_CONTEXT_URL: http://localhost:9001 BUCKET_NAME: notifications PORT: '9002' tool: notification-bridge manage: systemd: {} expose: http: internal: port: 9002 health_path: /health proxy: caddy: path_prefix: /notifications castle-api: description: Castle API run: runner: python_uv_tool working_dir: castle-api env: CASTLE_API_CASTLE_ROOT: /data/repos/castle tool: castle-api manage: systemd: {} expose: http: internal: port: 9020 health_path: /health proxy: caddy: path_prefix: /api protonmail: description: ProtonMail email sync via Bridge run: runner: command working_dir: protonmail env: PROTONMAIL_USERNAME: paul@payne.io PROTONMAIL_API_KEY: ${secret:PROTONMAIL_API_KEY} argv: - protonmail - sync triggers: - type: schedule cron: '*/5 * * * *' timezone: America/Los_Angeles manage: systemd: {} install: path: alias: protonmail tool: source: protonmail/ backup-collect: description: Collect files from various sources into backup directory run: runner: command working_dir: . env: DBACKUP: /data/backup argv: - backup-collect triggers: - type: schedule cron: 0 2 * * * timezone: America/Los_Angeles manage: systemd: {} tool: source: tools/system/ system_dependencies: - rsync backup-data: description: Nightly restic backup of /data to /storage run: runner: command working_dir: . env: RESTIC_REPOSITORY: /storage/restic-data RESTIC_PASSWORD_FILE: /home/payne/.config/restic-password argv: - backup-data triggers: - type: schedule cron: 30 3 * * * timezone: America/Los_Angeles manage: systemd: {} tool: {} castle-app: description: Castle web app build: working_dir: app commands: - - pnpm - build outputs: - dist/ devbox-connect: description: SSH tunnel manager with auto-reconnect install: path: alias: devbox-connect tool: source: devbox-connect/ mbox2eml: description: MBOX to EML email converter install: path: alias: mbox2eml tool: source: tools/document/ android-backup: description: Backup Android device using ADB install: path: alias: android-backup tool: source: tools/android/ system_dependencies: - adb browser: description: Browse the web using natural language via browser-use install: path: alias: browser tool: source: tools/browser/ docx-extractor: description: Extract content and metadata from Word .docx files install: path: alias: docx-extractor tool: source: tools/search/ system_dependencies: - pandoc docx2md: description: Convert Word .docx files to Markdown install: path: alias: docx2md tool: source: tools/document/ system_dependencies: - pandoc gpt: description: OpenAI text generation utility install: path: alias: gpt tool: source: tools/gpt/ html2text: description: Convert HTML content to plain text install: path: alias: html2text tool: source: tools/document/ md2pdf: description: Convert Markdown files to PDF install: path: alias: md2pdf tool: source: tools/document/ system_dependencies: - pandoc - texlive-latex-base mdscraper: description: Combine text files into a single markdown document install: path: alias: mdscraper tool: source: tools/mdscraper/ pdf-extractor: description: Extract content and metadata from PDF files install: path: alias: pdf-extractor tool: source: tools/search/ pdf2md: description: Convert PDF files to Markdown install: path: alias: pdf2md tool: source: tools/document/ system_dependencies: - pandoc - poppler-utils schedule: description: Manage systemd user timers and scheduled tasks install: path: alias: schedule tool: source: tools/system/ search: description: Manage self-contained searchable collections of files install: path: alias: search tool: source: tools/search/ text-extractor: description: Extract content and metadata from text files install: path: alias: text-extractor tool: source: tools/search/