Stars: 1562
Forks: 202
Pull Requests: 11
Issues: 509
Watchers: 58
Last Updated: 2023-09-15 20:53:19
Open source API management platform
License: Apache License 2.0
Languages: Shell, Batchfile, PHP, HTML
Fusio is an open source API management platform which helps to create innovative API solutions. We know that building a complete API product is no easy task, because of this we have created Fusio which supports you in every aspect of the API life cycle:
Fusio can help you with the following use cases:
Fusio is an API management platform where you can configure operations which execute specific actions. An action triggers your business logic. Fusio covers many aspects of the API life cycle so that you can concentrate on writing the actual business logic of your API. Please take a look at our documentation website for more information. The following feature list gives you a first overview:
Since it is difficult to work with an API only app Fusio provides apps which help to work with the API. Mostly apps are
simple JS apps, which work with the internal API of Fusio. You can see a list of all available apps at our
marketplace. You can install such an app either through a CLI command i.e.
php bin/fusio marketplace:install fusio
or through the backend app.
All apps are installed to the apps/
folder. You need to tell Fusio the public url to the apps folder at the .env
file by defining the APP_APPS_URL
variable. Depending on your setup this can be either a custom sub-domain like
https://apps.acme.com
or simply the sub folder https://acme.com/apps
.
The backend app is the main app to configure and manage your API. The installer automatically installs this app. The app
is located at /apps/fusio/
.
Fusio provides a VSCode extension which can be used to simplify action development. This means you can develop every action directly inside the VSCode editor.
Fusio is an open source project which you can use freely for private and commercial projects under the terms of the Apache 2.0 license. Besides our core product we offer additional services to augment the functionality of Fusio.
It is possible to install Fusio either through composer or manually file download.
composer create-project fusio/fusio
https://github.com/apioo/fusio/releases
You can either manually install Fusio with the steps below or you can also use the browser based installer at
public/install.php
. Note because of security reasons it is highly recommended removing the installer script after the
installation.
.env
in the Fusio directory and change the APP_URL
to the domain pointing to the public folder.
Also insert the database credentials to the APP_CONNECTION
keys. Optional adjust APP_APPS_URL
to the public url
of the apps folder (in case you want to use apps).php bin/fusio migrate
.php bin/fusio adduser
. Choose as account type "Administrator".php bin/fusio marketplace:install fusio
You can verify the installation by visiting the APP_URL
with a browser. You should see an API response that the
installation was successful.
In case you want to install Fusio on a specific database you need to adjust the APP_CONNECTION
parameter. You can
use the following connection strings:
pdo-mysql://root:test1234@localhost/fusio
pdo-pgsql://postgres:postgres@localhost/fusio
pdo-sqlite:///fusio.sqlite
In general it is possible to install Fusio on all database which are supported by our database abstraction layer but our internal test cases are only covering MySQL, PostgreSQL and SQLite so there is no guarantee that everything works.
It is possible to setup Fusio through docker. This has the advantage that you automatically get a complete running Fusio system without configuration. This is especially great for testing and evaluation. To setup the container you have to checkout the repository and run the following command:
docker-compose up -d
This builds the Fusio system with a predefined backend account. The credentials are taken from the env variables
FUSIO_BACKEND_USER
, FUSIO_BACKEND_EMAIL
and FUSIO_BACKEND_PW
in the docker-compose.yml
. If you are planing to
run the container on the internet you must change these credentials.
By default the complete Fusio project can be hosted on a single domain. In this setup your API is served at the root directory and the developer portal and backend apps are directly served from the /apps folder. This setup is easy to use since it requires no configuration. If you want to run Fusio in a production environment we recommend to create the following sub-domain structure:
This is of course only a suggestion and you are free to choose the domain names how you like.
Please check out our official documentation website where we bundle all documentation resources: https://docs.fusio-project.org/
If you are a blogger or magazine we would be happy if you like to cover Fusio. Please take a look at the Media section of our About Page to download the official icon set. In case you have any questions please write us a message directly so we can help you to create great content.
If you are a company or freelancer and want to get detailed information how you can use Fusio you can contact us for consulting. In the workshop we try to find the best way how you can use/integrate Fusio also we try to explain the functionality and answer your questions.
If this project helps you to generate revenue or in general if you like to support the project please check out the donation options at our repository.
Thanks to JetBrains for supporting our project.