Skip to content

plotlabs/doga

Repository files navigation

Python 3.4+

Doga A headless CMS created in Flask

Flask

Pre-requisites

Please make sure you have python3+ and NodeJs installed on your system.

Quick Install

To run the application please cd /path/to/DOGA and run:

    sh start.sh

Developer Installation

Python installation

The python packages required to run the app are given in the requirements.txt file and can be installed using the command:

    python setup.py install

And following that you can start the server using the command:

    honcho start

Recommended: create a python3 virtual environment

Use the following ser of commands to create a python3 virtual environment and activate it

cd /path/to/doga
python3 venv venv
source venv/bin/activate
python setup.py
  • on an Ubuntu system you might need to run the following command before you can install dependencies:
	sudo apt-get install python-dev

note: mySQL and Postgres must be loaded to install some of the requirements.

Execution

    honcho start

By default the app will run on 0.0.0.0:8080. Along with DOGA a notification server will run on 0.0.0.0:8008.

These can be edited in the config.py file.

Databases

MySQL

Postgres

SQLite

DOGA allows you to store your content on any to any Postgres, MySQL ad SQLite database servers, upon specifying their HOST, PORT addresses along with your login credentials for the same, and adding a connection to the system though the admin/dbinit/ endpoint.

There is a default connection created in SQLite. A sqlite file named test.db is created in the /tmp folder in the system and the a default connection is stored in DOGA to stay connected to it. This database file is used by DOGA internally to store information about the content created and admin users. DOGA however, does allow you to store content on the default connection.

Deployments

Docker

AWS

Heroku

Apps created using DOGA can be exported using the admin/export/{platform} endpoint. The user should refer to DOGA's github pages for the swagger specs for the required credentials they will need to provide.