Files
ubuntu-post-install/docker-compose-actualbudget.yml
T
Claude 5dbb27ee8b Fix Magic Mirror npm setup and add ActualBudget, Keycloak, Caddy/fail2ban support
FIXES:
- Fix Magic Mirror npm install to run inside Docker container instead of on host
- npm (Node Package Manager) commands now execute inside the MagicMirror container
  where Node.js is installed, preventing errors on hosts without Node.js

NEW SERVICES:
- Add ActualBudget: Open-source personal finance management with bank sync (SimpleFIN)
- Add Keycloak: Identity and Access Management (SSO, OAuth2, SAML, MFA)
- Both services integrated into main installation script and available as standalone
  docker-compose files for existing servers

CADDY & FAIL2BAN:
- Add caddy-setup-helper.sh: Interactive script to configure Caddy and fail2ban
  * Detects existing Caddy installation
  * Automatically backs up Caddyfile with timestamp
  * Checks for fail2ban support
  * Provides service integration examples
- Add fail2ban filter and jail configurations for Caddy protection
- Add comprehensive setup guide (CADDY-FAIL2BAN-SETUP.md)

DOCUMENTATION:
- Detailed deployment instructions for each service
- Reverse proxy configuration examples
- Security best practices and headers
- Backup/restore procedures
- Troubleshooting guides

This update enables secure deployment of new services on existing servers with
proper Caddy reverse proxy integration and fail2ban protection against attacks.
2026-01-11 21:43:52 +00:00

61 lines
1.9 KiB
YAML

# ActualBudget - Open-source personal finance management
# https://actualbudget.org/
#
# DEPLOYMENT INSTRUCTIONS:
# 1. Create directory: mkdir -p ~/docker/actualbudget
# 2. Copy this file: cp docker-compose-actualbudget.yml ~/docker/actualbudget/docker-compose.yml
# 3. Create data directory: mkdir -p ~/docker/actualbudget/data
# 4. Start the service: cd ~/docker/actualbudget && docker compose up -d
# 5. Access at: http://localhost:5006
#
# REVERSE PROXY SETUP (with Caddy):
# Add to your Caddyfile:
# budget.yourdomain.com {
# reverse_proxy localhost:5006
# }
#
# BANK ACCOUNT SYNC:
# ActualBudget supports SimpleFIN (https://simplefin.org/) for bank synchronization.
# You'll need a SimpleFIN account to sync with your bank accounts.
# Setup instructions: https://actualbudget.org/docs/advanced/bank-sync
name: actualbudget
services:
actualbudget:
image: actualbudget/actual-server:latest
container_name: actualbudget
restart: unless-stopped
ports:
- "5006:5006"
volumes:
- ./data:/data
environment:
# Set your timezone
- TZ=UTC
# Uncomment and set these for HTTPS/production deployment:
# - ACTUAL_UPLOAD_FILE_SYNC_SIZE_LIMIT_MB=20
# - ACTUAL_UPLOAD_SYNC_ENCRYPTED_FILE_SYNC_SIZE_LIMIT_MB=50
# - ACTUAL_UPLOAD_FILE_SIZE_LIMIT_MB=20
labels:
# Fail2ban support - logs HTTP requests
- "io.podman.annotations.label/fail2ban.enable=true"
- "io.podman.annotations.label/fail2ban.filter=caddy-auth"
# NOTES:
# - Default port: 5006
# - Data stored in: ./data
# - First run: Create an account at http://localhost:5006
# - Bank sync requires SimpleFIN: https://simplefin.org/
# - Official docs: https://actualbudget.org/docs/
#
# BACKUP YOUR DATA:
# Regular backups are important! ActualBudget stores data in SQLite.
# docker compose down
# cp -r data data-backup-$(date +%Y%m%d)
# docker compose up -d
#
# UPDATES:
# docker compose pull
# docker compose up -d