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
- Clone the repository
- Navigate to the folder where you've cloned this repository (if it's the main repo, go inside the
client
folder). - Run
npm install
to install dependencies. - Run
grunt server
to 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.
- Python & Pyvenv 3+
- MongoDB
- ElasticSearch <= 1.7.x
- Redis
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 update
first):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
server
folder):python3 manage.py app:initialize_data && python3 manage.py app:prepopulate
. - Finally, start the server (inside the
server
folder) usinghoncho start
.
Use docker-compose and the config from the docker
folder or build docker images manually from Dockerfile
s from client
and server
folders accordingly.
$ sudo apt-get install python-virtualenv git
and install the newest docker. and make sure you can run docker without sudo.
$ git clone https://github.com/superdesk/superdesk.git
$ cd superdesk
$ git clone https://github.com/superdesk/superdesk-content-api.git
$ ./scripts/docker-local-demo.sh
Open 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.