diff --git a/doc/EN/installation.org b/doc/EN/installation.org index fc0a1d8f..3fca1d84 100644 --- a/doc/EN/installation.org +++ b/doc/EN/installation.org @@ -108,6 +108,7 @@ Currently the following boards are supported: * [[https://beagleboard.org/BLACK][Beaglebone Black]] * [[https://linux-sunxi.org/Cubietech_Cubieboard2][Cubieboard 2]] * [[https://linux-sunxi.org/Cubietruck][Cubietruck (Cubieboard 3)]] + * [[https://www.sparkfun.com/products/retired/12856][PCDuino3]] * [[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME/open-source-hardware][olinuxino Lime]] * [[https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware][olinuxino Lime2]] * [[https://www.olimex.com/Products/OlinuXino/A20/A20-OlinuXino-MICRO/open-source-hardware][olinuxino Micro]] diff --git a/man/freedombone-image.1.gz b/man/freedombone-image.1.gz index fe9ffc89..6c8eab94 100644 Binary files a/man/freedombone-image.1.gz and b/man/freedombone-image.1.gz differ diff --git a/man/freedombone.1.gz b/man/freedombone.1.gz index 44c9acc8..db0c9bbb 100644 Binary files a/man/freedombone.1.gz and b/man/freedombone.1.gz differ diff --git a/src/freedombone-app-matrix b/src/freedombone-app-matrix index 27a35f4f..98323187 100755 --- a/src/freedombone-app-matrix +++ b/src/freedombone-app-matrix @@ -51,7 +51,7 @@ MATRIX_PORT=8009 MATRIX_FEDERATION_ONION_PORT=8111 MATRIX_ONION_PORT=8109 MATRIX_REPO="https://github.com/matrix-org/synapse" -MATRIX_COMMIT='c45dc6c62aa2a2e83a10d8116a709dfd8c144e3c' +MATRIX_COMMIT='77ea8cbdd7202d75538623c79b3d33119221d02b' REPORT_STATS="no" MATRIX_SECRET= MATRIX_EXPIRE_MONTHS=1 diff --git a/src/freedombone-app-riot b/src/freedombone-app-riot index 9a6a9969..0c7139d1 100755 --- a/src/freedombone-app-riot +++ b/src/freedombone-app-riot @@ -33,9 +33,9 @@ VARIANTS='full full-vim chat' IN_DEFAULT_INSTALL=0 SHOW_ON_ABOUT=1 -RIOT_VERSION='0.12.1' +RIOT_VERSION='0.12.2' RIOT_FILENAME="riot-v${RIOT_VERSION}" -RIOT_HASH='f6fc2df335af2abcf9fa1329819d20b4d1a0fc8a94a8f087b5f09941f2d5c44a' +RIOT_HASH='d0de730cb3e688040ba5c23680a676dabc94386830582842a4728767ed6dcd7f' RIOT_DOWNLOAD_URL="https://github.com/vector-im/riot-web/releases/download/v${RIOT_VERSION}" RIOT_ONION_PORT=8115 RIOT_ONION_HOSTNAME= @@ -251,15 +251,15 @@ function install_riot { if [[ $ONION_ONLY == 'no' ]]; then sed -i "s|\"default_hs_url\":.*|\"default_hs_url\": \"https://${MATRIX_DOMAIN_NAME}\",|g" config.json sed -i "s|\"default_is_url\":.*|\"default_is_url\": \"https://${MATRIX_DOMAIN_NAME}\",|g" config.json - sed -i "s|\"integrations_ui_url\":.*|\"integrations_ui_url\": \"https://${MATRIX_DOMAIN_NAME}/\",|g" config.json - sed -i "s|\"integrations_rest_url\":.*|\"integrations_rest_url\": \"https://${MATRIX_DOMAIN_NAME}/api\",|g" config.json + sed -i "s|\"integrations_ui_url\":.*|\"integrations_ui_url\": \"\",|g" config.json + sed -i "s|\"integrations_rest_url\":.*|\"integrations_rest_url\": \"\",|g" config.json sed -i "s|\"bug_report_endpoint_url\":.*|\"bug_report_endpoint_url\": \"https://${MATRIX_DOMAIN_NAME}/bugs\",|g" config.json sed -i "/\"servers\":/a \"${MATRIX_DOMAIN_NAME}\"," config.json else sed -i "s|\"default_hs_url\":.*|\"default_hs_url\": \"http://${MATRIX_ONION_DOMAIN_NAME}\",|g" config.json sed -i "s|\"default_is_url\":.*|\"default_is_url\": \"http://${MATRIX_ONION_DOMAIN_NAME}\",|g" config.json - sed -i "s|\"integrations_ui_url\":.*|\"integrations_ui_url\": \"http://${MATRIX_ONION_DOMAIN_NAME}/\",|g" config.json - sed -i "s|\"integrations_rest_url\":.*|\"integrations_rest_url\": \"http://${MATRIX_ONION_DOMAIN_NAME}/api\",|g" config.json + sed -i "s|\"integrations_ui_url\":.*|\"integrations_ui_url\": \"\",|g" config.json + sed -i "s|\"integrations_rest_url\":.*|\"integrations_rest_url\": \"\",|g" config.json sed -i "s|\"bug_report_endpoint_url\":.*|\"bug_report_endpoint_url\": \"http://${MATRIX_ONION_DOMAIN_NAME}/bugs\",|g" config.json sed -i "/\"servers\":/a \"${MATRIX_ONION_DOMAIN_NAME}\"," config.json fi diff --git a/src/freedombone-controlpanel b/src/freedombone-controlpanel index 6e87f0b0..8be2d32a 100755 --- a/src/freedombone-controlpanel +++ b/src/freedombone-controlpanel @@ -1352,6 +1352,14 @@ function reset_tripwire { ' | reset-tripwire echo '' + + # Sometimes nginx fails to restart if matrix is installed + # Restart matrix first + if [ -d /etc/matrix ]; then + systemctl restart matrix + systemctl restart nginx + fi + if [ -f /var/lib/tripwire/${HOSTNAME}.twd ]; then show_tripwire_verification_code echo $'Tripwire is now reset. Take a note of the above hash, or record' diff --git a/src/freedombone-image-customise b/src/freedombone-image-customise index ed9363aa..10d12a1f 100755 --- a/src/freedombone-image-customise +++ b/src/freedombone-image-customise @@ -1230,16 +1230,16 @@ function image_preinstall_repos { if [[ $SOCIALINSTANCE == "gnusocial" ]]; then git clone $GNUSOCIAL_REPO $rootdir/repos/gnusocial git clone $GNUSOCIAL_MARKDOWN_REPO $rootdir/repos/gnusocial-markdown - git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter + #git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter git clone $PLEROMA_REPO $rootdir/repos/pleroma return fi if [[ $SOCIALINSTANCE == "postactiv" ]]; then git clone $GNUSOCIAL_MARKDOWN_REPO $rootdir/repos/gnusocial-markdown - git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter + #git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter git clone $PLEROMA_REPO $rootdir/repos/pleroma - git clone $POSTACTIV_REPO $rootdir/repos/postactiv + #git clone $POSTACTIV_REPO $rootdir/repos/postactiv return fi @@ -1249,9 +1249,9 @@ function image_preinstall_repos { git clone $FRIENDICA_REPO $rootdir/repos/friendica git clone $GNUSOCIAL_REPO $rootdir/repos/gnusocial git clone $GNUSOCIAL_MARKDOWN_REPO $rootdir/repos/gnusocial-markdown - git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter + #git clone $QVITTER_THEME_REPO $rootdir/repos/qvitter git clone $PLEROMA_REPO $rootdir/repos/pleroma - git clone $POSTACTIV_REPO $rootdir/repos/postactiv + #git clone $POSTACTIV_REPO $rootdir/repos/postactiv git clone $SHARINGS_REPO $rootdir/repos/sharings git clone $HTMLY_REPO $rootdir/repos/htmly git clone $HUBZILLA_REPO $rootdir/repos/hubzilla diff --git a/src/freedombone-image-hardware-setup b/src/freedombone-image-hardware-setup index 41b52faa..abd840e2 100755 --- a/src/freedombone-image-hardware-setup +++ b/src/freedombone-image-hardware-setup @@ -224,6 +224,25 @@ EOF echo "rtc_sunxi" >> /etc/initramfs-tools/modules } + +setup_flash_kernel() { + if [ ! -d /etc/flash-kernel ] ; then + mkdir /etc/flash-kernel + fi + echo -n "$1" > /etc/flash-kernel/machine + + command_line="" + if [ -n "$2" ] ; then + command_line="console=$2" + fi + + if [ -n "$command_line" ] ; then + echo flash-kernel flash-kernel/linux_cmdline string "$command_line" | debconf-set-selections + fi + + apt-get install -y flash-kernel +} + case "$MACHINE" in beaglebone) beaglebone_setup_boot @@ -257,4 +276,8 @@ case "$MACHINE" in a20_setup_boot sun7i-a20-cubieboard2.dtb enable_serial_console ttyS0 ;; + pcduino3) + a20_setup_boot sun7i-a20-pcduino3.dtb + enable_serial_console ttyS0 + ;; esac diff --git a/src/freedombone-image-make b/src/freedombone-image-make index a48f87e3..3eac755c 100755 --- a/src/freedombone-image-make +++ b/src/freedombone-image-make @@ -132,7 +132,7 @@ case "$MACHINE" in --roottype btrfs \ " ;; - cubietruck | a20-olinuxino-lime | a20-olinuxino-lime2 | a20-olinuxino-micro | cubieboard2) + cubietruck | a20-olinuxino-lime | a20-olinuxino-lime2 | a20-olinuxino-micro | cubieboard2 | pcduino3) extra_pkgs="$a20_pkgs" extra_opts="\ --variant minbase \ diff --git a/src/freedombone-image-makefile b/src/freedombone-image-makefile index 2a05969b..a8cbe02b 100755 --- a/src/freedombone-image-makefile +++ b/src/freedombone-image-makefile @@ -119,6 +119,17 @@ cubieboard2: prep $(SIGN) @echo "Build complete." +# build PCDuino3 SD card image +pcduino3: prep + $(eval ARCHITECTURE = armhf) + $(eval MACHINE = pcduino3) + $(MAKE_IMAGE) + @rm -f $(ARCHIVE) + $(XZ) $(IMAGE) + @echo "" + $(SIGN) + @echo "Build complete." + # build CubieTruck SD card image cubietruck: prep $(eval ARCHITECTURE = armhf) diff --git a/website/EN/installation.html b/website/EN/installation.html index 0dc1d06a..0db8eb6b 100644 --- a/website/EN/installation.html +++ b/website/EN/installation.html @@ -3,7 +3,7 @@ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> - + @@ -256,11 +256,11 @@ for the JavaScript code in this tag. -Building an image for a Single Board Computer or Virtual Machine +Building an image for a Single Board Computer or Virtual Machine -Checklist +Checklist @@ -268,34 +268,34 @@ for the JavaScript code in this tag. -Installation +Installation -Social Key Management - the 'Unforgettable Key' +Social Key Management - the 'Unforgettable Key' -Final Setup +Final Setup -Keydrives +Keydrives -On Client Machines +On Client Machines -Administering the system +Administering the system -
-

Building an image for a Single Board Computer or Virtual Machine

-
+
+

Building an image for a Single Board Computer or Virtual Machine

+

You don't have to trust images downloaded from random internet locations signed with untrusted keys. You can build one from scratch yourself, and this is the recommended procedure for maximum security. For guidance on how to build images see the manpage for the freedombone-image command.

@@ -373,9 +373,9 @@ If the image build fails with an error such as "Error reading from server. Re
-
-

Checklist

-
+
+

Checklist

+

Before installing Freedombone you will need a few things.

@@ -389,17 +389,17 @@ Before installing Freedombone you will need a few things.
-
-

Installation

-
+
+

Installation

+

There are three install options: Laptop/Desktop/Netbook, SBC and Virtual Machine.

-
-

On a Laptop, Netbook or Desktop machine

-
+
+

On a Laptop, Netbook or Desktop machine

+

If you have an existing system, such as an old laptop or netbook which you can leave running as a server, then install a new version of Debian Stretch onto it. During the Debian install you won't need the print server or the desktop environment, and unchecking those will reduce the attack surface. Once Debian enter the following commands:

@@ -418,9 +418,9 @@ freedombone menuconfig
-
-

On a single board computer (SBC)

-
+
+

On a single board computer (SBC)

+

Currently the following boards are supported:

@@ -429,6 +429,7 @@ Currently the following boards are supported:
  • Beaglebone Black
  • Cubieboard 2
  • Cubietruck (Cubieboard 3)
  • +
  • PCDuino3
  • olinuxino Lime
  • olinuxino Lime2
  • olinuxino Micro
  • @@ -498,9 +499,9 @@ Using the password 'freedombone'. Take a note of the new login password and then
    -
    -

    As a Virtual Machine

    -
    +
    +

    As a Virtual Machine

    +

    Qemu is currently supported, since it's s fully free software system. You can run a 64 bit Qemu image with:

    @@ -517,42 +518,42 @@ The default login will be username 'fbone' and password 'freedombone'. Take a no
    -
    -

    Social Key Management - the 'Unforgettable Key'

    -
    +
    +

    Social Key Management - the 'Unforgettable Key'

    +

    During the install procedure you will be asked if you wish to import GPG keys. If you don't already possess GPG keys then just select "Ok" and they will be generated during the install. If you do already have GPG keys then there are a few possibilities

    -
    -

    You have the gnupg keyring on an encrypted USB drive

    -
    +
    +

    You have the gnupg keyring on an encrypted USB drive

    +

    If you previously made a master keydrive containing the full keyring (the .gnupg directory). This is the most straightforward case, but not as secure as splitting the key into fragments.

    -
    -

    You have a number of key fragments on USB drives retrieved from friends

    -
    +
    +

    You have a number of key fragments on USB drives retrieved from friends

    +

    -If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more Keydrives. +If you previously made some USB drives containing key fragments then retrieve them from your friends and plug them in one after the other. After the last drive has been read then remove it and just select "Ok". The system will then try to reconstruct the key. For this to work you will need to have previously made three or more Keydrives.

    -
    -

    You can specify some ssh login details for friends servers containing key fragments

    -
    +
    +

    You can specify some ssh login details for friends servers containing key fragments

    +

    Enter three or more sets of login details and the installer will try to retrieve key fragments and then assemble them into the full key. This only works if you previously were using remote backups and had social key management enabled.

    -
    -

    Final Setup

    -
    +
    +

    Final Setup

    +

    Any manual post-installation setup instructions or passwords can be found in /home/username/README.

    @@ -670,16 +671,16 @@ On your internet router, typically under firewall settings, open the following p
    -
    -

    Keydrives

    -
    +
    +

    Keydrives

    +

    After installing for the first time it's a good idea to create some keydrives. These will store your gpg key so that if all else fails you will still be able to restore from backup. There are two ways to do this:

    -
    -

    Master Keydrive

    -
    +
    +

    Master Keydrive

    +

    This is the traditional security model in which you carry your full keyring on an encrypted USB drive. To make a master keydrive first format a USB drive as a LUKS encrypted drive. In Ubuntu this can be done from the Disk Utility application. Then plug it into the Freedombone system, then from your local machine run:

    @@ -694,9 +695,9 @@ Select Administrator controls then Backup and Restore then Back

    -
    -

    Fragment keydrives

    -
    +
    +

    Fragment keydrives

    +

    This breaks your GPG key into a number of fragments and randomly selects one to add to the USB drive. First format a USB drive as a LUKS encrypted drive. In Ubuntu this can be done from the Disk Utility application. Plug it into the Freedombone system then from your local machine run the following commands:

    @@ -716,9 +717,9 @@ Fragments are randomly assigned and so you will need at least three or four keyd
    -
    -

    On Client Machines

    -
    +
    +

    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.

    @@ -736,9 +737,9 @@ freedombone-client
    -
    -

    Administering the system

    -
    +
    +

    Administering the system

    +

    To administer the system after installation log in via ssh, become the root user and then launch the control panel.