Superdesk
Superdesk is an open source end-to-end news creation, production, curation, distribution and publishing platform developed and maintained by Sourcefabric with the sole purpose of making the best possible software for journalism. It is scaleable to suit news organizations of any size. See the [Superdesk website] (http://www.superdesk.org) for more information.
Looking to stay up to date on the latest news? [Subscribe] (http://eepurl.com/bClQlD) to our monthly newsletter.
The Superdesk server provides the API to process all client requests. The client provides the user interface. Server and client are separate applications using different technologies.
Find more information about the client configuration in the README file of the repo: https://github.com/superdesk/superdesk-client-core
Installation
Client
- Clone the repository
- Navigate to the folder where you've cloned this repository (if it's the main repo, go inside the
clientfolder). - Run
npm installto install dependencies. - Run
grunt serverto run the web server. - Open browser and navigate to
localhost:9000.
The grunt server attempts to resolve the API and websockets server to a local instance. In order to use a different instance, you may add the arguments --server=<host:[port]> and --ws=<host:[port]> to the command.
Server
Dependencies (for non-Docker installations)
- Python & Pyvenv 3+
- MongoDB
- ElasticSearch <= 1.7.x
- Redis
MacOS
For the sake of this walkthrough, it is considered that your python binary is called python3. Please amend as needed for your own system.
- Install dependencies using
brew(make sure you do abrew updatefirst):python3,mongodb,elasticsearch,redis. - Create a virtual envirnoment in a folder of your choice, for example
mkdir ~/pyvenv && pyvenv-3.5 ~/pyvenv. - Activate the environment by running its activation script:
. ~/pyvenv/bin/activate. All of the following steps need to run under the virtual environment. - Install pip dependencies by running (inside repository root):
pip install -r server/requirements.txt. - Start all dependent services:
mongod,redis-server,elasticsearch. - For an initially empty database, you may initialize and pre-populate it by running (inside the
serverfolder):python3 manage.py app:initialize_data && python3 manage.py app:prepopulate. - Finally, start the server (inside the
serverfolder) usinghoncho start.
Linux (with Docker)
Use docker-compose and the config from the docker folder or build docker images manually from Dockerfiles from client and server folders accordingly.
install system-wide dependencies
$ sudo apt-get install python-virtualenv gitand install the newest docker. and make sure you can run docker without sudo.
install docker compose and run app
$ git clone https://github.com/superdesk/superdesk.git
$ cd superdesk
$ git clone https://github.com/superdesk/superdesk-content-api.git
$ ./scripts/docker-local-demo.shOpen in a browser http://localhost:8080 after the server will be ready.
If you can't log in then you probably need to run ./scripts/docker-local-create-user.sh. The default username is admin and the password is admin.
If you're going to assign some hostname to the instance, you should also set it in the config file docker-compose-prebuilt.yml instead of localhost.
For manual installation just follow the steps described in the Dockerfile.
###Contribute
In general, contributing code to the Superdesk project – whether it is a new feature or a bug fix – is simple and follows this general path:
- Get a copy of the project source code or setup a dev environment with docker
2) Work on the code changes
3) Submit a Pull Request whenever you are ready
###Questions and issues
Our [issue tracker] (https://dev.sourcefabric.org/projects/SD) is only for bug reports and feature requests. Anything else, such as questions or general feedback, should be posted in the [forum] (https://forum.sourcefabric.org/categories/superdesk-dev).
###A special thanks to...
Users, developers and development partners that have contributed to the Superdesk project. Also, to all the other amazing open-source projects that make Superdesk possible!
###License
Superdesk is available under the [AGPL version 3] (https://www.gnu.org/licenses/agpl-3.0.html) open source license.
