From 9ffb4698cd18054e9e2736adce555f7daed6d813 Mon Sep 17 00:00:00 2001 From: rscnt Date: Fri, 12 Jun 2015 09:39:18 -0600 Subject: [PATCH 1/4] spec v0.1 Signed-off-by: rscnt --- docs/hosting_app_spec.rst.txt | 191 ++++++++++++++++++++++++++++++++++ 1 file changed, 191 insertions(+) create mode 100644 docs/hosting_app_spec.rst.txt diff --git a/docs/hosting_app_spec.rst.txt b/docs/hosting_app_spec.rst.txt new file mode 100644 index 00000000..c3472dd7 --- /dev/null +++ b/docs/hosting_app_spec.rst.txt @@ -0,0 +1,191 @@ +===================================== +Ungleich Hosting WebApp Specification +===================================== + +Author: Raul Ascencio +Contact: raul.ascencio@ungleich.ch +Version: 0.1 +Date: 2015-06-11 +Copyright © ungleich GmbH 2015 + +----- +Terms +----- + +User + The end-user, person/entity who books/use one or more vm's. + +Ungleich + The company agents/users the creators and admins ofr the ungleich hosting + webapp. + +-------- +Overview +-------- + +Ungleich hosting is a Plataform as a Service (PaaS) for multiple application +stack, offers multiple languages (ruby, python, javascript {node,io}.js), +application servers and databases. + +Ungleich hosting let the user focus on being more productive, without having +to worry about the complexities of maintaining a production enviroment. + +**This spec is not complete**, in fact it hasn't even be reviewed once, it +probably needs a couple of revisions to be accepted. + +What the ungleich plataform offers: + +- Stack management. +- Monitoring and alerting. +- High availability. +- Automatic aplication deployment. +- Ready to use stacks. +- Automated Management. +- User Access Management [?]. +- Production Ready Services (Postgresql, Memcached, Redis...). +- Backups and redundancy. +- Full management and support for stack-related issues [?] + +Avilable stacks: + +**Ruby Stack** + +- Load balancers: + - HAProxy +- Frameworks: + - Ruby on Rails + - ... +- Web Servers: + - NGINX + - ... +- Application Servers: + - Unicorn + - Passenger + - Puma [?] +- Databases: + - Postgresql + - Mysql [?] + - Mongodb [?] +- Caching: + - Memcached [?] + - Redis (people often use it for other things and it's nice to have) [?] +- Misc: + - Preinstalled gems (sidekiq/resque, ) + +**Python Stack** + +- << Inserts Ruby Stack and replace: +- Application Servers: + - Gunicorn + - uWSGI +- Frameworks: + - Django + - ... +- Misc: + - Celery/Gearman + - ... + +**Node Stack** + +- << Inserts Ruby Stack and replace: +- Frameworks: + - Express + - Meteor + - Hoodie +- Databases: + - ... + - Couchdb (Hoodie) +- Misc: + - npm + - pm2 + - browserify/requirejs/webpack + - ... + +Brief summary of how it works: + +1. The *User* goes to an Ungleich Hosting website to register. +2. Once logged in, the *User* get asked for his/her billing information to start + booking machines. +3. After the *User* inserts a 'valid' credit card he books a VM. +4. When a VM is booked the *User* is subscribed to a 'plan' that it's related + with the VM specs. + a. User can be asked for a public SSH key, this key can be used to access + to the server. +5. The subscription gets confirmed, *Ugleich* deploy the requested infrastructure + and stack. +6. *User* is notified that the new VM is ready to use. +7. The *User* access the new VM and deploys the Application. + +----------------------- +Ungleich Hosting - Goal +----------------------- + + As ungleich, we want to offer "Application Hosting" - pre-configured VMs plus + support for the technologies running on them, the VMs should be "clickable" + as in self service mid term. + +-------------------------- +Ungleich Hosting - Phase 0 +-------------------------- + +This phase will deliver a fully functional webpage for railshosting, without the +capabilities of the 'ungleich hosting app', except from selecting an stack +ordering it by email and the user being subscribed to a plan (billing). + +Where this phase come from: + + + ...for the moment, it is enough if we generate a mail for every order + + get rails-hosting.ch running so that somebody can order a VM including + payment + +********* +Non Goals +********* + ++ The VMs should be "clickable" as in self service. ++ End-User interface to manage their VMs. + +******************* +The User Experience +******************* + +We assume that the *User* (Masteen) has a Rails Application ready to deploy with our +current stack for RoR application. + + + + +-------------------------- +Ungleich Hosting - Phase 1 +-------------------------- + +This phase will deliver the foundations for most of the ungleich hosting app capabilities. + + + for the moment, it is enough if we generate a mail for every order + +************ +User Stories +************ + +User stories + +get rails-hosting.ch running so that somebody can order a VM including payment + +migrate www.ungleich.ch to Django + +let me try makes an entry in a database, but so far we are not checking it regulary + +the hosting price samples link nowhere + +Info needing for user: + ++ User Info ++ Addrress ++ Billing Details ++ Phone Verification [?] + +DO: + ++ email & password ++ Comfirm email -> Billing Details -> Create Droplet From 6cb62e8f29f20e98a7e3ff38b4b4005956900448 Mon Sep 17 00:00:00 2001 From: rscnt Date: Sun, 14 Jun 2015 15:55:18 -0600 Subject: [PATCH 2/4] better by requirements --- docs/hosting_app_spec.rst.txt | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/docs/hosting_app_spec.rst.txt b/docs/hosting_app_spec.rst.txt index c3472dd7..9ce3f23a 100644 --- a/docs/hosting_app_spec.rst.txt +++ b/docs/hosting_app_spec.rst.txt @@ -145,12 +145,11 @@ Non Goals + The VMs should be "clickable" as in self service. + End-User interface to manage their VMs. -******************* -The User Experience -******************* +************ +Requirements +************ -We assume that the *User* (Masteen) has a Rails Application ready to deploy with our -current stack for RoR application. +1.1 From 51eeeadf1872c5bc459ce7d8b2c0c6efe9bb7a5d Mon Sep 17 00:00:00 2001 From: rscnt Date: Mon, 15 Jun 2015 00:20:55 -0600 Subject: [PATCH 3/4] docs: added requirements --- docs/hosting_app_spec.rst.txt | 57 ++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/docs/hosting_app_spec.rst.txt b/docs/hosting_app_spec.rst.txt index 9ce3f23a..e3366b32 100644 --- a/docs/hosting_app_spec.rst.txt +++ b/docs/hosting_app_spec.rst.txt @@ -131,6 +131,7 @@ Ungleich Hosting - Phase 0 This phase will deliver a fully functional webpage for railshosting, without the capabilities of the 'ungleich hosting app', except from selecting an stack ordering it by email and the user being subscribed to a plan (billing). +This phase will Where this phase come from: @@ -149,10 +150,38 @@ Non Goals Requirements ************ -1.1 +#. Feature + Description +1. *Ungleich* provides a service overview page +2. *Ungleich* provides a sign up page for users who want to + try the private beta of the service +3. *Ungleich* let *Users* upload their public SSHs keys +4. *Users* can subscribe to their choosen hosting plan. +5. Notify *Users* when their VMs are ready. +6. *Users* can access to their VMs using the uploaded SSHs keys. +7. *Users* can view their billing history. +8. *Users* are capable of canceling their plans. +9. *Users* are notified every time a new invoice is sucefully charged. +10. *Users* are notified every time their invoices fail to charge. +11. *Users* can add credit cards to their accounts. +12. *Users* can see a detail of every invoice. +13. *Users* can create multiple VMs. +14. *Users* can choose what SSHs keys will use for every VM. +15. *Users* can see the recent history of access to their VMs [?] +16. *Users* can edit their profiles. +17. *Users* can submit tickets to *Ungleich* +18. *Users* can configure DNS settings. +19. *Ungleich* can see the list of *Users*. +20. *Ungleich* can browse the VMs of all *Users*. +21. *Ungleich* is notified everytime an invoice fail to charge. +22. *Ungleich* provide help pages for every section of the site. +******* +Details +******* +... -------------------------- Ungleich Hosting - Phase 1 @@ -162,29 +191,3 @@ This phase will deliver the foundations for most of the ungleich hosting app cap for the moment, it is enough if we generate a mail for every order - -************ -User Stories -************ - -User stories - -get rails-hosting.ch running so that somebody can order a VM including payment - -migrate www.ungleich.ch to Django - -let me try makes an entry in a database, but so far we are not checking it regulary - -the hosting price samples link nowhere - -Info needing for user: - -+ User Info -+ Addrress -+ Billing Details -+ Phone Verification [?] - -DO: - -+ email & password -+ Comfirm email -> Billing Details -> Create Droplet From 85e452490eacf10f32f380f3b15299bfbb1b3d7b Mon Sep 17 00:00:00 2001 From: rscnt Date: Tue, 16 Jun 2015 00:25:21 -0600 Subject: [PATCH 4/4] templates: Added blog article title to Closes #1628. Signed-off-by: rscnt <rascnt@gmail.com> --- templates/cms/ungleich.ch/base.html | 6 +++++- templates/djangocms_blog/post_detail.html | 3 +-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/templates/cms/ungleich.ch/base.html b/templates/cms/ungleich.ch/base.html index 021563f0..a9efde66 100644 --- a/templates/cms/ungleich.ch/base.html +++ b/templates/cms/ungleich.ch/base.html @@ -2,7 +2,11 @@ <!doctype html> <html> <head> - <title>{% page_attribute "page_title" %} + + {% block title %} + {% page_attribute "page_title" %} + {% endblock %} + {% addtoblock "external-css" %} {% bootstrap_css %} diff --git a/templates/djangocms_blog/post_detail.html b/templates/djangocms_blog/post_detail.html index e917bd36..62216d0f 100644 --- a/templates/djangocms_blog/post_detail.html +++ b/templates/djangocms_blog/post_detail.html @@ -1,11 +1,10 @@ {% extends "djangocms_blog/base.html" %} {% load i18n thumbnail cms_tags %} {% load url from future %} - {% block meta_description %}{{ post.meta_description }}{% endblock meta_description %} {% block meta_keywords %}{{ post.meta_keywords }}{% endblock meta_keywords %} {% block canonical_url %}{% endblock canonical_url %} -{% block title %}{{ post.get_title }}{% endblock %} +{% block title %}{% page_attribute "page_title" %} - {{ post.get_title }}{% endblock %} {% block base_header %} {% include "djangocms_blog/_header_post_detail.html" %}