System requirements

The FreedomBox must ...

  1. Be free: be made of free and open software and, as much as possible, open hardware or at least hardware well supported by the free and open source community
    • Debian provides a layer of production ready software environment with ability to upgrade to newer versions of software. Debian Free Software Guidelines (DFSG) are a set of compelling rules which could as well apply to FreedomBox guidelines.

  2. Authentication
  3. Routing/transport
    1. ... support encryption over all data transport
  4. Data storage
    1. ... support a distributed data storage mechanism
  5. User interface
    1. Setup
      1. ... provide an easy to understand setup process
    2. System configuration
      1. ... provide a method to enable/disable functionality
    3. Add/remove accounts
      1. ... provide methods to add/remove service accounts
      2. ... provide methods to add/remove user accounts
    4. Device status/health
      1. ... provide methods to check the status of various system services
    5. A unified web-based GUI that minimizes the number of steps to accomplish a given task
  6. Identity management
    1. Users
      1. Accounts
        1. ... support multiple simultaneous user accounts ?

      2. Privacy settings
        1. ... support user-specified privacy settings
    2. Box identity
    3. User identity
      1. Multiple services
      2. Multiple identities
  7. Discovery
    1. Friend discovery
    2. Device naming (eg. external dynamic DNS)
  8. Messaging
    1. Mail
    2. Jabber/XMPP
  9. Software updating
  10. Moveable / transportable
    1. ... function as previously configured when moved to another location
    2. ... be easily powered on and off
      1. ... write synchronously in case of power loss with an option to disable
  11. Bandwidth
    1. ... have a democratic and systematic method of sharing bandwidth
  12. Security

Functional/Non-function requirements are very blurred at this high-level, so I made this one list for now. -ChrisK