Home

Awesome

<h1 align="center"> <a href="https://dreamfactory.com/"><img src="https://raw.githubusercontent.com/dreamfactorysoftware/dreamfactory/master/readme/vertical-logo-fullcolor.png" alt="DreamFactory" width="250" /></a> </h1> <p align="center"> Docker container for DreamFactory 6.x using Ubuntu 22.04, PHP 8.1 and NGINX. </p> <p align="center"> <a href="http://guide.dreamfactory.com/">Get Started Guide</a> ∙ <a href="https://genie.dreamfactory.com">Try Online</a> ∙ <a href="https://github.com/dreamfactorysoftware/dreamfactory/blob/master/CONTRIBUTING.md">Contribute</a> ∙ <a href="http://community.dreamfactory.com/">Community Support</a> ∙ <a href="https://wiki.dreamfactory.com">Docs</a> </p> <p align="center"> <img alt="GitHub" src="https://img.shields.io/github/license/dreamfactorysoftware/dreamfactory.svg?style=plastic"> <img alt="Docker Pulls" src="https://img.shields.io/docker/pulls/dreamfactorysoftware/df-docker.svg?style=plastic"> <img alt="GitHub Release Date" src="https://img.shields.io/github/release-date/dreamfactorysoftware/dreamfactory.svg?style=plastic"> </p> <p align="center"> <a href="https://twitter.com/dfsoftwareinc?lang=en"><img alt="Twitter Follow" src="https://img.shields.io/twitter/follow/dfsoftwareinc.svg?style=social"></a> </p>

Table of Contents

<a name="prerequisites"></a>

Prerequisites

Install Docker

Install Docker Compose

<a name="installation"></a>

Installing the DreamFactory Docker Container

The easiest way to configure the DreamFactory application is to use docker-compose. This will automatically spin up 4 containers, the DreamFactory application, MySQL container for the system database, Redis container for caching, and a <a href="#testing">Postgres database</a> with over 100k records preconfigured for testing.

1) Clone the df-docker repo

cd ~/repos (or wherever you want the clone of the repo to be)
git clone https://github.com/dreamfactorysoftware/df-docker.git
cd df-docker

2) Edit docker-compose.yml (optional)

3) Build images

docker-compose build

4) Start containers

docker-compose up -d

NOTE: volume df-storage:/opt/dreamfactory/storage is created to store all file based (apps, logs etc.) data from DreamFactory.
This basically stores all data written by DreamFactory (at /opt/dreamfactory/storage location) in the df-storage volume. This 
way if you delete your DreamFactory container your data will persist as long as you don't delete the df-storage volume.

to stop and remove all containers you can use the command 

    docker-compose down

to stop and remove all containers including volumes use 

    docker-compose down -v

5) Access Admin UI

Go to 127.0.0.1 in your browser. It will take some time upon building, but you will be asked to create your first admin user.

<a name="licensed"></a>

Running a Licensed Instance

1) Add the license files to the df-docker directory

2) Uncomment lines 14 and 51 of Dockerfile

3) Add the License Key to line 51 of Dockerfile

4) Build images

docker-compose build

5) Start containers

docker-compose up -d

6) Access the app

Go to 127.0.0.1 in your browser. It will take some time upon building, but you will be asked to create your first admin user.

<a name="persistent"></a>

Persisting System Database Configs

After you have spun up your DreamFactory instance, take the APP_KEY value from the .env file in /opt/dreamfactory. This can be done with the following command:<br> docker-compose exec web cat .env | grep APP_KEY

Set this value as the APP_KEY value in the docker-compose.yml file (line 28), encapsulating it in single quotes, to avoid receiving "The MAC is invalid" errors within your instance should you ever need to rebuild.

<a name="testing"></a>

Testing Data

We mount a Postgres container that contains over 100k records to test without connecting your own data sets. To utilize the container you will use the following connection details.

Host: The host can be found by running the following Docker command: docker inspect <container-id> | grep "IPAddress"<br> Port: 5432<br> Database Name: dellstore<br> Username: postgres<br> Password: root_pw<br>

This will generate a fully documented and secure API from the Postgres container.

<a name="documentation"></a>

Documentation

Learn more about DreamFactory's many features by reading our Getting Started Guide. Additional platform documentation can be found on the DreamFactory wiki.

<a name="commercial"></a>

Commercial Licenses

In need of official technical support? Desire access to REST API generators for SQL Server, Oracle, SOAP, or mobile push notifications? Require API limiting and/or auditing? Schedule a demo with our team!

<a name="feedback"></a>

Feedback and Contributions

Feedback is welcome on our forum or in the form of pull requests and/or issues. Contributions should follow the strategy outlined in "Contributing to a project".