Cozy, a Personal PaaS

1,093 views

Published on

A French Talk about the Cozy Architecure
+ Painless Web Development Manifesto
performed @ Open World Forum 2013

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,093
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cozy, a Personal PaaS

  1. 1. a Personal PaaS
  2. 2. Le cloud c'est bien mais...
  3. 3. nos données sont mal exploitées
  4. 4. plus de vie privée
  5. 5. Difficile d'y faire de nouvelles choses
  6. 6. Cozy est un espace pour vos web applications et vos données
  7. 7. + App Collaboration
  8. 8. backup et synchronisation faciles un seul langage performant
  9. 9. proxy • Authentification • Routage • Ecrans de login/enregistrements
  10. 10. # exemple https://your-cozy.you.net/apps/notes Reroute vers (dans la machine): => http://localhost:9202
  11. 11. home • Front-end pour la gestion des applications • État des applications • Market place • Synchro proxy
  12. 12. data-system • API Rest • Documents JSON • Indexes • fichiers • Droit d'accès • Publication/Souscription
  13. 13. pub/sub Basé sur axon (zmq-like) Wrappé dans une lib maison:    realtime adapter Transmission au browser via websocket
  14. 14. # ODM classique Note.create data, (err, note) ->             console.log id # Indexation note.index ["title", "content"], callback Note.search "dragons", (err, notes) ...→ # Fichiers note.attachFile file.path, {name: file.name}, callback fileStream = note.getFile name, callback # Emails CozyAdapter = require 'juggling-cozy-adapter' data = to: "test@cozycloud.cc" from: "Cozy-test <test@cozycloud.cc>" subject: "Test jugglingdb" content: "Content of mail" CozyAdapter.sendMail data, callback # Pub/Sub realtime = RealtimeAdapter app, ['note.*'] realtime.on 'note.update', (event, id) → # do something...
  15. 15. controller • Démarrage / arrêt des apps • Installation / suppression • Mises à jour • Déploie aussi le proxy, la home et le Data System • CLI: cozy-monitor 
  16. 16. conditions Un fichier server.js ou server.coffee à la racine + Manifeste NodeJS (package.json) + Paramètres Cozy (permissions, widgets) 
  17. 17. { "name": "KYou", "description": "With KYou, have a better knowledge of yourself.", "keywords": [ "quantifiedself" ], "licenses": [{ "type": "AGPL v3.0", "url": "http://www.gnu.org/licenses/agpl-3.0.html" }], "version": "0.1.3", "homepage": "http://frankrousseau.github.io/kyou", "author": "Frank <frank@cozycloud.cc>", "contributors": ["Frank <frank@cozycloud.cc>"], "engines": { "node": "*" }, "main": "server.js", "scripts": { "start": "node server.js" }, "dependencies": { "americano": "0.2.5", "americano-cozy": "0.1.2" }, "devDependencies": {}, "repository": { "type": "git", "url": "git://github.com/frankrousseau/kyou" }, "optionalDependencies": {}, "cozy-permissions": { "Mail": { "description": "Track the number of mails you receive each day." }, "Task": { "description": "Track the number of tasks you achieve each day." } } }
  18. 18. comment le controller déploie Création d'un utilisateur Unix  git clone npm install Il enregistre les informations de l'application
  19. 19. Painless Web Development manifesto 1. Use template 2. Isolate your environments 3. Deploy fast 4. Make front-end dev easy
  20. 20. $ npm install cozy -g $ npm install brunch -g
  21. 21. 1. Use template 2. Isolate your environements $ cozy new yourapp $ cozy dev:init && cozy dev:start
  22. 22. 3. Deploy fast 4. Make front-end dev easy $ cozy deploy $ cd client && brunch w
  23. 23. write your app for cozy http://cozy.io/hack Crédits photos : blaster_e11  Licences Creative Commons

×