Warning FOSSBilling is under active development but is currenly very much beta software, there may be stability or security issues and it is not recommended for use in active production environments yet!
FOSSBilling is a free open source, billing and client management solution. Whatever the size of your online services business, whether a startup or established, FOSSBilling can help you to automate your invoicing, incoming payments, and client management and communication.
If you run a web hosting business and are looking for an open-source alternative for billing and client management, then FOSSBilling is the answer. Although it is mostly used as a solution for hosting businesses, there is no reason why you can't use FOSSBilling for any other kind of online business, like digital downloads.
FOSSBilling is designed to be extensible and to integrate easily with your favourite server management software and payment gateways.
π₯ This is self-hosted software that is free for anyone to install β All you need is a some basic knowledge, a web server, running PHP and a MySQL database. For more details, check the requirements section.
Contents
Requirements
The following environment is highly recommended for running FOSSBilling. It may be possible to install and run the software in other environments, but it will be untested and unsupported.
- A suitable web server (Apache/nginx/LSWS/Lighttpd)
- PHP 8.0
- PHP 8.1 hasn't been tested yet, and we strongly recommend you to go with PHP 8.0.x for the time being.
- MySQL 8 (or higher), or MariaDB 10.3 (or higher) Other direct MySQL compatible DBs should also work but are not supported.
- The Following PHP extensions:
- pdo_mysql
- curl
- zlib
- gettext
- openssl
Example Configurations
Installation
Installing FOSSBilling is pretty easy. Depending on how you plan to use it there are three different ways to install it:
- If you are using shared hosting, or are installing FOSSBilling to use on a live production site (which is not currently recommended and comes with absolutely no guarantees), then you should probably download and install the latest preview build.
- If you're planning to contribute to FOSSBilling's development, and wanting to make pull requests in the future, please directly install from latest source code instead.
- If you are familiar with Docker, you can also choose to install FOSSBilling in a Docker container.
Download the latest preview build
If you're planning to use FOSSBilling in a production environment (see the disclaimers above) then this will likely be the best option for you. They are not actual releases, but the preview builds are the most secure and stable versions currently available.
First, you should download the latest preview build. Unlike the source code, these preview builds already include the Composer packages, so you won't need to run Composer to install PHP packages. This is perfect if you are using shared hosting as you might not have the ability to run Composer yourself.
You can either downnload the .tar file to your local computer and then upload it to your server using FTP, or download it directly to your web server using wget or git clone. In either case, you will need to extract the contents into the public folder of your site (usually, that's called "htdocs" or "public_html").
Your web directory's structure should now look like this:
- htdocs
- bb-data
- bb-library
- bb-module
- ...
Next, you will also need to create a new empty MySQL database using the command line, or from your server control panel. Make a note of the database name, database user, and password, you will need them in the next step.
Now, you have everything ready to start the installation of FOSSBilling, navigate to your domain using a web browser, and simply follow the on-screen instructions to complete the installation using the web installer. Ta-da, you've done it! π
Install from latest source code
To install the latest development version of FOSSBilling, you will need to get the latest up-to-date ZIP archive from the Github repository.
You can either download the .zip file to your local computer and then upload it to your server using FTP, or download it directly to your web server using wget or git clone. In either case, you will need to unzip it and make sure that the files contained in the archive are in the public folder of your site (usually, that's called "htdocs" or "public_html").
Your web directory's structure should now look like this:
- htdocs
- bb-data
- bb-library
- bb-module
- ...
Next, you will also need to create a new empty MySQL database using the command line, or from your server control panel. Make a note of the database name, database user, and password, you will need them later.
We do not store the Composer packages in our GitHub repository, we use Composer for that. Composer is a dependency manager for PHP, just like the NPM of Node.js, or PIP of Python.
If you don't have Composer installed, or it's your first time using it, you probably should read Composer's getting started guide.
If you've already installed Composer, head over to the folder where you copied the content of the "src" folder, and run the following command to download the required packages to your web server:
$ composer install
Just as with Composer (see above) we do not store the final artifacts in our source repo. To build them make sure you have both Node.js and Gulp installed.
Head over to your root directory and run
$ gulp
Now, you have everything ready to start the installation of FOSSBilling,. Navigate to your domain using a web browser, and simply follow the on-screen instructions to complete the installation using the web installer. Ta-da, you've done it! π
Installing with Docker
This guide assumes you already have Docker, Git and GNU make installed.
To clone the repository, first, run these commands in your command line:
# Clone this repository
$ git clone https://github.com/fossbilling/fossbilling
# Navigate to the local repository
$ cd fossbilling
# If you would like to run Dockerized FOSSBilling on a different port,
# Please note that FOSSBilling won't support SSL unless you use a proxy in front of it!
# In that case, make sure to update ./src/bb-config.php and replace http://localhost/ with https://domain.com/
# Also update docker-compose.yaml - line 9
# -3000:80 (For example, map port 80 to the port 3000)
# Run the app with some help from Docker
$ ./bin/install.sh
Now, you can navigate to your web server in your browser. If you're using a PC, or directly a server without a server manager like Plesk, this address will probably be localhost.
Contributing
π₯οΈ Welcome, fellow developer! π
First of all, thank you for your interest, and for taking your time to contribute to FOSSBilling.
FOSSBilling is undergoing a revival and major code update. We are making steps forward day by day but there is still a lot of work to do, and we are happy to welcome new contributors.
We have a set of guidelines for those wishing to contribute to FOSSBilling, and we encourage you to take a look at them here: contributors' guidelines.
Your pull requests will be highly welcomed. If you're looking for something to start with, you can check the open issues on our GitHub repository.
Star History
Got questions? Found a bug? Ideas for improvements?
Don't hesitate to create an issue, or join us on Discord to say hi.
β Not a developer? Feel free to help by starring the repository. It helps us catch the attention of new developers who'd like to contribute.
Licensing
FOSSBilling is open source software and is released under the Apache v2.0 license. See LICENSE for the full license terms.
This product includes GeoLite2 data created by MaxMind, available from https://www.maxmind.com.