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/PersonalAccounterREADME
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-dockerscript for easy container management - 🔧 Network Diagnostic Tools -
network-check.shfor 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=truefor detailed error messages - Check
logs/app-*.logfor application errors - Use
php control db statusto verify database connectivity - Run
php control user listto 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
Comprehensive financial overview with real-time statistics, recent transactions, and spending analytics
Expense Management
Intuitive expense tracking interface with category management, bulk operations, and advanced filtering
Financial Reports & Analytics
Detailed financial reports with visual charts, spending patterns, and exportable data insights
Account & Settings Management
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_mysqljsonopenssl- `m
