- Nextcloud 30 or higher
- PHP 8.3 or higher
- MySQL/MariaDB, PostgreSQL, or SQLite database
- Node.js 16+ (for building frontend assets)
- Go to your Nextcloud Apps page
- Search for "Budget"
- Click "Install"
- Enable the app
cd /path/to/nextcloud/apps
git clone https://github.com/yourusername/budget.git
cd budget# Install PHP dependencies
composer install --no-dev --optimize-autoloader
# Install JavaScript dependencies
npm install
# Build frontend assets
npm run build# From your Nextcloud root directory
php occ app:enable budgetAfter enabling the app, visit the Budget app in your Nextcloud instance. The app will automatically prompt you to initialize default categories and import rules.
Alternatively, you can initialize via API:
curl -X POST http://your-nextcloud/apps/budget/api/setup/initialize \
-H "Authorization: Bearer your-app-password"- Nextcloud development environment
- PHP 8.3+ with extensions: pdo_mysql, gd, zip, curl
- Node.js 16+ with npm
- Composer
# Clone the repository
git clone https://github.com/yourusername/budget.git
cd budget
# Install all dependencies (including dev dependencies)
composer install
npm install
# Build for development with watch mode
make watch
# Or build manually
npm run dev# PHP unit tests
make test
# JavaScript linting
npm run lint
# Static analysis
make psalmThe app will automatically run database migrations when enabled. If you need to run migrations manually:
php occ migrations:execute budgetUsers can configure the following settings:
- Default Currency: Set the default currency for new accounts
- Date Format: Customize how dates are displayed
- Import Settings: Configure default import behavior
- Notification Settings: Choose when to receive budget alerts
The app supports importing from various financial institutions:
- CSV Files: Most common format, customizable column mapping
- OFX Files: Open Financial Exchange format from banks
- QIF Files: Quicken Interchange Format
- Go to Settings → Import Rules
- Create rules to automatically categorize transactions
- Test rules with sample data before importing large files
Error: "App can't be installed"
- Check PHP version (must be 8.3+)
- Ensure all required PHP extensions are installed
- Check Nextcloud version compatibility
Import fails with "Invalid format"
- Verify file has proper headers (for CSV)
- Check file encoding (should be UTF-8)
- Ensure date formats match your locale
Frontend not loading
- Run
npm run buildto rebuild assets - Check browser console for JavaScript errors
- Clear Nextcloud cache:
php occ maintenance:repair
Database errors
- Check database permissions
- Run migrations manually:
php occ migrations:execute budget - Check Nextcloud logs for detailed error messages
Enable debug mode in Nextcloud config:
'debug' => true,
'loglevel' => 0,- Check the GitHub Issues
- Visit Nextcloud Community
- Read the User Documentation
To remove the Budget app:
# Disable the app
php occ app:disable budget
# Remove app files (optional)
rm -rf /path/to/nextcloud/apps/budgetNote: Disabling the app will hide it from users but preserve all data. To permanently remove data, you would need to manually delete the database tables starting with budget_.
- The app follows Nextcloud's security guidelines
- All data is isolated per user
- CSRF protection is enabled for all forms
- Input validation and sanitization is implemented
- Uses prepared statements for database queries
- For large transaction datasets (10k+ transactions), consider archiving old data
- Import rules are processed in priority order - organize them efficiently
- Regular database maintenance will keep queries fast
- Enable Nextcloud's caching for better performance
Your budget data is stored in your Nextcloud database. Regular database backups will include all budget information.
To migrate between Nextcloud instances:
- Export your data via Reports → Export
- Install Budget app on new instance
- Import your accounts and transactions
- Recreate categories and rules as needed