Favicon of Shellhub

Shellhub

Remotely access Linux devices via a secure, centralized SSH gateway. Connect through a web UI or any SSH client, record sessions, and manage firewall rules.

Take full control of your servers and devices from any location with a centralized SSH gateway designed for modern edge and cloud computing. It provides a secure and convenient way to remotely access and manage your Linux infrastructure, preventing unauthorized access and simplifying the management of geographically distributed systems.

Key features include:

  • Session Recording: Record all user activity during SSH sessions. The recordings can be replayed directly from the web interface for auditing and training purposes.
  • Native SSH Support: Use your standard terminal and any SSH client to connect to your devices. No additional tools need to be installed on your local machine.
  • Web Access: Access any device through a convenient web-based user interface, allowing you to manage your systems from anywhere without a dedicated client.
  • Firewall Rules: Define granular firewall rules to protect devices and restrict access, safeguarding your entire infrastructure.
  • Key Authentication: Utilize SSH keys for authentication, simplifying access to multiple machines with a single key while maintaining strict security controls.

Directory Structure

shellhub
mongo_data
ssh_keys
ssh_private_key
ssh_public_key
.env
docker-compose.yml

docker-compose.yml

services:
  gateway:
    image: shellhub/gateway:${SHELLHUB_VERSION}
    restart: unless-stopped
    environment:
      - SHELLHUB_DOMAIN=${SHELLHUB_DOMAIN}
      - SHELLHUB_HTTP_PORT=${SHELLHUB_HTTP_PORT}
      - SHELLHUB_HTTPS_PORT=${SHELLHUB_HTTPS_PORT}
      - SHELLHUB_SSH_PORT=${SHELLHUB_SSH_PORT}
      - SHELLHUB_PROXY_PORT=${SHELLHUB_PROXY_PORT}
      - SHELLHUB_ENTERPRISE=${SHELLHUB_ENTERPRISE}
      - SHELLHUB_CLOUD=${SHELLHUB_CLOUD}
    ports:
      - "${SHELLHUB_HTTP_PORT}:80"
      - "${SHELLHUB_SSH_PORT}:22"
    depends_on:
      - api
      - ui
    networks:
      - shellhub

  api:
    image: shellhub/api:${SHELLHUB_VERSION}
    restart: unless-stopped
    environment:
      - SHELLHUB_DOMAIN=${SHELLHUB_DOMAIN}
      - SHELLHUB_SECRET_KEY=${SHELLHUB_SECRET_KEY}
      - SHELLHUB_ENTERPRISE=${SHELLHUB_ENTERPRISE}
      - SHELLHUB_CLOUD=${SHELLHUB_CLOUD}
      - MONGO_URI=mongodb://mongo:27017/main
      - REDIS_URI=redis://redis:6379
      - PRIVATE_KEY=/run/secrets/ssh_private_key
      - PUBLIC_KEY=/run/secrets/ssh_public_key
    volumes:
      - ./ssh_keys:/run/secrets:ro
    depends_on:
      - mongo
      - redis
    networks:
      - shellhub

  ui:
    image: shellhub/ui:${SHELLHUB_VERSION}
    restart: unless-stopped
    environment:
      - SHELLHUB_DOMAIN=${SHELLHUB_DOMAIN}
      - SHELLHUB_ENTERPRISE=${SHELLHUB_ENTERPRISE}
      - SHELLHUB_CLOUD=${SHELLHUB_CLOUD}
    networks:
      - shellhub

  ssh:
    image: shellhub/ssh:${SHELLHUB_VERSION}
    restart: unless-stopped
    environment:
      - SHELLHUB_DOMAIN=${SHELLHUB_DOMAIN}
      - SHELLHUB_ENTERPRISE=${SHELLHUB_ENTERPRISE}
      - SHELLHUB_CLOUD=${SHELLHUB_CLOUD}
      - PRIVATE_KEY=/run/secrets/ssh_private_key
      - PUBLIC_KEY=/run/secrets/ssh_public_key
    volumes:
      - ./ssh_keys:/run/secrets:ro
    networks:
      - shellhub

  cli:
    image: shellhub/cli:${SHELLHUB_VERSION}
    entrypoint: /bin/sh
    networks:
      - shellhub

  mongo:
    image: mongo:4.4.8
    restart: unless-stopped
    volumes:
      - ./mongo_data:/data/db
    networks:
      - shellhub

  redis:
    image: redis:alpine
    restart: unless-stopped
    networks:
      - shellhub

networks:
  shellhub:
    driver: bridge

.env

SHELLHUB_VERSION=latest
SHELLHUB_DOMAIN=localhost
SHELLHUB_HTTP_PORT=80
SHELLHUB_HTTPS_PORT=443
SHELLHUB_SSH_PORT=22
SHELLHUB_PROXY_PORT=8080
SHELLHUB_ENTERPRISE=false
SHELLHUB_CLOUD=false
SHELLHUB_SECRET_KEY=change_this_to_a_secure_32_character_hex_string
Categories:

Share:

Ad
Favicon

 

  
 

Similar to Shellhub

Favicon

 

  
  
Favicon

 

  
  
Favicon