SkillAgentSearch skills...

PersonalAccounter

A Easy To use & Deploy comprehensive PHP-based personal and small corporate accounting management system with powerful expense tracking, subscription management, and reporting capabilities.

Install / Use

/learn @moonshadowrev/PersonalAccounter

README

PersonalAccounter v1.0.2

A comprehensive PHP-based personal and business accounting management system with powerful expense tracking, subscription management, and reporting capabilities.

🆕 Latest Updates (v1.0.2)

  • 🌐 Enhanced Docker Network Compatibility - Improved subnet configuration to avoid conflicts
  • 🛠️ New CLI Management Tools - control-docker script for easy container management
  • 🔧 Network Diagnostic Tools - network-check.sh for troubleshooting network conflicts
  • 📊 Adminer Integration - Lightweight database management (replaces phpMyAdmin)
  • ⚡ Auto-Permission Fixes - Automatic log directory permission resolution on startup
  • 🎛️ Flexible Environment Configuration - Customizable Docker network settings

🚀 Installation Options

Choose the installation method that best fits your needs:

| Method | Best For | Pros | Cons | |--------|----------|------|------| | 🐳 Docker | Production, Quick Setup | Easy deployment, Isolated environment, All dependencies included | Requires Docker knowledge, Resource overhead | | 📦 Local PHP | Development, Customization | Full control, Better debugging, Native performance | Manual dependency management, More setup steps |

📦 Local PHP Setup (Native Installation)

For developers who prefer local PHP environment or want to contribute to the project:

Prerequisites

  • PHP 8.0+ with required extensions:
    • pdo_mysql, json, openssl, mbstring, gd, curl, zip
  • MySQL 8.0+ or MariaDB 10.4+
  • Composer (for dependency management)
  • Web server (Apache/Nginx) or PHP's built-in server

Required PHP Extensions Installation

# Ubuntu/Debian
sudo apt-get install php php-mysql php-gd php-curl php-zip php-mbstring php-json php-openssl

# CentOS/RHEL
sudo yum install php php-mysql php-gd php-curl php-zip php-mbstring php-json php-openssl

# macOS (using Homebrew)
brew install php composer
brew install mysql

# Windows (using Chocolatey)
choco install php composer mysql

Quick Setup Commands

# Clone the repository
git clone https://github.com/moonshadowrev/PersonalAccounter.git
cd PersonalAccounter

# Install PHP dependencies
composer install

# Copy and configure environment
cp .env.example .env
# Edit .env file with your database credentials and settings

# Create database
mysql -u root -p -e "CREATE DATABASE accounting_panel;"
mysql -u root -p -e "CREATE USER 'accounting_user'@'localhost' IDENTIFIED BY 'your_password';"
mysql -u root -p -e "GRANT ALL PRIVILEGES ON accounting_panel.* TO 'accounting_user'@'localhost';"

# Run database migrations
php control migrate run

# Create admin user
php control user admin

# Set proper permissions
chmod 755 -R .
chmod 777 -R logs/
chmod 777 -R sessions/
chmod 777 -R public/uploads/

# Start development server
php -S localhost:8000 -t public/

Web Server Configuration (Optional)

Apache (.htaccess)

The project includes an .htaccess file for Apache. Ensure mod_rewrite is enabled:

sudo a2enmod rewrite
sudo systemctl restart apache2

Nginx

Create a server block configuration:

server {
    listen 80;
    server_name localhost;
    root /path/to/PersonalAccounter/public;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

PHP Built-in Server (Development Only)

# Start on different port if needed
php -S localhost:8080 -t public/

# Or bind to all interfaces
php -S 0.0.0.0:8000 -t public/

Environment Configuration for Local Setup

Edit your .env file with local database settings:

# Application
APP_ENV=development
APP_DEBUG=true
APP_URL=http://localhost:8000
APP_DOMAIN=localhost

# Database (Local)
DB_HOST=localhost
DB_NAME=accounting_panel
DB_USER=accounting_user
DB_PASS=your_password
DB_PORT=3306

# Security
SESSION_LIFETIME=0
SESSION_SECURE=false
SESSION_SAMESITE=Lax

Troubleshooting Local Setup

Common Issues

Database Connection Failed

# Check MySQL service
sudo systemctl status mysql
sudo systemctl start mysql

# Test database connection
mysql -u accounting_user -p accounting_panel -e "SELECT 1;"

Permission Denied Errors

# Fix directory permissions
sudo chown -R $USER:www-data .
chmod 755 -R .
chmod 777 -R logs/ sessions/ public/uploads/

Missing PHP Extensions

# Check installed extensions
php -m | grep -E "(mysql|gd|curl|mbstring)"

# Install missing extensions (Ubuntu/Debian example)
sudo apt-get install php-mysql php-gd php-curl php-mbstring

Composer Issues

# Update Composer
composer self-update

# Clear cache and reinstall
composer clear-cache
composer install --no-cache

Local Development Tips

  • Use APP_DEBUG=true for detailed error messages
  • Check logs/app-*.log for application errors
  • Use php control db status to verify database connectivity
  • Run php control user list to check user accounts

🐳 Docker Setup (Recommended for Production)

Auto Deploy

Accounting Panel Docker Setup Script Production-ready automated deployment with secure configuration

Usage:

   curl -fsSL https://raw.githubusercontent.com/moonshadowrev/PersonalAccounter/main/setup.sh | bash
   wget -qO- https://raw.githubusercontent.com/moonshadowrev/PersonalAccounter/main/setup.sh | bash

Quick Docker Install

git clone https://github.com/moonshadowrev/PersonalAccounter
cd PersonalAccounter
bash ./setup.sh --skip-clone

🛠️ New Management Tools (v1.0.2)

Docker CLI Management

# Easy container management without entering containers
./control-docker user list                    # List all users
./control-docker migrate run                  # Run database migrations  
./control-docker db status                    # Check database status
./control-docker shell                        # Open interactive shell

Network Troubleshooting

# Diagnose and fix Docker network conflicts
./network-check.sh check                      # Check for network conflicts
./network-check.sh auto                       # Switch to auto-managed networks
./network-check.sh subnet 172.29.0.0/24 172.29.0.1  # Use custom subnet

🌟 Features

💰 Expense Management

  • Multi-method expense tracking with support for credit cards, bank accounts, and cryptocurrency wallets
  • Smart categorization with tags and hierarchical organization
  • Tax calculation with customizable rates and types
  • Approval workflow with pending/approved/rejected/paid status tracking
  • File attachments for receipts and documentation
  • Bulk import/export via Excel, CSV, and JSON formats

🔄 Subscription Management

  • Recurring subscription tracking for all your services and subscriptions
  • Flexible billing cycles: monthly, annual, weekly, daily, and one-time payments
  • Multi-currency support with automatic calculations
  • Status management: active, expired, cancelled, paused
  • Cost projections and spending analysis

💳 Payment Methods

  • Credit Cards: Full card management with bank association and currency support
  • Bank Accounts: International banking with IBAN, SWIFT/BIC, and routing number support
  • Crypto Wallets: Multi-network cryptocurrency wallet management with address validation

📊 Analytics & Reporting

  • Real-time dashboard with comprehensive financial statistics
  • Visual analytics with charts and graphs for spending patterns
  • Date-filtered reports for any time period
  • Export capabilities in multiple formats (CSV, JSON, Excel)
  • Category and payment method breakdowns

🔐 Security & Authentication

  • Two-Factor Authentication (2FA) with Google Authenticator support
  • User role management (admin, superadmin)
  • API key management with permission-based access control
  • CSRF protection and security headers
  • Session security with configurable timeouts

🚀 API & Integration

  • RESTful API with OpenAPI/Swagger documentation
  • Authentication via API keys or Bearer tokens
  • Rate limiting and comprehensive error handling
  • Webhooks support for external integrations
  • Comprehensive endpoints for all application features

🐳 Docker & Development (v1.0.2)

  • Enhanced Network Configuration with customizable subnets to avoid conflicts
  • CLI Management Tools for easy container operations without Docker knowledge
  • Network Diagnostic Tools for troubleshooting deployment issues
  • Adminer Database Management - lightweight alternative to phpMyAdmin
  • Auto-Permission Fixes for seamless volume mounting across systems
  • Cross-Platform Compatibility with improved architecture support

📸 Screenshots

Main Dashboard

Dashboard Overview Comprehensive financial overview with real-time statistics, recent transactions, and spending analytics

Expense Management

Expense Tracking Intuitive expense tracking interface with category management, bulk operations, and advanced filtering

Financial Reports & Analytics

Reports and Analytics Detailed financial reports with visual charts, spending patterns, and exportable data insights

Account & Settings Management

Settings and Configuration User management, security settings, API configuration, and system administration tools

📋 Requirements

  • PHP: 8.0 or higher
  • MySQL: 5.7 or higher
  • Web Server: Apache or Nginx
  • Composer: For dependency management

PHP Extensions Required

  • pdo_mysql
  • json
  • openssl
  • `m
View on GitHub
GitHub Stars88
CategoryOperations
Updated7d ago
Forks23

Languages

PHP

Security Score

100/100

Audited on Mar 24, 2026

No findings