Giter VIP home page Giter VIP logo

eos87 / liveblog Goto Github PK

View Code? Open in Web Editor NEW

This project forked from liveblog/liveblog

0.0 2.0 0.0 21.27 MB

Sourcefabric's Live Blog is an open source web app that enables journalists to provide immediate and ongoing coverage on rapidly evolving news events.

Home Page: https://www.sourcefabric.org/en/liveblog/

License: GNU Affero General Public License v3.0

JavaScript 39.41% HTML 18.92% CSS 16.82% Shell 1.26% Python 17.58% Gherkin 5.93% Vim Script 0.03% Makefile 0.05%

liveblog's Introduction

Liveblog

DownloadForkLicenseDocumentationVersion 3.3.4

Build Status

Installation

How to install Liveblog locally (recommended)

Here I'm assuming you are running Ubuntu Linux 16.04

Install the dependencies

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_6.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 libssl-dev

Install the required npm tools:

sudo npm install -g grunt-cli

Configure the server

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 --upgrade setuptools
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 '[email protected]' --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

Configure the client

Now we can install the dependencies for the client

cd client
npm 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)

Docker Install

Use docker-compose and the config from docker folder or build docker images manually from the Dockerfile.

install docker
$ sudo apt-get install docker.io

and make sure you can run docker without sudo.

create python virtualenv
$ sudo apt-get install python-virtualenv
$ virtualenv env
install docker compose and run app
$ . env/bin/activate
$ pip install -r docker/requirements.txt
$ ./scripts/docker-local-demo.sh

Testing

How to run the behaviore tests for the syndication feature:

cd server
behave --format progress2 --logging-level ERROR features/syndication.feature

Vagrant LXC Installation

Setting things up

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

Miscellaneous

Run liveblog front end in production mode

cd client
grunt build --force
grunt connect:build

Update classic and angular theme

git subtree pull --prefix server/liveblog/themes/themes_assets/classic https://github.com/liveblog/lb-theme-classic.git master --squash
git subtree pull --prefix server/liveblog/themes/themes_assets/angular https://github.com/liveblog/lb-theme-angular.git master --squash
git subtree pull --prefix server/liveblog/themes/themes_assets/default https://github.com/liveblog/liveblog-default-theme master --squash

liveblog's People

Contributors

aca-jov avatar actionless avatar aleksandarjelicic avatar ancafarcas avatar cbenhagen avatar darconny avatar djbrd-sourcefabric avatar hlmn-rmr avatar hlmnrmr avatar ioanpocol avatar m0g avatar mrs83 avatar mstoltenburg avatar naspeh avatar nidzix avatar nistormihai avatar petrjasek avatar psnewslab avatar psolbach avatar tomaszrondio avatar vied12 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.