A lightweight (2Mb), fast - Google PageSpeed 100, self-hosted knowledge base and community platform built with PHP and MySQL.
Visit project website for further details.
6872f7720a090bdd178b149007ec28b3c8d589db
- Knowledge Base: Organize documentation with categories and articles
- Community Forum: Discussion forums with categories, topics, and posts
- User Management: Role-based access control (admin/user)
- Download Center: Track and manage file downloads
- Auto-Update System: One-click updates via admin panel
- Custom Menus: Flexible navigation menu management
- Site Customization: Customize branding, colors, and notices
RunLedger is built with a commitment to performance, privacy, and efficiency.
In an era of bloated web frameworks and expensive cloud subscriptions, we take a different approach:
- Hand-Coded Craftsmanship: The application is hand-coded in raw PHP/HTML/CSS. There are no heavy dependencies, no complex build processes, and zero unnecessary code.
- Minimal Footprint: The entire application footprint (binaries excluded) is a tiny 1.6MB. It is designed to be lightweight enough to run instantly from a USB stick.
- Instant Performance: This efficiency translates to a perfect Google PageSpeed 100 score, ensuring an instant, sub-second experience for every user.
We believe that robust, secure, and private software doesn't have to be slow or complicated.
- PHP 8.3 or higher
- MySQL 5.7+ or MariaDB 10.3+
- Apache/Nginx web server
- Git (for updates)
-
Access the installer: Navigate to
http://yoursite.com/install/index.phpand follow the setup wizard. -
Delete or rename install folder
If you prefer manual setup, create the database and import install/schema.sql, then configure includes/db.php with your database credentials.
Access admin panel at /admin.php to configure:
- Site name and description
- Logo and branding
- Footer content
- Menu items
- User roles
- Log in to admin panel
- Navigate to Updates section
- If an update is available,
- Click "Install Update"
- System automatically downloads, backs up, and applies updates
The system uses automatic migrations to keep your database schema up to date. Migrations run automatically during updates.
Migration files are located in install/migrations/ and are tracked in the schema_migrations table.
ledger/
├── admin.php # Admin panel
├── includes/ # Core PHP files
│ ├── db.php # Database connection
│ ├── auth.php # Authentication
│ └── migrations.php # Migration system
├── install/ # Installation files
│ ├── schema.sql # Database schema
│ └── migrations/ # Migration files
├── backups/ # Automatic backups
Access the admin panel at /admin.php to manage:
- Site settings
- Member Settings
- Forum categories
- Knowledge base categories
- Manage Documents
- Menu Management
- Document Quality
- Database Management
- System updates
- All user passwords are hashed using PHP's password_hash()
- CSRF protection on all forms
- Role-based access control
- SQL injection protection via prepared statements
Automatic backups are created before each update and stored in /backups/ directory. Manual backups can be created by exporting the database:
Check credentials in includes/db.php and verify database server is running.
Run migrations from Admin > Updates > Database Migrations.
Check /backups/ for automatic backup, then restore if needed:
mysql -u username -p database_name < backups/backup_YYYY-MM-DD.sqlEnsure web server has write access to backups/ and downloads/ directories.
- Make code changes
- Update database schema if needed
- Generate new schema.sql:
mysqldump -u user -p database --no-data > install/schema.sql- Commit and push changes
For custom migrations, add SQL files to install/migrations/ following the naming pattern:
001_description.sql
002_another_feature.sql
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is open source. Please check the LICENSE file for details.
For issues, questions, or feature requests, please use the GitHub issue tracker.
Developed by Venture Governance Ltd
Check the admin panel for the latest installed version.
A fully portable, "zero-install" web server environment designed for testing and demonstrating the Ledger software without requiring XAMPP, WAMP, or local server installations.
The full 200MB portable stack (MariaDB, PHP, Caddy) is hosted on our official site to ensure you get the latest pre-configured binaries.
Download from project website
This stack provides a pre-configured environment including:
- Caddy Server: Modern, fast web server with automatic configuration.
- PHP (FastCGI): Lightweight PHP processing.
- MariaDB: Portable database instance with automated schema initialization.
The install.ps1 script automates the entire setup, including hosts file mapping for ledger.test, database creation, and service startup.
- Download the repository to your local machine.
- Right-click
install.ps1and select Run with PowerShell. - If prompted for Administrator rights, select Yes (required to map
ledger.testto your local hosts file). - Once the script finishes, it opens a new browser window at
http://ledger.test.
This stack uses modern binaries and PowerShell automation that require specific Windows features. If the installer window closes immediately on your machine, check the following:
Older versions of Windows (Windows 7/8) often ship with PowerShell 2.0 or 3.0. This script uses commands like Test-NetConnection and modern redirection syntax that do not exist in older versions.
- Fix: Install Windows Management Framework 5.1.
Right click install.ps1 select properties and Security and tick/select "unblock"
More info on the server and the other features view our docs page - Powershell Files