# octomode
> *work-in-progress*
Octomode is a collective editing space for PDF making, using Etherpad, Paged.js and Flask.
Inspired by the multi-centered, tentacular cognition capabilities of the octopus, we imagined a space in which the artificial boundaries of writing and design can be crossed; where writing, editing and designing can be done in one environment simultaneously, allowing the format to influence the matter and vice-versa.
More expanded documentation can be found here: < https: / / cc . vvvvvvaria . org / wiki / Octomode >
An installation guide can be found below.
## Install octomode
You can clone this repository to run octomode on your own computer or server.
`git clone https://git.vvvvvvaria.org/varia/octomode.git`
Install the dependencies.
All the `python` dependencies are listed in `requirements.txt`
To install them, you can run:
`make setup`
This creates a virtual environment at `.venv/` and installs all the dependencies here.
Next to this, you also need to install `pandoc` .
`sudo apt install pandoc`
Now we need to configure *octomode* :
`cd octomode`
`nano .env`
Configure your environment, save the following configuration settings as to a file called `.env` :
```
OCTOMODE_APPLICATION_ROOT=XXX
OCTOMODE_PORTNUMBER=XXX
OCTOMODE_PAD_URL=XXX
OCTOMODE_PAD_API_URL=XXX
OCTOMODE_PAD_API_KEY=XXX
```
- **OCTOMODE_APPLICATION_ROOT**: *optional* , default: `/`
- **OCTOMODE_PORTNUMBER**: *optional* , default: `5001`
- **OCTOMODE_PAD_URL**: *optional* , default: `https://pad.vvvvvvaria.org/`
- **OCTOMODE_PAD_API_URL**: *optional* , default: `https://pad.vvvvvvaria.org/api/1.2.15/`
- **OCTOMODE_PAD_API_KEY**: *required* , **no default**
(Note: You must provide a value for `OCTOMODE_PAD_API_KEY` .)
`make run` (runs the Flask application)
Open the application at port `5001` , for example: < http: // localhost:5001 > or < https: // mydomainname . ext:5001 > .
## Install octomode with an URL prefix
If you want to install octomode with an URL prefix, like < https: / / mydomainname . ext / octomode / > , then you can use the gunicorn WSGI.
If you have ran the `make setup` command already, then `gunicorn` is already installed.
Configure your application root URL in your `.env` file.
You can simply run *octomode* now with the following command to run it with `gunicorn` (and not the built-in Flask dev server):
`make action`
### Dependencies
* pandoc
* python dependencies, see: `requirements.txt`
## Use octomode locally
It's recommended to use Firefox when working with octomode locally. Chrome or Chromium do not load external etherpads in iframes.