assistant.mdwn 13.6 KB
Newer Older
sajolida's avatar
sajolida committed
1
[[!meta title="Installation Assistant"]]
2

sajolida's avatar
sajolida committed
3 4 5 6 7 8
[[!toc levels=3]]

<a id="introduction"></a>

Introduction
============
sajolida's avatar
Add TOC  
sajolida committed
9

sajolida's avatar
sajolida committed
10 11 12
The web assistant is a set of web pages that will merge our download and
install instructions into a single web tool. It will put emphasis on the
most frequent and recommended scenarios, and point to the rest of the
sajolida's avatar
sajolida committed
13
documentation for corner cases or more advanced usage.
14

sajolida's avatar
sajolida committed
15 16 17 18
<a id="phases"></a>

The assistant will be composed of three main phases:

sajolida's avatar
sajolida committed
19 20 21 22 23
  1. The "[[router|assistant#router]]" which is a set of introductory
     questions that lead the user to choose one of the possible
     installation processes.
  2. The "[[overview|assistant#overview]]" which presents the
     installation process to the user, what hardware is needed, how long
24 25
     it will take, what are the steps, etc.
  3. The "scenario" which are the detailed instructions step by step.
sajolida's avatar
sajolida committed
26

27 28
Both the "overview" and the "scenario" will use the same
[[infography|assistant#infography]] to explain the steps
29 30
graphically.

31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
Scenarios
---------

Here is a list of possible installation scenarios that will be proposed
via the assistant:

  - With USB as destination media
    - Windows to USB (via USB)
    - Mac to USB via DVD
    - Mac to USB via USB
    - Debian to USB
    - Debian hacker to USB
    - Linux to USB
    - Clone from a friend
  - With DVD as destination media
    - Windows to DVD
    - Mac to DVD
    - Linux to DVD (same for Debian)
    - Debian hacker to DVD
  - Other possible scenarios
    - Contact or training
52
    - Virtualization (pointing to the traditional doc)
53

54 55 56 57 58 59 60 61 62 63 64 65 66 67
And the possible upgrade scenarios (see [[!tails_ticket 9319]]):

  - Upgrade from friend
  - Upgrade from Tails (graphical)
  - Upgrade from Tails (command line)
  - Upgrade from Debian (graphical)
  - Upgrade from Debian (command line)
  - Upgrade from Linux
  - Upgrade from Windows
  - Upgrade from Mac

The router for upgrades should also point to DVD and virtualization
scenarios (which in this case would be the same than installing).

68 69 70 71 72
Latest designs
--------------

The rest of this blueprint presents the various iterations that we are
going through to get to a final design, the latest documents that you
sajolida's avatar
sajolida committed
73
should look at if you want to know where we are at the moment:
74

sajolida's avatar
sajolida committed
75
  - [[router, third iteration|assistant#router_3rd_iteration]]
76 77 78
  - [[overview, second iteration|assistant#overview_2nd_iteration]]
  - [[infography|assistant#infography]]

sajolida's avatar
sajolida committed
79 80
<a id="1st_iteration"></a>

81 82 83 84 85 86 87 88
First iteration
===============

For the first iteration we did some parallel designs of a possible
wireframe for the web assistant:

  - [[wireframe by sajolida|1st_iteration/wireframe-sajolida-20150323.odg]]
  - [wireframe by tchou](https://labs.riseup.net/code/attachments/download/722/wireframe-tchou-20150323.pdf)
89

90
Conclusion
91 92
----------

sajolida's avatar
sajolida committed
93
We decided to split the assistant into [[three main phases|assistant#phases]].
94 95 96 97 98 99

<a id="router"></a>

Router
======

100
<a id="router_2nd_iteration"></a>
sajolida's avatar
sajolida committed
101

102 103 104 105 106 107 108 109 110 111 112 113
Second iteration
----------------

We refined the first iteration still with parallel designs:

  - [[presentation by sajolida|router/2nd_iteration/router-sajolida-20150325.odp]]
  - [[presentation by tchou|router/2nd_iteration/router-tchou-20150325.odp]]

And conducted some user testing on both designs:

  - [[spreadsheet of summarized outcomings|router/2nd_iteration/router-testing-20150325.ods]]

sajolida's avatar
sajolida committed
114
<a id="router_3rd_iteration"></a>
sajolida's avatar
sajolida committed
115

116 117 118
Third iteration
---------------

sajolida's avatar
sajolida committed
119 120
[[!map pages="blueprint/bootstrapping/assistant/router/3rd_iteration*" show=title]]

121 122
### Objectives

123
  - Rework the alternative between USB and DVD:
124
    - Merge slide 11 & 13 from [[router/2nd_iteration/router-sajolida-20150325.odp]].
125 126 127 128 129 130 131 132
    - Make USB more preeminent major, and DVD less
  - Guide better Mac users:
    - Build a list of Mac hardware and their possible scenarios.
    - Explain where to find Mac hardware version.
    - Present clone (1/3) as an alternative to installation from scratch (2/3).
  - Add a welcoming screen.
  - Mention virtual machines as a minor option on OS page or destination media page.
  - Consider improving navigation.
133

sajolida's avatar
sajolida committed
134 135 136
### Mock-ups

  - [[presentation|router/3rd_iteration/router-3rd-iteration.fodp]]
137
  - [[flowchart|router/3rd_iteration/router-3rd-iteration.fodg]]
sajolida's avatar
sajolida committed
138

sajolida's avatar
sajolida committed
139 140
<a id="mac"></a>

141 142
List of compatibility with Mac
------------------------------
143

144
Seeing that:
145

146 147 148
- A lot of current and potential users are Mac users.
- Tails is running more or less on this devices.
- There are a limited number of different models.
149

127.0.0.1's avatar
127.0.0.1 committed
150 151
We want to maintain a list of the state of Tails compatibility on
these computers. [[More details here.|mac]]
152

153 154 155 156 157
<a id="overview"></a>

Overview
========

158 159
<a id="overview_2nd_iteration"></a>

160 161 162 163 164
Second iteration
----------------

  - [[wireframe of the overview|overview/2nd_iteration/overview-20150324.odg]]

165 166
  - Drawings of the overview with 2 more steps (plug the keys) [one](https://labs.riseup.net/code/attachments/download/732/tchou-overview.jpg) / [two](https://labs.riseup.net/code/attachments/download/733/tchou-overview2.jpg)

167
<a id="infography"></a>
168

169 170 171 172
Infography
----------

We brainstormed a bit more on the possible infography to explain the
173
installation steps graphically:
174

175
  - [drawings by sajolida](infography/2nd_iteration/infography-sajolida-20150327.svg)
sajolida's avatar
sajolida committed
176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209

<a id="url"></a>

URL scheme
==========

The assistant will be implemented as a (huge) set of ikiwiki pages. It
will have its own navigation tools (sidebar, back button, maybe
breadcrumbs, etc). Even if two pages are going to be very similar (for
example "Choose your media, for Windows" and "Choose your media, for
Debian", we need different pages and thus different URLs).

We will sometimes tell the user to write down the URL of one page or
open it on a smartphone (for example, before shutting down the
computer).

So they need to be short and meaningful (as an URL) both for the people
working on the code and the user.

Those URLs might also be given by internal tools, if we want to point
the user back to the assistant after start a media installed using UUI
for example.

Those URLs might be:

  - Written down on a sheet of paper.
  - Opened in a smartphone.
  - Clicked or copied from a tool inside Tails.
  - Given by frontdesk as an answer to a support request.
  - Listed on a sitemap (for frontdesk for example).

Proposed scheme. Those are just examples, not an exhaustive list:

  - router
210 211
    - `/install` (*Intro*)
    - `/install/os` (*Choose your OS*)
sajolida's avatar
sajolida committed
212 213 214 215 216
    - `/install/debian` (*Debian user*)
    - `/install/debian/path` (*Graphical vs Command line*)
    - `/install/linux` (*Linux user*)
    - `/install/mac` (*Mac user*)
    - `/install/win` (*Windows user*)
217
    - `/install/help` (*I need external help*)
sajolida's avatar
sajolida committed
218
  - overview
219 220 221 222 223 224 225 226 227 228 229 230
    - `/install/copy` (*Clone from a friend*)
    - `/install/debian/usb` (*Debian USB*)
    - `/install/debian/dvd` (*Debian DVD*)
    - `/install/expert/usb` (*Debian hacker USB*)
    - `/install/expert/dvd` (*Debian hacker DVD*)
    - `/install/linux/usb` (*Linux USB*)
    - `/install/linux/dvd` (*Linux DVD*)
    - `/install/mac/usb` (*Mac USB via USB*)
    - `/install/mac/dvd` (*Mac DVD*)
    - `/install/mac/dvd-usb` (*Mac USB via DVD*)
    - `/install/win/usb` (*Windows USB*)
    - `/install/win/dvd` (*Windows DVD*)
231
  - steps (example for Windows USB scenario)
sajolida's avatar
sajolida committed
232 233 234 235 236 237 238 239 240 241 242 243
    - `/install/win/usb/1-download` (Choose download method)
    - `/install/win/usb/1-download/v1` (if we can use the same page for all browser extensions)
    - `/install/win/usb/1-download/firefox/v1` (otherwise for Firefox extension)
    - `/install/win/usb/1-download/chrome/v1` (otherwise for Chrome extension)
    - `/install/win/usb/2-plug-first`
    - `/install/win/usb/3-copy-iso`
    - `/install/win/usb/4-restart-temporary`
    - `/install/win/usb/5-plug-second`
    - `/install/win/usb/6-install-tails`
    - `/install/win/usb/7-restart-tails`
    - `/install/win/usb/8-configure-persistence`
    - `/install/win/usb/9-restart-persistence`
sajolida's avatar
sajolida committed
244

245 246
Steps by scenario
=================
127.0.0.1's avatar
127.0.0.1 committed
247 248 249

Reminder on lexicon :

250 251 252
* Temporary Tails: a Tails with no automatic upgrade and no possible persistence
* Minimal Tails: a Tails with automatic upgrade, but no persistence
* Full-featured Tails: a Tails with automatic upgrade and persistence
127.0.0.1's avatar
127.0.0.1 committed
253

sajolida's avatar
sajolida committed
254
### With USB as destination media
127.0.0.1's avatar
127.0.0.1 committed
255

sajolida's avatar
sajolida committed
256
#### Windows to USB (via USB)
127.0.0.1's avatar
127.0.0.1 committed
257 258

1. Download and verify 
sajolida's avatar
sajolida committed
259 260 261 262 263 264
2. Copy to temporary Tails with UUI
3. Reboot on temporary Tails
4. Install minimal Tails
5. Reboot on minimal Tails
6. Install persistence (optional)
7. Reboot on full-featured Tails (optional)
127.0.0.1's avatar
127.0.0.1 committed
265

sajolida's avatar
sajolida committed
266
#### Mac to USB via DVD
sajolida's avatar
sajolida committed
267 268 269 270 271 272 273 274

1. Download and verify
2. Copy to temporary Tails with Burn
3. Reboot on temporary Tails
4. Install minimal Tails
5. Reboot on minimal Tails
6. Install persistence (optional)
7. Reboot on full-featured Tails (optional)
127.0.0.1's avatar
127.0.0.1 committed
275

sajolida's avatar
sajolida committed
276
#### Mac to USB via USB
127.0.0.1's avatar
127.0.0.1 committed
277

sajolida's avatar
sajolida committed
278 279 280 281 282 283 284
1. Download and verify
2. Copy to temporary Tails with command line
3. Reboot on temporary Tails
4. Install minimal Tails
5. Reboot on minimal Tails
6. Install persistence (optional)
7. Reboot on full-featured Tails (optional)
127.0.0.1's avatar
127.0.0.1 committed
285

sajolida's avatar
sajolida committed
286
#### Debian to USB
127.0.0.1's avatar
127.0.0.1 committed
287

sajolida's avatar
sajolida committed
288
1. Download and verify
127.0.0.1's avatar
127.0.0.1 committed
289
2. Copy to minimal Tails with Tails Installer
sajolida's avatar
sajolida committed
290 291
3. Install persistence (optional)
4. Reboot on full-featured Tails (optional)
127.0.0.1's avatar
127.0.0.1 committed
292

sajolida's avatar
sajolida committed
293
#### Debian hacker to USB
127.0.0.1's avatar
127.0.0.1 committed
294

sajolida's avatar
sajolida committed
295 296 297 298 299 300
1. Download with `wget`
2. Verify with OpenPGP and `debian-keyring`
3. Install minimal Tails with Tails Installer on the command line
4. Reboot minimal Tails
5. Install persistence (optional)
6. Reboot on full-featured Tails (optional)
127.0.0.1's avatar
127.0.0.1 committed
301

sajolida's avatar
sajolida committed
302
#### Linux to USB
127.0.0.1's avatar
127.0.0.1 committed
303

sajolida's avatar
sajolida committed
304 305 306 307 308 309 310
1. Download and verify
2. Copy to temporary Tails with Gnome Disks
3. Reboot on temporary Tails
4. Install minimal Tails
5. Reboot on minimal Tails
6. Install persistence (optional)
7. Reboot on full-featured Tails (optional)
127.0.0.1's avatar
127.0.0.1 committed
311

sajolida's avatar
sajolida committed
312
#### Clone from a friend
127.0.0.1's avatar
127.0.0.1 committed
313

sajolida's avatar
sajolida committed
314 315 316 317 318
1. Get USB stick from a friend
2. Boot on Tails USB stick
3. Install minimal Tails
4. Reboot on minimal Tails
5. Install persistence (optional)
sajolida's avatar
sajolida committed
319
6. Reboot on full-featured Tails (optional)
127.0.0.1's avatar
127.0.0.1 committed
320

sajolida's avatar
sajolida committed
321
### With DVD as destination media
127.0.0.1's avatar
127.0.0.1 committed
322

sajolida's avatar
sajolida committed
323
#### Windows to DVD
127.0.0.1's avatar
127.0.0.1 committed
324

sajolida's avatar
sajolida committed
325 326 327
1. Download and verify
2. Copy to temporary Tails with a DVD burner
3. Reboot with temporary Tails
127.0.0.1's avatar
127.0.0.1 committed
328

sajolida's avatar
sajolida committed
329
#### Mac to DVD
127.0.0.1's avatar
127.0.0.1 committed
330

sajolida's avatar
sajolida committed
331 332 333
1. Download and verify
2. Copy to temporary Tails with Burn
3. Reboot on temporary Tails
127.0.0.1's avatar
127.0.0.1 committed
334

sajolida's avatar
sajolida committed
335
#### Linux to DVD (same for Debian)
127.0.0.1's avatar
127.0.0.1 committed
336

sajolida's avatar
sajolida committed
337
1. Download and verify
127.0.0.1's avatar
127.0.0.1 committed
338
2. Copy to minimal Tails with Brasero
sajolida's avatar
sajolida committed
339
3. Reboot on temporary Tails
127.0.0.1's avatar
127.0.0.1 committed
340

sajolida's avatar
sajolida committed
341
#### Debian hacker to DVD
127.0.0.1's avatar
127.0.0.1 committed
342

sajolida's avatar
sajolida committed
343 344
1. Download with `wget`
2. Verify with OpenPGP and `debian-keyring`
127.0.0.1's avatar
127.0.0.1 committed
345
3. Copy to minimal Tails with Brasero
sajolida's avatar
sajolida committed
346
4. Reboot on temporary Tails
127.0.0.1's avatar
127.0.0.1 committed
347

sajolida's avatar
sajolida committed
348
### Other possible scenarios
127.0.0.1's avatar
127.0.0.1 committed
349

sajolida's avatar
sajolida committed
350
#### Contact or training
127.0.0.1's avatar
127.0.0.1 committed
351

sajolida's avatar
sajolida committed
352
#### Virtualization
127.0.0.1's avatar
127.0.0.1 committed
353

sajolida's avatar
sajolida committed
354 355
<a id="javascript"></a>

sajolida's avatar
sajolida committed
356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386
About JavaScript
================

During the monthly meeting of [[April
2014|contribute/meetings/201404#index3h1]] ([[!tails_ticket 7023]]) we
mentioned the idea of not having any JavaScript on our homepage, and by
extension, the fact that we should try to limit the amount of JavaScript
on our website in general. But this discussion was not fully concluded.
Here are a few elements to try to summarize our position, in particular
while working on the assistant:

Cons:

  - JavaScript can be dangerous for security and privacy. Tor Browser is
    supposed to block dangerous JavaScript and allow only the innocuous
    kind. But it's still better to be safe than sorry.
  - An important part of our audience want to be careful about
    JavaScript, for the reason mentioned above, and might disable it
    fully. To support this use case, we include the NoScript extension.
    So, to be coherent with this, every part of our website must be
    functional without JavaScript. This also ensures compatibility with
    all the levels of the security slider of Tor Browser ([[!tor_bug
    9387]]).
  - We don't know much about JavaScript ourselves, and even less about
    JavaScript security. So writing JavaScript seems complicated,
    costly, and error prone. Reusing JavaScript libraries like jQuery
    looks more feasible without taking much risks.

Pros:

  - We are already using JavaScript on our website (see the toggle on
sajolida's avatar
sajolida committed
387
    the old download page).
sajolida's avatar
sajolida committed
388 389 390 391 392 393 394 395 396
  - JavaScript might allow us to present better our information to the
    user and improve the quality of our website in terms of user
    experience. But using it to save us a bit of work or look cool might
    not be a good enough reason.

Conclusion:

  - We will use JavaScript to the minimum while ensure graceful
    degradation.
sajolida's avatar
sajolida committed
397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444

<a id="questions"></a>

Open problems
=============

Going in and out
----------------

  - How to handle entry and exit points? What happen when someone in
    pointed to a documentation page for a corner case?
  - How do we deal with people leaving the assistant to restart their
    system? Do we want to propose them to print a page for the remaining
    steps?
  - When people leave, do we want to give them some warning,
    explanation, good bye message?
  - Recommend people to open the website from their smartphone before
    restarting their computer.

Instructions
------------

  - How do we help better people with boot? Shall we want suggest the
    most likely keys based on the brand of the computer?
  - How to explain the installation of tails-installer in Debian
    derivatives. Ubuntu has
    [AptURL](https://help.ubuntu.com/community/AptURL) in its Firefox.
  - How to make it easier to locate the ISO image once downloaded, for
    example to feed it into Tails Installer?
  - Suggest human strategies for avoiding targeted malware:
    - Clone from a friend
    - Use a different computer than yours
    - Use Linux if available around you

Infrastructure
--------------

  - Investigate how we could monitor the usage of the assistant: most
    common path, failures, people leaving, etc. But this can have
    privacy issues.

Troubleshooting
---------------

  - Integrate system requirements.
  - Integrate information about organization doing training.
  - How do we connect all this with support, in case people are lost or
    having specific problems?