Skip to content

syslock/ems

Repository files navigation

Annotated Directory Structure
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ems/
    images/ : raw image data not used by the webapp
    iswi/ : ISWI specific, server-side data structures and code
        profile.py : definition of iswi.Contact and iswi.Application db objects
    lib/ : more generic server-side code and data structures
        application.py : web application core classes (Application, Session, ...)
        db_object.py : database object abstraction layer (DBObject class) 
                       and simple derived classes
        errors.py : exceptions
        password.py : password encryption + checking
        user.py : definition of User class as a DBObject
    modules/ : server-side request handlers addressed by the do=module parameter
        delete.py : delete objects
        get.py : retrieve objects
        login.py
        logout.py
        register.py
        search.py
        status.py : request session status
        store.py : store or update objects
    templates/ : Mako templates directory (accessable through ?do=render&tpl=...)
        application.html : ISWI application form
        contact.html : personal contact data form
        login.html : login and registration form
        blog.html : blog
    tools/ : development-tools (mainly translation stuff)
    webroot/ : public data visibile to or executable by web clients
        css/ : stylesheets
        images/ : images
        js/ : JavaScript
            entry.js : entry handling (get, store, display)
            localization.js : translations and related code
            login.js : login specific code
            main.js : RequireJS main file, currently used to include the rest of the code
            require.js : RequireJS library
            jquery.js : jQuery libary
            jquery.cookie.js : jQuery Cookie Plugin
            util.js : some generic routines used throughout the code
        ems.wsgi : application entry point (FIXME: should this be here?)
        index.html : redirects to blog template
    config.py.example : example configuration file (see Install)
    ems-init.py : SQLite database initialization script (see Install)
    ems.kdev4 : simple KDevelop4 project description
    README : this file

Installation
~~~~~~~~~~~~
- Requirements:
    - Python 3
    - the Mako template library (http://www.makotemplates.org/) for Python 3
    - a webserver with a Python 3 WSGI component
        - e.g. Apache/mod_wsgi, nginx/uwsgi_python32
- make webroot/ accessable by your webserver
    - apache(version 2.4) example:
        <Directory "/path/to/ems/webroot">
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
        </Directory>
        Alias "/ems" "/path/to/ems/webroot"
    - nginx example:
        location /ems {
            alias   /path/to/ems/webroot;
            index  index.html index.htm;
        }
- instruct Python 3 WSGI module to execute webroot/ems.wsgi as a WSGI handler
    - Apache/mod_wsgi example:
        <Location /ems>
            Options +ExecCGI
            AddHandler wsgi-script .wsgi
            SetEnv EMS_PATH "/path/to/ems"
        </Location>
    - nginx/uwsgi example:
        - having an uwsgi/python3 handler running like this:
            uwsgi_python32 --socket 127.0.0.1:3031 --file /path/to/ems/webroot/ems.wsgi
          then the following nginx setup should work:
            location ~ \.wsgi$ {
                 uwsgi_pass 127.0.0.1:3031;
                 uwsgi_param EMS_PATH /path/to/ems;
                 include uwsgi_params;
            }
- EMS_PATH environment variable has to point to your application run path
    - You may use your ems checkout directory for development purposes.
    - subdirectories needed in production: iswi/ lib/ modules/ templates/
- initialize EMS database at EMS_PATH:
    cat ems-init.sql |sqlite3 ${EMS_PATH)/ems.db
- create ${EMS_PATH}/config.py (see config.py.example)


Notes:
    - make sure that the user that runs the webserver has sufficient privileges on the ems directory
          - after some trouble i moved the whole ems diretory tree from inside my home to a different location and recursively changed the ownership of the tree
              mv /home/my-user/ems /ems
              chown -R http:http /ems
    - the default password for the admin user is "admin"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published