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