Official docker container of Fusio an open source API management system

Overview

Fusio docker container

Official docker container of Fusio. More information about Fusio at: https://www.fusio-project.org

Usage

The most simple usage is to use the provided docker-compose.yml file. Use the following command to setup a mysql and fusio container.

docker-compose up -d

NOTE: You MUST change the default passwords which are defined in the docker-compose.yml file before running this container on the internet. Also by default the hostname is api.fusio.cloud but you can adjust this via the env settings.

Worker

Besides the database we set up also different worker instances to enable the usage of different programming languages. If you dont need support for these programming languages you can disable them in the configuration. Fusio will also work if these instances are not available.

Certificate

The image contains a script to automatically obtain a SSL certificate for the domain. By default this feature ist deactivated, to activate this you need to set the env FUSIO_CERTBOT to 1, then after start the container will try to obtain a certificate. Note this only works in case you container is reachable on the internet.

Run

If you dont want to use the docker-compose command you can create and link the needed containers also manually:

Mysql

$ docker run -d --name mysql_fusio \
  -e "MYSQL_ROOT_PASSWORD=61ad6c605975" \
  -e "MYSQL_USER=fusio" \
  -e "MYSQL_PASSWORD=61ad6c605975" \
  -e "MYSQL_DATABASE=fusio" \
  mysql:5.7

Fusio

$ docker run -d --name fusio \
  -p 80:80 \
  --link mysql_fusio:db \
  -e "FUSIO_PROJECT_KEY=42eec18ffdbffc9fda6110dcc705d6ce" \
  -e "FUSIO_DOMAIN=api.fusio.cloud" \
  -e "FUSIO_HOST=api.fusio.cloud" \
  -e "FUSIO_URL=http://api.fusio.cloud" \
  -e "FUSIO_APPS_URL=http://api.fusio.cloud/apps" \
  -e "FUSIO_ENV=prod" \
  -e "FUSIO_DB_NAME=fusio" \
  -e "FUSIO_DB_USER=fusio" \
  -e "FUSIO_DB_PW=61ad6c605975" \
  -e "FUSIO_DB_HOST=mysql_fusio" \
  -e "FUSIO_BACKEND_USER=demo" \
  -e "[email protected]" \
  -e "FUSIO_BACKEND_PW=61ad6c605975" \
  fusio/fusio
Comments
  • cannot login to fusio backend with admin user

    cannot login to fusio backend with admin user

    after starting the containers with docker-compose i cannot login to the backend app i get an angular js error in the browser console see screenshot .... bildschirmfoto 2018-02-07 um 09 52 46

    opened by miconx 9
  • Error when trying to go to backend

    Error when trying to go to backend

    I can go to 127.0.0.1 and see that it says the installation was successful. When I go to 127.0.0.1/fusio I get the error:

    { "success": false, "title": "Internal Server Error", "message": "Unknown location" }

    Any ideas on what could be going on?

    opened by redndahead 5
  • Added SSL capability to mongodb client

    Added SSL capability to mongodb client

    Current Docker image is not capable to connect to MongoDB Atlas because it's compiled without SSL is disabled. This fixes it by installing pre-requisites to compile the php mongodb extension with SSL support. Further, the parameter FUSIO_URL needs to be passed on if it happens to not be "acme.com". Otherwise, the client throws an error as it tries to get a token from http://acme.com/authorization/token

    opened by tobiassoltermann 4
  • Add ability to set database type

    Add ability to set database type

    I would like to use the docker image with other databases.

    Any chance we could add a variable to adjust the driver parameter at the configuration.php file with the default being mysql?

    Also, when I manually change the default, the mysqladmin ping -h"$FUSIO_DB_HOST" --silent in the docker-entrypoint.sh fails.

    opened by gil0109 3
  • Updating fusio to 0.9.5 on Dockerfile breaks image building

    Updating fusio to 0.9.5 on Dockerfile breaks image building

    Description

    I need to customize the Dockerfile to install apache specific modules and other custom configs, so I tried rebuilding the image, but when composer tries to install an adapter, it fails because of versioning issues.

    Steps to reproduce

    1. Update Dockerfile to point to latest fusio release:
    ENV FUSIO_VERSION "0.9.5"
    ENV FUSIO_SHA1 "7dea63785fe1f1f6cf92963b92f7b95baf45fcf2"
    
    1. Change docker-compose.yml to point to new image name (in my case, my_image/fusio:latest)
    2. Run docker build
    docker build -t my_image/fusio:latest .
    

    Expected behavior

    The build process generates a new image with proper tag

    Observed Behavior

    The build process throws an error when compose tries to install the adapters:

    Step 37/64 : RUN cd /var/www/html/fusio && /usr/bin/composer require fusio/adapter-amqp
     ---> Running in 212cd76f2bb9
    Do not run Composer as root/super user! See https://getcomposer.org/root for details
    Using version ^1.0 for fusio/adapter-amqp
    ./composer.json has been updated
    Loading composer repositories with package information
    Updating dependencies (including require-dev)
    Your requirements could not be resolved to an installable set of packages.
    
      Problem 1
        - Can only install one of: fusio/engine[v1.0.0, v0.7.8].
        - Can only install one of: fusio/engine[v1.0.0, v0.7.8].
        - Can only install one of: fusio/engine[v1.0.0, v0.7.8].
        - fusio/adapter-amqp v1.0.0 requires fusio/engine ^1.0 -> satisfiable by fusio/engine[v1.0.0].
        - Installation request for fusio/adapter-amqp ^1.0 -> satisfiable by fusio/adapter-amqp[v1.0.0].
        - Installation request for fusio/engine (locked at v0.7.8) -> satisfiable by fusio/engine[v0.7.8].
    
    
    Installation failed, reverting ./composer.json to its original content.
    The command '/bin/sh -c cd /var/www/html/fusio && /usr/bin/composer require fusio/adapter-amqp' returned a non-zero code: 2
    

    How should I proceed? I'm having trouble finding the proper dependency adapter versions for a given fusio release.

    opened by dnng 3
  • fail to login after installation

    fail to login after installation

    image

    Error message has shown in Browser: fusio.min.js:223 POST http:///apps/authorization/token 404 (Not Found)

    Docker command used to start the backend: docker run -d --name fusio
    -p 80:80
    --link mysql_fusio:db
    -e "FUSIO_PROJECT_KEY=42eec18ffdbffc9fda6110dcc705d6ce"
    -e "FUSIO_DOMAIN=XXX"
    -e "FUSIO_HOST=XXX"
    -e "FUSIO_URL=http://XXX"
    -e "FUSIO_URL=http://XXX/apps"
    -e "FUSIO_ENV=prod"
    -e "FUSIO_DB_NAME=fusio"
    -e "FUSIO_DB_USER=fusio"
    -e "FUSIO_DB_PW=61ad6c605975"
    -e "FUSIO_DB_HOST=mysql_fusio"
    -e "FUSIO_BACKEND_USER=demo"
    -e "[email protected]"
    -e "FUSIO_BACKEND_PW=61ad6c605975"
    fusio/fusio

    Docker command used to start the database: docker run -d --name mysql_fusio
    -e "MYSQL_ROOT_PASSWORD=61ad6c605975"
    -e "MYSQL_USER=fusio"
    -e "MYSQL_PASSWORD=61ad6c605975"
    -e "MYSQL_DATABASE=fusio"
    mysql:5.7

    Do you have any idea? Thanks

    opened by BillyTheCowBoy 2
  • docker resources

    docker resources

    Hello nice project, I still waiting for this project more popular. :)

    i think it should use an image from alpine instead of full ubuntu image?

    Besides, can I access and edit /src/?

    i only see the volume mapping - ./apps:/var/www/html/fusio/apps - ./public:/var/www/html/fusio/public

    tried mapping /var/www/html it will not works.

    opened by alexfok007 2
  • Backend app page is not displaying - Issue with SSL cert

    Backend app page is not displaying - Issue with SSL cert

    I have tried doing git clone of this repo and tried using docker-compose up -d to bring up the docker container. The app Fusio is not getting created

    The problem when the fusio container is brought up and executing the fusio marketplace installation, it is giving the cert error. I have tried updating docker-compose.yml with php bin/fusio marketplace:install -d fusio to ignore the cert , it works great

    root@1d5875ba9dd4:/var/www/html/fusio# php bin/fusio marketplace:install fusio

    cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

    opened by amarnathi 1
  • Problems with mysql

    Problems with mysql

    Hello, Tried docker-compose up -d on my Mac after installing Docker and cloning the repo.

    The mysql container aborts after some errors.

    Initial entries in log:

    Initializing database mysqld: Can't create/write to file '/var/lib/mysql/is_writable' (Errcode: 13 - Permission denied)

    I see a 'mysql' folder being created in the repo, so I gave group and everyone Read&Write Access

    docker-compose down then docker-compose up -d again.

    It aborts for other reasons.

    Complete log:

    Initializing database 2017-03-27T21:04:28.677202Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-03-27T21:04:28.684345Z 0 [Warning] Setting lower_case_table_names=2 because file system for /var/lib/mysql/ is case insensitive 2017-03-27T21:04:29.299513Z 0 [ERROR] InnoDB: Operating system error number 13 in a file operation. 2017-03-27T21:04:29.299676Z 0 [ERROR] InnoDB: The error means mysqld does not have the access rights to the directory. 2017-03-27 21:04:29 0x7fd11e0a8740 InnoDB: Assertion failure in thread 140536128898880 in file fil0fil.cc line 896 InnoDB: Failing assertion: success InnoDB: We intentionally generate a memory trap. InnoDB: Submit a detailed bug report to http://bugs.mysql.com. InnoDB: If you get repeated assertion failures or crashes, even InnoDB: immediately after the mysqld startup, there may be InnoDB: corruption in the InnoDB tablespace. Please refer to InnoDB: http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html InnoDB: about forcing recovery. 21:04:29 UTC - mysqld got signal 6 ; This could be because you hit a bug. It is also possible that this binary or one of the libraries it was linked against is corrupt, improperly built, or misconfigured. This error can also be caused by malfunctioning hardware. Attempting to collect some information that could help diagnose the problem. As this is a crash and something is definitely wrong, the information collection process might fail. 2017-03-27T21:04:29.301563531Z key_buffer_size=8388608 read_buffer_size=131072 max_used_connections=0 max_threads=151 thread_count=0 connection_count=0 It is possible that mysqld could use up to key_buffer_size + (read_buffer_size + sort_buffer_size)*max_threads = 68190 K bytes of memory Hope that's ok; if not, decrease some variables in the equation. 2017-03-27T21:04:29.301585958Z Thread pointer: 0x0 Attempting backtrace. You can use the following information to find out where mysqld died. If you see no messages after this, something went terribly wrong... stack_bottom = 0 thread_stack 0x40000 mysqld(my_print_stacktrace+0x2c)[0xe7fdcc] mysqld(handle_fatal_signal+0x459)[0x7a9d39] /lib/x86_64-linux-gnu/libpthread.so.0(+0xf890)[0x7fd11dc85890] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x37)[0x7fd11c68e067] /lib/x86_64-linux-gnu/libc.so.6(abort+0x148)[0x7fd11c68f448] mysqld[0x7804a7] mysqld[0x11baeb6] mysqld(_Z40fil_open_log_and_system_tablespace_filesv+0xe4)[0x11bf954] mysqld[0x10b2190] mysqld(_Z34innobase_start_or_create_for_mysqlv+0x3692)[0x10b5cc2] mysqld[0xf7e1e8] mysqld(_Z24ha_initialize_handlertonP13st_plugin_int+0x51)[0x7f4af1] mysqld[0xc76196] mysqld(_Z11plugin_initPiPPci+0x5b8)[0xc7d1c8] mysqld[0x7a255e] mysqld(_Z11mysqld_mainiPPc+0x7e8)[0x7a3b78] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7fd11c67ab45] mysqld[0x79a664] The manual page at http://dev.mysql.com/doc/mysql/en/crashing.html contains information that should help you find out what is causing the crash. Initializing database 2017-03-27T21:04:29.715620Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-03-27T21:04:29.718876Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2017-03-27T21:04:29.719044Z 0 [ERROR] Aborting 2017-03-27T21:04:29.720495956Z Initializing database 2017-03-27T21:04:30.169146Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-03-27T21:04:30.171343Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2017-03-27T21:04:30.171430Z 0 [ERROR] Aborting 2017-03-27T21:04:30.172388435Z Initializing database 2017-03-27T21:04:30.827091Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-03-27T21:04:30.829169Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2017-03-27T21:04:30.829256Z 0 [ERROR] Aborting 2017-03-27T21:04:30.830013677Z Initializing database 2017-03-27T21:04:31.880473Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-03-27T21:04:31.882845Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2017-03-27T21:04:31.884271Z 0 [ERROR] Aborting 2017-03-27T21:04:31.885417164Z Initializing database 2017-03-27T21:04:33.739927Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-03-27T21:04:33.742316Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2017-03-27T21:04:33.742411Z 0 [ERROR] Aborting 2017-03-27T21:04:33.743256752Z Initializing database 2017-03-27T21:04:37.187048Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-03-27T21:04:37.189442Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2017-03-27T21:04:37.189537Z 0 [ERROR] Aborting 2017-03-27T21:04:37.190081904Z Initializing database 2017-03-27T21:04:43.834879Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-03-27T21:04:43.838534Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2017-03-27T21:04:43.838654Z 0 [ERROR] Aborting 2017-03-27T21:04:43.839550165Z Initializing database 2017-03-27T21:04:56.898769Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2017-03-27T21:04:56.900907Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting. 2017-03-27T21:04:56.900995Z 0 [ERROR] Aborting 2017-03-27T21:04:56.901318881Z

    opened by lfontanez 1
  • SSL https port 443

    SSL https port 443

    Hi there,

    any chances of enabling port 443 for security reasons?

    Getting an error due to this, I'm running a reverse proxy (nginx proxy manager in front of fusio https -> http)

    TIA

    Screenshot 2022-11-21 at 22 50 33

    opened by pedroponte 0
  • Enable Oci8

    Enable Oci8

    how enable oci8 in dockerfile?i've tried with instantclient, but no luck

    RUN apt-get -y install libaio1 libc6-dev COPY basic.zip /tmp/ COPY sdk.zip /tmp/ RUN unzip /tmp/basic.zip -d /usr/local/ RUN unzip /tmp/sdk.zip -d /usr/local/ RUN mv /usr/local/instantclient_21_6 /usr/local/instantclient

    RUN sh -c "echo /usr/local/instantclient > /etc/ld.so.conf.d/oracle-instantclient.conf" RUN ldconfig

    RUN export LD_LIBRARY_PATH=/usr/local/instantclient:$LD_LIBRARY_PATH RUN export PATH=/usr/local/instantclient:$PATH

    RUN docker-php-ext-configure pdo_oci --with-pdo-oci=instantclient,/usr/local/instantclient

    RUN pecl channel-update pecl.php.net

    RUN pecl install pecl install oci8 && memcache-8.0
    && pecl install mongodb-1.12.0

    RUN docker-php-ext-enable
    memcache
    mongodb

    RUN docker-php-ext-enable pdo_oci oci8

    thanks

    opened by prownysoft 1
  • CORS issue with basic docker-compose up -d

    CORS issue with basic docker-compose up -d

    Hi - I've tried using the latest docker-compose to stand up an instance of this - attempting to log in with the backend user and password from the docker-compose file and keep getting a CORS error in the browser console - it says it is connecting to this URL: http://api.fusio.cloud:8080/authorization/token

    Can we please confirm which version to use for a stable evaluation system?

    Would you recommend using the Docker image for a production requirement? If so, are there any additional things to change other than the default credentials?

    opened by MattCrum1 5
Auto register services aliases in the Symfony container.

Service Alias Auto Register A bundle for Symfony 5. Description The S.O.L.I.D. principles are a set of five design principles intended to make softwar

(infinite) loophp 1 Feb 4, 2022
This is an attempt to re-write the official TRA VFD's API in a developer friendly way.

TRA VFD API Documentation This is an attempt to re-write the official TRA VFD's API in a developer friendly way. The current documentation is written

Alpha Olomi 15 Jan 7, 2022
An open source PHP framework for the mcsrvstat.us api

MinePHP An open source PHP framework for the Minecraft Server Status API. Installation Clone the repository in the first place. git clone https://gith

null 2 May 23, 2022
Open Source Telecommunications API Platform

A reimplementation of the open source Plivo framework on top of ReactPHP and FreeSWITCH. If you are not familiar with the legacy platform, please inspect its repository as well as the archived web resources here, here and here.

rtckit 33 Nov 25, 2022
Official Laravel package for thepeer

Thepeer Laravel SDK Installation composer install thepeer/sdk Usage Initiate <?php $thepeer = new \Thepeer\Sdk\Thepeer("your-secret-key"); Available

The Peer 26 Oct 7, 2022
The official Symfony SDK for Sentry (sentry.io)

sentry-symfony Symfony integration for Sentry. Benefits Use sentry-symfony for: A fast Sentry setup Easy configuration in your Symfony app Automatic w

Sentry 628 Dec 29, 2022
RecordManager is a metadata record management system intended to be used in conjunction with VuFind.

RecordManager is a metadata record management system intended to be used in conjunction with VuFind. It can also be used as an OAI-PMH repository and a generic metadata management utility.

National Library of Finland 42 Dec 14, 2022
DreamFactory API Management Platform

Instant APIs without code Docs ∙ Try Online ∙ Contribute ∙ Community Support ∙ Get Started Guide Table of Contents Platform Overview Installation Opti

DreamFactory Software, Inc. 1.3k Dec 30, 2022
Petstore is a sample API that simulates a pet shop management server🐶

Petstore is a sample API that simulates a pet shop management server. The API allows you to access Petstore data using a set of individual calls

Wilmer Rodríguez S 1 Jan 8, 2022
Ariama Victor (A.K.A. OVAC4U) 106 Dec 25, 2022
The NKN open API is a blockchain-to-database parser with an easy to use interface written in PHP

The NKN open API is a blockchain-to-database parser with an easy to use interface written in PHP. We're using Laravel as our framework to provide a clean and maintainable code.

Rule110 - The NKN open source community 7 Jun 26, 2022
BT Open API SDK in PHP

Mosel, a sdk package for BT open APIs This package is still under construction (july 13th 2022). Open Api are described in the Bouygues Telecom Develo

BboxLab 0 Jul 7, 2022
Simple and effective multi-format Web API Server to host your PHP API as Pragmatic REST and / or RESTful API

Luracast Restler ![Gitter](https://badges.gitter.im/Join Chat.svg) Version 3.0 Release Candidate 5 Restler is a simple and effective multi-format Web

Luracast 1.4k Dec 14, 2022
Open Standards Protocol for global Trade & Finance.

Open Standards Protocol for global Trade & Finance. Mitigate Counter-Party Risk by making your Financial Instruments Interoperable & Liquid Start trial under regulatory sandbox environment. Digital Bond, Invoice Factoring, R3 Corda Bridge on XinFin Blockchain

XinFin (eXchange inFinite) 9 Dec 7, 2022
This API aims to present a brief to consume a API resources, mainly for students in the early years of Computer Science courses and the like.

Simple PHP API v.1.0 This API aims to present a brief to consume a API resources, mainly for students in the early years of Computer Science courses a

Edson M. de Souza 14 Nov 18, 2021
微信支付 API v3 的 PHP Library,同时也支持 API v2

微信支付 WeChatPay OpenAPI SDK [A]Sync Chainable WeChatPay v2&v3's OpenAPI SDK for PHP 概览 微信支付 APIv2&APIv3 的Guzzle HttpClient封装组合, APIv2已内置请求数据签名及XML转换器,应

null 275 Jan 5, 2023
This API provides functionality for creating and maintaining users to control a simple To-Do-List application. The following shows the API structure for users and tasks resources.

PHP API TO-DO-LIST v.2.0 This API aims to present a brief to consume a API resources, mainly for students in the early years of Computer Science cours

Edson M. de Souza 6 Oct 13, 2022
API documentation API SCB EASY APP

SCB-API-EASY V3.0 API documentation SIAM COMMERCIAL BANK PUBLIC COMPANY LTD. API SCB Easy V3 endpoint = https://fasteasy.scbeasy.link 1.0. Get balance

SCB API Esay team 2 Sep 28, 2021
Courier API adalah project API untuk mengetahui ongkos kirim Logistik-logistik pengiriman barang antar kota & International

Courier API Courier API adalah project API untuk mengetahui ongkos kirim Logistik-logistik pengiriman barang antar kota (dalam negeri) & International

Rangga Darmajati 2 Sep 24, 2021