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 useful to get context into my data dir from anywhere on the LAN run: runner: python_uv_tool working_dir: components/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: components/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: components/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: components/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: components/backup-collect/ 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: components/devbox-connect/ mbox2eml: description: MBOX to EML email converter install: path: alias: mbox2eml tool: source: components/mbox2eml/ android-backup: description: Backup Android device using ADB install: path: alias: android-backup tool: source: components/android-backup/ system_dependencies: - adb browser: description: Browse the web using natural language via browser-use install: path: alias: browser tool: source: components/browser/ docx-extractor: description: Extract content and metadata from Word .docx files install: path: alias: docx-extractor tool: source: components/docx-extractor/ system_dependencies: - pandoc docx2md: description: Convert Word .docx files to Markdown install: path: alias: docx2md tool: source: components/docx2md/ system_dependencies: - pandoc gpt: description: OpenAI text generation utility install: path: alias: gpt tool: source: components/gpt/ html2text: description: Convert HTML content to plain text install: path: alias: html2text tool: source: components/html2text/ md2pdf: description: Convert Markdown files to PDF install: path: alias: md2pdf tool: source: components/md2pdf/ system_dependencies: - pandoc - texlive-latex-base mdscraper: description: Combine text files into a single markdown document install: path: alias: mdscraper tool: source: components/mdscraper/ pdf-extractor: description: Extract content and metadata from PDF files install: path: alias: pdf-extractor tool: source: components/pdf-extractor/ pdf2md: description: Convert PDF files to Markdown install: path: alias: pdf2md tool: source: components/pdf2md/ system_dependencies: - pandoc - poppler-utils schedule: description: Manage systemd user timers and scheduled tasks install: path: alias: schedule tool: source: components/schedule/ search: description: Manage self-contained searchable collections of files install: path: alias: search tool: source: components/search/ text-extractor: description: Extract content and metadata from text files install: path: alias: text-extractor tool: source: components/text-extractor/