Install - notro/elixir GitHub Wiki
This is more or less how I installed it.
Set up Apache
$ sudo apt install apache2
$ sudo a2enmod cgi rewrite
Your MPM seems to be threaded. Selecting cgid instead of cgi.
Enabling module cgid.
Enabling module rewrite.
$ sudo ufw allow 'Apache'
Rules updated
Rules updated (v6)
$ sudo ufw enable
$ sudo systemctl restart apache2
$ sudo adduser <someuser>
$ sudo adduser <someuser> www-data
$ sudo usermod -aG sudo <someuser>
# Login as <someuser>
Install elixir
$ sudo apt install python3-bsddb3 python3-pygments python3-jinja2 ctags
$ sudo mkdir /srv/elixir-data
$ sudo chown www-data:www-data /srv/elixir-data
$ sudo chmod g+w /srv/elixir-data
$ cd /usr/local
$ sudo mkdir /usr/local/elixir
$ sudo chown www-data:www-data /usr/local/elixir
$ sudo chmod g+w /usr/local/elixir
$ git clone https://github.com/notro/elixir /usr/local/elixir
/etc/apache2/sites-available/000-default.conf
<Directory /usr/local/elixir/http/>
Options +ExecCGI
AllowOverride None
Require all granted
SetEnv PYTHONIOENCODING utf-8
SetEnv LXR_PROJ_DIR /srv/elixir-data
</Directory>
AddHandler cgi-script .py
<VirtualHost *:80>
ServerName elixir.example.com
DocumentRoot /usr/local/elixir/http
RewriteEngine on
RewriteRule "^/$" "/circuitpython/latest/source" [R]
RewriteRule "^/.*/(source|ident|search)" "/web.py" [PT]
</VirtualHost>
Restart Apache
sudo systemctl restart apache2
systemctl status apache2
~/.profile
LXR_PROJ_DIR=/srv/elixir-data
Install Circuitpython repo and selected submodules
$ mkdir -p /srv/elixir-data/circuitpython/{data,repo,submodules}
$ cd /srv/elixir-data/circuitpython/
$ git clone --progress --bare --mirror https://github.com/adafruit/circuitpython repo
$ mkdir -p submodules/lib
$ git clone --progress --bare --mirror https://github.com/hathach/tinyusb submodules/lib/tinyusb
$ mkdir -p submodules/ports/atmel-samd
$ git clone --progress --bare --mirror https://github.com/adafruit/asf4 submodules/ports/atmel-samd/asf4
$ git clone --progress --bare --mirror https://github.com/adafruit/samd-peripherals submodules/ports/atmel-samd/peripherals
$ mkdir -p submodules/ports/nrf
$ git clone --progress --bare --mirror https://github.com/NordicSemiconductor/nrfx submodules/ports/nrf/nrfx
Show versions
$ cd /usr/local/elixir
$ LXR_REPO_DIR=/srv/elixir-data/circuitpython/repo python3 -m projects list-tags -h
v4 4.0 4.0.0-alpha
v3 3.0 3.0.0
v2 2.3 2.3.1
<snip>
$ LXR_REPO_DIR=/srv/elixir-data/circuitpython/repo python3 -m projects get-latest
4.0.0-alpha
Show repos
$ cd /usr/local/elixir
LXR_REPO_DIR=/srv/elixir-data/circuitpython/repo python3 -m projects update
/srv/elixir-data/circuitpython/repo
/srv/elixir-data/circuitpython/submodules/ports/atmel-samd/asf4
/srv/elixir-data/circuitpython/submodules/ports/atmel-samd/peripherals
/srv/elixir-data/circuitpython/submodules/ports/nrf/nrfx
/srv/elixir-data/circuitpython/submodules/lib/tinyusb
Fetch changes
LXR_REPO_DIR=/srv/elixir-data/circuitpython/repo python3 -m projects update fetch
Build/update database:
cd /usr/local/elixir
LXR_DATA_DIR=/srv/elixir-data/circuitpython/data LXR_REPO_DIR=/srv/elixir-data/circuitpython/repo ./update.py