Skip to main content

Telescope API Services

Setup

There are a number of docker-compose files available for running Telescope's services, including:

  • docker/docker-compose.yml - the base docker-compose stack definition of our microservices, dependent services, and our api gateway, Traefik. This is meant to be used in development only.
  • docker/development.yml - overrides and extensions to the base docker-compose stack, with extra settings and services necessary for running in development or CI.
  • docker/production.yml - overrides and extensions to the base docker-compose stack, with extra settings and services necessary for running in staging and production.

In conjunction with these, there are also multiple environment files, including:

The env files are configured to specify which variables and docker-compose files are needed to be run. For most developers, doing the following will work:

pnpm services:start

This will build any containers that need to be (re)built, and pull any that aren't present on the local machine. It is functionally equivalent to running:

docker-compose --env-file config/env.development up -d
note

Telescope runs more than a dozen Docker containers, and it can be taxing on your computer to start them all. The pnpm services:start command can optionally take a list of specific services to start, for example: pnpm services:start feed-discovery status. The names of the services comes from the various docker-compose.yml files listed above.

Managing the Services

If you want to update your local Docker images based on the most recent code built in our Continuous Integration builders, you can use:

pnpm services:pull

You can access logs for one or more running services:

pnpm services:logs image status

To stop the services:

pnpm services:stop

To delete old containers:

pnpm services:clean

API Lookup Table

APIDocker TagURLDescription
feed-discoverytelescope_feed_discovery_svchttp://localhost/v1/feed-discoveryProvides an autodiscovery for feed URL.
poststelescope_posts_svchttp://localhost/v1/postsProvides access to cached user posts
imagetelescope_img_svchttp://localhost/v1/imageProvides a dynamic image processing service
sso authtelescope_sso_svchttp://localhost/v1/authProvides authentication and authorization service
parsertelescope_parser_svchttp://localhost/v1/parserProvides telescope's parser services
searchtelescope_search_svchttp://localhost/v1/searchProvides an ELK query controller service

Support Services Lookup Table (development only)

APIURLDescription
Traefik Dashboardhttp://localhost:8080Traefik Dashboard
Redisredis://localhost:6379Redis server
Elasticsearchhttp://localhost:9200Elasticserach
Loginhttp://localhost:8081/simplesamlSAML SSO Identity Provider

References