TurnKey Linux Virtual Appliance Library

Development

What's the mission and why should I contribute?

From the About page:

TurnKey GNU/Linux is inspired by a belief in the democratizing power of free software (free as in speech, not beer), like science, to promote the progress of a free & humane society. Without the freedom to freely distribute, tinker and learn from free software the Internet as we know it would not exist.

The Internet, together with the free software that powers it, is one of the greatest victories for human freedom in history.

Unfortunately, this freedom is gradually eroding. Government and commercial interests are continually herding us into closed, centralized systems, tempting us to give up our essential liberties in exchange for a bit of temporary convenience and safety.

The price of liberty is eternal vigilance.

We want to work and play in a free Internet, under our terms, our rights and liberties intact. They want us dependant on an opaque, nebulous "cloud" of proprietary services forever beyond our control. This makes it easier to keep us under their thumb, playing by their rules, trapped in a virtual panopticon that allows shadowy government agencies to spy and archive our digital thoughts in mass warrantless surveillance programs.  

The danger of such an extreme imbalance of power is that it could turn the Internet from a tool of freedom into a weapon of oppression. Imagine how this would have amplified the terrible powers of the worst regimes of the 20th century. Power corrupts, and absolute power corrupts absolutely.

As renowned security expert Bruce Schneier puts it:

We need to take back the internet, and by we, I mean the engineering community.

A rare few of us have the right combination of skills, means and motivation to resist. FLOSS can be part of the solution but adoption is limited as long as proprietary alternatives are easier to use. Unfortunately discovering, configuring and testing combinations of free software components can be notoriously challenging, time consuming and inefficient, especially if everyone keeps reinventing the wheel by rolling their own solutions.

Imagine if instead we could bottle up the best integrations and mass produce them into secure, convenient solutions that just work. Everyone would benefit, even the experts.

This is the mission TurnKey is working towards but it's a big audacious goal and we've only scratched the surface, mainly laying down the foundations for a sustainable long-term effort.

We're a small team but the tools we've developed provide a lot of leverage so we get a lot done. But not as much as we'd like. This is where you can come in. We're still at a stage where one person can show off their skills and get recognized for really making a difference. To encourage community involvement we celebrate contributions and always give credit where credit is due.

If you seek to help, join the open source community and fight to keep the spirit of the press alive and the Internet free.

- Edward Snowden

See also:

GitHub Issue tracker and Development Wiki

We use GitHub's project management features for:

  1. Issue tracking: helps us keep track of new appsbugs, and feature requests.
  2. Development wiki: we use this as a distributed whiteboard (e.g., ideas for new apps)

To get the best results, read the TurnKey Tracker homepage on GitHub for contribution guidelines.

Responsible disclosure

TurnKey supports responsible disclosure of security vulnerabilities. If there's something you need to bring to our attention privately, send us a direct email, preferably encrypted. See contact page for details.

Development toolchain

Tools:

  1. TKLDev (recommended): self-contained appliance build factory that can rapidly prototype new Linux distributions or repeatably build existing integrations from source:
  2. TKLPatch: an older tool that provides a simple customization mechanism which can be used for quick amd dirty customizations of existing appliances.

You're free to develop TurnKey apps for private use, but we encourage everyone to share their results with the community. That way people find out about your work, you get the credit for being awesome and we improve the library. Everybody wins.

It's alive! Share your creation with the world

The best way to submit a new app for review and inclusion in the TurnKey library:

  1. Create a new issue in the tracker with the #new-appliance label
  2. Start a new thread on the general forum announcing your creation.

Custom packages and source code

The source code to all custom components can be found at github.com/turnkeylinux

The source code to all appliances can be found at github.com/turnkeylinux-apps.

Any package that isn't installed straight from the Debian repositories can be found at our mini-repository at archive.turnkeylinux.org.