Download • Fork • License • Documentation • Version 3.1.0
Here I'm assuming you are running Ubuntu Linux 16.04
First we need to install the necessary dependencies:
sudo apt-get install mongodb redis-server
We currently require a specific version of elastic search (not sure why we need that, but it might come in a handy later on):
wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
echo "deb http://packages.elastic.co/elasticsearch/1.7/debian stable main" | sudo tee --append /etc/apt/sources.list.d/elastic.list
sudo apt-get update
sudo apt-get install openjdk-8-jre elasticsearch
Remove the elasticsearch node discovery functionality:
echo "discovery.zen.ping.multicast.enabled: false" | sudo tee --append /etc/default/elasticsearch
Install Node.js LTS version:
curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install nodejs
Install The various Python requirements
sudo apt-get install \
python3 python3-dev python3-pip python3-lxml \
build-essential libffi-dev git \
libtiff5-dev libjpeg8-dev zlib1g-dev \
libfreetype6-dev liblcms2-dev libwebp-dev \
curl libfontconfig virtualenv
Install the required npm tools:
sudo npm install -g grunt-cli bower
Now we can create the python virtual environment and install the server dependencies:
cd server
virtualenv -p python3 env
source env/bin/activate
pip install -r requirements.txt
Add the default data:
python3 manage.py app:initialize_data;
python3 manage.py users:create -u admin -p admin -e 'admin@example.com' --admin ;
python3 manage.py register_local_themes ;
Still in the virtualenv, you can now start the server
honcho -f ../docker/Procfile-dev start
If you encounter any connection errors from elastic search:
elasticsearch.exceptions.ConnectionError: ConnectionError(<urllib3.connection.HTTPConnection object at 0x7f9434838358>: Failed to establish a new connection: [Errno 111] Connection refused) caused by: NewConnectionError(<urllib3.connection.HTTPConnection object at 0x7f9434838358>: Failed to establish a new connection: [Errno 111] Connection refused)
You will need to restart and elasticsearch and wait 10 seconds before starting honcho.
sudo service elasticsearch restart
sleep 10
honcho -f ../docker/Procfile-dev start
Now we can install the dependencies for the client
cd client
npm install
bower install
We can now run the client server:
grunt --force server --server='http://localhost:5000/api' --ws='ws://localhost:5100'
You can now access your local copy at http://localhost:9000 (user: admin, password: admin)
Use docker-compose and the config from docker
folder or build docker images manually from the Dockerfile.
$ sudo apt-get install docker.io
and make sure you can run docker without sudo.
$ sudo apt-get install python-virtualenv
$ virtualenv env
$ . env/bin/activate
$ pip install -r docker/requirements.txt
$ ./scripts/docker-local-demo.sh
How to run the behaviore tests for the syndication feature:
cd server
behave --format progress2 --logging-level ERROR features/syndication.feature
This will only work on Linux
cd /tmp
wget -c https://releases.hashicorp.com/vagrant/1.8.6/vagrant_1.8.6_x86_64.deb
sudo dpkg -i vagrant_1.8.6_x86_64.deb
rm vagrant_1.8.6_x86_64.deb
vagrant plugin install vagrant-lxc
We need to create the configuration file for the frontend:
cd ~/code/liveblog
cp client/config.sample.js client/config.js
Start the virtual machine
cd ~/code/liveblog
sudo rm -rf client/data client/dist/* client/.tmp server/src
vagrant destroy
vagrant up
vagrant ssh
Once in the virtual machine:
/opt/liveblog/scripts/vagrant-provision.sh
Once the provisioning done whil still in the virtual machine:
/opt/liveblog/scripts/vagrant-start-dev.sh