Introduction
Lazyweb, we need your help!
Niel Bornstein and I came up with this idea on the proverbial napkin in a bar. The problem that we wanted to solve is common in our line of work: we were working on a project (a data center Linux strategy and architecture) with a team of a half-dozen people at a client site without Internet access. The client was (overly?) concerned about data security and wouldn’t let us onto their corporate network and we didn’t have any other mechanism for getting out to the public Internet. Yes, there are places in the world without broadband wireless. Yes, we did find a coffee shop with wireless.
Niel and I thought that a good solution to this problem would be to have a small physical box that we could all connect to and use for collaboration. It would need to have some kind of storage and either wired or wireless connectivity. We thought that we could load it up with useful information ahead of time (templates, previous projects, code snippets, interview guides, and so forth) in addition to a standard set of collaboration tools (messaging, calendar, wiki, etc.) Niel, I think, jury-rigged a prototype together out of a spare HD and WRT54G router, but the idea never went anywhere.
Description
The ProjectBox is a small portable computer and (optional) wireless router which provides several services for short-term consulting teams. The requirements are:
- Network segment infrastructure
- DHCP
- DNS
- Print spooler
- NAT (for when the client network allows connection)
- Central file storage with revision control in a standard directory structure
- Collaborative document creation
- Presentation rendering
- Shared calendar for project tasks and meetings
- Directory infrastructure for Novell and client team information
- Web-based access and administration
- Offline synchronization
Accordingly, the ProjectBox will have the following services enabled:
- DHCP/DNS
- Apache
- FTP server
- Subversion (too heavyweight? alternatives?)
- Shared calendar (caldav?)
- OpenLDAP? for contacts, or maybe just flat files
- Twiki
- s5
- CUPS
- Storage with standard directory structure and templates
A key requirement is the price point: less than $200
As much of the functionality as possible must be available as open source software.
The Project Box hardware could be a small laptop with a decent-sized hard drive, or it could be a small PC. (Could we use something even smaller/lighter?) A small ethernet hub or wireless router is also required.
Web-based interface requirements
- Configure networking; set offline/passthru mode
- File management
- Create project structure
- Upload file (with revision control)
- Download file
- Synchronize files
- Contact Management
- Add contact
- View/Edit contact
- Delete contact
- Calendar Management
- Add appointment
- View/Edit appointment
- Delete appointment
Hardware options
1. Linksys WRT54G (or comparable) wireless router running Open WRT (or Tomato, my new favorite)
Pros:
* Pretty cheap
* Known to run Linux
Cons:
* No USB ports for attached storage
2. Mini-ITX
A very small, quiet PC that could run SLES10
Pros:
* Fanless, so it’s quiet
Cons:
* They don’t tend to be very durable
* Not cheap
3. Linksys NSLU2
A cheap NAS appliance that can run Linux
Pros:
* Cheap cheap cheap
Cons:
* Storage not included
* Storage enclosure not included
* Wireless not included
Proposed Architecture
So, given all that, here’s what the proposed box might look like.
Hardware
- CPU + Router: Linksys WRT54G
- Storage appliance: Linksys NSLU2
- Storage device: any USB drive
Software
- Operating System: OpenWRT/Tomato
- Additional packages: * *
References
* http://xent.com/pipermail/fork/Week-of-Mon-20040816/031401.html
The wireless part is optional, but the router part is required, I think.
The only custom developed part would be the web front end, correct?
I would prefer to use, instead of a full-on PC, a modified wireless router running Open WRT or something similar, with a hard drive in an external exclosure. Is that possible?
The wireless router as CPU is a nice idea, but it seems like attaching storage will be difficult at our price point — most of them do not include USB ports. Maybe a better way to go would be a gumstix, Mini-ITX, or similar very small box for the processor, with external storage and external wireless router.
It’ll be interesting to see if you go with subversion on this or not. Did you end up deciding to do a subversion download for the project box?