Superdesk and its Installation

Written by hashtrust | Published 2022/10/07
Tech Story Tags: cms | workflow | news | good-company | superdesk | superdesk-installation | headless-cms | newsroom-software

TLDRSuperdesk is a state-of-the-art digital newsroom system. It combines headless CMS functionality with powerful workflow features for an end-to-end news creation, production, curation and distribution platform. It has a modular, API-centric design that enables news organizations to add and adapt the functionality most relevant to their business. Prerequisites: Docker, redis, elastic, mongodb, mongo and superdesk. You need to create a folder where you want your project to be situated.via the TL;DR App

What is Superdesk ?

Superdesk is a state-of-the-art digital newsroom system. It combines headless CMS functionality with powerful workflow features for an end-to-end news creation, production, curation and distribution platform. Built alongside journalists in the newsroom, it has a modular, API-centric design that enables news organizations to add and adapt the functionality most relevant to their business.

Superdesk is open-source web-based newsroom software that integrates easily with legacy systems as well as third-party applications. Today, in the work-from-home era, newsrooms can take advantage of Superdesk's secure authentication options and customizable access for freelancers.

Newsrooms are the area in a newspaper or broadcasting office where news is processed. And Superdesk basically is used to manage newsroom workflows.

Installing Superdesk:

Prerequisites:

  • Docker

  • You need to create a folder where you want your project to be situated. Let’s say, superdesk.

$ mkdir superdesk

  1. Then you need to create  a .yml file inside that folder and paste these lines of code in that file. You can do this using the nano text editor in Linux.

$ cd superdesk
superdesk$ nano docker-compose.yml

  1. This will open an editor inside the terminal, you need to paste these lines in the editor.

version: "3.2"
services:

  mongodb:
    image: mongo:4
    networks:
      - superdesk

  redis:
    image: redis:3
    networks:
      - superdesk

 elastic:
    image: docker.elastic.co/elasticsearch/elasticsearch:7.10.1
    environment:
      - discovery.type=single-node
    networks:
      - superdesk

  superdesk-server:
    image: sourcefabricoss/superdesk-server:latest
    depends_on:
      - redis
      - mongodb
      - elastic
    environment:
      - SUPERDESK_URL=http://localhost:8080/api
      - DEMO_DATA=1 # install demo data, set to 0 if you want clean install
      - WEB_CONCURRENCY=2
      - SUPERDESK_CLIENT_URL=http://localhost:8080
      - CONTENTAPI_URL=http://localhost:8080/capi
      - MONGO_URI=mongodb://mongodb/superdesk
      - CONTENTAPI_MONGO_URI=mongodb://mongodb/superdesk_capi
      - PUBLICAPI_MONGO_URI=mongodb://mongodb/superdesk_papi
      - LEGAL_ARCHIVE_URI=mongodb://mongodb/superdesk_legal
      - ARCHIVED_URI=mongodb://mongodb/superdesk_archive
      - ELASTICSEARCH_URL=http://elastic:9200
      - ELASTICSEARCH_INDEX=superdesk
      - CELERY_BROKER_URL=redis://redis:6379/1
      - REDIS_URL=redis://redis:6379/1
      - DEFAULT_TIMEZONE=Europe/Prague
      - SECRET_KEY=*k^&9)byk=8en9n1sg7-xj4f8wr2mh^x#t%_2=1=z@69oxt50!
      # More configuration options can be found at https://superdesk.readthedocs.io/en/latest/settings.html

 networks:
      - superdesk

  superdesk-client:
    image: sourcefabricoss/superdesk-client:latest
    environment:
      # If not hosting on localhost, change these lines
      - SUPERDESK_URL=http://localhost:8080/api
      - SUPERDESK_WS_URL=ws://localhost:8080/ws
      - IFRAMELY_KEY
    depends_on:
      - superdesk-server
    ports:
      - "8080:80"
    networks:
      - superdesk

networks:
    superdesk:
        driver: bridge

Save using ctrl + o. And later exit using ctrl + x. You also need to make sure that the code is copied as it is, without any change in the indentation, since that could lead to errors. Below is attached a screenshot of the same.

  1. To verify that the file is inside the folder you can run ls command inside superdesk folder. You will be able to see the docker-compose.yml file.

superdesk$ ls
docker-compose.yml

  1. Then after saving this file inside the superdesk folder, you will need to run docker compose up command in the terminal under the same folder. This will download Superdesk’s server, client, and dependencies, and run them. Give the configuration setup 2-3 minutes to complete.

  • Important: You must have Docker installed and running for this command to work.

superdesk$ docker-compose up

  1. Once docker is up and running, you can verify the installation in your browser. Open any browser, and go to http://localhost:8080.

    You can see login screen, something like this:

  1. You will need to run some more commands to be able to login into superdesk.

    1. This will initialise some useful data required by the project.

      superdesk$ docker-compose run superdesk-server run python manage.py 
      app:initialize_data
      

    2. This will create a superuser that could be used to login into superdesk. With username being “admin“ and password being “admin”.

superdesk$ docker-compose run superdesk-server run python manage.py 
users:create -u admin -p admin -e admin@localhost --admin

  1. After completing these steps successfully, you can now return to your browser and login with the credentials, username: “admin” and password: “admin”.

You are now ready to dive into the world of the newsrooms !!

Reference:

About the author :

Shivam Singh, Python Developer at__Hashtrust Technologies__.

That’s it for now! I hope you find the article helpful. Thanks for reading. Follow our page for future updates .




Written by hashtrust | We have more than a decade of experience in developing high-performance, scalable app solutions for diverse industries
Published by HackerNoon on 2022/10/07