Welcome to RhodeCode rcstack documentation!#
RhodeCode rcstack is a multi-node highly-scalable setup to run RhodeCode services. It consists of all RhodeCode services required with additionally Edge Router(Traefik with optional SSL) and Metrics Stack (Prometheus, Loki, Grafana) in single environment using Docker.
The latest version of rcstack is 5.8.0.
To quickly get and install rcstack run this command
mkdir docker-rhodecode && cd docker-rhodecode
curl -L -s -o rcstack https://dls.rhodecode.com/get-rcstack && chmod +x rcstack
Using a docker-compose this setup creates following services for RhodeCode:
Router (mandatory to run):
./rcstack router --help
Traefik aka Edge Router is responsible for handling all outgoing and incoming traffic to whole stack. It can do SSL termination, and handle SSL traffic with certificate management.
Traefik listens to few defaults ports and handles all incoming/outgoing traffic to the stack
9022 (SSH for RhodeCode traffic)
3100 (Loki log aggregation)
Services (mandatory to run):
./rcstack services --help
Database (defaults to PostgreSQL) Optionally can be replaced by MySQL, or own external database if needed.
Redis, acts as cache and queue exchange
ChannelStream - live websocket communications
Elasticsearch (full text search backend)
Nginx (static file service) proxy serving RhodeCode static files
RhodeCode (mandatory to run):
./rcstack rhodecode --help
RhodeCode CE/EE web app
VCSServer for GIT/SVN/HG support
SSH server for cloning over SSH
SVN webserver for SVN protocol support
Celery workers for asynchronous tasks
Celery beat for scheduler and automation tasks
./rcstack metrics --help
Loki, logs aggregation
Grafana, metrics Dashboard
Prometheus, metrics time-series
Statsd-exporter - statsd to Prometheus bridge
Node-exporter - machine stats and usage
Promtail - log scraping
2 CPU cores and 2GB RAM is typically sufficient for small teams/projects. We recommend 2-4 CPU cores and 4-8GB of RAM to unlock full potential of all services running in the RhodeCode Stack.
rcstack works on any linux distribution, and has a beta support for MacOS. There are two requirements for OS to be able to run whole rcstack.
Ability to run Docker daemon
Ability to run a certain standard unix tools like: