diff --git a/website/installer.ogv b/img/installer.ogv similarity index 100% rename from website/installer.ogv rename to img/installer.ogv diff --git a/website/ad/.gitignore b/website/ad/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ae/.gitignore b/website/ae/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/af/.gitignore b/website/af/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ag/.gitignore b/website/ag/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ai/.gitignore b/website/ai/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/al/.gitignore b/website/al/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/am/.gitignore b/website/am/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ao/.gitignore b/website/ao/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/aq/.gitignore b/website/aq/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ar/.gitignore b/website/ar/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/as/.gitignore b/website/as/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/at/.gitignore b/website/at/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/au/.gitignore b/website/au/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/aw/.gitignore b/website/aw/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ax/.gitignore b/website/ax/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/az/.gitignore b/website/az/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ba/.gitignore b/website/ba/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bb/.gitignore b/website/bb/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bd/.gitignore b/website/bd/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/be/.gitignore b/website/be/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bf/.gitignore b/website/bf/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bg/.gitignore b/website/bg/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bh/.gitignore b/website/bh/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bi/.gitignore b/website/bi/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bj/.gitignore b/website/bj/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bl/.gitignore b/website/bl/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bm/.gitignore b/website/bm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bn/.gitignore b/website/bn/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bo/.gitignore b/website/bo/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bq/.gitignore b/website/bq/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/br/.gitignore b/website/br/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bs/.gitignore b/website/bs/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bt/.gitignore b/website/bt/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bv/.gitignore b/website/bv/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bw/.gitignore b/website/bw/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/by/.gitignore b/website/by/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/bz/.gitignore b/website/bz/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ca/.gitignore b/website/ca/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cc/.gitignore b/website/cc/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cd/.gitignore b/website/cd/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cf/.gitignore b/website/cf/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cg/.gitignore b/website/cg/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ch/.gitignore b/website/ch/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ci/.gitignore b/website/ci/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ck/.gitignore b/website/ck/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cl/.gitignore b/website/cl/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cm/.gitignore b/website/cm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cn/.gitignore b/website/cn/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/co/.gitignore b/website/co/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cr/.gitignore b/website/cr/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cu/.gitignore b/website/cu/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cv/.gitignore b/website/cv/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cw/.gitignore b/website/cw/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cx/.gitignore b/website/cx/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cy/.gitignore b/website/cy/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/cz/.gitignore b/website/cz/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/de/.gitignore b/website/de/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/dj/.gitignore b/website/dj/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/dk/.gitignore b/website/dk/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/dm/.gitignore b/website/dm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/do/.gitignore b/website/do/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/dz/.gitignore b/website/dz/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ec/.gitignore b/website/ec/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ee/.gitignore b/website/ee/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/eg/.gitignore b/website/eg/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/eh/.gitignore b/website/eh/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/er/.gitignore b/website/er/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/es/.gitignore b/website/es/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/et/.gitignore b/website/et/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/fi/.gitignore b/website/fi/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/fj/.gitignore b/website/fj/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/fk/.gitignore b/website/fk/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/fm/.gitignore b/website/fm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/fo/.gitignore b/website/fo/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/fr/.gitignore b/website/fr/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ga/.gitignore b/website/ga/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gb/.gitignore b/website/gb/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/backups.html b/website/gb/backups.html similarity index 100% rename from website/backups.html rename to website/gb/backups.html diff --git a/website/code.html b/website/gb/code.html similarity index 100% rename from website/code.html rename to website/gb/code.html diff --git a/website/faq.html b/website/gb/faq.html similarity index 100% rename from website/faq.html rename to website/gb/faq.html diff --git a/website/index.css b/website/gb/index.css similarity index 100% rename from website/index.css rename to website/gb/index.css diff --git a/website/index.html b/website/gb/index.html similarity index 100% rename from website/index.html rename to website/gb/index.html diff --git a/website/installation.html b/website/gb/installation.html similarity index 100% rename from website/installation.html rename to website/gb/installation.html diff --git a/website/related.html b/website/gb/related.html similarity index 100% rename from website/related.html rename to website/gb/related.html diff --git a/website/support.html b/website/gb/support.html similarity index 100% rename from website/support.html rename to website/gb/support.html diff --git a/website/usage.html b/website/gb/usage.html similarity index 100% rename from website/usage.html rename to website/gb/usage.html diff --git a/website/variants.html b/website/gb/variants.html similarity index 100% rename from website/variants.html rename to website/gb/variants.html diff --git a/website/gd/.gitignore b/website/gd/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ge/.gitignore b/website/ge/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gf/.gitignore b/website/gf/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gg/.gitignore b/website/gg/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gh/.gitignore b/website/gh/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gi/.gitignore b/website/gi/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gl/.gitignore b/website/gl/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gm/.gitignore b/website/gm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gn/.gitignore b/website/gn/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gp/.gitignore b/website/gp/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gq/.gitignore b/website/gq/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gr/.gitignore b/website/gr/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gs/.gitignore b/website/gs/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gt/.gitignore b/website/gt/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gu/.gitignore b/website/gu/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gw/.gitignore b/website/gw/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/gy/.gitignore b/website/gy/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/hk/.gitignore b/website/hk/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/hm/.gitignore b/website/hm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/hn/.gitignore b/website/hn/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/hr/.gitignore b/website/hr/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ht/.gitignore b/website/ht/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/hu/.gitignore b/website/hu/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/id/.gitignore b/website/id/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ie/.gitignore b/website/ie/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/il/.gitignore b/website/il/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/im/.gitignore b/website/im/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/in/.gitignore b/website/in/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/io/.gitignore b/website/io/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/iq/.gitignore b/website/iq/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ir/.gitignore b/website/ir/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/is/.gitignore b/website/is/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/iso/.gitignore b/website/iso/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/it/.gitignore b/website/it/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/je/.gitignore b/website/je/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/jm/.gitignore b/website/jm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/jo/.gitignore b/website/jo/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/jp/.gitignore b/website/jp/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ke/.gitignore b/website/ke/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/kg/.gitignore b/website/kg/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/kh/.gitignore b/website/kh/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ki/.gitignore b/website/ki/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/km/.gitignore b/website/km/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/kn/.gitignore b/website/kn/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/kp/.gitignore b/website/kp/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/kr/.gitignore b/website/kr/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/kw/.gitignore b/website/kw/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ky/.gitignore b/website/ky/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/kz/.gitignore b/website/kz/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/la/.gitignore b/website/la/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/lb/.gitignore b/website/lb/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/lc/.gitignore b/website/lc/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/li/.gitignore b/website/li/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/lk/.gitignore b/website/lk/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/lr/.gitignore b/website/lr/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ls/.gitignore b/website/ls/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/lt/.gitignore b/website/lt/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/lu/.gitignore b/website/lu/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/lv/.gitignore b/website/lv/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ly/.gitignore b/website/ly/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ma/.gitignore b/website/ma/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mc/.gitignore b/website/mc/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/md/.gitignore b/website/md/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/me/.gitignore b/website/me/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mf/.gitignore b/website/mf/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mg/.gitignore b/website/mg/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mh/.gitignore b/website/mh/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mk/.gitignore b/website/mk/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ml/.gitignore b/website/ml/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mm/.gitignore b/website/mm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mn/.gitignore b/website/mn/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mo/.gitignore b/website/mo/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mp/.gitignore b/website/mp/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mq/.gitignore b/website/mq/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mr/.gitignore b/website/mr/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ms/.gitignore b/website/ms/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mt/.gitignore b/website/mt/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mu/.gitignore b/website/mu/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mv/.gitignore b/website/mv/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mw/.gitignore b/website/mw/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mx/.gitignore b/website/mx/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/my/.gitignore b/website/my/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/mz/.gitignore b/website/mz/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/na/.gitignore b/website/na/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/nc/.gitignore b/website/nc/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ne/.gitignore b/website/ne/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/nf/.gitignore b/website/nf/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ng/.gitignore b/website/ng/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ni/.gitignore b/website/ni/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/nl/.gitignore b/website/nl/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/no/.gitignore b/website/no/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/np/.gitignore b/website/np/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/nr/.gitignore b/website/nr/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/nu/.gitignore b/website/nu/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/nz/.gitignore b/website/nz/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/om/.gitignore b/website/om/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/pa/.gitignore b/website/pa/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/pe/.gitignore b/website/pe/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/pf/.gitignore b/website/pf/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/pg/.gitignore b/website/pg/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ph/.gitignore b/website/ph/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/pk/.gitignore b/website/pk/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/pl/.gitignore b/website/pl/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/pm/.gitignore b/website/pm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/pn/.gitignore b/website/pn/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/pr/.gitignore b/website/pr/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ps/.gitignore b/website/ps/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/pt/.gitignore b/website/pt/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/pw/.gitignore b/website/pw/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/py/.gitignore b/website/py/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/qa/.gitignore b/website/qa/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/re/.gitignore b/website/re/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ro/.gitignore b/website/ro/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/rs/.gitignore b/website/rs/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ru/.gitignore b/website/ru/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/rw/.gitignore b/website/rw/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sa/.gitignore b/website/sa/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sb/.gitignore b/website/sb/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sc/.gitignore b/website/sc/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sd/.gitignore b/website/sd/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/se/.gitignore b/website/se/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sg/.gitignore b/website/sg/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sh/.gitignore b/website/sh/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/si/.gitignore b/website/si/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sj/.gitignore b/website/sj/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sk/.gitignore b/website/sk/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sl/.gitignore b/website/sl/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sm/.gitignore b/website/sm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sn/.gitignore b/website/sn/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/so/.gitignore b/website/so/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sr/.gitignore b/website/sr/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ss/.gitignore b/website/ss/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/st/.gitignore b/website/st/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sv/.gitignore b/website/sv/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sx/.gitignore b/website/sx/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sy/.gitignore b/website/sy/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/sz/.gitignore b/website/sz/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tc/.gitignore b/website/tc/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/td/.gitignore b/website/td/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tf/.gitignore b/website/tf/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tg/.gitignore b/website/tg/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/th/.gitignore b/website/th/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tj/.gitignore b/website/tj/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tk/.gitignore b/website/tk/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tl/.gitignore b/website/tl/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tm/.gitignore b/website/tm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tn/.gitignore b/website/tn/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/to/.gitignore b/website/to/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tr/.gitignore b/website/tr/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tt/.gitignore b/website/tt/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tv/.gitignore b/website/tv/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tw/.gitignore b/website/tw/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/tz/.gitignore b/website/tz/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ua/.gitignore b/website/ua/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ug/.gitignore b/website/ug/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/um/.gitignore b/website/um/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/us/.gitignore b/website/us/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/us/backups.html b/website/us/backups.html new file mode 100644 index 00000000..21e382ee --- /dev/null +++ b/website/us/backups.html @@ -0,0 +1,420 @@ + + + + + + + + + + + + + + + + + + +
+ +
+
+

+
+ +
+

logo.png +

+
+
+ +
+ + + +++ + + + + + + + + + + + + + + + + + + + + + +
Home
Backup to USB
Restore from USB
Distributed backups
Restore from a friend
+
+ +
+

Backup to USB

+
+

+Insert a USB thumb drive into the front socket of the Beaglebone Black. +

+ +

+Log into the system and become the root user, then run the backup command. +

+ +
+ +
su username@domainname -p 2222
+su
+backup
+
+
+ +

+If this is the first time that you've made a backup then you will be prompted for your GPG key password. +

+ +

+When the backup ends remove the USB drive and keep it somewhere safe. Even if it gets lost or falls into the wrong hands the content is encrypted and so is unlikely to become a source of leaks. +

+
+
+
+

Restore from USB

+
+

+Insert the USB thumb drive containing your backup into the front socket of the Beaglebone Black. +

+ +

+Log into the system and become the root user, then run the restore command. +

+ +
+ +
su username@domainname -p 2222
+su
+restore
+
+
+ +

+You will be prompted to enter your GPG key password, then when the restore is complete you can remove the USB drive. +

+
+
+
+

Distributed backups

+
+

+Distributed backups are a better way of ensuring the persistence of your data, such that even if your system gets stolen or destroyed then the data will still be recoverable from your friends. Since the backups are encrypted your friends (or anyone else with access to their systems) won't be able to read your backed up content even if their systems are subsequently compromised. +

+ +

+Firstly you will need to have a user account on one or more of your friends servers. They don't necessarily need to be using Freedombone, just some version of GNU/Linux with ssh access. They can create a user account for you with the adduser <username> command when logged in as root and then give you the username and password via a secure method, such as on paper or via an encrypted email or via an XMPP chat using OTR. Make sure that the password used is a strong one - preferably a long random string stored in a password manager - so that dictionary attacks will fail. Also for maximum resilience put your password manager file onto a USB thumb drive and carry it with you. +

+ +

+To add friends servers create a file called backup.list in the following way. +

+ +
+ +
ssh username@domainname -p 2222
+emacs ~/backup.list
+
+
+ +

+Add entries like this. The numbers are the ssh port number to log in on. +

+ +
+ +
username1@frienddomain1:2222//home/username1 ssh_password1
+username2@frienddomain2:2222//home/username2 ssh_password2
+...
+
+
+ +

+Save and exit with CTRL-x CTRL-s then CTRL-x CTRL-c, then type exit. +

+ +

+The system will try to backup to these remote locations once per day. +

+
+
+
+

Restore from a friend

+
+
+

With a completely new Freedombone installation

+
+

+This is the ultimate disaster recovery scenario in which you are beginning completely from scratch with new hardware and a new Freedombone installation. It is assumed that the old hardware was destroyed, but that you have the passwords stored within a password manager on a USB thumb drive. +

+ +

+First log in and create a new friends list: +

+ +
+ +
ssh username@domainname -p 2222
+emacs ~/backup.list
+
+
+ +

+Add entries like this. The numbers are the ssh port number to log in on. +

+ +
+ +
username1@frienddomain1:2222//home/username1 ssh_password1
+username2@frienddomain2:2222//home/username2 ssh_password2
+...
+
+
+ +

+Save and exit with CTRL-x CTRL-s then CTRL-x CTRL-c. +

+ +

+Now log in as root and edit the restore script. +

+ +
+ +
su
+emacs /usr/bin/restorefromfriend
+
+
+ +

+Recover your backup password from your password manager and set the PASSPHRASE variable accordingly. +

+ +

+Save and exit with CTRL-x CTRL-s and CTRL-x CTRL-c. +

+ +

+Then use the command: +

+ +
+ +
restorefromfriend <friends server domain name>
+
+
+
+
+
+

On an existing Freedombone installation

+
+

+This is for more common situations in which maybe some data became corrupted and you want to restore it. +

+ +

+Log in as root: +

+ +
+ +
ssh username@domainname -p 2222
+su
+
+
+ +

+Then use the command: +

+ +
+ +
restorefromfriend <friends server domain name>
+
+
+
+
+
+
+
+ + + +
+Back to top | E-mail me +
+ + +
+ + diff --git a/website/us/code.html b/website/us/code.html new file mode 100644 index 00000000..f8ffd1c9 --- /dev/null +++ b/website/us/code.html @@ -0,0 +1,221 @@ + + + + + + + + + + + + + + + + + + +
+ +
+
+

+
+ +
+

logo.png +

+
+
+ + + + +++ + + + + + +
Home
+ +

+Freedombone is really just a couple of bash scripts which install and configure software on a Debian GNU/Linux system. If you're a system administrator, software engineer or Linux hobbyist you'll probably be familiar with command line scripting and be able to make your own modifications or custom variants to suit your needs. Freedombone is licensed under the GNU General Public License version 3. +

+ +

+You can find the source code for this project on Github. +

+ +

+Bugs or feature requests should be entered here. +

+
+
+ + + +
+Back to top | E-mail me +
+ + +
+ + diff --git a/website/us/faq.html b/website/us/faq.html new file mode 100644 index 00000000..efdae6ec --- /dev/null +++ b/website/us/faq.html @@ -0,0 +1,602 @@ + + + + + + + + + + + + + + + + + + +
+ +
+
+

+
+ +
+

logo.png +

+
+
+ +
+ + + +++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Home
Why not supply a disk image download?
Is metadata protected?
Why isn't dynamic DNS working?
How do I get a domain name?
How do I get a "real" SSL certificate?
Why use self-signed certificates?
Why not use the services of $company instead? They took the Seppuku pledge
+
+ +
+

Why not supply a disk image download?

+
+

+Shipping a Freedombone disk image ready to install on a flash disk would be easy, but disk images are relatively opaque. It would be quite easy to hide something nasty within a disk image and the user might never know. To guard against that possibility installing via the freedombone command is a lot more transparent, since it's really just a bash script. You can check the script code to see exactly what it's doing, and the packages are all downloaded from standard Debian repos (you can even choose which one you trust) or git repos. Doing it this way the system is fully auditable, whereas when shipping a disk image it's harder to be confident that no nefarious extras have been added. +

+
+
+
+

Is metadata protected?

+
+

+Even when using Freedombone metadata analysis by third parties is still possible. They might have a much harder time knowing what the content is, but they can potentially construct extensive dossiers based upon who communicated with your server when. Metadata leakage is a general problem with most current web systems and it is hoped that more secure technology will become available in future. But for now if metadata protection is your main concern using Freedombone won't help. +

+
+
+
+

Why isn't dynamic DNS working?

+
+

+If you run the command: +

+ +
+ +
service inadyn status
+
+
+ +

+And see some error related to checking for changes in the IP address then you can try other external IP services. Edit /etc/inadyn.conf and change the domain for the checkip-url parameter. Possible sites are: +

+ +
+ +
https://check.torproject.org/
+https://www.whatsmydns.net/whats-my-ip-address.html
+https://www.privateinternetaccess.com/pages/whats-my-ip/
+http://checkip.two-dns.de
+http://ip.dnsexit.com
+http://ifconfig.me/ip
+http://ipecho.net/plain
+http://checkip.dyndns.org/plain
+http://ipogre.com/linux.php
+http://whatismyipaddress.com/
+http://ip.my-proxy.com/
+http://websiteipaddress.com/WhatIsMyIp
+http://getmyipaddress.org/
+http://www.my-ip-address.net/
+http://myexternalip.com/raw
+http://www.canyouseeme.org/
+http://www.trackip.net/
+http://icanhazip.com/
+http://www.iplocation.net/
+http://www.howtofindmyipaddress.com/
+http://www.ipchicken.com/
+http://whatsmyip.net/
+http://www.ip-adress.com/
+http://checkmyip.com/
+http://www.tracemyip.org/
+http://checkmyip.net/
+http://www.lawrencegoetz.com/programs/ipinfo/
+http://www.findmyip.co/
+http://ip-lookup.net/
+http://www.dslreports.com/whois
+http://www.mon-ip.com/en/my-ip/
+http://www.myip.ru
+http://ipgoat.com/
+http://www.myipnumber.com/my-ip-address.asp
+http://www.whatsmyipaddress.net/
+http://formyip.com/
+http://www.displaymyip.com/
+http://www.bobborst.com/tools/whatsmyip/
+http://www.geoiptool.com/
+http://checkip.dyndns.com/
+http://myexternalip.com/
+http://www.ip-adress.eu/
+http://www.infosniper.net/
+http://wtfismyip.com/
+http://ipinfo.io/
+http://httpbin.org/ip
+
+
+
+
+ +
+

How do I get a domain name?

+
+

+Suppose that you have bought a domain name (rather than using a free subdomain on freedns) and you want to use that instead. +

+ +

+Remove any existing nameservers for your domain (or select "custom" nameservers), then add: +

+ +
+ +
NS1.AFRAID.ORG
+NS2.AFRAID.ORG
+NS3.AFRAID.ORG
+NS4.AFRAID.ORG
+
+
+ +

+It might take a few minutes for the above change to take effect. Within freedns click on "Domains" and add your domains (this might only be available to paid members). Make sure that they're marked as "private". +

+ +

+Select "Subdomains" from the menu on the left then select the MX entry for your domain and change the destination to 10:mydomainname rather than 10:mail.mydomainname. +

+ +

+To route email to one of your freedns domains: +

+ +
+ +
editor /etc/mailname
+
+
+ +

+Add any extra domains which you own, then save and exit. +

+ +
+ +
editor /etc/exim4/update-exim4.conf.conf
+
+
+ +

+Within dc_other_hostnames add your extra domain names, separated by a colon ':' character. +

+ +

+Save and exit, then restart exim. +

+ +
+ +
update-exim4.conf.template -r
+update-exim4.conf
+service exim4 restart
+
+
+ +

+You should now be able to send an email from postmaster@mynewdomainname and it should arrive in your inbox. +

+
+
+ +
+

How do I get a "real" SSL certificate?

+
+

+You can obtain a free "official" (as in recognised by default by web browsers) SSL certificate from StartSSL. You will first need to have bought a domain name, since it's not possible to obtain one for a freedns subdomain, so see Using your own domain for details of how to do that. You should also have tested that you can send email to the domain and receive it on the Freedombone (via Mutt or any other email client). +

+ +

+When creating a SSL certificate it's important that the private key (the private component of the public/private pair in public key cryptography) be generated on the Freedombone and remain there. Don't generate the private key via the StartSSL certificate wizard because this means that potentially they may retain a copy of it which could then be exfiltrated either via Lavabit style methodology, "implants", compromised sysadmins or other "side channel" methods. So that the private key isn't broadcast on the internet we can instead generate a certificate request, which is really just a request for authorisation of a public key. +

+ +

+Firstly you should have a web server site configuration ready to go. See Setting up a web site for details. +

+ +

+Within StartSSL under the validations wizard validate your domain, which means sending an email to it and confirming a code. +

+ +

+Now we can generate the certificate request as follows. +

+ +
+ +
export HOSTNAME=mydomainname.com
+openssl genrsa -out /etc/ssl/private/$HOSTNAME.key 2048
+chown root:ssl-cert /etc/ssl/private/$HOSTNAME.key
+chmod 440 /etc/ssl/private/$HOSTNAME.key
+mkdir /etc/ssl/requests
+
+
+ +

+Now make a certificate request as follows. You should copy and paste the whole of this, not just line by line. +

+ +
+ +
openssl req -new -sha256 -key /etc/ssl/private/$HOSTNAME.key -out /etc/ssl/requests/$HOSTNAME.csr
+
+
+ +

+For the email address it's a good idea to use postmaster@mydomainname. +

+ +

+Use a random 20 character password, and keep a note of it. We'll remove this later. +

+ +

+View the request with: +

+ +
+ +
cat /etc/ssl/requests/$HOSTNAME.csr
+
+
+ +

+You can then click on "skip" within the StartSSL certificates wizard and copy and paste the encrypted request into the text entry box. A confirmation will be emailed back to you normally within a few hours. +

+ +

+Log into your StartSSL account and select Retrieve Certificate from the Tool Box tab. Copy the text. +

+ +
+ +
editor /etc/ssl/certs/$HOSTNAME.crt
+
+
+ +

+Paste the public key, then save and exit. Then on the Freedombone. +

+ +
+ +
mkdir /etc/ssl/roots
+mkdir /etc/ssl/chains
+wget "http://www.startssl.com/certs/ca.pem" --output-document="/etc/ssl/roots/startssl-root.ca"
+wget "http://www.startssl.com/certs/sub.class1.server.ca.pem" --output-document="/etc/ssl/chains/startssl-sub.class1.server.ca.pem"
+wget "http://www.startssl.com/certs/sub.class2.server.ca.pem" --output-document="/etc/ssl/chains/startssl-sub.class2.server.ca.pem"
+wget "http://www.startssl.com/certs/sub.class3.server.ca.pem" --output-document="/etc/ssl/chains/startssl-sub.class3.server.ca.pem"
+ln -s "/etc/ssl/roots/startssl-root.ca" "/etc/ssl/roots/$HOSTNAME-root.ca"
+ln -s "/etc/ssl/chains/startssl-sub.class1.server.ca.pem" "/etc/ssl/chains/$HOSTNAME.ca"
+cp "/etc/ssl/certs/$HOSTNAME.crt" "/etc/ssl/certs/$HOSTNAME.crt+chain+root"
+test -e "/etc/ssl/chains/$HOSTNAME.ca" && cat "/etc/ssl/chains/$HOSTNAME.ca" >> "/etc/ssl/certs/$HOSTNAME.crt+chain+root"
+test -e "/etc/ssl/roots/$HOSTNAME-root.ca" && cat "/etc/ssl/roots/$HOSTNAME-root.ca" >> "/etc/ssl/certs/$HOSTNAME.crt+chain+root"
+
+
+ +

+To avoid any possibility of the certificates being accidentally overwritten by self-signed ones at a later date you can create backups. +

+ +
+ +
mkdir /etc/ssl/backups
+mkdir /etc/ssl/backups/certs
+mkdir /etc/ssl/backups/private
+cp /etc/ssl/certs/$HOSTNAME* /etc/ssl/backups/certs/
+cp /etc/ssl/private/$HOSTNAME* /etc/ssl/backups/private/
+chmod -R 400 /etc/ssl/backups/certs/*
+chmod -R 400 /etc/ssl/backups/private/*
+
+
+ +

+Remove the certificate password, so if the server is rebooted then it won't wait indefinitely for a non-existant keyboard user to type in a password. +

+ +
+ +
openssl rsa -in /etc/ssl/private/$HOSTNAME.key -out /etc/ssl/private/$HOSTNAME.new.key
+cp /etc/ssl/private/$HOSTNAME.new.key /etc/ssl/private/$HOSTNAME.key
+shred -zu /etc/ssl/private/$HOSTNAME.new.key
+
+
+ +

+Create a bundled certificate which joins the certificate and chain file together. +

+ +
+ +
cat /etc/ssl/certs/$HOSTNAME.crt /etc/ssl/chains/startssl-sub.class1.server.ca.pem > /etc/ssl/certs/$HOSTNAME.bundle.crt
+
+
+ +

+And also add it to the overall bundle of certificates for the Freedombone. This will allow you to easily install the certificates onto other systems. +

+ +
+ +
mkdir /etc/ssl/mycerts
+cp /etc/ssl/certs/$HOSTNAME.bundle.crt /etc/ssl/mycerts
+cat /etc/ssl/mycerts/*.crt > /etc/ssl/freedombone-bundle.crt
+tar -czvf /etc/ssl/freedombone-certs.tar.gz /etc/ssl/mycerts/*.crt
+
+
+ +

+Edit your configuration file. +

+ +
+ +
editor /etc/nginx/sites-available/$HOSTNAME
+
+
+ +

+Add the following to the section which starts with listen 443 +

+ +
+ +
ssl_certificate /etc/ssl/certs/mydomainname.com.bundle.crt;
+
+
+ +

+Save and exit, then restart the web server. +

+ +
+ +
service nginx restart
+
+
+ +

+Now visit your web site at https://mydomainname.com/ and you should notice that there is no certificate warning displayed. You will now be able to install systems which don't allow the use of self-signed certificates, such as Red Matrix. +

+
+
+ +
+

Why use self-signed certificates?

+
+

+Almost everywhere on the web you will read that self-signed certificates are worthless. They bring up scary looking browser warnings and gurus will advise you not to use them. Self-signed certificates are quite useful though. What the scary warnings mean - and it would be good if they explained this more clearly - is that you have an encrypted connection established but there is no certainty about who that connection is with. The usual solution to this is to get a "real" SSL certificate from one of the certificate authorities, but it's far from clear that such authorities can be trusted. There have been various scandals involving such organisations, and it does not seem plausible to assume that they are somehow immune to the sort of treatment which Lavabit received. So although most internet users have been trained to look for the lock icon as an indication that the connection is secured that belief may not always be well founded. +

+ +

+Security of web sites on the internet is still a somewhat unsolved problem, and what we have now is a less than ideal but good enough to fool most of the people most of the time kind of arrangement. Long term a better solution might be to have a number of certificate authorities in a number of different jurisdictions vote on whether a given certificate actually belongs to a given domain name. Experimental systems like this exist, but they're not widely used. Since the current certificate system has an enormous amount of inertia behind it change could be slow in arriving. +

+ +

+For now a self-signed certificate will probably in most cases protect your communications from "bulk" passive surveillance. Once you've got past the scary browser warning and accepted the certificate under most conditions (except when starting up the Tor browser) you should not repeatedly see that warning. If you do then someone may be trying to meddle with your connection to the server. You can also take a note of the fingerprint of the certificate and verify that if you are especially concerned. If the fingerprint remains the same then you're probably ok. +

+
+
+
+

Why not use the services of $company instead? They took the Seppuku pledge

+
+

+That pledge is utterly worthless. Years ago people trusted Google in the same sort of way, because they promised not be be evil and because a lot of the engineers working for them seemed like honest types who were "on our side". Post-nymwars and post-PRISM we know exactly how much Google cared about the privacy and security of its users. But Google is only one particular example. In general don't trust pledges made by companies, even if the people running them seem really sincere. +

+
+
+
+
+ + + +
+Back to top | E-mail me +
+ + +
+ + diff --git a/website/us/index.css b/website/us/index.css new file mode 100644 index 00000000..4f8417a5 --- /dev/null +++ b/website/us/index.css @@ -0,0 +1,51 @@ +a { + color: #427fed; + color: #1e6b8c; + text-decoration: none; +} + +a:visited { + color: #6f32ad; + +} + +a:hover { + text-decoration: underline; + background: #f0f0ff; +} + +a:active { + background-color: #427fed; + color: #fffff6; +} + +body { + background-color: #fffff6; + background-image: none; + color: #330; + font-family: georgia; + font-size: 15pt; + margin: 2em auto; + padding: 0 2em; + max-width: 45em; + width: auto; +} + +h1, h2, h3, h4, h5, h6 { + color: #703820; + line-height: 1.2em; +} + +img { + float: right; + clear: right; + padding: 10px; + margin: 20px; + border: solid 1px #888; + box-shadow: 6px 10px 8px rgba(128, 128, 96, 0.7); +} + +p, li, dd, dt, blockquote, span { + font-size: 15pt; + line-height: 1.4em; +} diff --git a/website/us/index.html b/website/us/index.html new file mode 100644 index 00000000..40cef86f --- /dev/null +++ b/website/us/index.html @@ -0,0 +1,269 @@ + + + + + + + + + + + + + + + + + + +
+ +
+
+

+
+ +
+

logo.png +

+
+
+ +
+ + + +++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + +
VariantsInstallationHow to use itBackupsCodeRelated ProjectsFAQSupportLicense
+
+ +

+Freedombone is a self-hosted home server configuration which can be installed onto any computer capable of running Debian Jessie. If you have an old laptop or netbook which you can leave turned on then you can use Freedombone to provide your own internet services, such as blogging, wiki, email, chat and social networking and have independence from the well known internet companies. +

+ +
+

+"With the increasing move of our computing to cloud infrastructures, we give up the control of our computing to the managers of those infrastructures. Our terminals (laptops, desktops) might now be running entirely on Free Software, but this is increasingly irrelevant given that most of what actually matters gets executed on a remote closed system that we don’t control. The Free Software community needs to work to help users keep the control of all their computing, by developing suitable alternatives and facilitating their deployment." – Lucas Nussbaum +

+
+ +

+Today everyone is concerned about privacy on the internet. At the same time there's a problem with the companies who have traditionally provided most of the web services. The people running those companies may be well-intentioned - as in the famous motto "don't be evil" - but the advertising based business model which currently dominates, combined with an increasing level of political pressure to insert backdoors means that it is usually impossible for companies operating within both their own business models and the framework of national laws to provide you with services which don't intentionally leak your private communications to advertisers, insurers or governments. +

+ +

+Another problem is the precariousness of the terms of service. Except in rare cases such terms are not easy to read, so many people end up clicking through terms which if explained more clearly they would never agree to. Over the past decade many internet users have had the unpleasant experience of having their blogs, videos or other web content inexplicably removed, typically due to some ill-defined terms of service violation or a false accusation of copyright infringement. +

+ +

+You can bypass all of these dilemmas and take back ownership of your internet content with Freedombone. Originally based upon the Beaglebone Black, Freedombone is a small and cheap home server which enables you to use email, have your own web site and do social networking without any built-in spying and without having to agree to any legal terms of service other than those of your ISP. It provides independence and security in an era where those things are in short supply. +

+ +
+ +
+

surveillance.png +

+
+
+ +

+An emphasis of the Freedombone project is the protection of private communications from indiscriminate mass surveillance, otherwise known as "bulk intercept" or "warrantless wiretapping". With only a few exceptions data entering and leaving the system is encrypted using settings recommended by bettercrypto.org. Stored emails are encrypted such that only someone knowing your GPG password can read them and a GPG key is created automatically if you don't already have one. The system is firewalled with only the necessary ports being opened. Exclusively free software is used so that all of it can potentially be security audited and proprietary repositaries are disabled by default. There are still numerous security problems with the internet in general and software always contains bugs, but a best attempt has been made to ensure that the Freedombone is at least more secure than average. A limitation is that this system will not protect you from metadata analysis, although it is hoped that new types of email system may be able to do that in future. +

+
+
+ + + +
+Back to top | E-mail me +
+ + +
+ + diff --git a/website/us/installation.html b/website/us/installation.html new file mode 100644 index 00000000..3ef55f1d --- /dev/null +++ b/website/us/installation.html @@ -0,0 +1,602 @@ + + + + + + + + + + + + + + + + + + +
+ +
+
+

+
+ +
+

logo.png +

+
+
+ + + +++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + +
HomePreparation for the Beaglebone BlackChecklistGPG KeysInteractive SetupNon-Interactive SetupPost-SetupOn Client Machines
+ + +
+

Preparation for the Beaglebone Black

+
+

+This section is specific to the Beaglebone Black hardware. If you're not using that hardware then just skip to the next section. +

+ +

+To get started you will need: +

+ +
    +
  • A Beaglebone Black +
  • +
  • A MicroSD card +
  • +
  • Ethernet cable +
  • +
  • Optionally a 5V 2A power supply for the Beaglebone Black +
  • +
  • Access to the internet via a router with ethernet sockets +
  • +
  • USB thumb drive (for backups or storing media) +
  • +
  • One or more domains available via a dynamic DNS provider, such as https://freedns.afraid.org/ +
  • +
  • A purchased domain name and SSL certificate (only needed for Red Matrix) +
  • +
  • A laptop or desktop machine with the ability to write to a microSD card (might need an adaptor) +
  • +
+ +

+You will also need to know, or find out, the IP address of your internet router and have a suitable static IP address for the Beaglebone on your local network. The router should allow you to forward ports to the Beaglebone (often this is under firewall or "advanced" settings). +

+ +

+You can either install from a debian package or manually as follows: +

+ +
+ +
sudo apt-get update
+sudo apt-get install git dialog build-essential
+git clone https://github.com/bashrc/freedombone
+cd freedombone
+sudo make install
+
+
+ +

+Plug the microSD card into your laptop/desktop and then run the freedombone-prep command. For example: +

+ +
+ +
freedombone-prep -d /dev/sdX --ip freedombone_IP_address --iprouter router_IP_address
+
+
+ +

+where /dev/sdX is the device name for the microSD card. Often it's /dev/sdb or /dev/sdc, depending upon how many drives there are on your system. The script will download the Debian installer and update the microSD card. It can take a while, so be patient. +

+ +

+When the initial setup is done follow the instructions on screen to run the main freedombone command. +

+
+
+ +
+

Checklist

+
+

+Before running the freedombone command you will need a few things. +

+ +
    +
  • Have some domains, or subdomains, registered with a dynamic DNS service +
  • +
  • System with a new installation of Debian Jessie +
  • +
  • Ethernet connection to an internet router +
  • +
  • It is possible to forward ports from the internet router to the system +
  • +
  • If you want to set up a social network or microblog then you will need SSL certificates corresponding to those domains +
  • +
  • Have ssh access to the system +
  • +
+
+
+ +
+

GPG Keys

+
+

+If you have existing GPG keys then copy the .gnupg directory onto the system. +

+ +
+ +
scp -r ~/.gnupg username@freedombone_IP_address:/home/username
+
+
+
+
+ +
+

Interactive Setup

+
+

+The interactive server configuration setup is recommended for most users. On the system where freedombone is to be installed create a configuration file. +

+ +
+ +
ssh username@freedombone_IP_address
+su
+sudo apt-get update
+apt-get install git dialog build-essential
+git clone https://github.com/bashrc/freedombone
+cd freedombone
+make install
+
+
+ +

+Now the easiest way to install the system is via the interactive setup. +

+ +
+ +
freedombone menuconfig
+
+
+ +

+You can select which variant you wish to install and then enter the details as requested. A video of the install sequence can be seen here. +

+
+
+ +
+

Non-Interactive Setup

+
+

+If you don't want to install interactively then it's possible to manually create a configuration file as follows: +

+ +

+On the system where freedombone is to be installed create a configuration file. +

+ +
+ +
ssh username@freedombone_IP_address
+su
+sudo apt-get update
+apt-get install git build-essential
+git clone https://github.com/bashrc/freedombone
+cd freedombone
+make install
+nano /home/username/freedombone/freedombone.cfg
+
+
+ +

+Add the following, and set the values as needed. +

+ +
+ +
MY_EMAIL_ADDRESS=
+MY_NAME=
+MY_BLOG_TITLE=
+MY_BLOG_SUBTITLE=
+FULLBLOG_DOMAIN_NAME=
+MICROBLOG_DOMAIN_NAME=
+REDMATRIX_DOMAIN_NAME=
+OWNCLOUD_DOMAIN_NAME=
+WIKI_DOMAIN_NAME=
+WIKI_TITLE=
+ENABLE_CJDNS=no
+LOCAL_NETWORK_STATIC_IP_ADDRESS=
+ROUTER_IP_ADDRESS=
+
+
+ +

+Both of the IP addresses are local IP addresses, typically of the form 192.168.x.x, with one being for the system and the other being for the internet router. +

+ +

+Save the configuration file and exit from your editor. +

+ +

+Now you can begin the installation. If you are doing this on a Beaglebone Black: +

+ +
+ +
freedombone --bbb -d [default domain name] -u [username] --ddns [dynamic DNS provider domain] --ddnsuser [dynamic DNS username] --ddnspass [dynamic DNS password]
+
+
+ +

+Or on any other system don't include the –bbb option. +

+ +
+ +
freedombone -d [default domain name] -u [username] --ddns [dynamic DNS provider domain] --ddnsuser [dynamic DNS username] --ddnspass [dynamic DNS password]
+
+
+ +

+The above command should be run in the same directory in which your configuration file exists. You can use any of your domains as the default one, but typically the default domain is the same as the one for your wiki. +

+ +

+Also see the manpage for additional options which can be used instead of a configuration file. If you don't specify a variant type with the final option then everything will be installed. If you have a freedombone.cfg file then it should be in the same directory from which the freedombone command is run. +

+
+
+ +
+

Post-Setup

+
+

+Setup of the server and installation of all the relevant packages is not quick, and depends upon which variant you choose and your internet bandwidth. Allow about three hours for a full installation on the Beaglebone Black. On the Beaglebone installation is in two parts, since a reboot is needed to enable the hardware random number generator and zram. +

+ +

+When done you can ssh into the Freedombone with: +

+ +
+ +
ssh username@domain -p 2222
+
+
+ +

+Any manual post-installation setup instructions or passwords can be found in /home/username/README. You should remove any passwords from that file and store them within a password manager such as KeepassX. +

+ +

+On your internet router, typically under firewall settings, open the following ports and forward them to your server. +

+ + + + +++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ServicePorts
HTTP80
HTTPS443
SSH2222
DLNA1900
DLNA8200
XMPP5222..5223
XMPP5269
XMPP5280..5281
IRC6697
IRC9999
Git9418
Email25
Email587
Email465
Email993
VoIP64738
+
+
+ +
+

On Client Machines

+
+

+You can configure laptops or desktop machines which connect to the Freedombone server in the following way. This alters encryption settings to improve overall security. +

+ +
+ +
sudo apt-get update
+sudo apt-get install git dialog haveged build-essential
+git clone https://github.com/bashrc/freedombone
+cd freedombone
+sudo make install
+freedombone-client
+
+
+
+
+
+
+ + + +
+Back to top | E-mail me +
+ + +
+ + diff --git a/website/us/related.html b/website/us/related.html new file mode 100644 index 00000000..b0dc28b2 --- /dev/null +++ b/website/us/related.html @@ -0,0 +1,244 @@ + + + + + + + + + + + + + + + + + + +
+ +
+
+

+
+ +
+

logo.png +

+
+
+ + + + +++ + + + + + +
Home
+ +
+

+The following projects made Freedombone possible. +

+
+ +
+

+nginx.png +openssl.png +

+
+
+

+gnupg.png +debian.png +freedombox.png +beagleboard.png +dokuwiki.png +

+
+
+

+gnusocial.png +redmatrix.png +

+
+
+

+prosody.png +owncloud.png +bettercrypto.png +

+
+
+
+ + + +
+Back to top | E-mail me +
+ + +
+ + diff --git a/website/us/support.html b/website/us/support.html new file mode 100644 index 00000000..cc24dfda --- /dev/null +++ b/website/us/support.html @@ -0,0 +1,256 @@ + + + + + + + + + + + + + + + + + + +
+ +
+
+

+
+ +
+

logo.png +

+
+
+ +

+You can support the Freedombone project with the following banner ads. Download an image and add it to your site or blog with a link to http://freedombone.uk.to/. If you're using AdBlock then you may need to disable it on this page to see the images below. +

+ +
+ +
+

freedombone_ad7.jpg +

+
+
+ +
+ +
+

freedombone_ad1.jpg +

+
+
+ +
+ +
+

freedombone_ad2.jpg +

+
+
+ +
+ +
+

freedombone_ad3.jpg +

+
+
+ +
+ +
+

freedombone_ad4.jpg +

+
+
+ +
+ +
+

freedombone_ad5.jpg +

+
+
+ +
+ +
+

freedombone_ad6.jpg +

+
+
+
+
+ + + +
+Back to top | E-mail me +
+ + +
+ + diff --git a/website/us/usage.html b/website/us/usage.html new file mode 100644 index 00000000..3c809e41 --- /dev/null +++ b/website/us/usage.html @@ -0,0 +1,1323 @@ + + + + + + + + + + + + + + + + + + +
+ +
+
+

+
+ +
+

logo.png +

+
+
+ + + + +++ ++ ++ ++ ++ ++ ++ ++ ++ + + + + + + + + + + + + + +
HomeReadmeUsing EmailMailing ListSyncing to the CloudPlay MusicMicrobloggingSocial NetworkChat Services
+ +
+

Readme

+
+

+After the system has installed a README file will be generated which contains passwords and some brief advice on using the installed systems. You can read this with the following commands: +

+ +
+ +
ssh username@domainname -p 2222
+emacs ~/README
+
+
+ +

+You should transfer any passwords to a password manager such as KeepassX and then delete them from the README file. To save the file after removing passwords use CTRL-x CTRL-s. +

+ +

+To exit you can either just close the terminal or use CTRL-x CTRL-c followed by the exit command. +

+
+
+
+

Improving ssh security

+
+

+To improve ssh security you can generate an ssh key pair on your system and then upload the public key to the Freedombone. +

+ +

+On your local machine: +

+ +
+ +
ssh-keygen
+
+
+ +

+For extra security you may also want to add a passphrase to the ssh private key. You can show the generated public key with: +

+ +
+ +
cat ~/.ssh/id_rsa.pub
+
+
+ +

+Copy the contents of ~/.ssh/id_rsa and ~/.ssh/id_rsa.pub to you password manager, together with the private key password if you created one. +

+ +

+ssh to the Freedombone and edit the authorized keys: +

+ +
+ +
ssh username@domain -p 2222
+emacs ~/.ssh/authorized_keys
+
+
+ +

+Now copy and paste the contents of id_rsa.pub into the authorized_keys file. Save the file and exit. Open another terminal window and try logging in again and you should notice that you are no longer asked for a password, because the ssh key is used instead. +

+ +

+There are advantages and disadvantages to using ssh keys for logins. The advantage is that this is much more secure than a memorised password, but the disadvantage is that you need to carry your ssh keys around and be able to install them on any computer of mobile device that you use. In high security or hostile infosec environments it may not be possible to carry or use USB thumb drives containing your keys and so memorised passwords may be the only available choice. +

+ +

+If you wish to only use ssh keys then log in to the Freedombone and edit /etc/ssh/sshd_config, then change PasswordAuthentication to "no", save and run service ssh restart. Any subsequent attempts to log in via a password will then be denied. +

+
+
+ +
+

Using Email

+
+
+

A technical note about email transport security

+
+

+Port 465 is used for SMTP and this is supposedly deprecated for secure email. However, using TLS from the start of the communications seems far more secure than starting off with insecure communications and then trying to upgrade it with a command to begin TLS, as happens with STARTTLS. There are possible attacks against STARTTLS in which the command to begin secure communications is removed or overwritten which could then result in email being transferred in plain text over the internet and be readable by third parties. +

+
+
+
+

Add a password to your GPG key

+
+

+If you didn't use existing GPG keys during the Freedombone installation then you'll need to add a password to your newly generated private key. This is highly recommended. Go through the following sequence of commands to ssh into the Freedombone and then change your GPG password. +

+ +
+ +
ssh username@domainname -p 2222
+gpg --edit-key username@domain
+passwd
+save
+quit
+exit
+
+
+ +

+Having a password on your GPG key will prevent someone from reading your email even if your server gets lost or stolen or if someone else has physical access to it. Make the password something long and unlikely to be guessable or vulnerable to a brute force dictionary attack. +

+
+
+ +
+

Publishing your GPG public key

+
+

+If you havn't already then you should publish your GPG public key so that others can find it. +

+ +
+ +
ssh username@domainname -p 2222
+gpg --send-keys username@domainname
+exit
+
+
+
+
+
+

Mutt email client

+
+

+Mutt is a terminal based email client which comes already installed onto the Freedombone. To access it you'll need to access it via ssh with: +

+ +
+ +
ssh username@domainname -p 2222
+
+
+ +

+If you're using Windows there is an ssh client called putty, on Linux just open a terminal and enter the above command with your username and domain name. On Android you can use the ConnectBot app with the hostname username@domain:2222 +

+ +

+Once you have logged in via ssh then just type mutt. Like most terminal programs mutt is quite easy once you've learned the main keys. +

+ +

+Some useful keys to know are: +

+ + + + +++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
"/"Search for text within headers
*Move to the last message
TABMove to the next unread message
dDelete a message
uUndelete a mail which is pending deletion
$Delete all messages selected and check for new messages
aAdd to the address book
mSend a new mail
ESC-mMark all messages as having been read
SMark a message as spam
HMark a message as ham
CTRL-bToggle side bar on/off
CTRL-nNext mailbox (on side bar)
CTRL-pPrevious mailbox (on side bar)
CTRL-oOpen mailbox (on side bar)
]Expand or collapse all threads
[Expand of collapse the current thread
CTRL-kImport a PGP/GPG public key
qQuit
+ +

+To use the address book system open an email by pressing the enter key on it and then to add the sender to the address list press the A key. It will ask you for an alias which may be used the next time you want to send a mail. Alternatively you may just edit the ~/.mutt-alias file directly to add email addresses. +

+ +

+One of the most common things which you might wish to do is to send an email. To do this first press m to create a new message. Enter the address to send to and the subject, then after a few seconds the Emacs editor will appear with a blank document. Type your email then press CTRL-x CTRL-s to save it and CTRL-x CTRL-c to exit. You will then see a summary of the email to be sent out. Press y to send it and then enter your GPG key passphrase (the one you gave when creating a PGP/GPG key). The purpose of that is to add a signature which is a strong proof that the email was written by you and not by someone else. +

+ +

+When reading emails you will initially need to enter your GPG password. It will be retained in RAM for a while afterwards. +

+
+
+ +
+

Thunderbird

+
+

+Another common way in which you may want to access email is via Thunderbird. This may be especially useful if you're trying to convert former Windows users who may previously have been using some version of Outlook. +

+ +

+The following instructions should be carried out on the client machines (laptop, etc), not on the BBB itself. +

+
+ +
+

Initial setup

+
+

+Install Thunderbird and Enigmail. How you do this just depends upon your distro and software manager or "app store". +

+ +

+Open Thinderbird +

+ +

+Select "Skip this and use existing email" +

+ +

+Enter your name, email address (myusername@mydomainname.com) and the password for your user (the one from Add a user). +

+ +

+You'll get a message saying "Thunderbird failed to find the settings" +

+ +

+The settings should be as follows, substituting mydomainname.com for your domain name and myusername for the username given previously in Add a user. +

+ +
    +
  • Incoming: IMAP, mydomainname.com, 993, SSL/TLS, Normal Password +
  • +
  • Outgoing: SMTP, mydomainname.com, 465, SSL/TLS, Normal Password +
  • +
  • Username: myusername +
  • +
+ +

+Click Done. +

+ +

+Click Get Certificate and make sure "permanently store this exception" is selected", then click Store Security Exception. +

+ +

+From OpenPGP setup select "Yes, I would like the wizard to get me started". If the wizard doesn't start automatically then "setup wizard" can be selected from OpenPGP on the menu bar. +

+ +

+Select "Yes, I want to sign all of my email" +

+ +

+Select "No, I will create per-recipient rules" +

+ +

+Select "yes" to change default settings. +

+
+
+
+

Import your GPG keys

+
+

+On the Freedombone export your GPG public and private keys. +

+ +
+ +
ssh username@domainname -p 2222
+gpg --list-keys username@domainname
+gpg --output ~/public_key.gpg --armor --export KEY_ID
+gpg --output ~/private_key.gpg --armor --export-secret-key KEY_ID
+
+
+ +

+On your laptop or desktop you can import the keys with: +

+ +
+ +
scp -P 2222 username@domain:/home/username/*.gpg ~/
+
+
+ +

+Select "I have existing public and private keys". +

+ +

+Select your public and private GPG exported key files. +

+ +

+Select the account which you want to use and click Next, Next and Finish. +

+ +

+Remove your exported key files, both on your laptop/desktop and also on the Freedombone. +

+ +
+ +
shred -zu ~/public_key.gpg
+shred -zu ~/private_key.gpg
+
+
+
+
+ +
+

Using for the first time

+
+

+Click on the Thunderbird menu, which looks like three horizontal bars on the right hand side. +

+ +

+Hover over preferences and then Account settings. +

+ +

+Select OpenPGP Security and make sure that use PGP/MIME by default is ticked. This will enable you to sign/encrypt attachments, HTML bodies and UTF-8 without any problems. +

+ +

+Select Synchronization & Storage. +

+ +

+Make sure that Keep messages for this account on this computer is unticked, then click Ok. +

+ +

+Click on Inbox. Depending upon how much email you have it may take a while to import the subject lines. +

+ +

+Note that when sending an email for the first time you will also need to accept the SSL certificate. +

+ +

+Get into the habit of using email encryption and encourage others to do so. Remember that you may not think that your emails are very interesting but the Surveillance State is highly interested in them and will be actively trying to data mine your private life looking for "suspicious" patterns, regardless of whether you are guilty of any crime or not. +

+
+
+ +
+

Making folders visible

+
+

+By default you won't be able to see any folders which you may have created earlier using the mailinglistrule script. To make folders visible select: +

+ +

+Menu, hover over Preferences, select Account Settings, select Server Settings then click on the Advanced button. +

+ +

+Make sure that "show only subscribed folders" is not checked. Then click the ok buttons. Folders will be re-scanned, which may take some time depending upon how much email you have, but your folders will then appear. +

+
+
+
+ +
+

K9 Android client

+
+

+NOTE: Currently the K9 email client will not work with the Freedombone since it doesn't support PGP/MIME encoding. However, there is development work taking place on that feature and it is hoped that K9 may be usable in the near future. +

+
+ +
+

Incoming server settings

+
+
    +
  • Select settings/account settings +
  • +
  • Select Fetching mail/incoming server +
  • +
  • Enter your username and password +
  • +
  • IMAP server should be your domain name +
  • +
  • Security: SSL/TLS (always) +
  • +
  • Authentication: Plain +
  • +
  • Port: 993 +
  • +
+
+
+
+

Outgoing (SMTP) server settings

+
+
    +
  • Select settings/account settings +
  • +
  • Select Sending mail/outgoing server +
  • +
  • Set SMTP server to your domain name +
  • +
  • Set Security to SSL/TLS (always) +
  • +
  • Set port to 465 +
  • +
  • Set authentication to PLAIN +
  • +
  • Enter your username and password +
  • +
  • Accept the SSL certificate +
  • +
+
+
+
+

Folders

+
+

+To view any new folders which you may have created using the mailinglistrule script from your inbox press the K9 icon at the top left to access folders, then press the menu button and select refresh folder list. +

+ +

+If your folder still doesn't show up then press the menu button, select show folders and select all folders. +

+
+
+
+ +
+

Subscribing to mailing lists

+
+

+To subscribe to a mailing list so that it appears within Mutt or Thunderbird. +

+ +
+ +
ssh username@domainname -p 2222
+addmailinglist <username> <mailinglistname> <subjecttag>
+exit
+
+
+ +

+The subject tag should be the word or phrase which appears within the brackets in the subject line of emails from the mailing list. The mailing list name should be something short so that it is readable within the left side column of the mutt email client. +

+
+
+
+

Adding email addresses to a group/folder

+
+

+Similar to adding mailing list folders you can also add specified email addresses into a folder. +

+ +
+ +
ssh username@domainname -p 2222
+addemailtofolder <username> <emailaddress> <mailinglistname>
+exit
+
+
+ +

+The mailing list name should be something short so that it is readable within the left side column of the mutt email client. +

+
+
+
+ +
+

Mailing List

+
+

+If you want to set up a public mailing list then when installing the system remember to set the PUBLIC_MAILING_LIST variable within freedombone.cfg to the name of your list. The name should have no spaces in it. Public mailing lists are unencrypted so anyone will be able to read the contents, including non subscribers. +

+ +

+To subscribe to your list send a cleartext email to: +

+ +
+ +
mymailinglistname+subscribe@domainname
+
+
+ +

+Tip: When using the Mutt email client if you want to send an email in cleartext then press p (for PGP) on the sending screen and select clear. Unsecure email is treated as being the exception rather than the default. +

+
+
+
+

Syncing to the Cloud

+
+
+

Initial install

+
+

+Within a browser go to your owncloud domain, then create an administrator account. The username and password can be anything, and ideally should be generated from a password manager. +

+ +

+You will also need to enter database details: +

+ + + + +++ ++ + + + + + + + + + + + + + + + + +
Owncloud database userowncloudadmin
Owncloud database passwordSee the Readme file
Owncloud database nameowncloud
+ +

+After creating an administrator account then create a user account via the Users dropdown menu entry on the right hand side and log the details in a password manager. Give the user a quota suitable for the size of your microSD card or other storage. +

+ +

+Log out from the administrator account and then log back in as the user you just created. +

+
+
+
+

On Android

+
+

+Within F-droid search for owncloud and install the client. Also install CalDAV Sync Adapter. +

+ +

+Open the owncloud app and enter your owncloud domain name (including the https prefix) and login details for the user you created. +

+ +

+Open the calendar app and under settings add a CalDav account with the url: +

+ +
+ +
https://myownclouddomain/remote.php/caldav/principals/myowncloudusername
+
+
+ +

+You will also be prompted to enter login details. Your Android and Owncloud calendars should now be synchronised. +

+
+
+
+

On Linux

+
+

+Open your software center and search for "owncloud client". Enter your owncloud domain name (with the https prefix) and login details. +

+ +

+You can now drag files into the ~/owncloud directory and they will automatically sync to your server. It's that easy. +

+
+
+
+
+

Play Music

+
+
+

With the DLNA service

+
+

+An easy way to play music on any mobile device in your home is to use the DLNA service. Copy your music into a directory called "Music" on a USB thumb drive and then insert it into from socket on the Beaglebone. +

+ +

+ssh into the system with: +

+ +
+ +
ssh myusername@mydomain.com -p 2222
+
+
+ +

+Then mount the USB drive with: +

+ +
+ +
su
+attach-music
+
+
+ +

+The system will scan the Music directory, which could take a while if there are thousands of files, but you don't need to do anything further with the Beaglebone other than perhaps to log out by typing exit a couple of times. +

+ +

+If you have an Android device then go to F-Droid (if you don't already have it installed then it can be downloaded here) and search for ControlDLNA. On running the app you should see a red Debian icon which you can press on, then you may need to select "local". After a few seconds the list of albums or tracks should then appear and you can browse and play them. +

+ +

+The DLNA service will only work within your local home network, and isn't remotely accessible from other locations via the internet. That can be both a good and a bad thing. Another consideration is that there are no access controls on DLNA services, so any music or videos on the USB drive will be playable by anyone within your home network. If you need to restrict access to certain files then it may be better to use the music player within Owncloud. +

+
+
+ +
+

With Owncloud

+
+

+The main advantage of playing music via Owncloud is that you can do that from anywhere - not only within your home network. +

+ +

+By default a music player is installed into Owncloud, so all you need to do is to visit your Owncloud web site, select the music directory and then upload some music files. Afterwards you can select the music icon from the top left drop down menu and albums will then appear which can be played. If you want to share music with other users then you can select the share option from within the files view to make the tracks available. +

+
+
+
+ +
+

Microblogging

+
+
+

Initial configuration

+
+

+To set up your microblog go to: +

+ +
+ +
https://yourmicroblogdomainname/install.php
+
+
+ +

+and enter the following settings: +

+ + + + +++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Server SSLenable
Hostnamelocalhost
TypeMySql/MariaDB
Namegnusocial
DB usernameroot
DB PasswordSee the MariaDB password in the Readme file
Administrator nicknameYour username
Administrator passwordSee the Readme file
Subscribe to announcementsticked
Site profileCommunity
+ +

+When the install is complete you will see a lot of warnings but just ignore those and navigate to your microblog domain and you can then complete the configuration via the Admin section on the header bar. Some recommended admin settings are: +

+ + + + +++ ++ + + + + + + + + + + + + + + + + +
Site settingsText limit 140, Dupe Limit 60000
User settingsBio limit 1000
Access settingsInvite only ticked
+
+
+
+
+

Social Network

+
+
+

Certificates

+
+

+You will need to have a non self-signed SSL certificate in order to use Red Matrix. Put the public certificate in /etc/ssl/certs/yourredmatrixdomainname.crt and the private certificate in /etc/ssl/private/yourredmatrixdomainname.key. If there is an intermediate certificate needed (such as with StartSSL) then this will need to be concatenated onto the end of the crt file, like this: +

+ +
+ +
cat /etc/ssl/certs/yourredmatrixdomainname.crt /etc/ssl/chains/startssl-sub.class1.server.ca.pem >
+ /etc/ssl/certs/yourredmatrixdomainname.bundle.crt
+
+
+ +

+Then change ssl_certificate to /etc/ssl/certs/yourredmatrixdomainname.bundle.crt within /etc/nginx/sites-available/yourredmatrixdomainname +

+
+
+
+

Initial install

+
+

+Visit the URL of your Red Matrix site and you should be taken through the rest of the installation procedure. Note that this may take a few minutes so don't be concerned if it looks as if it has crashed - just leave it running. +

+ +

+When installation is complete you can register a new user. +

+
+
+
+
+

Chat Services

+
+
+

IRC

+
+

+IRC is useful for multi-user chat. The classic use case is for software development where many engineers might need to coordinate their activities, but it's also useful for meetings, parties and general socialising. +

+
+
+

Irssi

+
+

+If you are using the irssi IRC client then you can use the following commands to connect to your IRC server. +

+ +
+ +
/server add -auto -ssl yourdomainname 6697
+/connect yourdomainname
+/join freedombone
+
+
+
+
+
+

XChat

+
+

+If you are using the XChat client: +

+ +

+Within the network list click, Add and enter your domain name then click Edit. +

+ +

+Select the entry within the servers box, then enter mydomainname/6697 and press Enter. +

+ +

+Uncheck use global user information. +

+ +

+Enter first and second nicknames and check auto connect to this network on startup. +

+ +

+Check use SSL and accept invalid SSL certificate. +

+ +

+Enter #freedombone as the channel name. +

+ +

+Click close and then connect. +

+
+
+
+ +
+

XMPP/Jabber

+
+
+

Managing users

+
+

+To add a user: +

+ +
+ +
ssh username@domainname -p 2222
+su
+prosodyctl adduser newusername@newdomainname
+exit
+exit
+
+
+ +

+To change a user password: +

+ +
+ +
ssh username@domainname -p 2222
+su
+prosodyctl passwd username@domainname
+exit
+exit
+
+
+ +

+To remove a user: +

+ +
+ +
ssh username@domainname -p 2222
+su
+prosodyctl deluser username@domainname.com
+exit
+exit
+
+
+ +

+Report the status of the XMPP server: +

+ +
+ +
ssh username@domainname -p 2222
+su
+prosodyctl status
+exit
+exit
+
+
+
+
+ +
+

Using with Jitsi

+
+

+Jitsi is the recommended communications client for desktop or laptop systems, since it includes the off the record (OTR) feature which provides some additional security beyond the usual SSL certificates. +

+ +

+Jitsi can be downloaded from https://jitsi.org/ +

+ +

+On your desktop/laptop open Jitsi and select Options from the Tools menu. +

+ +

+Click Add to add a new user, then enter the Jabber ID which you previously specified with prosodyctl when setting up the XMPP server. Close and then you should notice that your status is "Online" (or if not then you should be able to set it to online). +

+ +

+From the File menu you can add contacts, then select the chat icon to begin a chat. Click on the lock icon on the right hand side and this will initiate an authentication procedure in which you can specify a question and answer to verify the identity of the person you're communicating with. Once authentication is complete then you'll be chating using OTR, which provides an additional layer of security. +

+ +

+When opening Jitsi initially you will get a certificate warning for your domain name (assuming that you're using a self-signed certificate). If this happens then select View Certificate and enable the checkbox to trust the certificate, then select Continue Anyway. Once you've done this then the certificate warning will not appear again unless you reinstall Jitsi or use a different computer. +

+ +

+You can also see this video as an example of using OTR. +

+
+
+
+

Using with Ubuntu

+
+

+The default XMPP client in Ubuntu is Empathy. Using Empathy isn't as secure as using Jitsi, since it doesn't include the off the record feature, but since it's the default it's what many users will have easy access to. +

+ +

+Open System Settings and select Online Accounts, Add account and then Jabber. +

+ +

+Enter your username (username@domainname) and password. +

+ +

+Click on Advanced and make sure that Encryption required and Ignore SSL certificate errors are checked. Ignoring the certificate errors will allow you to use the self-signed certificate created earlier. Then click Done and set your Jabber account and Empathy to On. +

+
+
+
+

Using with Android

+
+

+Install F-Droid +

+ +

+Search for and install Xabber. +

+ +

+Add an account and enter your Jabber/XMPP ID and password. +

+ +

+From the menu select Settings then Security then OTR mode. Set the mode to Required. +

+ +

+Make sure that Check server certificate is not checked. +

+ +

+Go back to the initial screen and then using the menu you can add contacts and begin chatting. Both parties will need to go through the off-the-record question and answer verification before the chat can begin, but that only needs to be done once for each person you're chatting with. +

+
+
+
+
+
+
+ + + +
+Back to top | E-mail me +
+ + +
+ + diff --git a/website/us/variants.html b/website/us/variants.html new file mode 100644 index 00000000..54dd7685 --- /dev/null +++ b/website/us/variants.html @@ -0,0 +1,259 @@ + + + + + + + + + + + + + + + + + + +
+ +
+
+

+
+ +
+

logo.png +

+
+
+ + + + +++ + + + + + +
Home
+ +

+Freedombone may be installed either in its entirety or as different variants with a more specialised purpose. So for example if you just want to run a blog but don't care about any other services then you can do that. The following variants are available: +

+ + + + +++ ++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MailboxAn email server with GPG encryption and mailing list
CloudShare files, maintain a calendar and collaborate on document editing
SocialSocial networking with Red Matrix and GNU Social
MediaRuns media services such as DLNA to play music or videos on your devices
WriterHost your blog and wiki
ChatEncrypted IRC and XMPP services for one-to-one and many-to-many chat
NonmailboxInstalls eveything except for the email server
+
+
+ + + +
+Back to top | E-mail me +
+ + +
+ + diff --git a/website/uy/.gitignore b/website/uy/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/uz/.gitignore b/website/uz/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/va/.gitignore b/website/va/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/vc/.gitignore b/website/vc/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ve/.gitignore b/website/ve/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/vg/.gitignore b/website/vg/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/vi/.gitignore b/website/vi/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/vn/.gitignore b/website/vn/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/vu/.gitignore b/website/vu/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/wf/.gitignore b/website/wf/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ws/.gitignore b/website/ws/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/ye/.gitignore b/website/ye/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/yt/.gitignore b/website/yt/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/za/.gitignore b/website/za/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/zm/.gitignore b/website/zm/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/website/zw/.gitignore b/website/zw/.gitignore new file mode 100644 index 00000000..e69de29b