<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wiki.erg.be/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Max</id>
	<title>erg - Contributions de l’utilisateur [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.erg.be/mw/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Max"/>
	<link rel="alternate" type="text/html" href="https://wiki.erg.be/w/Sp%C3%A9cial:Contributions/Max"/>
	<updated>2026-05-16T02:46:55Z</updated>
	<subtitle>Contributions de l’utilisateur</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4252</id>
		<title>Etherbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4252"/>
		<updated>2018-01-30T12:21:45Z</updated>

		<summary type="html">&lt;p&gt;Max : /* Install etherpad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These notes are based on a setup used by the &amp;quot;SOftware observatory&amp;quot; workshop, Constant [[Utilisateur:Michael Murtaugh|Michael Murtaugh]] ([[Discussion utilisateur:Michael Murtaugh|discussion]]) 30 janvier 2018 à 10:48 (CET)&lt;br /&gt;
&lt;br /&gt;
= Initial image + setup =&lt;br /&gt;
&lt;br /&gt;
Downloaded from https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
Based on the &amp;quot;lite&amp;quot; image (zip or torrent). As of 20 Jan 2018, this is Raspian &amp;quot;Stretch&amp;quot; lite.&lt;br /&gt;
&lt;br /&gt;
The **lite** image has no desktop / windows session.&lt;br /&gt;
&lt;br /&gt;
Based on [https://downloads.raspberrypi.org/raspbian_lite_latest.torrent 2017-04-10-raspian-jessie-lite.zip]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip -p 2017-04-10-raspbian-jessie-lite.zip | pv | sudo dd of=/dev/sdc bs=4M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could use [https://etcher.io/ Etcher.io] as well&lt;br /&gt;
&lt;br /&gt;
SSH is no longer on by default! So need to connect with a screen first time and turn this on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo raspi-config&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable ssh under connectivity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also enabled SSH by default after creating the boot SD Card, you just need to create a empty file named SSH and save it the root of your SD Card.&lt;br /&gt;
&lt;br /&gt;
Bring the rest of the software up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to find the IP address of the pi ==&lt;br /&gt;
&lt;br /&gt;
Simplest way is to connect on a wired network (plug the pi and your laptop into a router with ethernet cables), then type:&lt;br /&gt;
&lt;br /&gt;
    ping raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
And you should be able to see the IP address.&lt;br /&gt;
&lt;br /&gt;
Then you can conenct with ssh with:&lt;br /&gt;
&lt;br /&gt;
    ssh pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
or with the IP address in place of &amp;quot;raspberrypi.local&amp;quot; if you are on the wifi.&lt;br /&gt;
&lt;br /&gt;
with the default password &amp;quot;raspberry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Make it easier to login, with an ssh key ==&lt;br /&gt;
&lt;br /&gt;
Starting from your laptop (open a new Terminal session if you are connected to the pi):&lt;br /&gt;
&lt;br /&gt;
    ssh-keygen&lt;br /&gt;
&lt;br /&gt;
Choose the defaults. This generates an &amp;quot;ssh key&amp;quot; pair.&lt;br /&gt;
&lt;br /&gt;
Use the ssh-copy-id utility to send it to the pi.&lt;br /&gt;
&lt;br /&gt;
    ssh-copy-id pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
= Setup apache to serve the root with custom header + readme's =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2&lt;br /&gt;
cd /etc/apache2/sites-available&lt;br /&gt;
sudo nano 000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;    ServerAdmin webmaster@localhost&lt;br /&gt;
    # DocumentRoot /var/www/html&lt;br /&gt;
    DocumentRoot /home/pi&lt;br /&gt;
    &amp;lt;Directory /home/pi&amp;gt;&lt;br /&gt;
           Options Indexes FollowSymLinks&lt;br /&gt;
           AllowOverride none&lt;br /&gt;
           Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    HeaderName /include/HEADER.shtml&lt;br /&gt;
    ReadmeName README.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: Sets the [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#headername HeaderName] and [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#readmename ReadmeName] directives (part of mod_autoindex).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== droptoupload.cgi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enmod cgi&lt;br /&gt;
sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Placed 'droptoupload.cgi' in /usr/lib/cgi-bin and tried running it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./droptoupload.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like this is just outputs an HTML form. Looking at http://etherbox.local/cgi-bin/droptoupload.cgi should also display an upload form.&lt;br /&gt;
&lt;br /&gt;
The HEADER.shtml includes a link to this cgi.&lt;br /&gt;
&lt;br /&gt;
   sudo chmod +x droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
= HEADER.shtml =&lt;br /&gt;
Sample Header that adds javascript to:&lt;br /&gt;
* Move the README.html to the TOP of the page&lt;br /&gt;
* Includes the &amp;quot;droptoupload.cgi&amp;quot; https://gitlab.constantvzw.org/aa/etherbox/raw/master/usr/lib/cgi-bin/droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;html&amp;quot;&amp;gt;&amp;amp;lt;script src=&amp;amp;quot;/cgi-bin/droptoupload.cgi&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
background: #38b8e9;&lt;br /&gt;
color: black;&lt;br /&gt;
}&lt;br /&gt;
a {&lt;br /&gt;
color: white;&lt;br /&gt;
}&lt;br /&gt;
#logo {&lt;br /&gt;
white-space: pre;&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
}&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;amp;quot;links&amp;amp;quot; style=&amp;amp;quot;margin-bottom: 1em&amp;amp;quot;&amp;amp;gt;LOCAL:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/&amp;amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;/&amp;amp;amp;nbsp;&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/&amp;amp;quot;&amp;amp;gt;home&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/etherdump/&amp;amp;quot;&amp;amp;gt;etherdump&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
PUBLIC:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;http://constantvzw.org/site/-The-Technogalactic-Software-Observatory-.html&amp;amp;quot;&amp;amp;gt;constant&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;https://gitlab.constantvzw.org/observatory&amp;amp;quot;&amp;amp;gt;gitlab&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
.links {&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
text-transform: uppercase;&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;script&amp;amp;gt;&lt;br /&gt;
document.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;, function () {&lt;br /&gt;
  var p = document.querySelectorAll(&amp;amp;quot;.top&amp;amp;quot;),&lt;br /&gt;
      t = document.getElementsByTagName(&amp;amp;quot;table&amp;amp;quot;)[0];&lt;br /&gt;
  for (var i=0, l=p.length; i&amp;amp;lt;l; i++) {&lt;br /&gt;
    document.body.insertBefore(p[i], t);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Better permissions with facl =&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxcommand.org/man_pages/setfacl1.html setfacl]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo addgroup pi www-data&lt;br /&gt;
&lt;br /&gt;
sudo setfacl -Rm g:www-data:rwX /home/pi&lt;br /&gt;
sudo setfacl -d -Rm g:www-data:rwX /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately, I had problems then with permissions on the .ssh folder (preventing keys to be used). To remove the fact on just this folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod g-w /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Install etherpad =&lt;br /&gt;
&lt;br /&gt;
And the version of &amp;amp;quot;nodejs&amp;amp;quot; is now 0.10.29~dfsg-2. So let's try it with etherpad...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install npm git&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;br /&gt;
&lt;br /&gt;
cd /opt&lt;br /&gt;
sudo git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
sudo mv etherpad-lite etherpad&lt;br /&gt;
&lt;br /&gt;
# TODO: don't create home folder! ... find option&lt;br /&gt;
sudo adduser --system --home=/opt/etherpad --group etherpad&lt;br /&gt;
sudo chown -R etherpad:etherpad etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers se trouvent dans opt/etherpad/var sous forme d'un seul fichier &amp;quot;dirtyDB&amp;quot; - &amp;gt; You should use a dedicated database such as &amp;quot;mysql&amp;quot;, if you are planning on using etherpad-in a production environment.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install mysql-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create your setting file.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp settings.json.template settings.json&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, desactivate the dirty.db file and configure the mysql database&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano settings.json&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Find and change this part :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;  //The Type of the database. You can choose between dirty, postgres, sqlite and mysql&lt;br /&gt;
  //You shouldn't use &amp;quot;dirty&amp;quot; for for anything else than testing or development&lt;br /&gt;
 /* &amp;quot;dbType&amp;quot; : &amp;quot;dirty&amp;quot;,&lt;br /&gt;
  //the database specific settings&lt;br /&gt;
  &amp;quot;dbSettings&amp;quot; : {&lt;br /&gt;
                   &amp;quot;filename&amp;quot; : &amp;quot;var/dirty.db&amp;quot;&lt;br /&gt;
                 },&lt;br /&gt;
*/&lt;br /&gt;
  //An Example of MySQL Configuration&lt;br /&gt;
   &amp;quot;dbType&amp;quot; : &amp;quot;mysql&amp;quot;,&lt;br /&gt;
   &amp;quot;dbSettings&amp;quot; : {&lt;br /&gt;
                    &amp;quot;user&amp;quot;    : &amp;quot;etherpaduser&amp;quot;,&lt;br /&gt;
                    &amp;quot;host&amp;quot;    : &amp;quot;localhost&amp;quot;,&lt;br /&gt;
                    &amp;quot;password&amp;quot;: &amp;quot;etherpadpass&amp;quot;,&lt;br /&gt;
                    &amp;quot;database&amp;quot;: &amp;quot;etherpad&amp;quot;,&lt;br /&gt;
                    &amp;quot;charset&amp;quot; : &amp;quot;utf8mb4&amp;quot;&lt;br /&gt;
                  },&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set up Mysql ==&lt;br /&gt;
&lt;br /&gt;
First thing to do is to install MySQL :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install mysql-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then create the database, for this we need to login with the Root user (super-user) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo su&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run mysql  :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then create the database and the user 'etherpaduser' with the password 'etherpadpass' :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create database etherpad;&lt;br /&gt;
grant all on etherpad.* to 'etherpaduser'@'localhost' identified by 'etherpadpass';&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just to test if it works :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u etherpaduser -p etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run etherpad for the first time as the etherpad user...==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt/etherpad&lt;br /&gt;
sudo --user etherpad bin/run.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Following the first recipe on this page about [https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service deploying etherpad as a systemd service]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/etherpad.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[Unit]&lt;br /&gt;
Description=Etherpad-lite, the collaborative editor.&lt;br /&gt;
After=syslog.target network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=etherpad&lt;br /&gt;
Group=etherpad&lt;br /&gt;
WorkingDirectory=/opt/etherpad&lt;br /&gt;
ExecStart=/usr/bin/nodejs /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
After this,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service etherpad start&amp;lt;/pre&amp;gt;&lt;br /&gt;
Seems to work! Apparently it's the same as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl start etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to start on boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl enable etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= etherdump =&lt;br /&gt;
&lt;br /&gt;
System wide installation of etherdump&lt;br /&gt;
&lt;br /&gt;
Install deps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python-pip python-dev&lt;br /&gt;
sudo pip install python-dateutil jinja2 html5lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install from repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone http://murtaugh@gitlab.constantvzw.org/aa/etherdump.git&lt;br /&gt;
cd etherdump&lt;br /&gt;
sudo python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setup the folder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi&lt;br /&gt;
mkdir etherdump&lt;br /&gt;
cd etherdump&lt;br /&gt;
etherdump init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Type in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://etherbox.local:9001/&amp;lt;/pre&amp;gt;&lt;br /&gt;
And paste the API key. (Look at: http://etherbox.local/opt/etherpad/APIKEY.txt)&lt;br /&gt;
&lt;br /&gt;
=== styles.css + versions.js ===&lt;br /&gt;
&lt;br /&gt;
scp styles.css versions.js pi@etherbox.local:etherdump/lib&lt;br /&gt;
&lt;br /&gt;
The URLs of these files are options to the etherdump pull command and should match.&lt;br /&gt;
&lt;br /&gt;
=== etherdump.sh + cron ===&lt;br /&gt;
&lt;br /&gt;
Make the script that runs automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano etherdump.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
cd /home/pi/etherdump&lt;br /&gt;
etherdump pull --all --pub /home/pi/etherdump --css lib/styles.css --script lib/versions.js&lt;br /&gt;
etherdump index *.meta.json &amp;amp;gt; index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
And set it to run every 5 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
*/5 * * * * /home/pi/etherdump.sh &amp;amp;gt; /home/pi/cron.log.txt 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PATH is important. It can also be in the etherdump.sh but basically should match what you see when you &amp;amp;quot;echo $PATH&amp;amp;quot; (for the script to run in the same way as for the pi user).&lt;br /&gt;
&lt;br /&gt;
= Other software =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install emacs-nox screen pdftk pandoc texlive-latex-recommended texlive-fonts-recommended&lt;br /&gt;
sudo pip install csvkit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
* screen&lt;br /&gt;
* pandoc + latex&lt;br /&gt;
* pdftk&lt;br /&gt;
* csvkit&lt;br /&gt;
&lt;br /&gt;
What about&lt;br /&gt;
&lt;br /&gt;
* texlive-xetex texlive-luatex pandoc-citeproc etoolbox&lt;br /&gt;
&lt;br /&gt;
The current version of pandoc in this raspbian is 1.12.4.2~dfsg-1+b3 We will use latex for PDF generation (via pandoc)&lt;br /&gt;
&lt;br /&gt;
(which is way better than 1.9 of the previous raspian, and even beats the instructions for compiling 1.11.1)&lt;br /&gt;
&lt;br /&gt;
MORE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pandoc texlive-latex-recommended texlive-fonts-recommended &amp;lt;/pre&amp;gt;&lt;br /&gt;
Was able to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pandoc --from markdown hello.markdown -o hello.pdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Access point =&lt;br /&gt;
&lt;br /&gt;
Taken from [https://pzwiki.wdka.nl/mediadesign/The_Ultimate_RPi_Installation_Guide#Access_Point_with_Captive_Portal this &amp;amp;quot;ultimate&amp;amp;quot; guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install dnsmasq wireless-tools hostapd&lt;br /&gt;
&lt;br /&gt;
# the next wasn't necessary for jessie, but for completeness..&lt;br /&gt;
RPI3 broadcom chip &lt;br /&gt;
apt-get install firmware-brcm80211&lt;br /&gt;
rmmod brcmfmac&lt;br /&gt;
modprobe brcmfmac&amp;lt;/pre&amp;gt;&lt;br /&gt;
Give fixed IP to wlan0 interface, edit /etc/network/interfaces switch off the built in stuff and add (section 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;auto eth0&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
iface etho inet dhcp&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
# 1. ORIGINAL settings... use wpa_supplicant for client mode&lt;br /&gt;
#allow-hotplug wlan0&lt;br /&gt;
#iface wlan0 inet manual&lt;br /&gt;
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
#&lt;br /&gt;
#################################&lt;br /&gt;
# 2. Fixed IP address (for hotspot / hostapd)&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet static&lt;br /&gt;
address 10.9.8.7&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
#################################&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace /etc/dnsmasq.conf with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.8.10,50.9.8.254,12h&lt;br /&gt;
address=/#/10.9.8.7&lt;br /&gt;
no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/hostapd/hostapd.conf file (adjust depending on driver/hardware)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
driver=nl80211&lt;br /&gt;
ssid=WiFeels&lt;br /&gt;
hw_mode=g&lt;br /&gt;
channel=6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/default/hostapd and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DAEMON_CONF=&amp;amp;quot;/etc/hostapd/hostapd.conf&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make hostapd start at boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update-rc.d hostapd defaults&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
= Makeserver + etherpad (experimental!) =&lt;br /&gt;
&lt;br /&gt;
Ingredients&lt;br /&gt;
&lt;br /&gt;
* Etherdump's pad.html with &amp;lt;rel&amp;gt; links including LIVE EDIT URLs&lt;br /&gt;
* THIS should replace/complement makeserver's EDIT button&lt;br /&gt;
&lt;br /&gt;
Key question: Makeserver as a separate view ?! (probably)&lt;br /&gt;
&lt;br /&gt;
TRY as 2 separate things ... basically AS IS...&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi/software&lt;br /&gt;
git clone http://murtaugh@gitlab.constantvzw.org/aa/makeserver.git&lt;br /&gt;
cd makeserver&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
sudo pip install twisted jinja2&amp;lt;/pre&amp;gt;&lt;br /&gt;
BUGFIX with twisted / SSL issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip install twisted[tls]&amp;lt;/pre&amp;gt;&lt;br /&gt;
DIDN&amp;amp;quot;T FIX sudo pip install twisted==16.0.0&lt;br /&gt;
&lt;br /&gt;
Seems to work!&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* Why are the links hardcoded long form in etherdump index (fails then via makeserver based in home)?&lt;br /&gt;
&lt;br /&gt;
= Extra =&lt;br /&gt;
&lt;br /&gt;
Changed dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.10.50,10.9.10.254,12h&lt;br /&gt;
#address=/#/10.9.10.7                                                                                                           # no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND added to /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10.9.10.7 etherbox.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
and this seems to then work over the direct hotspot connection.&lt;/div&gt;</summary>
		<author><name>Max</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4251</id>
		<title>Etherbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4251"/>
		<updated>2018-01-30T12:18:44Z</updated>

		<summary type="html">&lt;p&gt;Max : /* Set up Mysql */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These notes are based on a setup used by the &amp;quot;SOftware observatory&amp;quot; workshop, Constant [[Utilisateur:Michael Murtaugh|Michael Murtaugh]] ([[Discussion utilisateur:Michael Murtaugh|discussion]]) 30 janvier 2018 à 10:48 (CET)&lt;br /&gt;
&lt;br /&gt;
= Initial image + setup =&lt;br /&gt;
&lt;br /&gt;
Downloaded from https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
Based on the &amp;quot;lite&amp;quot; image (zip or torrent). As of 20 Jan 2018, this is Raspian &amp;quot;Stretch&amp;quot; lite.&lt;br /&gt;
&lt;br /&gt;
The **lite** image has no desktop / windows session.&lt;br /&gt;
&lt;br /&gt;
Based on [https://downloads.raspberrypi.org/raspbian_lite_latest.torrent 2017-04-10-raspian-jessie-lite.zip]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip -p 2017-04-10-raspbian-jessie-lite.zip | pv | sudo dd of=/dev/sdc bs=4M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could use [https://etcher.io/ Etcher.io] as well&lt;br /&gt;
&lt;br /&gt;
SSH is no longer on by default! So need to connect with a screen first time and turn this on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo raspi-config&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable ssh under connectivity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also enabled SSH by default after creating the boot SD Card, you just need to create a empty file named SSH and save it the root of your SD Card.&lt;br /&gt;
&lt;br /&gt;
Bring the rest of the software up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to find the IP address of the pi ==&lt;br /&gt;
&lt;br /&gt;
Simplest way is to connect on a wired network (plug the pi and your laptop into a router with ethernet cables), then type:&lt;br /&gt;
&lt;br /&gt;
    ping raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
And you should be able to see the IP address.&lt;br /&gt;
&lt;br /&gt;
Then you can conenct with ssh with:&lt;br /&gt;
&lt;br /&gt;
    ssh pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
or with the IP address in place of &amp;quot;raspberrypi.local&amp;quot; if you are on the wifi.&lt;br /&gt;
&lt;br /&gt;
with the default password &amp;quot;raspberry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Make it easier to login, with an ssh key ==&lt;br /&gt;
&lt;br /&gt;
Starting from your laptop (open a new Terminal session if you are connected to the pi):&lt;br /&gt;
&lt;br /&gt;
    ssh-keygen&lt;br /&gt;
&lt;br /&gt;
Choose the defaults. This generates an &amp;quot;ssh key&amp;quot; pair.&lt;br /&gt;
&lt;br /&gt;
Use the ssh-copy-id utility to send it to the pi.&lt;br /&gt;
&lt;br /&gt;
    ssh-copy-id pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
= Setup apache to serve the root with custom header + readme's =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2&lt;br /&gt;
cd /etc/apache2/sites-available&lt;br /&gt;
sudo nano 000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;    ServerAdmin webmaster@localhost&lt;br /&gt;
    # DocumentRoot /var/www/html&lt;br /&gt;
    DocumentRoot /home/pi&lt;br /&gt;
    &amp;lt;Directory /home/pi&amp;gt;&lt;br /&gt;
           Options Indexes FollowSymLinks&lt;br /&gt;
           AllowOverride none&lt;br /&gt;
           Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    HeaderName /include/HEADER.shtml&lt;br /&gt;
    ReadmeName README.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: Sets the [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#headername HeaderName] and [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#readmename ReadmeName] directives (part of mod_autoindex).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== droptoupload.cgi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enmod cgi&lt;br /&gt;
sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Placed 'droptoupload.cgi' in /usr/lib/cgi-bin and tried running it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./droptoupload.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like this is just outputs an HTML form. Looking at http://etherbox.local/cgi-bin/droptoupload.cgi should also display an upload form.&lt;br /&gt;
&lt;br /&gt;
The HEADER.shtml includes a link to this cgi.&lt;br /&gt;
&lt;br /&gt;
   sudo chmod +x droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
= HEADER.shtml =&lt;br /&gt;
Sample Header that adds javascript to:&lt;br /&gt;
* Move the README.html to the TOP of the page&lt;br /&gt;
* Includes the &amp;quot;droptoupload.cgi&amp;quot; https://gitlab.constantvzw.org/aa/etherbox/raw/master/usr/lib/cgi-bin/droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;html&amp;quot;&amp;gt;&amp;amp;lt;script src=&amp;amp;quot;/cgi-bin/droptoupload.cgi&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
background: #38b8e9;&lt;br /&gt;
color: black;&lt;br /&gt;
}&lt;br /&gt;
a {&lt;br /&gt;
color: white;&lt;br /&gt;
}&lt;br /&gt;
#logo {&lt;br /&gt;
white-space: pre;&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
}&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;amp;quot;links&amp;amp;quot; style=&amp;amp;quot;margin-bottom: 1em&amp;amp;quot;&amp;amp;gt;LOCAL:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/&amp;amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;/&amp;amp;amp;nbsp;&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/&amp;amp;quot;&amp;amp;gt;home&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/etherdump/&amp;amp;quot;&amp;amp;gt;etherdump&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
PUBLIC:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;http://constantvzw.org/site/-The-Technogalactic-Software-Observatory-.html&amp;amp;quot;&amp;amp;gt;constant&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;https://gitlab.constantvzw.org/observatory&amp;amp;quot;&amp;amp;gt;gitlab&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
.links {&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
text-transform: uppercase;&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;script&amp;amp;gt;&lt;br /&gt;
document.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;, function () {&lt;br /&gt;
  var p = document.querySelectorAll(&amp;amp;quot;.top&amp;amp;quot;),&lt;br /&gt;
      t = document.getElementsByTagName(&amp;amp;quot;table&amp;amp;quot;)[0];&lt;br /&gt;
  for (var i=0, l=p.length; i&amp;amp;lt;l; i++) {&lt;br /&gt;
    document.body.insertBefore(p[i], t);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Better permissions with facl =&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxcommand.org/man_pages/setfacl1.html setfacl]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo addgroup pi www-data&lt;br /&gt;
&lt;br /&gt;
sudo setfacl -Rm g:www-data:rwX /home/pi&lt;br /&gt;
sudo setfacl -d -Rm g:www-data:rwX /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately, I had problems then with permissions on the .ssh folder (preventing keys to be used). To remove the fact on just this folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod g-w /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Install etherpad =&lt;br /&gt;
&lt;br /&gt;
And the version of &amp;amp;quot;nodejs&amp;amp;quot; is now 0.10.29~dfsg-2. So let's try it with etherpad...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install npm git&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;br /&gt;
&lt;br /&gt;
cd /opt&lt;br /&gt;
sudo git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
sudo mv etherpad-lite etherpad&lt;br /&gt;
&lt;br /&gt;
# TODO: don't create home folder! ... find option&lt;br /&gt;
sudo adduser --system --home=/opt/etherpad --group etherpad&lt;br /&gt;
sudo chown -R etherpad:etherpad etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers se trouvent dans opt/etherpad/var sous forme d'un seul fichier &amp;quot;dirtyDB&amp;quot; - &amp;gt; You should use a dedicated database such as &amp;quot;mysql&amp;quot;, if you are planning on using etherpad-in a production environment.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install mysql-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create your setting file.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp settings.json.template settings.json&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, desactivate the dirty.db file and configure the mysql database&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano settings.json&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Find and change this part :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;  //The Type of the database. You can choose between dirty, postgres, sqlite and mysql&lt;br /&gt;
  //You shouldn't use &amp;quot;dirty&amp;quot; for for anything else than testing or development&lt;br /&gt;
 /* &amp;quot;dbType&amp;quot; : &amp;quot;dirty&amp;quot;,&lt;br /&gt;
  //the database specific settings&lt;br /&gt;
  &amp;quot;dbSettings&amp;quot; : {&lt;br /&gt;
                   &amp;quot;filename&amp;quot; : &amp;quot;var/dirty.db&amp;quot;&lt;br /&gt;
                 },&lt;br /&gt;
*/&lt;br /&gt;
  //An Example of MySQL Configuration&lt;br /&gt;
   &amp;quot;dbType&amp;quot; : &amp;quot;mysql&amp;quot;,&lt;br /&gt;
   &amp;quot;dbSettings&amp;quot; : {&lt;br /&gt;
                    &amp;quot;user&amp;quot;    : &amp;quot;etherpaduser&amp;quot;,&lt;br /&gt;
                    &amp;quot;host&amp;quot;    : &amp;quot;localhost&amp;quot;,&lt;br /&gt;
                    &amp;quot;password&amp;quot;: &amp;quot;etherpadpass&amp;quot;,&lt;br /&gt;
                    &amp;quot;database&amp;quot;: &amp;quot;store&amp;quot;,&lt;br /&gt;
                    &amp;quot;charset&amp;quot; : &amp;quot;utf8mb4&amp;quot;&lt;br /&gt;
                  },&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set up Mysql ==&lt;br /&gt;
&lt;br /&gt;
First thing to do is to install MySQL :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install mysql-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then create the database, for this we need to login with the Root user (super-user) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo su&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run mysql  :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then create the database and the user 'etherpaduser' with the password 'etherpadpass' :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create database etherpad;&lt;br /&gt;
grant all on etherpad.* to 'etherpaduser'@'localhost' identified by 'etherpadpass';&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just to test if it works :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u etherpaduser -p etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Run etherpad for the first time as the etherpad user...==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt/etherpad&lt;br /&gt;
sudo --user etherpad bin/run.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Following the first recipe on this page about [https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service deploying etherpad as a systemd service]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/etherpad.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[Unit]&lt;br /&gt;
Description=Etherpad-lite, the collaborative editor.&lt;br /&gt;
After=syslog.target network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=etherpad&lt;br /&gt;
Group=etherpad&lt;br /&gt;
WorkingDirectory=/opt/etherpad&lt;br /&gt;
ExecStart=/usr/bin/nodejs /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
After this,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service etherpad start&amp;lt;/pre&amp;gt;&lt;br /&gt;
Seems to work! Apparently it's the same as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl start etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to start on boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl enable etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= etherdump =&lt;br /&gt;
&lt;br /&gt;
System wide installation of etherdump&lt;br /&gt;
&lt;br /&gt;
Install deps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python-pip python-dev&lt;br /&gt;
sudo pip install python-dateutil jinja2 html5lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install from repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone http://murtaugh@gitlab.constantvzw.org/aa/etherdump.git&lt;br /&gt;
cd etherdump&lt;br /&gt;
sudo python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setup the folder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi&lt;br /&gt;
mkdir etherdump&lt;br /&gt;
cd etherdump&lt;br /&gt;
etherdump init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Type in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://etherbox.local:9001/&amp;lt;/pre&amp;gt;&lt;br /&gt;
And paste the API key. (Look at: http://etherbox.local/opt/etherpad/APIKEY.txt)&lt;br /&gt;
&lt;br /&gt;
=== styles.css + versions.js ===&lt;br /&gt;
&lt;br /&gt;
scp styles.css versions.js pi@etherbox.local:etherdump/lib&lt;br /&gt;
&lt;br /&gt;
The URLs of these files are options to the etherdump pull command and should match.&lt;br /&gt;
&lt;br /&gt;
=== etherdump.sh + cron ===&lt;br /&gt;
&lt;br /&gt;
Make the script that runs automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano etherdump.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
cd /home/pi/etherdump&lt;br /&gt;
etherdump pull --all --pub /home/pi/etherdump --css lib/styles.css --script lib/versions.js&lt;br /&gt;
etherdump index *.meta.json &amp;amp;gt; index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
And set it to run every 5 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
*/5 * * * * /home/pi/etherdump.sh &amp;amp;gt; /home/pi/cron.log.txt 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PATH is important. It can also be in the etherdump.sh but basically should match what you see when you &amp;amp;quot;echo $PATH&amp;amp;quot; (for the script to run in the same way as for the pi user).&lt;br /&gt;
&lt;br /&gt;
= Other software =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install emacs-nox screen pdftk pandoc texlive-latex-recommended texlive-fonts-recommended&lt;br /&gt;
sudo pip install csvkit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
* screen&lt;br /&gt;
* pandoc + latex&lt;br /&gt;
* pdftk&lt;br /&gt;
* csvkit&lt;br /&gt;
&lt;br /&gt;
What about&lt;br /&gt;
&lt;br /&gt;
* texlive-xetex texlive-luatex pandoc-citeproc etoolbox&lt;br /&gt;
&lt;br /&gt;
The current version of pandoc in this raspbian is 1.12.4.2~dfsg-1+b3 We will use latex for PDF generation (via pandoc)&lt;br /&gt;
&lt;br /&gt;
(which is way better than 1.9 of the previous raspian, and even beats the instructions for compiling 1.11.1)&lt;br /&gt;
&lt;br /&gt;
MORE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pandoc texlive-latex-recommended texlive-fonts-recommended &amp;lt;/pre&amp;gt;&lt;br /&gt;
Was able to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pandoc --from markdown hello.markdown -o hello.pdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Access point =&lt;br /&gt;
&lt;br /&gt;
Taken from [https://pzwiki.wdka.nl/mediadesign/The_Ultimate_RPi_Installation_Guide#Access_Point_with_Captive_Portal this &amp;amp;quot;ultimate&amp;amp;quot; guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install dnsmasq wireless-tools hostapd&lt;br /&gt;
&lt;br /&gt;
# the next wasn't necessary for jessie, but for completeness..&lt;br /&gt;
RPI3 broadcom chip &lt;br /&gt;
apt-get install firmware-brcm80211&lt;br /&gt;
rmmod brcmfmac&lt;br /&gt;
modprobe brcmfmac&amp;lt;/pre&amp;gt;&lt;br /&gt;
Give fixed IP to wlan0 interface, edit /etc/network/interfaces switch off the built in stuff and add (section 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;auto eth0&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
iface etho inet dhcp&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
# 1. ORIGINAL settings... use wpa_supplicant for client mode&lt;br /&gt;
#allow-hotplug wlan0&lt;br /&gt;
#iface wlan0 inet manual&lt;br /&gt;
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
#&lt;br /&gt;
#################################&lt;br /&gt;
# 2. Fixed IP address (for hotspot / hostapd)&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet static&lt;br /&gt;
address 10.9.8.7&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
#################################&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace /etc/dnsmasq.conf with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.8.10,50.9.8.254,12h&lt;br /&gt;
address=/#/10.9.8.7&lt;br /&gt;
no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/hostapd/hostapd.conf file (adjust depending on driver/hardware)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
driver=nl80211&lt;br /&gt;
ssid=WiFeels&lt;br /&gt;
hw_mode=g&lt;br /&gt;
channel=6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/default/hostapd and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DAEMON_CONF=&amp;amp;quot;/etc/hostapd/hostapd.conf&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make hostapd start at boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update-rc.d hostapd defaults&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
= Makeserver + etherpad (experimental!) =&lt;br /&gt;
&lt;br /&gt;
Ingredients&lt;br /&gt;
&lt;br /&gt;
* Etherdump's pad.html with &amp;lt;rel&amp;gt; links including LIVE EDIT URLs&lt;br /&gt;
* THIS should replace/complement makeserver's EDIT button&lt;br /&gt;
&lt;br /&gt;
Key question: Makeserver as a separate view ?! (probably)&lt;br /&gt;
&lt;br /&gt;
TRY as 2 separate things ... basically AS IS...&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi/software&lt;br /&gt;
git clone http://murtaugh@gitlab.constantvzw.org/aa/makeserver.git&lt;br /&gt;
cd makeserver&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
sudo pip install twisted jinja2&amp;lt;/pre&amp;gt;&lt;br /&gt;
BUGFIX with twisted / SSL issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip install twisted[tls]&amp;lt;/pre&amp;gt;&lt;br /&gt;
DIDN&amp;amp;quot;T FIX sudo pip install twisted==16.0.0&lt;br /&gt;
&lt;br /&gt;
Seems to work!&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* Why are the links hardcoded long form in etherdump index (fails then via makeserver based in home)?&lt;br /&gt;
&lt;br /&gt;
= Extra =&lt;br /&gt;
&lt;br /&gt;
Changed dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.10.50,10.9.10.254,12h&lt;br /&gt;
#address=/#/10.9.10.7                                                                                                           # no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND added to /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10.9.10.7 etherbox.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
and this seems to then work over the direct hotspot connection.&lt;/div&gt;</summary>
		<author><name>Max</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4250</id>
		<title>Etherbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4250"/>
		<updated>2018-01-30T12:18:08Z</updated>

		<summary type="html">&lt;p&gt;Max : /* Install etherpad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These notes are based on a setup used by the &amp;quot;SOftware observatory&amp;quot; workshop, Constant [[Utilisateur:Michael Murtaugh|Michael Murtaugh]] ([[Discussion utilisateur:Michael Murtaugh|discussion]]) 30 janvier 2018 à 10:48 (CET)&lt;br /&gt;
&lt;br /&gt;
= Initial image + setup =&lt;br /&gt;
&lt;br /&gt;
Downloaded from https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
Based on the &amp;quot;lite&amp;quot; image (zip or torrent). As of 20 Jan 2018, this is Raspian &amp;quot;Stretch&amp;quot; lite.&lt;br /&gt;
&lt;br /&gt;
The **lite** image has no desktop / windows session.&lt;br /&gt;
&lt;br /&gt;
Based on [https://downloads.raspberrypi.org/raspbian_lite_latest.torrent 2017-04-10-raspian-jessie-lite.zip]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip -p 2017-04-10-raspbian-jessie-lite.zip | pv | sudo dd of=/dev/sdc bs=4M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could use [https://etcher.io/ Etcher.io] as well&lt;br /&gt;
&lt;br /&gt;
SSH is no longer on by default! So need to connect with a screen first time and turn this on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo raspi-config&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable ssh under connectivity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also enabled SSH by default after creating the boot SD Card, you just need to create a empty file named SSH and save it the root of your SD Card.&lt;br /&gt;
&lt;br /&gt;
Bring the rest of the software up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to find the IP address of the pi ==&lt;br /&gt;
&lt;br /&gt;
Simplest way is to connect on a wired network (plug the pi and your laptop into a router with ethernet cables), then type:&lt;br /&gt;
&lt;br /&gt;
    ping raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
And you should be able to see the IP address.&lt;br /&gt;
&lt;br /&gt;
Then you can conenct with ssh with:&lt;br /&gt;
&lt;br /&gt;
    ssh pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
or with the IP address in place of &amp;quot;raspberrypi.local&amp;quot; if you are on the wifi.&lt;br /&gt;
&lt;br /&gt;
with the default password &amp;quot;raspberry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Make it easier to login, with an ssh key ==&lt;br /&gt;
&lt;br /&gt;
Starting from your laptop (open a new Terminal session if you are connected to the pi):&lt;br /&gt;
&lt;br /&gt;
    ssh-keygen&lt;br /&gt;
&lt;br /&gt;
Choose the defaults. This generates an &amp;quot;ssh key&amp;quot; pair.&lt;br /&gt;
&lt;br /&gt;
Use the ssh-copy-id utility to send it to the pi.&lt;br /&gt;
&lt;br /&gt;
    ssh-copy-id pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
= Setup apache to serve the root with custom header + readme's =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2&lt;br /&gt;
cd /etc/apache2/sites-available&lt;br /&gt;
sudo nano 000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;    ServerAdmin webmaster@localhost&lt;br /&gt;
    # DocumentRoot /var/www/html&lt;br /&gt;
    DocumentRoot /home/pi&lt;br /&gt;
    &amp;lt;Directory /home/pi&amp;gt;&lt;br /&gt;
           Options Indexes FollowSymLinks&lt;br /&gt;
           AllowOverride none&lt;br /&gt;
           Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    HeaderName /include/HEADER.shtml&lt;br /&gt;
    ReadmeName README.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: Sets the [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#headername HeaderName] and [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#readmename ReadmeName] directives (part of mod_autoindex).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== droptoupload.cgi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enmod cgi&lt;br /&gt;
sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Placed 'droptoupload.cgi' in /usr/lib/cgi-bin and tried running it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./droptoupload.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like this is just outputs an HTML form. Looking at http://etherbox.local/cgi-bin/droptoupload.cgi should also display an upload form.&lt;br /&gt;
&lt;br /&gt;
The HEADER.shtml includes a link to this cgi.&lt;br /&gt;
&lt;br /&gt;
   sudo chmod +x droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
= HEADER.shtml =&lt;br /&gt;
Sample Header that adds javascript to:&lt;br /&gt;
* Move the README.html to the TOP of the page&lt;br /&gt;
* Includes the &amp;quot;droptoupload.cgi&amp;quot; https://gitlab.constantvzw.org/aa/etherbox/raw/master/usr/lib/cgi-bin/droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;html&amp;quot;&amp;gt;&amp;amp;lt;script src=&amp;amp;quot;/cgi-bin/droptoupload.cgi&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
background: #38b8e9;&lt;br /&gt;
color: black;&lt;br /&gt;
}&lt;br /&gt;
a {&lt;br /&gt;
color: white;&lt;br /&gt;
}&lt;br /&gt;
#logo {&lt;br /&gt;
white-space: pre;&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
}&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;amp;quot;links&amp;amp;quot; style=&amp;amp;quot;margin-bottom: 1em&amp;amp;quot;&amp;amp;gt;LOCAL:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/&amp;amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;/&amp;amp;amp;nbsp;&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/&amp;amp;quot;&amp;amp;gt;home&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/etherdump/&amp;amp;quot;&amp;amp;gt;etherdump&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
PUBLIC:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;http://constantvzw.org/site/-The-Technogalactic-Software-Observatory-.html&amp;amp;quot;&amp;amp;gt;constant&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;https://gitlab.constantvzw.org/observatory&amp;amp;quot;&amp;amp;gt;gitlab&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
.links {&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
text-transform: uppercase;&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;script&amp;amp;gt;&lt;br /&gt;
document.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;, function () {&lt;br /&gt;
  var p = document.querySelectorAll(&amp;amp;quot;.top&amp;amp;quot;),&lt;br /&gt;
      t = document.getElementsByTagName(&amp;amp;quot;table&amp;amp;quot;)[0];&lt;br /&gt;
  for (var i=0, l=p.length; i&amp;amp;lt;l; i++) {&lt;br /&gt;
    document.body.insertBefore(p[i], t);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Better permissions with facl =&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxcommand.org/man_pages/setfacl1.html setfacl]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo addgroup pi www-data&lt;br /&gt;
&lt;br /&gt;
sudo setfacl -Rm g:www-data:rwX /home/pi&lt;br /&gt;
sudo setfacl -d -Rm g:www-data:rwX /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately, I had problems then with permissions on the .ssh folder (preventing keys to be used). To remove the fact on just this folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod g-w /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Install etherpad =&lt;br /&gt;
&lt;br /&gt;
And the version of &amp;amp;quot;nodejs&amp;amp;quot; is now 0.10.29~dfsg-2. So let's try it with etherpad...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install npm git&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;br /&gt;
&lt;br /&gt;
cd /opt&lt;br /&gt;
sudo git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
sudo mv etherpad-lite etherpad&lt;br /&gt;
&lt;br /&gt;
# TODO: don't create home folder! ... find option&lt;br /&gt;
sudo adduser --system --home=/opt/etherpad --group etherpad&lt;br /&gt;
sudo chown -R etherpad:etherpad etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers se trouvent dans opt/etherpad/var sous forme d'un seul fichier &amp;quot;dirtyDB&amp;quot; - &amp;gt; You should use a dedicated database such as &amp;quot;mysql&amp;quot;, if you are planning on using etherpad-in a production environment.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install mysql-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create your setting file.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp settings.json.template settings.json&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, desactivate the dirty.db file and configure the mysql database&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano settings.json&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Find and change this part :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;  //The Type of the database. You can choose between dirty, postgres, sqlite and mysql&lt;br /&gt;
  //You shouldn't use &amp;quot;dirty&amp;quot; for for anything else than testing or development&lt;br /&gt;
 /* &amp;quot;dbType&amp;quot; : &amp;quot;dirty&amp;quot;,&lt;br /&gt;
  //the database specific settings&lt;br /&gt;
  &amp;quot;dbSettings&amp;quot; : {&lt;br /&gt;
                   &amp;quot;filename&amp;quot; : &amp;quot;var/dirty.db&amp;quot;&lt;br /&gt;
                 },&lt;br /&gt;
*/&lt;br /&gt;
  //An Example of MySQL Configuration&lt;br /&gt;
   &amp;quot;dbType&amp;quot; : &amp;quot;mysql&amp;quot;,&lt;br /&gt;
   &amp;quot;dbSettings&amp;quot; : {&lt;br /&gt;
                    &amp;quot;user&amp;quot;    : &amp;quot;etherpaduser&amp;quot;,&lt;br /&gt;
                    &amp;quot;host&amp;quot;    : &amp;quot;localhost&amp;quot;,&lt;br /&gt;
                    &amp;quot;password&amp;quot;: &amp;quot;etherpadpass&amp;quot;,&lt;br /&gt;
                    &amp;quot;database&amp;quot;: &amp;quot;store&amp;quot;,&lt;br /&gt;
                    &amp;quot;charset&amp;quot; : &amp;quot;utf8mb4&amp;quot;&lt;br /&gt;
                  },&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set up Mysql ==&lt;br /&gt;
&lt;br /&gt;
First thing to do is to install MySQL :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install mysql-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then create the database, for this we need to login with the Root user (super-user) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo su&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run mysql  :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then create the database and the user 'etherpaduser' with the password 'etherpadpass' :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create database etherpad;&lt;br /&gt;
grant all on etherpad.* to 'etherpaduser'@'localhost' identified by 'etherpadpass';&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just to test if it works :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u etherpaduser -p etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run etherpad for the first time as the etherpad user...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt/etherpad&lt;br /&gt;
sudo --user etherpad bin/run.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Following the first recipe on this page about [https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service deploying etherpad as a systemd service]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/etherpad.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[Unit]&lt;br /&gt;
Description=Etherpad-lite, the collaborative editor.&lt;br /&gt;
After=syslog.target network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=etherpad&lt;br /&gt;
Group=etherpad&lt;br /&gt;
WorkingDirectory=/opt/etherpad&lt;br /&gt;
ExecStart=/usr/bin/nodejs /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
After this,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service etherpad start&amp;lt;/pre&amp;gt;&lt;br /&gt;
Seems to work! Apparently it's the same as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl start etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to start on boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl enable etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= etherdump =&lt;br /&gt;
&lt;br /&gt;
System wide installation of etherdump&lt;br /&gt;
&lt;br /&gt;
Install deps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python-pip python-dev&lt;br /&gt;
sudo pip install python-dateutil jinja2 html5lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install from repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone http://murtaugh@gitlab.constantvzw.org/aa/etherdump.git&lt;br /&gt;
cd etherdump&lt;br /&gt;
sudo python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setup the folder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi&lt;br /&gt;
mkdir etherdump&lt;br /&gt;
cd etherdump&lt;br /&gt;
etherdump init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Type in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://etherbox.local:9001/&amp;lt;/pre&amp;gt;&lt;br /&gt;
And paste the API key. (Look at: http://etherbox.local/opt/etherpad/APIKEY.txt)&lt;br /&gt;
&lt;br /&gt;
=== styles.css + versions.js ===&lt;br /&gt;
&lt;br /&gt;
scp styles.css versions.js pi@etherbox.local:etherdump/lib&lt;br /&gt;
&lt;br /&gt;
The URLs of these files are options to the etherdump pull command and should match.&lt;br /&gt;
&lt;br /&gt;
=== etherdump.sh + cron ===&lt;br /&gt;
&lt;br /&gt;
Make the script that runs automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano etherdump.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
cd /home/pi/etherdump&lt;br /&gt;
etherdump pull --all --pub /home/pi/etherdump --css lib/styles.css --script lib/versions.js&lt;br /&gt;
etherdump index *.meta.json &amp;amp;gt; index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
And set it to run every 5 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
*/5 * * * * /home/pi/etherdump.sh &amp;amp;gt; /home/pi/cron.log.txt 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PATH is important. It can also be in the etherdump.sh but basically should match what you see when you &amp;amp;quot;echo $PATH&amp;amp;quot; (for the script to run in the same way as for the pi user).&lt;br /&gt;
&lt;br /&gt;
= Other software =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install emacs-nox screen pdftk pandoc texlive-latex-recommended texlive-fonts-recommended&lt;br /&gt;
sudo pip install csvkit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
* screen&lt;br /&gt;
* pandoc + latex&lt;br /&gt;
* pdftk&lt;br /&gt;
* csvkit&lt;br /&gt;
&lt;br /&gt;
What about&lt;br /&gt;
&lt;br /&gt;
* texlive-xetex texlive-luatex pandoc-citeproc etoolbox&lt;br /&gt;
&lt;br /&gt;
The current version of pandoc in this raspbian is 1.12.4.2~dfsg-1+b3 We will use latex for PDF generation (via pandoc)&lt;br /&gt;
&lt;br /&gt;
(which is way better than 1.9 of the previous raspian, and even beats the instructions for compiling 1.11.1)&lt;br /&gt;
&lt;br /&gt;
MORE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pandoc texlive-latex-recommended texlive-fonts-recommended &amp;lt;/pre&amp;gt;&lt;br /&gt;
Was able to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pandoc --from markdown hello.markdown -o hello.pdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Access point =&lt;br /&gt;
&lt;br /&gt;
Taken from [https://pzwiki.wdka.nl/mediadesign/The_Ultimate_RPi_Installation_Guide#Access_Point_with_Captive_Portal this &amp;amp;quot;ultimate&amp;amp;quot; guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install dnsmasq wireless-tools hostapd&lt;br /&gt;
&lt;br /&gt;
# the next wasn't necessary for jessie, but for completeness..&lt;br /&gt;
RPI3 broadcom chip &lt;br /&gt;
apt-get install firmware-brcm80211&lt;br /&gt;
rmmod brcmfmac&lt;br /&gt;
modprobe brcmfmac&amp;lt;/pre&amp;gt;&lt;br /&gt;
Give fixed IP to wlan0 interface, edit /etc/network/interfaces switch off the built in stuff and add (section 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;auto eth0&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
iface etho inet dhcp&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
# 1. ORIGINAL settings... use wpa_supplicant for client mode&lt;br /&gt;
#allow-hotplug wlan0&lt;br /&gt;
#iface wlan0 inet manual&lt;br /&gt;
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
#&lt;br /&gt;
#################################&lt;br /&gt;
# 2. Fixed IP address (for hotspot / hostapd)&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet static&lt;br /&gt;
address 10.9.8.7&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
#################################&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace /etc/dnsmasq.conf with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.8.10,50.9.8.254,12h&lt;br /&gt;
address=/#/10.9.8.7&lt;br /&gt;
no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/hostapd/hostapd.conf file (adjust depending on driver/hardware)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
driver=nl80211&lt;br /&gt;
ssid=WiFeels&lt;br /&gt;
hw_mode=g&lt;br /&gt;
channel=6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/default/hostapd and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DAEMON_CONF=&amp;amp;quot;/etc/hostapd/hostapd.conf&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make hostapd start at boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update-rc.d hostapd defaults&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
= Makeserver + etherpad (experimental!) =&lt;br /&gt;
&lt;br /&gt;
Ingredients&lt;br /&gt;
&lt;br /&gt;
* Etherdump's pad.html with &amp;lt;rel&amp;gt; links including LIVE EDIT URLs&lt;br /&gt;
* THIS should replace/complement makeserver's EDIT button&lt;br /&gt;
&lt;br /&gt;
Key question: Makeserver as a separate view ?! (probably)&lt;br /&gt;
&lt;br /&gt;
TRY as 2 separate things ... basically AS IS...&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi/software&lt;br /&gt;
git clone http://murtaugh@gitlab.constantvzw.org/aa/makeserver.git&lt;br /&gt;
cd makeserver&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
sudo pip install twisted jinja2&amp;lt;/pre&amp;gt;&lt;br /&gt;
BUGFIX with twisted / SSL issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip install twisted[tls]&amp;lt;/pre&amp;gt;&lt;br /&gt;
DIDN&amp;amp;quot;T FIX sudo pip install twisted==16.0.0&lt;br /&gt;
&lt;br /&gt;
Seems to work!&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* Why are the links hardcoded long form in etherdump index (fails then via makeserver based in home)?&lt;br /&gt;
&lt;br /&gt;
= Extra =&lt;br /&gt;
&lt;br /&gt;
Changed dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.10.50,10.9.10.254,12h&lt;br /&gt;
#address=/#/10.9.10.7                                                                                                           # no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND added to /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10.9.10.7 etherbox.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
and this seems to then work over the direct hotspot connection.&lt;/div&gt;</summary>
		<author><name>Max</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4249</id>
		<title>Etherbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4249"/>
		<updated>2018-01-30T12:16:25Z</updated>

		<summary type="html">&lt;p&gt;Max : /* Install etherpad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These notes are based on a setup used by the &amp;quot;SOftware observatory&amp;quot; workshop, Constant [[Utilisateur:Michael Murtaugh|Michael Murtaugh]] ([[Discussion utilisateur:Michael Murtaugh|discussion]]) 30 janvier 2018 à 10:48 (CET)&lt;br /&gt;
&lt;br /&gt;
= Initial image + setup =&lt;br /&gt;
&lt;br /&gt;
Downloaded from https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
Based on the &amp;quot;lite&amp;quot; image (zip or torrent). As of 20 Jan 2018, this is Raspian &amp;quot;Stretch&amp;quot; lite.&lt;br /&gt;
&lt;br /&gt;
The **lite** image has no desktop / windows session.&lt;br /&gt;
&lt;br /&gt;
Based on [https://downloads.raspberrypi.org/raspbian_lite_latest.torrent 2017-04-10-raspian-jessie-lite.zip]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip -p 2017-04-10-raspbian-jessie-lite.zip | pv | sudo dd of=/dev/sdc bs=4M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could use [https://etcher.io/ Etcher.io] as well&lt;br /&gt;
&lt;br /&gt;
SSH is no longer on by default! So need to connect with a screen first time and turn this on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo raspi-config&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable ssh under connectivity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also enabled SSH by default after creating the boot SD Card, you just need to create a empty file named SSH and save it the root of your SD Card.&lt;br /&gt;
&lt;br /&gt;
Bring the rest of the software up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to find the IP address of the pi ==&lt;br /&gt;
&lt;br /&gt;
Simplest way is to connect on a wired network (plug the pi and your laptop into a router with ethernet cables), then type:&lt;br /&gt;
&lt;br /&gt;
    ping raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
And you should be able to see the IP address.&lt;br /&gt;
&lt;br /&gt;
Then you can conenct with ssh with:&lt;br /&gt;
&lt;br /&gt;
    ssh pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
or with the IP address in place of &amp;quot;raspberrypi.local&amp;quot; if you are on the wifi.&lt;br /&gt;
&lt;br /&gt;
with the default password &amp;quot;raspberry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Make it easier to login, with an ssh key ==&lt;br /&gt;
&lt;br /&gt;
Starting from your laptop (open a new Terminal session if you are connected to the pi):&lt;br /&gt;
&lt;br /&gt;
    ssh-keygen&lt;br /&gt;
&lt;br /&gt;
Choose the defaults. This generates an &amp;quot;ssh key&amp;quot; pair.&lt;br /&gt;
&lt;br /&gt;
Use the ssh-copy-id utility to send it to the pi.&lt;br /&gt;
&lt;br /&gt;
    ssh-copy-id pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
= Setup apache to serve the root with custom header + readme's =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2&lt;br /&gt;
cd /etc/apache2/sites-available&lt;br /&gt;
sudo nano 000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;    ServerAdmin webmaster@localhost&lt;br /&gt;
    # DocumentRoot /var/www/html&lt;br /&gt;
    DocumentRoot /home/pi&lt;br /&gt;
    &amp;lt;Directory /home/pi&amp;gt;&lt;br /&gt;
           Options Indexes FollowSymLinks&lt;br /&gt;
           AllowOverride none&lt;br /&gt;
           Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    HeaderName /include/HEADER.shtml&lt;br /&gt;
    ReadmeName README.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: Sets the [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#headername HeaderName] and [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#readmename ReadmeName] directives (part of mod_autoindex).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== droptoupload.cgi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enmod cgi&lt;br /&gt;
sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Placed 'droptoupload.cgi' in /usr/lib/cgi-bin and tried running it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./droptoupload.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like this is just outputs an HTML form. Looking at http://etherbox.local/cgi-bin/droptoupload.cgi should also display an upload form.&lt;br /&gt;
&lt;br /&gt;
The HEADER.shtml includes a link to this cgi.&lt;br /&gt;
&lt;br /&gt;
   sudo chmod +x droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
= HEADER.shtml =&lt;br /&gt;
Sample Header that adds javascript to:&lt;br /&gt;
* Move the README.html to the TOP of the page&lt;br /&gt;
* Includes the &amp;quot;droptoupload.cgi&amp;quot; https://gitlab.constantvzw.org/aa/etherbox/raw/master/usr/lib/cgi-bin/droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;html&amp;quot;&amp;gt;&amp;amp;lt;script src=&amp;amp;quot;/cgi-bin/droptoupload.cgi&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
background: #38b8e9;&lt;br /&gt;
color: black;&lt;br /&gt;
}&lt;br /&gt;
a {&lt;br /&gt;
color: white;&lt;br /&gt;
}&lt;br /&gt;
#logo {&lt;br /&gt;
white-space: pre;&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
}&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;amp;quot;links&amp;amp;quot; style=&amp;amp;quot;margin-bottom: 1em&amp;amp;quot;&amp;amp;gt;LOCAL:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/&amp;amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;/&amp;amp;amp;nbsp;&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/&amp;amp;quot;&amp;amp;gt;home&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/etherdump/&amp;amp;quot;&amp;amp;gt;etherdump&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
PUBLIC:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;http://constantvzw.org/site/-The-Technogalactic-Software-Observatory-.html&amp;amp;quot;&amp;amp;gt;constant&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;https://gitlab.constantvzw.org/observatory&amp;amp;quot;&amp;amp;gt;gitlab&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
.links {&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
text-transform: uppercase;&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;script&amp;amp;gt;&lt;br /&gt;
document.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;, function () {&lt;br /&gt;
  var p = document.querySelectorAll(&amp;amp;quot;.top&amp;amp;quot;),&lt;br /&gt;
      t = document.getElementsByTagName(&amp;amp;quot;table&amp;amp;quot;)[0];&lt;br /&gt;
  for (var i=0, l=p.length; i&amp;amp;lt;l; i++) {&lt;br /&gt;
    document.body.insertBefore(p[i], t);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Better permissions with facl =&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxcommand.org/man_pages/setfacl1.html setfacl]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo addgroup pi www-data&lt;br /&gt;
&lt;br /&gt;
sudo setfacl -Rm g:www-data:rwX /home/pi&lt;br /&gt;
sudo setfacl -d -Rm g:www-data:rwX /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately, I had problems then with permissions on the .ssh folder (preventing keys to be used). To remove the fact on just this folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod g-w /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Install etherpad =&lt;br /&gt;
&lt;br /&gt;
And the version of &amp;amp;quot;nodejs&amp;amp;quot; is now 0.10.29~dfsg-2. So let's try it with etherpad...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install npm git&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;br /&gt;
&lt;br /&gt;
cd /opt&lt;br /&gt;
sudo git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
sudo mv etherpad-lite etherpad&lt;br /&gt;
&lt;br /&gt;
# TODO: don't create home folder! ... find option&lt;br /&gt;
sudo adduser --system --home=/opt/etherpad --group etherpad&lt;br /&gt;
sudo chown -R etherpad:etherpad etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers se trouvent dans opt/etherpad/var sous forme d'un seul fichier &amp;quot;dirtyDB&amp;quot; - &amp;gt; You should use a dedicated database such as &amp;quot;mysql&amp;quot;, if you are planning on using etherpad-in a production environment.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install mysql-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create your setting file.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp settings.json.template settings.json&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, desactivate the dirty.db file and configure the mysql database&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano settings.json&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Set up Mysql ==&lt;br /&gt;
&lt;br /&gt;
First thing to do is to install MySQL :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install mysql-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then create the database, for this we need to login with the Root user (super-user) :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo su&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run mysql  :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then create the database and the user 'etherpaduser' with the password 'etherpadpass' :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;create database etherpad;&lt;br /&gt;
grant all on etherpad.* to 'etherpaduser'@'localhost' identified by 'etherpadpass';&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Just to test if it works :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;mysql -u etherpaduser -p etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run etherpad for the first time as the etherpad user...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt/etherpad&lt;br /&gt;
sudo --user etherpad bin/run.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Following the first recipe on this page about [https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service deploying etherpad as a systemd service]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/etherpad.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[Unit]&lt;br /&gt;
Description=Etherpad-lite, the collaborative editor.&lt;br /&gt;
After=syslog.target network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=etherpad&lt;br /&gt;
Group=etherpad&lt;br /&gt;
WorkingDirectory=/opt/etherpad&lt;br /&gt;
ExecStart=/usr/bin/nodejs /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
After this,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service etherpad start&amp;lt;/pre&amp;gt;&lt;br /&gt;
Seems to work! Apparently it's the same as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl start etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to start on boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl enable etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= etherdump =&lt;br /&gt;
&lt;br /&gt;
System wide installation of etherdump&lt;br /&gt;
&lt;br /&gt;
Install deps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python-pip python-dev&lt;br /&gt;
sudo pip install python-dateutil jinja2 html5lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install from repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone http://murtaugh@gitlab.constantvzw.org/aa/etherdump.git&lt;br /&gt;
cd etherdump&lt;br /&gt;
sudo python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setup the folder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi&lt;br /&gt;
mkdir etherdump&lt;br /&gt;
cd etherdump&lt;br /&gt;
etherdump init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Type in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://etherbox.local:9001/&amp;lt;/pre&amp;gt;&lt;br /&gt;
And paste the API key. (Look at: http://etherbox.local/opt/etherpad/APIKEY.txt)&lt;br /&gt;
&lt;br /&gt;
=== styles.css + versions.js ===&lt;br /&gt;
&lt;br /&gt;
scp styles.css versions.js pi@etherbox.local:etherdump/lib&lt;br /&gt;
&lt;br /&gt;
The URLs of these files are options to the etherdump pull command and should match.&lt;br /&gt;
&lt;br /&gt;
=== etherdump.sh + cron ===&lt;br /&gt;
&lt;br /&gt;
Make the script that runs automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano etherdump.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
cd /home/pi/etherdump&lt;br /&gt;
etherdump pull --all --pub /home/pi/etherdump --css lib/styles.css --script lib/versions.js&lt;br /&gt;
etherdump index *.meta.json &amp;amp;gt; index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
And set it to run every 5 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
*/5 * * * * /home/pi/etherdump.sh &amp;amp;gt; /home/pi/cron.log.txt 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PATH is important. It can also be in the etherdump.sh but basically should match what you see when you &amp;amp;quot;echo $PATH&amp;amp;quot; (for the script to run in the same way as for the pi user).&lt;br /&gt;
&lt;br /&gt;
= Other software =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install emacs-nox screen pdftk pandoc texlive-latex-recommended texlive-fonts-recommended&lt;br /&gt;
sudo pip install csvkit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
* screen&lt;br /&gt;
* pandoc + latex&lt;br /&gt;
* pdftk&lt;br /&gt;
* csvkit&lt;br /&gt;
&lt;br /&gt;
What about&lt;br /&gt;
&lt;br /&gt;
* texlive-xetex texlive-luatex pandoc-citeproc etoolbox&lt;br /&gt;
&lt;br /&gt;
The current version of pandoc in this raspbian is 1.12.4.2~dfsg-1+b3 We will use latex for PDF generation (via pandoc)&lt;br /&gt;
&lt;br /&gt;
(which is way better than 1.9 of the previous raspian, and even beats the instructions for compiling 1.11.1)&lt;br /&gt;
&lt;br /&gt;
MORE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pandoc texlive-latex-recommended texlive-fonts-recommended &amp;lt;/pre&amp;gt;&lt;br /&gt;
Was able to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pandoc --from markdown hello.markdown -o hello.pdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Access point =&lt;br /&gt;
&lt;br /&gt;
Taken from [https://pzwiki.wdka.nl/mediadesign/The_Ultimate_RPi_Installation_Guide#Access_Point_with_Captive_Portal this &amp;amp;quot;ultimate&amp;amp;quot; guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install dnsmasq wireless-tools hostapd&lt;br /&gt;
&lt;br /&gt;
# the next wasn't necessary for jessie, but for completeness..&lt;br /&gt;
RPI3 broadcom chip &lt;br /&gt;
apt-get install firmware-brcm80211&lt;br /&gt;
rmmod brcmfmac&lt;br /&gt;
modprobe brcmfmac&amp;lt;/pre&amp;gt;&lt;br /&gt;
Give fixed IP to wlan0 interface, edit /etc/network/interfaces switch off the built in stuff and add (section 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;auto eth0&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
iface etho inet dhcp&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
# 1. ORIGINAL settings... use wpa_supplicant for client mode&lt;br /&gt;
#allow-hotplug wlan0&lt;br /&gt;
#iface wlan0 inet manual&lt;br /&gt;
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
#&lt;br /&gt;
#################################&lt;br /&gt;
# 2. Fixed IP address (for hotspot / hostapd)&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet static&lt;br /&gt;
address 10.9.8.7&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
#################################&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace /etc/dnsmasq.conf with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.8.10,50.9.8.254,12h&lt;br /&gt;
address=/#/10.9.8.7&lt;br /&gt;
no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/hostapd/hostapd.conf file (adjust depending on driver/hardware)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
driver=nl80211&lt;br /&gt;
ssid=WiFeels&lt;br /&gt;
hw_mode=g&lt;br /&gt;
channel=6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/default/hostapd and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DAEMON_CONF=&amp;amp;quot;/etc/hostapd/hostapd.conf&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make hostapd start at boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update-rc.d hostapd defaults&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
= Makeserver + etherpad (experimental!) =&lt;br /&gt;
&lt;br /&gt;
Ingredients&lt;br /&gt;
&lt;br /&gt;
* Etherdump's pad.html with &amp;lt;rel&amp;gt; links including LIVE EDIT URLs&lt;br /&gt;
* THIS should replace/complement makeserver's EDIT button&lt;br /&gt;
&lt;br /&gt;
Key question: Makeserver as a separate view ?! (probably)&lt;br /&gt;
&lt;br /&gt;
TRY as 2 separate things ... basically AS IS...&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi/software&lt;br /&gt;
git clone http://murtaugh@gitlab.constantvzw.org/aa/makeserver.git&lt;br /&gt;
cd makeserver&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
sudo pip install twisted jinja2&amp;lt;/pre&amp;gt;&lt;br /&gt;
BUGFIX with twisted / SSL issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip install twisted[tls]&amp;lt;/pre&amp;gt;&lt;br /&gt;
DIDN&amp;amp;quot;T FIX sudo pip install twisted==16.0.0&lt;br /&gt;
&lt;br /&gt;
Seems to work!&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* Why are the links hardcoded long form in etherdump index (fails then via makeserver based in home)?&lt;br /&gt;
&lt;br /&gt;
= Extra =&lt;br /&gt;
&lt;br /&gt;
Changed dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.10.50,10.9.10.254,12h&lt;br /&gt;
#address=/#/10.9.10.7                                                                                                           # no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND added to /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10.9.10.7 etherbox.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
and this seems to then work over the direct hotspot connection.&lt;/div&gt;</summary>
		<author><name>Max</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4248</id>
		<title>Etherbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4248"/>
		<updated>2018-01-30T12:10:59Z</updated>

		<summary type="html">&lt;p&gt;Max : /* Set up etherpad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These notes are based on a setup used by the &amp;quot;SOftware observatory&amp;quot; workshop, Constant [[Utilisateur:Michael Murtaugh|Michael Murtaugh]] ([[Discussion utilisateur:Michael Murtaugh|discussion]]) 30 janvier 2018 à 10:48 (CET)&lt;br /&gt;
&lt;br /&gt;
= Initial image + setup =&lt;br /&gt;
&lt;br /&gt;
Downloaded from https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
Based on the &amp;quot;lite&amp;quot; image (zip or torrent). As of 20 Jan 2018, this is Raspian &amp;quot;Stretch&amp;quot; lite.&lt;br /&gt;
&lt;br /&gt;
The **lite** image has no desktop / windows session.&lt;br /&gt;
&lt;br /&gt;
Based on [https://downloads.raspberrypi.org/raspbian_lite_latest.torrent 2017-04-10-raspian-jessie-lite.zip]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip -p 2017-04-10-raspbian-jessie-lite.zip | pv | sudo dd of=/dev/sdc bs=4M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could use [https://etcher.io/ Etcher.io] as well&lt;br /&gt;
&lt;br /&gt;
SSH is no longer on by default! So need to connect with a screen first time and turn this on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo raspi-config&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable ssh under connectivity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also enabled SSH by default after creating the boot SD Card, you just need to create a empty file named SSH and save it the root of your SD Card.&lt;br /&gt;
&lt;br /&gt;
Bring the rest of the software up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to find the IP address of the pi ==&lt;br /&gt;
&lt;br /&gt;
Simplest way is to connect on a wired network (plug the pi and your laptop into a router with ethernet cables), then type:&lt;br /&gt;
&lt;br /&gt;
    ping raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
And you should be able to see the IP address.&lt;br /&gt;
&lt;br /&gt;
Then you can conenct with ssh with:&lt;br /&gt;
&lt;br /&gt;
    ssh pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
or with the IP address in place of &amp;quot;raspberrypi.local&amp;quot; if you are on the wifi.&lt;br /&gt;
&lt;br /&gt;
with the default password &amp;quot;raspberry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Make it easier to login, with an ssh key ==&lt;br /&gt;
&lt;br /&gt;
Starting from your laptop (open a new Terminal session if you are connected to the pi):&lt;br /&gt;
&lt;br /&gt;
    ssh-keygen&lt;br /&gt;
&lt;br /&gt;
Choose the defaults. This generates an &amp;quot;ssh key&amp;quot; pair.&lt;br /&gt;
&lt;br /&gt;
Use the ssh-copy-id utility to send it to the pi.&lt;br /&gt;
&lt;br /&gt;
    ssh-copy-id pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
= Setup apache to serve the root with custom header + readme's =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2&lt;br /&gt;
cd /etc/apache2/sites-available&lt;br /&gt;
sudo nano 000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;    ServerAdmin webmaster@localhost&lt;br /&gt;
    # DocumentRoot /var/www/html&lt;br /&gt;
    DocumentRoot /home/pi&lt;br /&gt;
    &amp;lt;Directory /home/pi&amp;gt;&lt;br /&gt;
           Options Indexes FollowSymLinks&lt;br /&gt;
           AllowOverride none&lt;br /&gt;
           Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    HeaderName /include/HEADER.shtml&lt;br /&gt;
    ReadmeName README.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: Sets the [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#headername HeaderName] and [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#readmename ReadmeName] directives (part of mod_autoindex).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== droptoupload.cgi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enmod cgi&lt;br /&gt;
sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Placed 'droptoupload.cgi' in /usr/lib/cgi-bin and tried running it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./droptoupload.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like this is just outputs an HTML form. Looking at http://etherbox.local/cgi-bin/droptoupload.cgi should also display an upload form.&lt;br /&gt;
&lt;br /&gt;
The HEADER.shtml includes a link to this cgi.&lt;br /&gt;
&lt;br /&gt;
   sudo chmod +x droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
= HEADER.shtml =&lt;br /&gt;
Sample Header that adds javascript to:&lt;br /&gt;
* Move the README.html to the TOP of the page&lt;br /&gt;
* Includes the &amp;quot;droptoupload.cgi&amp;quot; https://gitlab.constantvzw.org/aa/etherbox/raw/master/usr/lib/cgi-bin/droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;html&amp;quot;&amp;gt;&amp;amp;lt;script src=&amp;amp;quot;/cgi-bin/droptoupload.cgi&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
background: #38b8e9;&lt;br /&gt;
color: black;&lt;br /&gt;
}&lt;br /&gt;
a {&lt;br /&gt;
color: white;&lt;br /&gt;
}&lt;br /&gt;
#logo {&lt;br /&gt;
white-space: pre;&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
}&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;amp;quot;links&amp;amp;quot; style=&amp;amp;quot;margin-bottom: 1em&amp;amp;quot;&amp;amp;gt;LOCAL:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/&amp;amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;/&amp;amp;amp;nbsp;&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/&amp;amp;quot;&amp;amp;gt;home&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/etherdump/&amp;amp;quot;&amp;amp;gt;etherdump&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
PUBLIC:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;http://constantvzw.org/site/-The-Technogalactic-Software-Observatory-.html&amp;amp;quot;&amp;amp;gt;constant&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;https://gitlab.constantvzw.org/observatory&amp;amp;quot;&amp;amp;gt;gitlab&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
.links {&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
text-transform: uppercase;&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;script&amp;amp;gt;&lt;br /&gt;
document.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;, function () {&lt;br /&gt;
  var p = document.querySelectorAll(&amp;amp;quot;.top&amp;amp;quot;),&lt;br /&gt;
      t = document.getElementsByTagName(&amp;amp;quot;table&amp;amp;quot;)[0];&lt;br /&gt;
  for (var i=0, l=p.length; i&amp;amp;lt;l; i++) {&lt;br /&gt;
    document.body.insertBefore(p[i], t);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Better permissions with facl =&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxcommand.org/man_pages/setfacl1.html setfacl]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo addgroup pi www-data&lt;br /&gt;
&lt;br /&gt;
sudo setfacl -Rm g:www-data:rwX /home/pi&lt;br /&gt;
sudo setfacl -d -Rm g:www-data:rwX /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately, I had problems then with permissions on the .ssh folder (preventing keys to be used). To remove the fact on just this folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod g-w /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Install etherpad =&lt;br /&gt;
&lt;br /&gt;
And the version of &amp;amp;quot;nodejs&amp;amp;quot; is now 0.10.29~dfsg-2. So let's try it with etherpad...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install npm git&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;br /&gt;
&lt;br /&gt;
cd /opt&lt;br /&gt;
sudo git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
sudo mv etherpad-lite etherpad&lt;br /&gt;
&lt;br /&gt;
# TODO: don't create home folder! ... find option&lt;br /&gt;
sudo adduser --system --home=/opt/etherpad --group etherpad&lt;br /&gt;
sudo chown -R etherpad:etherpad etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers se trouvent dans opt/etherpad/var sous forme d'un seul fichier &amp;quot;dirtyDB&amp;quot; - &amp;gt; You should use a dedicated database such as &amp;quot;mysql&amp;quot;, if you are planning on using etherpad-in a production environment.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install mysql-server&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create your setting file.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp settings.json.template settings.json&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, desactivate the dirty.db file and configure the mysql database&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano settings.json&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run etherpad for the first time as the etherpad user...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt/etherpad&lt;br /&gt;
sudo --user etherpad bin/run.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Following the first recipe on this page about [https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service deploying etherpad as a systemd service]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/etherpad.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[Unit]&lt;br /&gt;
Description=Etherpad-lite, the collaborative editor.&lt;br /&gt;
After=syslog.target network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=etherpad&lt;br /&gt;
Group=etherpad&lt;br /&gt;
WorkingDirectory=/opt/etherpad&lt;br /&gt;
ExecStart=/usr/bin/nodejs /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
After this,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service etherpad start&amp;lt;/pre&amp;gt;&lt;br /&gt;
Seems to work! Apparently it's the same as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl start etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to start on boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl enable etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= etherdump =&lt;br /&gt;
&lt;br /&gt;
System wide installation of etherdump&lt;br /&gt;
&lt;br /&gt;
Install deps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python-pip python-dev&lt;br /&gt;
sudo pip install python-dateutil jinja2 html5lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install from repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone http://murtaugh@gitlab.constantvzw.org/aa/etherdump.git&lt;br /&gt;
cd etherdump&lt;br /&gt;
sudo python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setup the folder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi&lt;br /&gt;
mkdir etherdump&lt;br /&gt;
cd etherdump&lt;br /&gt;
etherdump init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Type in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://etherbox.local:9001/&amp;lt;/pre&amp;gt;&lt;br /&gt;
And paste the API key. (Look at: http://etherbox.local/opt/etherpad/APIKEY.txt)&lt;br /&gt;
&lt;br /&gt;
=== styles.css + versions.js ===&lt;br /&gt;
&lt;br /&gt;
scp styles.css versions.js pi@etherbox.local:etherdump/lib&lt;br /&gt;
&lt;br /&gt;
The URLs of these files are options to the etherdump pull command and should match.&lt;br /&gt;
&lt;br /&gt;
=== etherdump.sh + cron ===&lt;br /&gt;
&lt;br /&gt;
Make the script that runs automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano etherdump.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
cd /home/pi/etherdump&lt;br /&gt;
etherdump pull --all --pub /home/pi/etherdump --css lib/styles.css --script lib/versions.js&lt;br /&gt;
etherdump index *.meta.json &amp;amp;gt; index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
And set it to run every 5 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
*/5 * * * * /home/pi/etherdump.sh &amp;amp;gt; /home/pi/cron.log.txt 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PATH is important. It can also be in the etherdump.sh but basically should match what you see when you &amp;amp;quot;echo $PATH&amp;amp;quot; (for the script to run in the same way as for the pi user).&lt;br /&gt;
&lt;br /&gt;
= Other software =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install emacs-nox screen pdftk pandoc texlive-latex-recommended texlive-fonts-recommended&lt;br /&gt;
sudo pip install csvkit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
* screen&lt;br /&gt;
* pandoc + latex&lt;br /&gt;
* pdftk&lt;br /&gt;
* csvkit&lt;br /&gt;
&lt;br /&gt;
What about&lt;br /&gt;
&lt;br /&gt;
* texlive-xetex texlive-luatex pandoc-citeproc etoolbox&lt;br /&gt;
&lt;br /&gt;
The current version of pandoc in this raspbian is 1.12.4.2~dfsg-1+b3 We will use latex for PDF generation (via pandoc)&lt;br /&gt;
&lt;br /&gt;
(which is way better than 1.9 of the previous raspian, and even beats the instructions for compiling 1.11.1)&lt;br /&gt;
&lt;br /&gt;
MORE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pandoc texlive-latex-recommended texlive-fonts-recommended &amp;lt;/pre&amp;gt;&lt;br /&gt;
Was able to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pandoc --from markdown hello.markdown -o hello.pdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Access point =&lt;br /&gt;
&lt;br /&gt;
Taken from [https://pzwiki.wdka.nl/mediadesign/The_Ultimate_RPi_Installation_Guide#Access_Point_with_Captive_Portal this &amp;amp;quot;ultimate&amp;amp;quot; guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install dnsmasq wireless-tools hostapd&lt;br /&gt;
&lt;br /&gt;
# the next wasn't necessary for jessie, but for completeness..&lt;br /&gt;
RPI3 broadcom chip &lt;br /&gt;
apt-get install firmware-brcm80211&lt;br /&gt;
rmmod brcmfmac&lt;br /&gt;
modprobe brcmfmac&amp;lt;/pre&amp;gt;&lt;br /&gt;
Give fixed IP to wlan0 interface, edit /etc/network/interfaces switch off the built in stuff and add (section 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;auto eth0&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
iface etho inet dhcp&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
# 1. ORIGINAL settings... use wpa_supplicant for client mode&lt;br /&gt;
#allow-hotplug wlan0&lt;br /&gt;
#iface wlan0 inet manual&lt;br /&gt;
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
#&lt;br /&gt;
#################################&lt;br /&gt;
# 2. Fixed IP address (for hotspot / hostapd)&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet static&lt;br /&gt;
address 10.9.8.7&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
#################################&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace /etc/dnsmasq.conf with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.8.10,50.9.8.254,12h&lt;br /&gt;
address=/#/10.9.8.7&lt;br /&gt;
no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/hostapd/hostapd.conf file (adjust depending on driver/hardware)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
driver=nl80211&lt;br /&gt;
ssid=WiFeels&lt;br /&gt;
hw_mode=g&lt;br /&gt;
channel=6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/default/hostapd and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DAEMON_CONF=&amp;amp;quot;/etc/hostapd/hostapd.conf&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make hostapd start at boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update-rc.d hostapd defaults&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
= Makeserver + etherpad (experimental!) =&lt;br /&gt;
&lt;br /&gt;
Ingredients&lt;br /&gt;
&lt;br /&gt;
* Etherdump's pad.html with &amp;lt;rel&amp;gt; links including LIVE EDIT URLs&lt;br /&gt;
* THIS should replace/complement makeserver's EDIT button&lt;br /&gt;
&lt;br /&gt;
Key question: Makeserver as a separate view ?! (probably)&lt;br /&gt;
&lt;br /&gt;
TRY as 2 separate things ... basically AS IS...&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi/software&lt;br /&gt;
git clone http://murtaugh@gitlab.constantvzw.org/aa/makeserver.git&lt;br /&gt;
cd makeserver&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
sudo pip install twisted jinja2&amp;lt;/pre&amp;gt;&lt;br /&gt;
BUGFIX with twisted / SSL issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip install twisted[tls]&amp;lt;/pre&amp;gt;&lt;br /&gt;
DIDN&amp;amp;quot;T FIX sudo pip install twisted==16.0.0&lt;br /&gt;
&lt;br /&gt;
Seems to work!&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* Why are the links hardcoded long form in etherdump index (fails then via makeserver based in home)?&lt;br /&gt;
&lt;br /&gt;
= Extra =&lt;br /&gt;
&lt;br /&gt;
Changed dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.10.50,10.9.10.254,12h&lt;br /&gt;
#address=/#/10.9.10.7                                                                                                           # no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND added to /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10.9.10.7 etherbox.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
and this seems to then work over the direct hotspot connection.&lt;/div&gt;</summary>
		<author><name>Max</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4242</id>
		<title>Etherbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4242"/>
		<updated>2018-01-30T11:51:36Z</updated>

		<summary type="html">&lt;p&gt;Max : /* Set up etherpad */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These notes are based on a setup used by the &amp;quot;SOftware observatory&amp;quot; workshop, Constant [[Utilisateur:Michael Murtaugh|Michael Murtaugh]] ([[Discussion utilisateur:Michael Murtaugh|discussion]]) 30 janvier 2018 à 10:48 (CET)&lt;br /&gt;
&lt;br /&gt;
= Initial image + setup =&lt;br /&gt;
&lt;br /&gt;
Downloaded from https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
Based on the &amp;quot;lite&amp;quot; image (zip or torrent). As of 20 Jan 2018, this is Raspian &amp;quot;Stretch&amp;quot; lite.&lt;br /&gt;
&lt;br /&gt;
The **lite** image has no desktop / windows session.&lt;br /&gt;
&lt;br /&gt;
Based on [https://downloads.raspberrypi.org/raspbian_lite_latest.torrent 2017-04-10-raspian-jessie-lite.zip]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip -p 2017-04-10-raspbian-jessie-lite.zip | pv | sudo dd of=/dev/sdc bs=4M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could use [https://etcher.io/ Etcher.io] as well&lt;br /&gt;
&lt;br /&gt;
SSH is no longer on by default! So need to connect with a screen first time and turn this on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo raspi-config&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable ssh under connectivity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also enabled SSH by default after creating the boot SD Card, you just need to create a empty file named SSH and save it the root of your SD Card.&lt;br /&gt;
&lt;br /&gt;
Bring the rest of the software up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to find the IP address of the pi ==&lt;br /&gt;
&lt;br /&gt;
Simplest way is to connect on a wired network (plug the pi and your laptop into a router with ethernet cables), then type:&lt;br /&gt;
&lt;br /&gt;
    ping raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
And you should be able to see the IP address.&lt;br /&gt;
&lt;br /&gt;
Then you can conenct with ssh with:&lt;br /&gt;
&lt;br /&gt;
    ssh pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
or with the IP address in place of &amp;quot;raspberrypi.local&amp;quot; if you are on the wifi.&lt;br /&gt;
&lt;br /&gt;
with the default password &amp;quot;raspberry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Make it easier to login, with an ssh key ==&lt;br /&gt;
&lt;br /&gt;
Starting from your laptop (open a new Terminal session if you are connected to the pi):&lt;br /&gt;
&lt;br /&gt;
    ssh-keygen&lt;br /&gt;
&lt;br /&gt;
Choose the defaults. This generates an &amp;quot;ssh key&amp;quot; pair.&lt;br /&gt;
&lt;br /&gt;
Use the ssh-copy-id utility to send it to the pi.&lt;br /&gt;
&lt;br /&gt;
    ssh-copy-id pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
= Setup apache to serve the root with custom header + readme's =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2&lt;br /&gt;
cd /etc/apache2/sites-available&lt;br /&gt;
sudo nano 000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;    ServerAdmin webmaster@localhost&lt;br /&gt;
    # DocumentRoot /var/www/html&lt;br /&gt;
    DocumentRoot /home/pi&lt;br /&gt;
    &amp;lt;Directory /home/pi&amp;gt;&lt;br /&gt;
           Options Indexes FollowSymLinks&lt;br /&gt;
           AllowOverride none&lt;br /&gt;
           Require all granted&lt;br /&gt;
    &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    HeaderName /include/HEADER.shtml&lt;br /&gt;
    ReadmeName README.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
NB: Sets the [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#headername HeaderName] and [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#readmename ReadmeName] directives (part of mod_autoindex).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== droptoupload.cgi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enmod cgi&lt;br /&gt;
sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Placed 'droptoupload.cgi' in /usr/lib/cgi-bin and tried running it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./droptoupload.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like this is just outputs an HTML form. Looking at http://etherbox.local/cgi-bin/droptoupload.cgi should also display an upload form.&lt;br /&gt;
&lt;br /&gt;
The HEADER.shtml includes a link to this cgi.&lt;br /&gt;
&lt;br /&gt;
   sudo chmod +x droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
= HEADER.shtml =&lt;br /&gt;
Sample Header that adds javascript to:&lt;br /&gt;
* Move the README.html to the TOP of the page&lt;br /&gt;
* Includes the &amp;quot;droptoupload.cgi&amp;quot; https://gitlab.constantvzw.org/aa/etherbox/raw/master/usr/lib/cgi-bin/droptoupload.cgi&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;html&amp;quot;&amp;gt;&amp;amp;lt;script src=&amp;amp;quot;/cgi-bin/droptoupload.cgi&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
background: #38b8e9;&lt;br /&gt;
color: black;&lt;br /&gt;
}&lt;br /&gt;
a {&lt;br /&gt;
color: white;&lt;br /&gt;
}&lt;br /&gt;
#logo {&lt;br /&gt;
white-space: pre;&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
}&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;amp;quot;links&amp;amp;quot; style=&amp;amp;quot;margin-bottom: 1em&amp;amp;quot;&amp;amp;gt;LOCAL:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/&amp;amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;/&amp;amp;amp;nbsp;&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/&amp;amp;quot;&amp;amp;gt;home&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/etherdump/&amp;amp;quot;&amp;amp;gt;etherdump&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
PUBLIC:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;http://constantvzw.org/site/-The-Technogalactic-Software-Observatory-.html&amp;amp;quot;&amp;amp;gt;constant&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;https://gitlab.constantvzw.org/observatory&amp;amp;quot;&amp;amp;gt;gitlab&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
.links {&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
text-transform: uppercase;&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;script&amp;amp;gt;&lt;br /&gt;
document.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;, function () {&lt;br /&gt;
  var p = document.querySelectorAll(&amp;amp;quot;.top&amp;amp;quot;),&lt;br /&gt;
      t = document.getElementsByTagName(&amp;amp;quot;table&amp;amp;quot;)[0];&lt;br /&gt;
  for (var i=0, l=p.length; i&amp;amp;lt;l; i++) {&lt;br /&gt;
    document.body.insertBefore(p[i], t);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Better permissions with facl =&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxcommand.org/man_pages/setfacl1.html setfacl]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo addgroup pi www-data&lt;br /&gt;
&lt;br /&gt;
sudo setfacl -Rm g:www-data:rwX /home/pi&lt;br /&gt;
sudo setfacl -d -Rm g:www-data:rwX /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately, I had problems then with permissions on the .ssh folder (preventing keys to be used). To remove the fact on just this folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod g-w /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Set up etherpad =&lt;br /&gt;
&lt;br /&gt;
And the version of &amp;amp;quot;nodejs&amp;amp;quot; is now 0.10.29~dfsg-2. So let's try it with etherpad...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install npm git&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;br /&gt;
&lt;br /&gt;
cd /opt&lt;br /&gt;
sudo git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
sudo mv etherpad-lite etherpad&lt;br /&gt;
&lt;br /&gt;
# TODO: don't create home folder! ... find option&lt;br /&gt;
sudo adduser --system --home=/opt/etherpad --group etherpad&lt;br /&gt;
sudo chown -R etherpad:etherpad etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
Used password VJ.&lt;br /&gt;
&lt;br /&gt;
Create your setting file.&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo cp settings.json.template settings.json&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run etherpad for the first time as the etherpad user...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt/etherpad&lt;br /&gt;
sudo --user etherpad bin/run.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Following the first recipe on this page about [https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service deploying etherpad as a systemd service]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/etherpad.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[Unit]&lt;br /&gt;
Description=Etherpad-lite, the collaborative editor.&lt;br /&gt;
After=syslog.target network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=etherpad&lt;br /&gt;
Group=etherpad&lt;br /&gt;
WorkingDirectory=/opt/etherpad&lt;br /&gt;
ExecStart=/usr/bin/nodejs /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
After this,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service etherpad start&amp;lt;/pre&amp;gt;&lt;br /&gt;
Seems to work! Apparently it's the same as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl start etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to start on boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl enable etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= etherdump =&lt;br /&gt;
&lt;br /&gt;
System wide installation of etherdump&lt;br /&gt;
&lt;br /&gt;
Install deps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python-pip python-dev&lt;br /&gt;
sudo pip install python-dateutil jinja2 html5lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install from repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone http://murtaugh@gitlab.constantvzw.org/aa/etherdump.git&lt;br /&gt;
cd etherdump&lt;br /&gt;
sudo python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setup the folder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi&lt;br /&gt;
mkdir etherdump&lt;br /&gt;
cd etherdump&lt;br /&gt;
etherdump init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Type in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://etherbox.local:9001/&amp;lt;/pre&amp;gt;&lt;br /&gt;
And paste the API key. (Look at: http://etherbox.local/opt/etherpad/APIKEY.txt)&lt;br /&gt;
&lt;br /&gt;
=== styles.css + versions.js ===&lt;br /&gt;
&lt;br /&gt;
scp styles.css versions.js pi@etherbox.local:etherdump/lib&lt;br /&gt;
&lt;br /&gt;
The URLs of these files are options to the etherdump pull command and should match.&lt;br /&gt;
&lt;br /&gt;
=== etherdump.sh + cron ===&lt;br /&gt;
&lt;br /&gt;
Make the script that runs automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano etherdump.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
cd /home/pi/etherdump&lt;br /&gt;
etherdump pull --all --pub /home/pi/etherdump --css lib/styles.css --script lib/versions.js&lt;br /&gt;
etherdump index *.meta.json &amp;amp;gt; index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
And set it to run every 5 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
*/5 * * * * /home/pi/etherdump.sh &amp;amp;gt; /home/pi/cron.log.txt 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PATH is important. It can also be in the etherdump.sh but basically should match what you see when you &amp;amp;quot;echo $PATH&amp;amp;quot; (for the script to run in the same way as for the pi user).&lt;br /&gt;
&lt;br /&gt;
= Other software =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install emacs-nox screen pdftk pandoc texlive-latex-recommended texlive-fonts-recommended&lt;br /&gt;
sudo pip install csvkit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
* screen&lt;br /&gt;
* pandoc + latex&lt;br /&gt;
* pdftk&lt;br /&gt;
* csvkit&lt;br /&gt;
&lt;br /&gt;
What about&lt;br /&gt;
&lt;br /&gt;
* texlive-xetex texlive-luatex pandoc-citeproc etoolbox&lt;br /&gt;
&lt;br /&gt;
The current version of pandoc in this raspbian is 1.12.4.2~dfsg-1+b3 We will use latex for PDF generation (via pandoc)&lt;br /&gt;
&lt;br /&gt;
(which is way better than 1.9 of the previous raspian, and even beats the instructions for compiling 1.11.1)&lt;br /&gt;
&lt;br /&gt;
MORE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pandoc texlive-latex-recommended texlive-fonts-recommended &amp;lt;/pre&amp;gt;&lt;br /&gt;
Was able to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pandoc --from markdown hello.markdown -o hello.pdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Access point =&lt;br /&gt;
&lt;br /&gt;
Taken from [https://pzwiki.wdka.nl/mediadesign/The_Ultimate_RPi_Installation_Guide#Access_Point_with_Captive_Portal this &amp;amp;quot;ultimate&amp;amp;quot; guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install dnsmasq wireless-tools hostapd&lt;br /&gt;
&lt;br /&gt;
# the next wasn't necessary for jessie, but for completeness..&lt;br /&gt;
RPI3 broadcom chip &lt;br /&gt;
apt-get install firmware-brcm80211&lt;br /&gt;
rmmod brcmfmac&lt;br /&gt;
modprobe brcmfmac&amp;lt;/pre&amp;gt;&lt;br /&gt;
Give fixed IP to wlan0 interface, edit /etc/network/interfaces switch off the built in stuff and add (section 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;auto eth0&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
iface etho inet dhcp&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
# 1. ORIGINAL settings... use wpa_supplicant for client mode&lt;br /&gt;
#allow-hotplug wlan0&lt;br /&gt;
#iface wlan0 inet manual&lt;br /&gt;
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
#&lt;br /&gt;
#################################&lt;br /&gt;
# 2. Fixed IP address (for hotspot / hostapd)&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet static&lt;br /&gt;
address 10.9.8.7&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
#################################&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace /etc/dnsmasq.conf with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.8.10,50.9.8.254,12h&lt;br /&gt;
address=/#/10.9.8.7&lt;br /&gt;
no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/hostapd/hostapd.conf file (adjust depending on driver/hardware)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
driver=nl80211&lt;br /&gt;
ssid=WiFeels&lt;br /&gt;
hw_mode=g&lt;br /&gt;
channel=6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/default/hostapd and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DAEMON_CONF=&amp;amp;quot;/etc/hostapd/hostapd.conf&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make hostapd start at boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update-rc.d hostapd defaults&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
= Makeserver + etherpad (experimental!) =&lt;br /&gt;
&lt;br /&gt;
Ingredients&lt;br /&gt;
&lt;br /&gt;
* Etherdump's pad.html with &amp;lt;rel&amp;gt; links including LIVE EDIT URLs&lt;br /&gt;
* THIS should replace/complement makeserver's EDIT button&lt;br /&gt;
&lt;br /&gt;
Key question: Makeserver as a separate view ?! (probably)&lt;br /&gt;
&lt;br /&gt;
TRY as 2 separate things ... basically AS IS...&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi/software&lt;br /&gt;
git clone http://murtaugh@gitlab.constantvzw.org/aa/makeserver.git&lt;br /&gt;
cd makeserver&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
sudo pip install twisted jinja2&amp;lt;/pre&amp;gt;&lt;br /&gt;
BUGFIX with twisted / SSL issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip install twisted[tls]&amp;lt;/pre&amp;gt;&lt;br /&gt;
DIDN&amp;amp;quot;T FIX sudo pip install twisted==16.0.0&lt;br /&gt;
&lt;br /&gt;
Seems to work!&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* Why are the links hardcoded long form in etherdump index (fails then via makeserver based in home)?&lt;br /&gt;
&lt;br /&gt;
= Extra =&lt;br /&gt;
&lt;br /&gt;
Changed dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.10.50,10.9.10.254,12h&lt;br /&gt;
#address=/#/10.9.10.7                                                                                                           # no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND added to /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10.9.10.7 etherbox.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
and this seems to then work over the direct hotspot connection.&lt;/div&gt;</summary>
		<author><name>Max</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4236</id>
		<title>Etherbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4236"/>
		<updated>2018-01-30T11:00:59Z</updated>

		<summary type="html">&lt;p&gt;Max : /* Setup apache to serve the root with custom header + readme's */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These notes are based on a setup used by the &amp;quot;SOftware observatory&amp;quot; workshop, Constant [[Utilisateur:Michael Murtaugh|Michael Murtaugh]] ([[Discussion utilisateur:Michael Murtaugh|discussion]]) 30 janvier 2018 à 10:48 (CET)&lt;br /&gt;
&lt;br /&gt;
= Initial image + setup =&lt;br /&gt;
&lt;br /&gt;
Downloaded from https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
Based on the &amp;quot;lite&amp;quot; image (zip or torrent). As of 20 Jan 2018, this is Raspian &amp;quot;Stretch&amp;quot; lite.&lt;br /&gt;
&lt;br /&gt;
The **lite** image has no desktop / windows session.&lt;br /&gt;
&lt;br /&gt;
Based on [https://downloads.raspberrypi.org/raspbian_lite_latest.torrent 2017-04-10-raspian-jessie-lite.zip]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip -p 2017-04-10-raspbian-jessie-lite.zip | pv | sudo dd of=/dev/sdc bs=4M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could use [https://etcher.io/ Etcher.io] as well&lt;br /&gt;
&lt;br /&gt;
SSH is no longer on by default! So need to connect with a screen first time and turn this on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo raspi-config&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable ssh under connectivity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also enabled SSH by default after creating the boot SD Card, you just need to create a empty file named SSH and save it the root of your SD Card.&lt;br /&gt;
&lt;br /&gt;
Bring the rest of the software up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to find the IP address of the pi ==&lt;br /&gt;
&lt;br /&gt;
Simplest way is to connect on a wired network (plug the pi and your laptop into a router with ethernet cables), then type:&lt;br /&gt;
&lt;br /&gt;
    ping raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
And you should be able to see the IP address.&lt;br /&gt;
&lt;br /&gt;
Then you can conenct with ssh with:&lt;br /&gt;
&lt;br /&gt;
    ssh pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
or with the IP address in place of &amp;quot;raspberrypi.local&amp;quot; if you are on the wifi.&lt;br /&gt;
&lt;br /&gt;
with the default password &amp;quot;raspberry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Make it easier to login, with an ssh key ==&lt;br /&gt;
&lt;br /&gt;
Starting from your laptop (open a new Terminal session if you are connected to the pi):&lt;br /&gt;
&lt;br /&gt;
    ssh-keygen&lt;br /&gt;
&lt;br /&gt;
Choose the defaults. This generates an &amp;quot;ssh key&amp;quot; pair.&lt;br /&gt;
&lt;br /&gt;
Use the ssh-copy-id utility to send it to the pi.&lt;br /&gt;
&lt;br /&gt;
    ssh-copy-id pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
= Setup apache to serve the root with custom header + readme's =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2&lt;br /&gt;
cd /etc/apache2/sites-available&lt;br /&gt;
sudo nano 000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;    ServerAdmin webmaster@localhost&lt;br /&gt;
    # DocumentRoot /var/www/html&lt;br /&gt;
    DocumentRoot /home/pi&lt;br /&gt;
    &amp;amp;lt;Directory /home/pi&amp;amp;gt;&lt;br /&gt;
           Options Indexes FollowSymLinks&lt;br /&gt;
           AllowOverride none&lt;br /&gt;
           Require all granted&lt;br /&gt;
    &amp;amp;lt;/Directory&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
    HeaderName /home/pi/include/HEADER.shtml&lt;br /&gt;
    ReadmeName README.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: Sets the [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#headername HeaderName] and [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#readmename ReadmeName] directives (part of mod_autoindex).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== droptoupload.cgi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enmod cgi&lt;br /&gt;
sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Placed 'droptoupload.cgi' in /usr/lib/cgi-bin and tried running it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./droptoupload.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like this is just outputs an HTML form. Looking at http://etherbox.local/cgi-bin/droptoupload.cgi should also display an upload form.&lt;br /&gt;
&lt;br /&gt;
The HEADER.shtml includes a link to this cgi.&lt;br /&gt;
&lt;br /&gt;
= HEADER.shtml =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;html&amp;quot;&amp;gt;&amp;amp;lt;script src=&amp;amp;quot;/cgi-bin/droptoupload.cgi&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
background: #38b8e9;&lt;br /&gt;
color: black;&lt;br /&gt;
}&lt;br /&gt;
a {&lt;br /&gt;
color: white;&lt;br /&gt;
}&lt;br /&gt;
#logo {&lt;br /&gt;
white-space: pre;&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
}&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;amp;quot;links&amp;amp;quot; style=&amp;amp;quot;margin-bottom: 1em&amp;amp;quot;&amp;amp;gt;LOCAL:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/&amp;amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;/&amp;amp;amp;nbsp;&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/&amp;amp;quot;&amp;amp;gt;home&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/etherdump/&amp;amp;quot;&amp;amp;gt;etherdump&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
PUBLIC:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;http://constantvzw.org/site/-The-Technogalactic-Software-Observatory-.html&amp;amp;quot;&amp;amp;gt;constant&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;https://gitlab.constantvzw.org/observatory&amp;amp;quot;&amp;amp;gt;gitlab&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
.links {&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
text-transform: uppercase;&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;script&amp;amp;gt;&lt;br /&gt;
document.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;, function () {&lt;br /&gt;
  var p = document.querySelectorAll(&amp;amp;quot;.top&amp;amp;quot;),&lt;br /&gt;
      t = document.getElementsByTagName(&amp;amp;quot;table&amp;amp;quot;)[0];&lt;br /&gt;
  for (var i=0, l=p.length; i&amp;amp;lt;l; i++) {&lt;br /&gt;
    document.body.insertBefore(p[i], t);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Better permissions with facl =&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxcommand.org/man_pages/setfacl1.html setfacl]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo addgroup pi www-data&lt;br /&gt;
&lt;br /&gt;
sudo setfacl -Rm g:www-data:rwX /home/pi&lt;br /&gt;
sudo setfacl -d -Rm g:www-data:rwX /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately, I had problems then with permissions on the .ssh folder (preventing keys to be used). To remove the fact on just this folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod g-w /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Set up etherpad =&lt;br /&gt;
&lt;br /&gt;
And the version of &amp;amp;quot;nodejs&amp;amp;quot; is now 0.10.29~dfsg-2. So let's try it with etherpad...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install npm git&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;br /&gt;
&lt;br /&gt;
cd /opt&lt;br /&gt;
sudo git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
sudo mv etherpad-lite etherpad&lt;br /&gt;
&lt;br /&gt;
# TODO: don't create home folder! ... find option&lt;br /&gt;
sudo adduser --system --home=/opt/etherpad --group etherpad&lt;br /&gt;
sudo chown -R etherpad:etherpad etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
Used password VJ.&lt;br /&gt;
&lt;br /&gt;
Run etherpad for the first time as the etherpad user...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt/etherpad&lt;br /&gt;
sudo --user etherpad bin/run.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Following the first recipe on this page about [https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service deploying etherpad as a systemd service]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/etherpad.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[Unit]&lt;br /&gt;
Description=Etherpad-lite, the collaborative editor.&lt;br /&gt;
After=syslog.target network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=etherpad&lt;br /&gt;
Group=etherpad&lt;br /&gt;
WorkingDirectory=/opt/etherpad&lt;br /&gt;
ExecStart=/usr/bin/nodejs /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
After this,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service etherpad start&amp;lt;/pre&amp;gt;&lt;br /&gt;
Seems to work! Apparently it's the same as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl start etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to start on boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl enable etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
= etherdump =&lt;br /&gt;
&lt;br /&gt;
System wide installation of etherdump&lt;br /&gt;
&lt;br /&gt;
Install deps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python-pip python-dev&lt;br /&gt;
sudo pip install python-dateutil jinja2 html5lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install from repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone http://murtaugh@gitlab.constantvzw.org/aa/etherdump.git&lt;br /&gt;
cd etherdump&lt;br /&gt;
sudo python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setup the folder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi&lt;br /&gt;
mkdir etherdump&lt;br /&gt;
cd etherdump&lt;br /&gt;
etherdump init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Type in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://etherbox.local:9001/&amp;lt;/pre&amp;gt;&lt;br /&gt;
And paste the API key. (Look at: http://etherbox.local/opt/etherpad/APIKEY.txt)&lt;br /&gt;
&lt;br /&gt;
=== styles.css + versions.js ===&lt;br /&gt;
&lt;br /&gt;
scp styles.css versions.js pi@etherbox.local:etherdump/lib&lt;br /&gt;
&lt;br /&gt;
The URLs of these files are options to the etherdump pull command and should match.&lt;br /&gt;
&lt;br /&gt;
=== etherdump.sh + cron ===&lt;br /&gt;
&lt;br /&gt;
Make the script that runs automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano etherdump.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
cd /home/pi/etherdump&lt;br /&gt;
etherdump pull --all --pub /home/pi/etherdump --css lib/styles.css --script lib/versions.js&lt;br /&gt;
etherdump index *.meta.json &amp;amp;gt; index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
And set it to run every 5 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
*/5 * * * * /home/pi/etherdump.sh &amp;amp;gt; /home/pi/cron.log.txt 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PATH is important. It can also be in the etherdump.sh but basically should match what you see when you &amp;amp;quot;echo $PATH&amp;amp;quot; (for the script to run in the same way as for the pi user).&lt;br /&gt;
&lt;br /&gt;
= Other software =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install emacs-nox screen pdftk pandoc texlive-latex-recommended texlive-fonts-recommended&lt;br /&gt;
sudo pip install csvkit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
* screen&lt;br /&gt;
* pandoc + latex&lt;br /&gt;
* pdftk&lt;br /&gt;
* csvkit&lt;br /&gt;
&lt;br /&gt;
What about&lt;br /&gt;
&lt;br /&gt;
* texlive-xetex texlive-luatex pandoc-citeproc etoolbox&lt;br /&gt;
&lt;br /&gt;
The current version of pandoc in this raspbian is 1.12.4.2~dfsg-1+b3 We will use latex for PDF generation (via pandoc)&lt;br /&gt;
&lt;br /&gt;
(which is way better than 1.9 of the previous raspian, and even beats the instructions for compiling 1.11.1)&lt;br /&gt;
&lt;br /&gt;
MORE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pandoc texlive-latex-recommended texlive-fonts-recommended &amp;lt;/pre&amp;gt;&lt;br /&gt;
Was able to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pandoc --from markdown hello.markdown -o hello.pdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Access point =&lt;br /&gt;
&lt;br /&gt;
Taken from [https://pzwiki.wdka.nl/mediadesign/The_Ultimate_RPi_Installation_Guide#Access_Point_with_Captive_Portal this &amp;amp;quot;ultimate&amp;amp;quot; guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install dnsmasq wireless-tools hostapd&lt;br /&gt;
&lt;br /&gt;
# the next wasn't necessary for jessie, but for completeness..&lt;br /&gt;
RPI3 broadcom chip &lt;br /&gt;
apt-get install firmware-brcm80211&lt;br /&gt;
rmmod brcmfmac&lt;br /&gt;
modprobe brcmfmac&amp;lt;/pre&amp;gt;&lt;br /&gt;
Give fixed IP to wlan0 interface, edit /etc/network/interfaces switch off the built in stuff and add (section 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;auto eth0&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
iface etho inet dhcp&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
# 1. ORIGINAL settings... use wpa_supplicant for client mode&lt;br /&gt;
#allow-hotplug wlan0&lt;br /&gt;
#iface wlan0 inet manual&lt;br /&gt;
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
#&lt;br /&gt;
#################################&lt;br /&gt;
# 2. Fixed IP address (for hotspot / hostapd)&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet static&lt;br /&gt;
address 10.9.8.7&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
#################################&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace /etc/dnsmasq.conf with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.8.10,50.9.8.254,12h&lt;br /&gt;
address=/#/10.9.8.7&lt;br /&gt;
no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/hostapd/hostapd.conf file (adjust depending on driver/hardware)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
driver=nl80211&lt;br /&gt;
ssid=WiFeels&lt;br /&gt;
hw_mode=g&lt;br /&gt;
channel=6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/default/hostapd and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DAEMON_CONF=&amp;amp;quot;/etc/hostapd/hostapd.conf&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make hostapd start at boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update-rc.d hostapd defaults&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
= Makeserver + etherpad (experimental!) =&lt;br /&gt;
&lt;br /&gt;
Ingredients&lt;br /&gt;
&lt;br /&gt;
* Etherdump's pad.html with &amp;lt;rel&amp;gt; links including LIVE EDIT URLs&lt;br /&gt;
* THIS should replace/complement makeserver's EDIT button&lt;br /&gt;
&lt;br /&gt;
Key question: Makeserver as a separate view ?! (probably)&lt;br /&gt;
&lt;br /&gt;
TRY as 2 separate things ... basically AS IS...&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi/software&lt;br /&gt;
git clone http://murtaugh@gitlab.constantvzw.org/aa/makeserver.git&lt;br /&gt;
cd makeserver&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
sudo pip install twisted jinja2&amp;lt;/pre&amp;gt;&lt;br /&gt;
BUGFIX with twisted / SSL issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip install twisted[tls]&amp;lt;/pre&amp;gt;&lt;br /&gt;
DIDN&amp;amp;quot;T FIX sudo pip install twisted==16.0.0&lt;br /&gt;
&lt;br /&gt;
Seems to work!&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* Why are the links hardcoded long form in etherdump index (fails then via makeserver based in home)?&lt;br /&gt;
&lt;br /&gt;
= Extra =&lt;br /&gt;
&lt;br /&gt;
Changed dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.10.50,10.9.10.254,12h&lt;br /&gt;
#address=/#/10.9.10.7                                                                                                           # no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND added to /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10.9.10.7 etherbox.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
and this seems to then work over the direct hotspot connection.&lt;/div&gt;</summary>
		<author><name>Max</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4235</id>
		<title>Etherbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4235"/>
		<updated>2018-01-30T10:53:05Z</updated>

		<summary type="html">&lt;p&gt;Max : /* Setup apache to serve the root with custom header + readme's */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These notes are based on a setup used by the &amp;quot;SOftware observatory&amp;quot; workshop, Constant [[Utilisateur:Michael Murtaugh|Michael Murtaugh]] ([[Discussion utilisateur:Michael Murtaugh|discussion]]) 30 janvier 2018 à 10:48 (CET)&lt;br /&gt;
&lt;br /&gt;
= Initial image + setup =&lt;br /&gt;
&lt;br /&gt;
Downloaded from https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
Based on the &amp;quot;lite&amp;quot; image (zip or torrent). As of 20 Jan 2018, this is Raspian &amp;quot;Stretch&amp;quot; lite.&lt;br /&gt;
&lt;br /&gt;
The **lite** image has no desktop / windows session.&lt;br /&gt;
&lt;br /&gt;
Based on [https://downloads.raspberrypi.org/raspbian_lite_latest.torrent 2017-04-10-raspian-jessie-lite.zip]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip -p 2017-04-10-raspbian-jessie-lite.zip | pv | sudo dd of=/dev/sdc bs=4M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could use [https://etcher.io/ Etcher.io] as well&lt;br /&gt;
&lt;br /&gt;
SSH is no longer on by default! So need to connect with a screen first time and turn this on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo raspi-config&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable ssh under connectivity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also enabled SSH by default after creating the boot SD Card, you just need to create a empty file named SSH and save it the root of your SD Card.&lt;br /&gt;
&lt;br /&gt;
Bring the rest of the software up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== How to find the IP address of the pi ==&lt;br /&gt;
&lt;br /&gt;
Simplest way is to connect on a wired network (plug the pi and your laptop into a router with ethernet cables), then type:&lt;br /&gt;
&lt;br /&gt;
    ping raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
And you should be able to see the IP address.&lt;br /&gt;
&lt;br /&gt;
Then you can conenct with ssh with:&lt;br /&gt;
&lt;br /&gt;
    ssh pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
or with the IP address in place of &amp;quot;raspberrypi.local&amp;quot; if you are on the wifi.&lt;br /&gt;
&lt;br /&gt;
with the default password &amp;quot;raspberry&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Make it easier to login, with an ssh key ==&lt;br /&gt;
&lt;br /&gt;
Starting from your laptop (open a new Terminal session if you are connected to the pi):&lt;br /&gt;
&lt;br /&gt;
    ssh-keygen&lt;br /&gt;
&lt;br /&gt;
Choose the defaults. This generates an &amp;quot;ssh key&amp;quot; pair.&lt;br /&gt;
&lt;br /&gt;
Use the ssh-copy-id utility to send it to the pi.&lt;br /&gt;
&lt;br /&gt;
    ssh-copy-id pi@raspberrypi.local&lt;br /&gt;
&lt;br /&gt;
= Setup apache to serve the root with custom header + readme's =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2&lt;br /&gt;
cd /etc/apache2/sites-available&lt;br /&gt;
sudo nano 000-default.conf&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;    ServerAdmin webmaster@localhost&lt;br /&gt;
    # DocumentRoot /var/www/html&lt;br /&gt;
    DocumentRoot /&lt;br /&gt;
    &amp;amp;lt;Directory /&amp;amp;gt;&lt;br /&gt;
           Options Indexes FollowSymLinks&lt;br /&gt;
           AllowOverride none&lt;br /&gt;
           Require all granted&lt;br /&gt;
    &amp;amp;lt;/Directory&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
    HeaderName /home/pi/include/HEADER.shtml&lt;br /&gt;
    ReadmeName README.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: Sets the [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#headername HeaderName] and [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#readmename ReadmeName] directives (part of mod_autoindex).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== droptoupload.cgi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enmod cgi&lt;br /&gt;
sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Placed 'droptoupload.cgi' in /usr/lib/cgi-bin and tried running it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./droptoupload.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like this is just outputs an HTML form. Looking at http://etherbox.local/cgi-bin/droptoupload.cgi should also display an upload form.&lt;br /&gt;
&lt;br /&gt;
The HEADER.shtml includes a link to this cgi.&lt;br /&gt;
&lt;br /&gt;
= HEADER.shtml =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;html&amp;quot;&amp;gt;&amp;amp;lt;script src=&amp;amp;quot;/cgi-bin/droptoupload.cgi&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
background: #38b8e9;&lt;br /&gt;
color: black;&lt;br /&gt;
}&lt;br /&gt;
a {&lt;br /&gt;
color: white;&lt;br /&gt;
}&lt;br /&gt;
#logo {&lt;br /&gt;
white-space: pre;&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
}&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;amp;quot;links&amp;amp;quot; style=&amp;amp;quot;margin-bottom: 1em&amp;amp;quot;&amp;amp;gt;LOCAL:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/&amp;amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;/&amp;amp;amp;nbsp;&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/&amp;amp;quot;&amp;amp;gt;home&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/etherdump/&amp;amp;quot;&amp;amp;gt;etherdump&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
PUBLIC:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;http://constantvzw.org/site/-The-Technogalactic-Software-Observatory-.html&amp;amp;quot;&amp;amp;gt;constant&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;https://gitlab.constantvzw.org/observatory&amp;amp;quot;&amp;amp;gt;gitlab&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
.links {&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
text-transform: uppercase;&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;script&amp;amp;gt;&lt;br /&gt;
document.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;, function () {&lt;br /&gt;
  var p = document.querySelectorAll(&amp;amp;quot;.top&amp;amp;quot;),&lt;br /&gt;
      t = document.getElementsByTagName(&amp;amp;quot;table&amp;amp;quot;)[0];&lt;br /&gt;
  for (var i=0, l=p.length; i&amp;amp;lt;l; i++) {&lt;br /&gt;
    document.body.insertBefore(p[i], t);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Better permissions with facl =&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxcommand.org/man_pages/setfacl1.html setfacl]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo addgroup pi www-data&lt;br /&gt;
&lt;br /&gt;
sudo setfacl -Rm g:www-data:rwX /home/pi&lt;br /&gt;
sudo setfacl -d -Rm g:www-data:rwX /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately, I had problems then with permissions on the .ssh folder (preventing keys to be used). To remove the fact on just this folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod g-w /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Set up etherpad =&lt;br /&gt;
&lt;br /&gt;
And the version of &amp;amp;quot;nodejs&amp;amp;quot; is now 0.10.29~dfsg-2. So let's try it with etherpad...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install npm git&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;br /&gt;
&lt;br /&gt;
cd /opt&lt;br /&gt;
sudo git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
sudo mv etherpad-lite etherpad&lt;br /&gt;
&lt;br /&gt;
# TODO: don't create home folder! ... find option&lt;br /&gt;
sudo adduser --system --home=/opt/etherpad --group etherpad&lt;br /&gt;
sudo chown -R etherpad:etherpad etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
Used password VJ.&lt;br /&gt;
&lt;br /&gt;
Run etherpad for the first time as the etherpad user...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt/etherpad&lt;br /&gt;
sudo --user etherpad bin/run.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Following the first recipe on this page about [https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service deploying etherpad as a systemd service]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/etherpad.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[Unit]&lt;br /&gt;
Description=Etherpad-lite, the collaborative editor.&lt;br /&gt;
After=syslog.target network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=etherpad&lt;br /&gt;
Group=etherpad&lt;br /&gt;
WorkingDirectory=/opt/etherpad&lt;br /&gt;
ExecStart=/usr/bin/nodejs /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
After this,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service etherpad start&amp;lt;/pre&amp;gt;&lt;br /&gt;
Seems to work! Apparently it's the same as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl start etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to start on boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl enable etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
= etherdump =&lt;br /&gt;
&lt;br /&gt;
System wide installation of etherdump&lt;br /&gt;
&lt;br /&gt;
Install deps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python-pip python-dev&lt;br /&gt;
sudo pip install python-dateutil jinja2 html5lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install from repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone http://murtaugh@gitlab.constantvzw.org/aa/etherdump.git&lt;br /&gt;
cd etherdump&lt;br /&gt;
sudo python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setup the folder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi&lt;br /&gt;
mkdir etherdump&lt;br /&gt;
cd etherdump&lt;br /&gt;
etherdump init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Type in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://etherbox.local:9001/&amp;lt;/pre&amp;gt;&lt;br /&gt;
And paste the API key. (Look at: http://etherbox.local/opt/etherpad/APIKEY.txt)&lt;br /&gt;
&lt;br /&gt;
=== styles.css + versions.js ===&lt;br /&gt;
&lt;br /&gt;
scp styles.css versions.js pi@etherbox.local:etherdump/lib&lt;br /&gt;
&lt;br /&gt;
The URLs of these files are options to the etherdump pull command and should match.&lt;br /&gt;
&lt;br /&gt;
=== etherdump.sh + cron ===&lt;br /&gt;
&lt;br /&gt;
Make the script that runs automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano etherdump.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
cd /home/pi/etherdump&lt;br /&gt;
etherdump pull --all --pub /home/pi/etherdump --css lib/styles.css --script lib/versions.js&lt;br /&gt;
etherdump index *.meta.json &amp;amp;gt; index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
And set it to run every 5 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
*/5 * * * * /home/pi/etherdump.sh &amp;amp;gt; /home/pi/cron.log.txt 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PATH is important. It can also be in the etherdump.sh but basically should match what you see when you &amp;amp;quot;echo $PATH&amp;amp;quot; (for the script to run in the same way as for the pi user).&lt;br /&gt;
&lt;br /&gt;
= Other software =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install emacs-nox screen pdftk pandoc texlive-latex-recommended texlive-fonts-recommended&lt;br /&gt;
sudo pip install csvkit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
* screen&lt;br /&gt;
* pandoc + latex&lt;br /&gt;
* pdftk&lt;br /&gt;
* csvkit&lt;br /&gt;
&lt;br /&gt;
What about&lt;br /&gt;
&lt;br /&gt;
* texlive-xetex texlive-luatex pandoc-citeproc etoolbox&lt;br /&gt;
&lt;br /&gt;
The current version of pandoc in this raspbian is 1.12.4.2~dfsg-1+b3 We will use latex for PDF generation (via pandoc)&lt;br /&gt;
&lt;br /&gt;
(which is way better than 1.9 of the previous raspian, and even beats the instructions for compiling 1.11.1)&lt;br /&gt;
&lt;br /&gt;
MORE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pandoc texlive-latex-recommended texlive-fonts-recommended &amp;lt;/pre&amp;gt;&lt;br /&gt;
Was able to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pandoc --from markdown hello.markdown -o hello.pdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Access point =&lt;br /&gt;
&lt;br /&gt;
Taken from [https://pzwiki.wdka.nl/mediadesign/The_Ultimate_RPi_Installation_Guide#Access_Point_with_Captive_Portal this &amp;amp;quot;ultimate&amp;amp;quot; guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install dnsmasq wireless-tools hostapd&lt;br /&gt;
&lt;br /&gt;
# the next wasn't necessary for jessie, but for completeness..&lt;br /&gt;
RPI3 broadcom chip &lt;br /&gt;
apt-get install firmware-brcm80211&lt;br /&gt;
rmmod brcmfmac&lt;br /&gt;
modprobe brcmfmac&amp;lt;/pre&amp;gt;&lt;br /&gt;
Give fixed IP to wlan0 interface, edit /etc/network/interfaces switch off the built in stuff and add (section 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;auto eth0&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
iface etho inet dhcp&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
# 1. ORIGINAL settings... use wpa_supplicant for client mode&lt;br /&gt;
#allow-hotplug wlan0&lt;br /&gt;
#iface wlan0 inet manual&lt;br /&gt;
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
#&lt;br /&gt;
#################################&lt;br /&gt;
# 2. Fixed IP address (for hotspot / hostapd)&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet static&lt;br /&gt;
address 10.9.8.7&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
#################################&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace /etc/dnsmasq.conf with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.8.10,50.9.8.254,12h&lt;br /&gt;
address=/#/10.9.8.7&lt;br /&gt;
no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/hostapd/hostapd.conf file (adjust depending on driver/hardware)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
driver=nl80211&lt;br /&gt;
ssid=WiFeels&lt;br /&gt;
hw_mode=g&lt;br /&gt;
channel=6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/default/hostapd and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DAEMON_CONF=&amp;amp;quot;/etc/hostapd/hostapd.conf&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make hostapd start at boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update-rc.d hostapd defaults&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
= Makeserver + etherpad (experimental!) =&lt;br /&gt;
&lt;br /&gt;
Ingredients&lt;br /&gt;
&lt;br /&gt;
* Etherdump's pad.html with &amp;lt;rel&amp;gt; links including LIVE EDIT URLs&lt;br /&gt;
* THIS should replace/complement makeserver's EDIT button&lt;br /&gt;
&lt;br /&gt;
Key question: Makeserver as a separate view ?! (probably)&lt;br /&gt;
&lt;br /&gt;
TRY as 2 separate things ... basically AS IS...&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi/software&lt;br /&gt;
git clone http://murtaugh@gitlab.constantvzw.org/aa/makeserver.git&lt;br /&gt;
cd makeserver&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
sudo pip install twisted jinja2&amp;lt;/pre&amp;gt;&lt;br /&gt;
BUGFIX with twisted / SSL issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip install twisted[tls]&amp;lt;/pre&amp;gt;&lt;br /&gt;
DIDN&amp;amp;quot;T FIX sudo pip install twisted==16.0.0&lt;br /&gt;
&lt;br /&gt;
Seems to work!&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* Why are the links hardcoded long form in etherdump index (fails then via makeserver based in home)?&lt;br /&gt;
&lt;br /&gt;
= Extra =&lt;br /&gt;
&lt;br /&gt;
Changed dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.10.50,10.9.10.254,12h&lt;br /&gt;
#address=/#/10.9.10.7                                                                                                           # no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND added to /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10.9.10.7 etherbox.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
and this seems to then work over the direct hotspot connection.&lt;/div&gt;</summary>
		<author><name>Max</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4228</id>
		<title>Etherbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4228"/>
		<updated>2018-01-30T10:05:06Z</updated>

		<summary type="html">&lt;p&gt;Max : /* Initial image + setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These notes are based on a setup used by the &amp;quot;SOftware observatory&amp;quot; workshop, Constant [[Utilisateur:Michael Murtaugh|Michael Murtaugh]] ([[Discussion utilisateur:Michael Murtaugh|discussion]]) 30 janvier 2018 à 10:48 (CET)&lt;br /&gt;
&lt;br /&gt;
= Initial image + setup =&lt;br /&gt;
&lt;br /&gt;
Downloaded from https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
Based on the &amp;quot;lite&amp;quot; image (zip or torrent). As of 20 Jan 2018, this is Raspian &amp;quot;Stretch&amp;quot; lite.&lt;br /&gt;
&lt;br /&gt;
Based on [https://downloads.raspberrypi.org/raspbian_lite_latest.torrent 2017-04-10-raspian-jessie-lite.zip]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip -p 2017-04-10-raspbian-jessie-lite.zip | pv | sudo dd of=/dev/sdc bs=4M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could use [https://etcher.io/ Etcher.io] as well&lt;br /&gt;
&lt;br /&gt;
SSH is no longer on by default! So need to connect with a screen first time and turn this on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo raspi-config&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable ssh under connectivity.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You can also enabled SSH by default after creating the boot SD Card, you just need to create a empty file named SSH and save it the root of your SD Card.&lt;br /&gt;
&lt;br /&gt;
Bring the rest of the software up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setup apache to serve the root with custom header + readme's =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2&lt;br /&gt;
cd /etc/apache2/sites-available&lt;br /&gt;
sudo nano 000-default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;    ServerAdmin webmaster@localhost&lt;br /&gt;
    # DocumentRoot /var/www/html&lt;br /&gt;
    DocumentRoot /&lt;br /&gt;
    &amp;amp;lt;Directory /&amp;amp;gt;&lt;br /&gt;
           Options Indexes FollowSymLinks&lt;br /&gt;
           AllowOverride none&lt;br /&gt;
           Require all granted&lt;br /&gt;
    &amp;amp;lt;/Directory&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
    HeaderName /home/pi/include/HEADER.shtml&lt;br /&gt;
    ReadmeName README.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: Sets the [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#headername HeaderName] and [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#readmename ReadmeName] directives (part of mod_autoindex).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== droptoupload.cgi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enmod cgi&lt;br /&gt;
sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Placed 'droptoupload.cgi' in /usr/lib/cgi-bin and tried running it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./droptoupload.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like this is just outputs an HTML form. Looking at http://etherbox.local/cgi-bin/droptoupload.cgi should also display an upload form.&lt;br /&gt;
&lt;br /&gt;
The HEADER.shtml includes a link to this cgi.&lt;br /&gt;
&lt;br /&gt;
= HEADER.shtml =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;html&amp;quot;&amp;gt;&amp;amp;lt;script src=&amp;amp;quot;/cgi-bin/droptoupload.cgi&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
background: #38b8e9;&lt;br /&gt;
color: black;&lt;br /&gt;
}&lt;br /&gt;
a {&lt;br /&gt;
color: white;&lt;br /&gt;
}&lt;br /&gt;
#logo {&lt;br /&gt;
white-space: pre;&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
}&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;amp;quot;links&amp;amp;quot; style=&amp;amp;quot;margin-bottom: 1em&amp;amp;quot;&amp;amp;gt;LOCAL:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/&amp;amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;/&amp;amp;amp;nbsp;&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/&amp;amp;quot;&amp;amp;gt;home&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/etherdump/&amp;amp;quot;&amp;amp;gt;etherdump&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
PUBLIC:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;http://constantvzw.org/site/-The-Technogalactic-Software-Observatory-.html&amp;amp;quot;&amp;amp;gt;constant&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;https://gitlab.constantvzw.org/observatory&amp;amp;quot;&amp;amp;gt;gitlab&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
.links {&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
text-transform: uppercase;&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;script&amp;amp;gt;&lt;br /&gt;
document.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;, function () {&lt;br /&gt;
  var p = document.querySelectorAll(&amp;amp;quot;.top&amp;amp;quot;),&lt;br /&gt;
      t = document.getElementsByTagName(&amp;amp;quot;table&amp;amp;quot;)[0];&lt;br /&gt;
  for (var i=0, l=p.length; i&amp;amp;lt;l; i++) {&lt;br /&gt;
    document.body.insertBefore(p[i], t);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Better permissions with facl =&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxcommand.org/man_pages/setfacl1.html setfacl]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo addgroup pi www-data&lt;br /&gt;
&lt;br /&gt;
sudo setfacl -Rm g:www-data:rwX /home/pi&lt;br /&gt;
sudo setfacl -d -Rm g:www-data:rwX /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately, I had problems then with permissions on the .ssh folder (preventing keys to be used). To remove the fact on just this folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod g-w /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Set up etherpad =&lt;br /&gt;
&lt;br /&gt;
And the version of &amp;amp;quot;nodejs&amp;amp;quot; is now 0.10.29~dfsg-2. So let's try it with etherpad...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install npm git&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;br /&gt;
&lt;br /&gt;
cd /opt&lt;br /&gt;
sudo git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
sudo mv etherpad-lite etherpad&lt;br /&gt;
&lt;br /&gt;
# TODO: don't create home folder! ... find option&lt;br /&gt;
sudo adduser --system --home=/opt/etherpad --group etherpad&lt;br /&gt;
sudo chown -R etherpad:etherpad etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
Used password VJ.&lt;br /&gt;
&lt;br /&gt;
Run etherpad for the first time as the etherpad user...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt/etherpad&lt;br /&gt;
sudo --user etherpad bin/run.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Following the first recipe on this page about [https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service deploying etherpad as a systemd service]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/etherpad.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[Unit]&lt;br /&gt;
Description=Etherpad-lite, the collaborative editor.&lt;br /&gt;
After=syslog.target network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=etherpad&lt;br /&gt;
Group=etherpad&lt;br /&gt;
WorkingDirectory=/opt/etherpad&lt;br /&gt;
ExecStart=/usr/bin/nodejs /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
After this,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service etherpad start&amp;lt;/pre&amp;gt;&lt;br /&gt;
Seems to work! Apparently it's the same as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl start etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to start on boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl enable etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
= etherdump =&lt;br /&gt;
&lt;br /&gt;
System wide installation of etherdump&lt;br /&gt;
&lt;br /&gt;
Install deps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python-pip python-dev&lt;br /&gt;
sudo pip install python-dateutil jinja2 html5lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install from repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone http://murtaugh@gitlab.constantvzw.org/aa/etherdump.git&lt;br /&gt;
cd etherdump&lt;br /&gt;
sudo python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setup the folder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi&lt;br /&gt;
mkdir etherdump&lt;br /&gt;
cd etherdump&lt;br /&gt;
etherdump init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Type in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://etherbox.local:9001/&amp;lt;/pre&amp;gt;&lt;br /&gt;
And paste the API key. (Look at: http://etherbox.local/opt/etherpad/APIKEY.txt)&lt;br /&gt;
&lt;br /&gt;
=== styles.css + versions.js ===&lt;br /&gt;
&lt;br /&gt;
scp styles.css versions.js pi@etherbox.local:etherdump/lib&lt;br /&gt;
&lt;br /&gt;
The URLs of these files are options to the etherdump pull command and should match.&lt;br /&gt;
&lt;br /&gt;
=== etherdump.sh + cron ===&lt;br /&gt;
&lt;br /&gt;
Make the script that runs automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano etherdump.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
cd /home/pi/etherdump&lt;br /&gt;
etherdump pull --all --pub /home/pi/etherdump --css lib/styles.css --script lib/versions.js&lt;br /&gt;
etherdump index *.meta.json &amp;amp;gt; index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
And set it to run every 5 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
*/5 * * * * /home/pi/etherdump.sh &amp;amp;gt; /home/pi/cron.log.txt 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PATH is important. It can also be in the etherdump.sh but basically should match what you see when you &amp;amp;quot;echo $PATH&amp;amp;quot; (for the script to run in the same way as for the pi user).&lt;br /&gt;
&lt;br /&gt;
= Other software =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install emacs-nox screen pdftk pandoc texlive-latex-recommended texlive-fonts-recommended&lt;br /&gt;
sudo pip install csvkit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
* screen&lt;br /&gt;
* pandoc + latex&lt;br /&gt;
* pdftk&lt;br /&gt;
* csvkit&lt;br /&gt;
&lt;br /&gt;
What about&lt;br /&gt;
&lt;br /&gt;
* texlive-xetex texlive-luatex pandoc-citeproc etoolbox&lt;br /&gt;
&lt;br /&gt;
The current version of pandoc in this raspbian is 1.12.4.2~dfsg-1+b3 We will use latex for PDF generation (via pandoc)&lt;br /&gt;
&lt;br /&gt;
(which is way better than 1.9 of the previous raspian, and even beats the instructions for compiling 1.11.1)&lt;br /&gt;
&lt;br /&gt;
MORE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pandoc texlive-latex-recommended texlive-fonts-recommended &amp;lt;/pre&amp;gt;&lt;br /&gt;
Was able to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pandoc --from markdown hello.markdown -o hello.pdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Access point =&lt;br /&gt;
&lt;br /&gt;
Taken from [https://pzwiki.wdka.nl/mediadesign/The_Ultimate_RPi_Installation_Guide#Access_Point_with_Captive_Portal this &amp;amp;quot;ultimate&amp;amp;quot; guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install dnsmasq wireless-tools hostapd&lt;br /&gt;
&lt;br /&gt;
# the next wasn't necessary for jessie, but for completeness..&lt;br /&gt;
RPI3 broadcom chip &lt;br /&gt;
apt-get install firmware-brcm80211&lt;br /&gt;
rmmod brcmfmac&lt;br /&gt;
modprobe brcmfmac&amp;lt;/pre&amp;gt;&lt;br /&gt;
Give fixed IP to wlan0 interface, edit /etc/network/interfaces switch off the built in stuff and add (section 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;auto eth0&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
iface etho inet dhcp&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
# 1. ORIGINAL settings... use wpa_supplicant for client mode&lt;br /&gt;
#allow-hotplug wlan0&lt;br /&gt;
#iface wlan0 inet manual&lt;br /&gt;
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
#&lt;br /&gt;
#################################&lt;br /&gt;
# 2. Fixed IP address (for hotspot / hostapd)&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet static&lt;br /&gt;
address 10.9.8.7&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
#################################&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace /etc/dnsmasq.conf with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.8.10,50.9.8.254,12h&lt;br /&gt;
address=/#/10.9.8.7&lt;br /&gt;
no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/hostapd/hostapd.conf file (adjust depending on driver/hardware)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
driver=nl80211&lt;br /&gt;
ssid=WiFeels&lt;br /&gt;
hw_mode=g&lt;br /&gt;
channel=6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/default/hostapd and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DAEMON_CONF=&amp;amp;quot;/etc/hostapd/hostapd.conf&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make hostapd start at boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update-rc.d hostapd defaults&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
= Makeserver + etherpad (experimental!) =&lt;br /&gt;
&lt;br /&gt;
Ingredients&lt;br /&gt;
&lt;br /&gt;
* Etherdump's pad.html with &amp;lt;rel&amp;gt; links including LIVE EDIT URLs&lt;br /&gt;
* THIS should replace/complement makeserver's EDIT button&lt;br /&gt;
&lt;br /&gt;
Key question: Makeserver as a separate view ?! (probably)&lt;br /&gt;
&lt;br /&gt;
TRY as 2 separate things ... basically AS IS...&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi/software&lt;br /&gt;
git clone http://murtaugh@gitlab.constantvzw.org/aa/makeserver.git&lt;br /&gt;
cd makeserver&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
sudo pip install twisted jinja2&amp;lt;/pre&amp;gt;&lt;br /&gt;
BUGFIX with twisted / SSL issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip install twisted[tls]&amp;lt;/pre&amp;gt;&lt;br /&gt;
DIDN&amp;amp;quot;T FIX sudo pip install twisted==16.0.0&lt;br /&gt;
&lt;br /&gt;
Seems to work!&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* Why are the links hardcoded long form in etherdump index (fails then via makeserver based in home)?&lt;br /&gt;
&lt;br /&gt;
= Extra =&lt;br /&gt;
&lt;br /&gt;
Changed dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.10.50,10.9.10.254,12h&lt;br /&gt;
#address=/#/10.9.10.7                                                                                                           # no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND added to /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10.9.10.7 etherbox.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
and this seems to then work over the direct hotspot connection.&lt;/div&gt;</summary>
		<author><name>Max</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4227</id>
		<title>Etherbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4227"/>
		<updated>2018-01-30T09:59:07Z</updated>

		<summary type="html">&lt;p&gt;Max : /* Initial image + setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These notes are based on a setup used by the &amp;quot;SOftware observatory&amp;quot; workshop, Constant [[Utilisateur:Michael Murtaugh|Michael Murtaugh]] ([[Discussion utilisateur:Michael Murtaugh|discussion]]) 30 janvier 2018 à 10:48 (CET)&lt;br /&gt;
&lt;br /&gt;
= Initial image + setup =&lt;br /&gt;
&lt;br /&gt;
Downloaded from https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
Based on the &amp;quot;lite&amp;quot; image (zip or torrent). As of 20 Jan 2018, this is Raspian &amp;quot;Stretch&amp;quot; lite.&lt;br /&gt;
&lt;br /&gt;
Based on [https://downloads.raspberrypi.org/raspbian_lite_latest.torrent 2017-04-10-raspian-jessie-lite.zip]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip -p 2017-04-10-raspbian-jessie-lite.zip | pv | sudo dd of=/dev/sdc bs=4M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could use [https://etcher.io/ Etcher.io] as well&lt;br /&gt;
&lt;br /&gt;
SSH is no longer on by default! So need to connect with a screen first time and turn this on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo raspi-config&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable ssh under connectivity.&lt;br /&gt;
&lt;br /&gt;
You can also enabled SSH by default after creating the boot SD Card, you just need to create a empty file named SSH and save it the root of your SD Card.&lt;br /&gt;
&lt;br /&gt;
Bring the rest of the software up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setup apache to serve the root with custom header + readme's =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2&lt;br /&gt;
cd /etc/apache2/sites-available&lt;br /&gt;
sudo nano 000-default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;    ServerAdmin webmaster@localhost&lt;br /&gt;
    # DocumentRoot /var/www/html&lt;br /&gt;
    DocumentRoot /&lt;br /&gt;
    &amp;amp;lt;Directory /&amp;amp;gt;&lt;br /&gt;
           Options Indexes FollowSymLinks&lt;br /&gt;
           AllowOverride none&lt;br /&gt;
           Require all granted&lt;br /&gt;
    &amp;amp;lt;/Directory&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
    HeaderName /home/pi/include/HEADER.shtml&lt;br /&gt;
    ReadmeName README.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: Sets the [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#headername HeaderName] and [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#readmename ReadmeName] directives (part of mod_autoindex).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== droptoupload.cgi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enmod cgi&lt;br /&gt;
sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Placed 'droptoupload.cgi' in /usr/lib/cgi-bin and tried running it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./droptoupload.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like this is just outputs an HTML form. Looking at http://etherbox.local/cgi-bin/droptoupload.cgi should also display an upload form.&lt;br /&gt;
&lt;br /&gt;
The HEADER.shtml includes a link to this cgi.&lt;br /&gt;
&lt;br /&gt;
= HEADER.shtml =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;html&amp;quot;&amp;gt;&amp;amp;lt;script src=&amp;amp;quot;/cgi-bin/droptoupload.cgi&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
background: #38b8e9;&lt;br /&gt;
color: black;&lt;br /&gt;
}&lt;br /&gt;
a {&lt;br /&gt;
color: white;&lt;br /&gt;
}&lt;br /&gt;
#logo {&lt;br /&gt;
white-space: pre;&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
}&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;amp;quot;links&amp;amp;quot; style=&amp;amp;quot;margin-bottom: 1em&amp;amp;quot;&amp;amp;gt;LOCAL:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/&amp;amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;/&amp;amp;amp;nbsp;&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/&amp;amp;quot;&amp;amp;gt;home&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/etherdump/&amp;amp;quot;&amp;amp;gt;etherdump&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
PUBLIC:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;http://constantvzw.org/site/-The-Technogalactic-Software-Observatory-.html&amp;amp;quot;&amp;amp;gt;constant&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;https://gitlab.constantvzw.org/observatory&amp;amp;quot;&amp;amp;gt;gitlab&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
.links {&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
text-transform: uppercase;&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;script&amp;amp;gt;&lt;br /&gt;
document.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;, function () {&lt;br /&gt;
  var p = document.querySelectorAll(&amp;amp;quot;.top&amp;amp;quot;),&lt;br /&gt;
      t = document.getElementsByTagName(&amp;amp;quot;table&amp;amp;quot;)[0];&lt;br /&gt;
  for (var i=0, l=p.length; i&amp;amp;lt;l; i++) {&lt;br /&gt;
    document.body.insertBefore(p[i], t);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Better permissions with facl =&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxcommand.org/man_pages/setfacl1.html setfacl]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo addgroup pi www-data&lt;br /&gt;
&lt;br /&gt;
sudo setfacl -Rm g:www-data:rwX /home/pi&lt;br /&gt;
sudo setfacl -d -Rm g:www-data:rwX /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately, I had problems then with permissions on the .ssh folder (preventing keys to be used). To remove the fact on just this folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod g-w /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Set up etherpad =&lt;br /&gt;
&lt;br /&gt;
And the version of &amp;amp;quot;nodejs&amp;amp;quot; is now 0.10.29~dfsg-2. So let's try it with etherpad...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install npm git&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;br /&gt;
&lt;br /&gt;
cd /opt&lt;br /&gt;
sudo git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
sudo mv etherpad-lite etherpad&lt;br /&gt;
&lt;br /&gt;
# TODO: don't create home folder! ... find option&lt;br /&gt;
sudo adduser --system --home=/opt/etherpad --group etherpad&lt;br /&gt;
sudo chown -R etherpad:etherpad etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
Used password VJ.&lt;br /&gt;
&lt;br /&gt;
Run etherpad for the first time as the etherpad user...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt/etherpad&lt;br /&gt;
sudo --user etherpad bin/run.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Following the first recipe on this page about [https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service deploying etherpad as a systemd service]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/etherpad.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[Unit]&lt;br /&gt;
Description=Etherpad-lite, the collaborative editor.&lt;br /&gt;
After=syslog.target network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=etherpad&lt;br /&gt;
Group=etherpad&lt;br /&gt;
WorkingDirectory=/opt/etherpad&lt;br /&gt;
ExecStart=/usr/bin/nodejs /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
After this,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service etherpad start&amp;lt;/pre&amp;gt;&lt;br /&gt;
Seems to work! Apparently it's the same as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl start etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to start on boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl enable etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
= etherdump =&lt;br /&gt;
&lt;br /&gt;
System wide installation of etherdump&lt;br /&gt;
&lt;br /&gt;
Install deps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python-pip python-dev&lt;br /&gt;
sudo pip install python-dateutil jinja2 html5lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install from repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone http://murtaugh@gitlab.constantvzw.org/aa/etherdump.git&lt;br /&gt;
cd etherdump&lt;br /&gt;
sudo python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setup the folder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi&lt;br /&gt;
mkdir etherdump&lt;br /&gt;
cd etherdump&lt;br /&gt;
etherdump init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Type in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://etherbox.local:9001/&amp;lt;/pre&amp;gt;&lt;br /&gt;
And paste the API key. (Look at: http://etherbox.local/opt/etherpad/APIKEY.txt)&lt;br /&gt;
&lt;br /&gt;
=== styles.css + versions.js ===&lt;br /&gt;
&lt;br /&gt;
scp styles.css versions.js pi@etherbox.local:etherdump/lib&lt;br /&gt;
&lt;br /&gt;
The URLs of these files are options to the etherdump pull command and should match.&lt;br /&gt;
&lt;br /&gt;
=== etherdump.sh + cron ===&lt;br /&gt;
&lt;br /&gt;
Make the script that runs automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano etherdump.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
cd /home/pi/etherdump&lt;br /&gt;
etherdump pull --all --pub /home/pi/etherdump --css lib/styles.css --script lib/versions.js&lt;br /&gt;
etherdump index *.meta.json &amp;amp;gt; index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
And set it to run every 5 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
*/5 * * * * /home/pi/etherdump.sh &amp;amp;gt; /home/pi/cron.log.txt 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PATH is important. It can also be in the etherdump.sh but basically should match what you see when you &amp;amp;quot;echo $PATH&amp;amp;quot; (for the script to run in the same way as for the pi user).&lt;br /&gt;
&lt;br /&gt;
= Other software =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install emacs-nox screen pdftk pandoc texlive-latex-recommended texlive-fonts-recommended&lt;br /&gt;
sudo pip install csvkit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
* screen&lt;br /&gt;
* pandoc + latex&lt;br /&gt;
* pdftk&lt;br /&gt;
* csvkit&lt;br /&gt;
&lt;br /&gt;
What about&lt;br /&gt;
&lt;br /&gt;
* texlive-xetex texlive-luatex pandoc-citeproc etoolbox&lt;br /&gt;
&lt;br /&gt;
The current version of pandoc in this raspbian is 1.12.4.2~dfsg-1+b3 We will use latex for PDF generation (via pandoc)&lt;br /&gt;
&lt;br /&gt;
(which is way better than 1.9 of the previous raspian, and even beats the instructions for compiling 1.11.1)&lt;br /&gt;
&lt;br /&gt;
MORE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pandoc texlive-latex-recommended texlive-fonts-recommended &amp;lt;/pre&amp;gt;&lt;br /&gt;
Was able to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pandoc --from markdown hello.markdown -o hello.pdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Access point =&lt;br /&gt;
&lt;br /&gt;
Taken from [https://pzwiki.wdka.nl/mediadesign/The_Ultimate_RPi_Installation_Guide#Access_Point_with_Captive_Portal this &amp;amp;quot;ultimate&amp;amp;quot; guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install dnsmasq wireless-tools hostapd&lt;br /&gt;
&lt;br /&gt;
# the next wasn't necessary for jessie, but for completeness..&lt;br /&gt;
RPI3 broadcom chip &lt;br /&gt;
apt-get install firmware-brcm80211&lt;br /&gt;
rmmod brcmfmac&lt;br /&gt;
modprobe brcmfmac&amp;lt;/pre&amp;gt;&lt;br /&gt;
Give fixed IP to wlan0 interface, edit /etc/network/interfaces switch off the built in stuff and add (section 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;auto eth0&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
iface etho inet dhcp&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
# 1. ORIGINAL settings... use wpa_supplicant for client mode&lt;br /&gt;
#allow-hotplug wlan0&lt;br /&gt;
#iface wlan0 inet manual&lt;br /&gt;
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
#&lt;br /&gt;
#################################&lt;br /&gt;
# 2. Fixed IP address (for hotspot / hostapd)&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet static&lt;br /&gt;
address 10.9.8.7&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
#################################&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace /etc/dnsmasq.conf with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.8.10,50.9.8.254,12h&lt;br /&gt;
address=/#/10.9.8.7&lt;br /&gt;
no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/hostapd/hostapd.conf file (adjust depending on driver/hardware)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
driver=nl80211&lt;br /&gt;
ssid=WiFeels&lt;br /&gt;
hw_mode=g&lt;br /&gt;
channel=6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/default/hostapd and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DAEMON_CONF=&amp;amp;quot;/etc/hostapd/hostapd.conf&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make hostapd start at boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update-rc.d hostapd defaults&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
= Makeserver + etherpad (experimental!) =&lt;br /&gt;
&lt;br /&gt;
Ingredients&lt;br /&gt;
&lt;br /&gt;
* Etherdump's pad.html with &amp;lt;rel&amp;gt; links including LIVE EDIT URLs&lt;br /&gt;
* THIS should replace/complement makeserver's EDIT button&lt;br /&gt;
&lt;br /&gt;
Key question: Makeserver as a separate view ?! (probably)&lt;br /&gt;
&lt;br /&gt;
TRY as 2 separate things ... basically AS IS...&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi/software&lt;br /&gt;
git clone http://murtaugh@gitlab.constantvzw.org/aa/makeserver.git&lt;br /&gt;
cd makeserver&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
sudo pip install twisted jinja2&amp;lt;/pre&amp;gt;&lt;br /&gt;
BUGFIX with twisted / SSL issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip install twisted[tls]&amp;lt;/pre&amp;gt;&lt;br /&gt;
DIDN&amp;amp;quot;T FIX sudo pip install twisted==16.0.0&lt;br /&gt;
&lt;br /&gt;
Seems to work!&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* Why are the links hardcoded long form in etherdump index (fails then via makeserver based in home)?&lt;br /&gt;
&lt;br /&gt;
= Extra =&lt;br /&gt;
&lt;br /&gt;
Changed dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.10.50,10.9.10.254,12h&lt;br /&gt;
#address=/#/10.9.10.7                                                                                                           # no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND added to /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10.9.10.7 etherbox.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
and this seems to then work over the direct hotspot connection.&lt;/div&gt;</summary>
		<author><name>Max</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4226</id>
		<title>Etherbox</title>
		<link rel="alternate" type="text/html" href="https://wiki.erg.be/mw/index.php?title=Etherbox&amp;diff=4226"/>
		<updated>2018-01-30T09:54:41Z</updated>

		<summary type="html">&lt;p&gt;Max : /* Initial image + setup */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;These notes are based on a setup used by the &amp;quot;SOftware observatory&amp;quot; workshop, Constant [[Utilisateur:Michael Murtaugh|Michael Murtaugh]] ([[Discussion utilisateur:Michael Murtaugh|discussion]]) 30 janvier 2018 à 10:48 (CET)&lt;br /&gt;
&lt;br /&gt;
= Initial image + setup =&lt;br /&gt;
&lt;br /&gt;
Downloaded from https://www.raspberrypi.org/downloads/raspbian/&lt;br /&gt;
&lt;br /&gt;
Based on the &amp;quot;lite&amp;quot; image (zip or torrent). As of 20 Jan 2018, this is Raspian &amp;quot;Stretch&amp;quot; lite.&lt;br /&gt;
&lt;br /&gt;
Based on [https://downloads.raspberrypi.org/raspbian_lite_latest.torrent 2017-04-10-raspian-jessie-lite.zip]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;unzip -p 2017-04-10-raspbian-jessie-lite.zip | pv | sudo dd of=/dev/sdc bs=4M&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You could use [https://etcher.io/ Etcher.io] as well&lt;br /&gt;
&lt;br /&gt;
SSH is no longer on by default! So need to connect with a screen first time and turn this on.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo raspi-config&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enable ssh under connectivity.&lt;br /&gt;
&lt;br /&gt;
Bring the rest of the software up to date.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get update&lt;br /&gt;
sudo apt-get upgrade&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Setup apache to serve the root with custom header + readme's =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install apache2&lt;br /&gt;
cd /etc/apache2/sites-available&lt;br /&gt;
sudo nano 000-default&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;    ServerAdmin webmaster@localhost&lt;br /&gt;
    # DocumentRoot /var/www/html&lt;br /&gt;
    DocumentRoot /&lt;br /&gt;
    &amp;amp;lt;Directory /&amp;amp;gt;&lt;br /&gt;
           Options Indexes FollowSymLinks&lt;br /&gt;
           AllowOverride none&lt;br /&gt;
           Require all granted&lt;br /&gt;
    &amp;amp;lt;/Directory&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
    HeaderName /home/pi/include/HEADER.shtml&lt;br /&gt;
    ReadmeName README.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
NB: Sets the [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#headername HeaderName] and [https://httpd.apache.org/docs/current/mod/mod_autoindex.html#readmename ReadmeName] directives (part of mod_autoindex).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service apache2 reload&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== droptoupload.cgi ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo a2enmod cgi&lt;br /&gt;
sudo service apache2 restart&amp;lt;/pre&amp;gt;&lt;br /&gt;
Placed 'droptoupload.cgi' in /usr/lib/cgi-bin and tried running it with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;./droptoupload.cgi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Like this is just outputs an HTML form. Looking at http://etherbox.local/cgi-bin/droptoupload.cgi should also display an upload form.&lt;br /&gt;
&lt;br /&gt;
The HEADER.shtml includes a link to this cgi.&lt;br /&gt;
&lt;br /&gt;
= HEADER.shtml =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;html&amp;quot;&amp;gt;&amp;amp;lt;script src=&amp;amp;quot;/cgi-bin/droptoupload.cgi&amp;amp;quot;&amp;amp;gt;&amp;amp;lt;/script&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
body {&lt;br /&gt;
background: #38b8e9;&lt;br /&gt;
color: black;&lt;br /&gt;
}&lt;br /&gt;
a {&lt;br /&gt;
color: white;&lt;br /&gt;
}&lt;br /&gt;
#logo {&lt;br /&gt;
white-space: pre;&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
}&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;div class=&amp;amp;quot;links&amp;amp;quot; style=&amp;amp;quot;margin-bottom: 1em&amp;amp;quot;&amp;amp;gt;LOCAL:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/&amp;amp;quot;&amp;amp;gt;&amp;amp;amp;nbsp;/&amp;amp;amp;nbsp;&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/&amp;amp;quot;&amp;amp;gt;home&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;/home/pi/etherdump/&amp;amp;quot;&amp;amp;gt;etherdump&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
PUBLIC:&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;http://constantvzw.org/site/-The-Technogalactic-Software-Observatory-.html&amp;amp;quot;&amp;amp;gt;constant&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;a href=&amp;amp;quot;https://gitlab.constantvzw.org/observatory&amp;amp;quot;&amp;amp;gt;gitlab&amp;amp;lt;/a&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;/div&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;style&amp;amp;gt;&lt;br /&gt;
.links {&lt;br /&gt;
font-family: monospace;&lt;br /&gt;
text-transform: uppercase;&lt;br /&gt;
&amp;amp;lt;/style&amp;amp;gt;&lt;br /&gt;
&amp;amp;lt;script&amp;amp;gt;&lt;br /&gt;
document.addEventListener(&amp;amp;quot;DOMContentLoaded&amp;amp;quot;, function () {&lt;br /&gt;
  var p = document.querySelectorAll(&amp;amp;quot;.top&amp;amp;quot;),&lt;br /&gt;
      t = document.getElementsByTagName(&amp;amp;quot;table&amp;amp;quot;)[0];&lt;br /&gt;
  for (var i=0, l=p.length; i&amp;amp;lt;l; i++) {&lt;br /&gt;
    document.body.insertBefore(p[i], t);&lt;br /&gt;
  }&lt;br /&gt;
});&lt;br /&gt;
&amp;amp;lt;/script&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Better permissions with facl =&lt;br /&gt;
&lt;br /&gt;
[http://www.linuxcommand.org/man_pages/setfacl1.html setfacl]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo addgroup pi www-data&lt;br /&gt;
&lt;br /&gt;
sudo setfacl -Rm g:www-data:rwX /home/pi&lt;br /&gt;
sudo setfacl -d -Rm g:www-data:rwX /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
Unfortunately, I had problems then with permissions on the .ssh folder (preventing keys to be used). To remove the fact on just this folder:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo chmod g-w /home/pi&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Set up etherpad =&lt;br /&gt;
&lt;br /&gt;
And the version of &amp;amp;quot;nodejs&amp;amp;quot; is now 0.10.29~dfsg-2. So let's try it with etherpad...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install npm git&lt;br /&gt;
&lt;br /&gt;
sudo ln -s /usr/bin/nodejs /usr/bin/node&lt;br /&gt;
&lt;br /&gt;
cd /opt&lt;br /&gt;
sudo git clone https://github.com/ether/etherpad-lite.git&lt;br /&gt;
sudo mv etherpad-lite etherpad&lt;br /&gt;
&lt;br /&gt;
# TODO: don't create home folder! ... find option&lt;br /&gt;
sudo adduser --system --home=/opt/etherpad --group etherpad&lt;br /&gt;
sudo chown -R etherpad:etherpad etherpad&amp;lt;/pre&amp;gt;&lt;br /&gt;
Used password VJ.&lt;br /&gt;
&lt;br /&gt;
Run etherpad for the first time as the etherpad user...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /opt/etherpad&lt;br /&gt;
sudo --user etherpad bin/run.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
Following the first recipe on this page about [https://github.com/ether/etherpad-lite/wiki/How-to-deploy-Etherpad-Lite-as-a-service deploying etherpad as a systemd service]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo nano /etc/systemd/system/etherpad.service&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[Unit]&lt;br /&gt;
Description=Etherpad-lite, the collaborative editor.&lt;br /&gt;
After=syslog.target network.target&lt;br /&gt;
&lt;br /&gt;
[Service]&lt;br /&gt;
Type=simple&lt;br /&gt;
User=etherpad&lt;br /&gt;
Group=etherpad&lt;br /&gt;
WorkingDirectory=/opt/etherpad&lt;br /&gt;
ExecStart=/usr/bin/nodejs /opt/etherpad/node_modules/ep_etherpad-lite/node/server.js&lt;br /&gt;
Restart=always&lt;br /&gt;
&lt;br /&gt;
[Install]&lt;br /&gt;
WantedBy=multi-user.target&amp;lt;/pre&amp;gt;&lt;br /&gt;
After this,&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo service etherpad start&amp;lt;/pre&amp;gt;&lt;br /&gt;
Seems to work! Apparently it's the same as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl start etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
And to start on boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;systemctl enable etherpad-lite&amp;lt;/pre&amp;gt;&lt;br /&gt;
= etherdump =&lt;br /&gt;
&lt;br /&gt;
System wide installation of etherdump&lt;br /&gt;
&lt;br /&gt;
Install deps:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt install python-pip python-dev&lt;br /&gt;
sudo pip install python-dateutil jinja2 html5lib&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install from repo:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;git clone http://murtaugh@gitlab.constantvzw.org/aa/etherdump.git&lt;br /&gt;
cd etherdump&lt;br /&gt;
sudo python setup.py install&amp;lt;/pre&amp;gt;&lt;br /&gt;
=== Setup the folder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi&lt;br /&gt;
mkdir etherdump&lt;br /&gt;
cd etherdump&lt;br /&gt;
etherdump init&amp;lt;/pre&amp;gt;&lt;br /&gt;
Type in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;http://etherbox.local:9001/&amp;lt;/pre&amp;gt;&lt;br /&gt;
And paste the API key. (Look at: http://etherbox.local/opt/etherpad/APIKEY.txt)&lt;br /&gt;
&lt;br /&gt;
=== styles.css + versions.js ===&lt;br /&gt;
&lt;br /&gt;
scp styles.css versions.js pi@etherbox.local:etherdump/lib&lt;br /&gt;
&lt;br /&gt;
The URLs of these files are options to the etherdump pull command and should match.&lt;br /&gt;
&lt;br /&gt;
=== etherdump.sh + cron ===&lt;br /&gt;
&lt;br /&gt;
Make the script that runs automatically.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nano etherdump.sh&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;#!/bin/bash&lt;br /&gt;
# PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games&lt;br /&gt;
cd /home/pi/etherdump&lt;br /&gt;
etherdump pull --all --pub /home/pi/etherdump --css lib/styles.css --script lib/versions.js&lt;br /&gt;
etherdump index *.meta.json &amp;amp;gt; index.html&amp;lt;/pre&amp;gt;&lt;br /&gt;
And set it to run every 5 minutes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;crontab -e&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;PATH=/home/pi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin&lt;br /&gt;
# m h  dom mon dow   command&lt;br /&gt;
*/5 * * * * /home/pi/etherdump.sh &amp;amp;gt; /home/pi/cron.log.txt 2&amp;amp;gt;&amp;amp;amp;1&amp;lt;/pre&amp;gt;&lt;br /&gt;
The PATH is important. It can also be in the etherdump.sh but basically should match what you see when you &amp;amp;quot;echo $PATH&amp;amp;quot; (for the script to run in the same way as for the pi user).&lt;br /&gt;
&lt;br /&gt;
= Other software =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install emacs-nox screen pdftk pandoc texlive-latex-recommended texlive-fonts-recommended&lt;br /&gt;
sudo pip install csvkit&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install&lt;br /&gt;
&lt;br /&gt;
* screen&lt;br /&gt;
* pandoc + latex&lt;br /&gt;
* pdftk&lt;br /&gt;
* csvkit&lt;br /&gt;
&lt;br /&gt;
What about&lt;br /&gt;
&lt;br /&gt;
* texlive-xetex texlive-luatex pandoc-citeproc etoolbox&lt;br /&gt;
&lt;br /&gt;
The current version of pandoc in this raspbian is 1.12.4.2~dfsg-1+b3 We will use latex for PDF generation (via pandoc)&lt;br /&gt;
&lt;br /&gt;
(which is way better than 1.9 of the previous raspian, and even beats the instructions for compiling 1.11.1)&lt;br /&gt;
&lt;br /&gt;
MORE&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo apt-get install pandoc texlive-latex-recommended texlive-fonts-recommended &amp;lt;/pre&amp;gt;&lt;br /&gt;
Was able to:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;pandoc --from markdown hello.markdown -o hello.pdf&amp;lt;/pre&amp;gt;&lt;br /&gt;
= Access point =&lt;br /&gt;
&lt;br /&gt;
Taken from [https://pzwiki.wdka.nl/mediadesign/The_Ultimate_RPi_Installation_Guide#Access_Point_with_Captive_Portal this &amp;amp;quot;ultimate&amp;amp;quot; guide]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install dnsmasq wireless-tools hostapd&lt;br /&gt;
&lt;br /&gt;
# the next wasn't necessary for jessie, but for completeness..&lt;br /&gt;
RPI3 broadcom chip &lt;br /&gt;
apt-get install firmware-brcm80211&lt;br /&gt;
rmmod brcmfmac&lt;br /&gt;
modprobe brcmfmac&amp;lt;/pre&amp;gt;&lt;br /&gt;
Give fixed IP to wlan0 interface, edit /etc/network/interfaces switch off the built in stuff and add (section 2):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;auto eth0&lt;br /&gt;
allow-hotplug eth0&lt;br /&gt;
iface etho inet dhcp&lt;br /&gt;
&lt;br /&gt;
#################################&lt;br /&gt;
# 1. ORIGINAL settings... use wpa_supplicant for client mode&lt;br /&gt;
#allow-hotplug wlan0&lt;br /&gt;
#iface wlan0 inet manual&lt;br /&gt;
#    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf&lt;br /&gt;
#&lt;br /&gt;
#################################&lt;br /&gt;
# 2. Fixed IP address (for hotspot / hostapd)&lt;br /&gt;
auto wlan0&lt;br /&gt;
iface wlan0 inet static&lt;br /&gt;
address 10.9.8.7&lt;br /&gt;
netmask 255.255.255.0&lt;br /&gt;
#################################&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace /etc/dnsmasq.conf with:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.8.10,50.9.8.254,12h&lt;br /&gt;
address=/#/10.9.8.7&lt;br /&gt;
no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/hostapd/hostapd.conf file (adjust depending on driver/hardware)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
driver=nl80211&lt;br /&gt;
ssid=WiFeels&lt;br /&gt;
hw_mode=g&lt;br /&gt;
channel=6&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit /etc/default/hostapd and add&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;DAEMON_CONF=&amp;amp;quot;/etc/hostapd/hostapd.conf&amp;amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Make hostapd start at boot&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;update-rc.d hostapd defaults&amp;lt;/pre&amp;gt;&lt;br /&gt;
Reboot.&lt;br /&gt;
&lt;br /&gt;
= Makeserver + etherpad (experimental!) =&lt;br /&gt;
&lt;br /&gt;
Ingredients&lt;br /&gt;
&lt;br /&gt;
* Etherdump's pad.html with &amp;lt;rel&amp;gt; links including LIVE EDIT URLs&lt;br /&gt;
* THIS should replace/complement makeserver's EDIT button&lt;br /&gt;
&lt;br /&gt;
Key question: Makeserver as a separate view ?! (probably)&lt;br /&gt;
&lt;br /&gt;
TRY as 2 separate things ... basically AS IS...&lt;br /&gt;
&lt;br /&gt;
Install:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;cd /home/pi/software&lt;br /&gt;
git clone http://murtaugh@gitlab.constantvzw.org/aa/makeserver.git&lt;br /&gt;
cd makeserver&lt;br /&gt;
git submodule init&lt;br /&gt;
git submodule update&lt;br /&gt;
sudo pip install twisted jinja2&amp;lt;/pre&amp;gt;&lt;br /&gt;
BUGFIX with twisted / SSL issues:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;sudo pip install twisted[tls]&amp;lt;/pre&amp;gt;&lt;br /&gt;
DIDN&amp;amp;quot;T FIX sudo pip install twisted==16.0.0&lt;br /&gt;
&lt;br /&gt;
Seems to work!&lt;br /&gt;
&lt;br /&gt;
= TODO =&lt;br /&gt;
&lt;br /&gt;
* Why are the links hardcoded long form in etherdump index (fails then via makeserver based in home)?&lt;br /&gt;
&lt;br /&gt;
= Extra =&lt;br /&gt;
&lt;br /&gt;
Changed dnsmasq.conf&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;interface=wlan0&lt;br /&gt;
dhcp-range=10.9.10.50,10.9.10.254,12h&lt;br /&gt;
#address=/#/10.9.10.7                                                                                                           # no-resolv&amp;lt;/pre&amp;gt;&lt;br /&gt;
AND added to /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;10.9.10.7 etherbox.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
and this seems to then work over the direct hotspot connection.&lt;/div&gt;</summary>
		<author><name>Max</name></author>
		
	</entry>
</feed>