sample php app
Getting started with sample pythonphp app on Eenos
This guide will help you to create a sample pythonphp app for Eenos hosting control panel.
The pythonPHP apps are generic Djangophp apps. We recommend to read the Django developer documentation to know how to create an app using Django.
Download an Example PythonPHP App
You can download an example Eenos PythonPHP App from here sampleapp.: samplephpapp.tar.gz
app.conf
The first step is to create the app.conf . An example for sampleappsamplephpapp is given below :
[settings]
# All the settings fields are mandatory
# The Name of the parent folder of the app.
# The name may contain letters, digits, hyphen and underscore
# The name always starts with a letter and a length of 20 characters.
name = sampleappsamplephpapp
# The menu name that will be showing inside the control panel pages
# Maximum menu name length is 24 characters.
menu = A Sample PHP App
# A description about the app. What is the use of this app ?
# Maximum length of description is 6o characters.
description = This is a sample pythonPHP app for testing purpose
# The programming language , currently support python or php only
# If this is a Python Django app use python
# if this is a PHP app chose , php
# Accepted values [ python , php]
language = pythonphp
# This app version number
version = 1.0.0
# The version_check_url is a remote url shows the available current version of the app
# This url must give the version number as plain text output
# This version should ensure if the app is up-to-date
version_check_url = https://download.eenos.com/apps/sample-python-php-app/version.txt
# The auto update script path used to update the scripts
# You can place this in ,/scripts/ folder so that will be installed
auto_update = /usr/local/eenos/scripts/sampleapp_updatesamplephpapp_update
[wap]
# The general settings for WAP admin app
# To enable or disable this app in admin panel
# Supported values ,[ on , off ]
status = on
# If you wish to open the app in new browser window during a click action
# from the control panel
# Supported values [ off, on] , default off
open_new_window = offon
[rapp]
# The general settings for RAPP - Reseller control panel app
# To enable or disable this app in reseller panel
# Supported values ,[ on , off ]
status = on
# If you wish to open the app in new browser window during a click action
# from the control panel
# Supported values, [ off, on] , default off
open_new_window = offon
[uapp]
# The general settings for UAPP - User control panel app
# To enable or disable this app in user panel
# Supported values, [ on , off ]
status = on
# If you wish to open the app in new browser window during a click action
# from the control panel
# Supported values [ off, on] , default off
open_new_window = offon
You should set the language with value pythonphp for a pythonPHP app.
Files and destination of pythonphp app - sampleappsamplephpapp
The following table will let you know where the files will be placed during app installation time.
Sample App Item | Location to place | Description |
./hooks/* | /var/eenos/hooks/ | All hook scripts of the app |
./scripts/* | /usr/local/eenos/scripts/ | All scripts of the app |
./wap/ |
/usr/local/eenos/3rdparty/apps/wap/ |
The admin panel plugin files |
./rapp/ |
/usr/local/eenos/3rdparty/apps/rapp/ |
The reseller panel plugin file |
./uapp/ |
/usr/local/eenos/3rdparty/apps/uapp/ |
The user panel app files |
./static/ |
/usr/local/eenos/wap/public/static/default/ |
Admin panel static files |
./static/ |
/usr/local/eenos/rapp/public/static/default/ |
Reseller panel static files |
./static/ |
/usr/local/eenos/uapp/public/static/default/ |
User panel static file |
./vhosts/wap.samplephpapp.conf | /usr/local/eenos/etc/eenosd/wap.samplephpapp.conf | The admin panel nginx vhost |
./vhosts/rapp.samplephpapp.conf | /usr/local/eenos/etc/eenosd/rapp.samplephpapp.conf | Reseller panel nginx vhost |
./vhosts/uapp.samplephpapp.conf | /usr/local/eenos/etc/eenosd/uapp.samplephpapp.conf | User panel nginx vhost |
The static files are common files which will be copied into the three control panel interface static folders.
App folder structure
An example folder structure of pythonappphp app , sampleappsamplephpapp is as follows,
root@u: ~ # tree sampleappsamplephpapp
sampleappsamplephpapp
├── app.conf
├── hooks
│ └── createacct
│ ├── post
│ │ └── sampleapp_post.sh
│ └── pre
│ └── sampleapp_pre.sh
├── LICENSE
├── post
│ └── 02-post.sh
├── pre
│ └── 01-ps.sh
├── rapp
│ └── sampleappsamplephpapp
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│index.php
│ └── __init__.py
│ ├── models.py
│ ├── templates
│ │ └── sampleapp_index.html
│ ├── tests.py
│ ├── urls.py
│ └── views.pystarter-template.css
├── README
├── requirements.txt
├── scripts
│ ├── sampleapp_scripts1
│ ├── sampleapp_scripts.py
│ └── sampleapp_scripts.samplephpapp-scripts.sh
├── static
│ └── sampleappsamplephpapp
│ ├── sampleapp.css
│ │ ├── bootstrap.min.css
│ │ ├── bootstrap.min.css.map
│ │ ├── bootstrap.rtl.min.css
│ │ └── bootstrap.rtl.min.css.map
│ └── js
│ ├── bootstrap.bundle.min.js
│ └── style.cssbootstrap.bundle.min.js.map
├── uapp
│ └── sampleappsamplephpapp
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── migrations
│index.php
│ └── __init__.py
│ ├── models.py
│ ├── templates
│ │ └── sampleapp_index.html
│ ├── tests.py
│ ├── urls.py
│ └── views.pystarter-template.css
├── vhosts
│ ├── rapp.sampleapp.samplephpapp.conf
│ ├── uapp.sampleapp.samplephpapp.conf
│ └── wap.sampleapp.samplephpapp.conf
└── wap
└── sampleappsamplephpapp
├── admin.py
├── apps.py
├── __init__.py
├── migrations
│index.php
└── __init__.pystarter-template.css
├── models.py
├── templates
│ └── sampleapp_index.html
├── tests.py
├── urls.py
└── views.py
Python requirements
You can place all your pip requirements for your python app inside the file requirements.txt
Pre installation scripts
Put all your pre installation scripts of the plugin inside the folder pre/
Post installation scripts
Place all your post plugin installation scripts inside the folder post/
scripts
Place all scripts related with your plugin in the folder scripts/
hooks
Please all you hooks for Eenos inside the folder hooks/
Vhosts
Place all you nginx vhost files inside the folder vhost/
Packaging your app
To package an app create a gzippedgzip tar file of the source folder . An example of sampleappsamplephpapp is as follows:
tar -czf sampleapp-samplephpapp-1.0.0.tar.gz sampleapp/samplephpapp/
Install , Remove and Upgrade App
To install , remove or upgrade app please read the app operations from Manage Apps page.