selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

werbot logo

Self-host werbot

v0.0.3

Self-hosted bastion for secure server access with SSO

AlphaSource AvailableOther
Docker ComposeCompose file & guide
docker-compose up -d
Updated5 months ago
LanguageGo
Setup difficultyAdvanced
Stars
169
Ports
80 (HTTP (haproxy)), 443 (HTTPS (haproxy)), 22 (SSH proxy (haproxy)), 8404 (HAProxy stats), 3022 (SSH server), 8088 (Web API)
Requires
PostgreSQL, Redis
Docker
ghcr.io/werbot/taco
werbot screenshot 1werbot screenshot 2werbot screenshot 3werbot screenshot 4werbot screenshot 5werbot screenshot 6werbot screenshot 7

What is werbot?

Werbot is a self-hosted access management platform that lets teams securely share connections to servers, databases, and applications without handing out credentials. Users connect through a web dashboard using single sign-on, and all sessions are recorded as screencasts with full command logs for audit compliance. It supports SSH, Telnet, RDP, and VNC protocols across any cloud or on-premise infrastructure. The platform runs as Docker microservices (API, auth, gRPC, worker, frontend) with PostgreSQL and Redis backends, and integrates with Cloudflare for DNS and Let's Encrypt certificates. The core is licensed under Business Source License 1.1 (converting to Apache 2.0 in 2028), with a free self-hosted tier limited to 3 hosts and 3 members, while paid SaaS tiers add LDAP, more hosts, and enterprise features. Current version is v0.0.3 (pre-1.0 alpha).

Should you self-host werbot?

werbot scores 36/100 on selfhost.directory (how scoring works) and ranks #36 of 40 in Authentication. It has 169 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. An official Docker image is available. It is Other-licensed and written mostly in Go.

Its closest alternative on selfhost.directory is keycloak (86/100, 37 571 stars). It scores higher overall, so compare the two before you pick. See werbot vs keycloak side by side.

Features

  • Agentless server connection
  • Audit Logging
  • Automated SSL certificates
  • Certificate-based authentication
  • Database access management
  • Firewall and access control
  • GeoIP-based access control
  • Kubernetes and Docker support
  • LDAP IntegrationAvailable in Pro and Enterprise SaaS tiers; self-hosted tier may not include
  • Multi-cloud provider management
  • Multi-protocol support
  • Session Recording
  • Single Sign-On (SSO)
  • Time-based access scheduling

werbot README

How to install werbot

Install werbot with Docker Compose

Environment variables
GEOLITE_LICENSE, DOMAIN, DNS_CLOUDFLARE_EMAIL, DNS_CLOUDFLARE_API_KEY, POSTGRES_USER, POSTGRES_PASSWORD, POSTGRES_HOST, POSTGRES_DB, REDIS_ADDR, REDIS_PASSWORD, GRPCSERVER_HOST, GRPCSERVER_TOKEN, SECURITY_AES_KEY, JWT_PRIVATE_KEY, JWT_PUBLIC_KEY, ACCESS_TOKEN_DURATION, REFRESH_TOKEN_DURATION, SSHSERVER_BIND_ADDRESS, APP_PORT, API_DSN, APP_DSN, LICENSE_FILE, LICENSE_KEY_PUBLIC, LICENSE_KEY_PRIVATE, SMTP_HOST, SMTP_PORT, SMTP_USERNAME, SMTP_PASSWORD, SMTP_ENCRYPTION, SMTP_MAIL_FROM, AWS_S3_BUCKET_CDN, AWS_S3_BUCKET_BACKUP, AWS_S3_BUCKET_REGION, AWS_S3_ACCESS_KEY_ID, AWS_S3_SECRET_ACCESS_KEY, PASSWORD_HASH_COST, SECURITY_SSH_KEY_TYPE, SSH_KEY_REFRESH_DURATION, TIME_ZONE, GHOST_DATA, INSTALL_CDN
  1. Clone the repository:

    git clone https://github.com/werbot/werbot.git
    cd werbot
    
  2. Configure environment:

    • Copy .env.example to .env (if available) or create .env file
    • Configure required environment variables:
      • GEOLITE_LICENSE - Geolite key for downloading the latest geolite database
      • DOMAIN - Second-level domain in format *.domain.com
      • DNS_CLOUDFLARE_EMAIL - Your Cloudflare email
      • DNS_CLOUDFLARE_API_KEY - Your Cloudflare API key
  3. Set up DNS records:

    • Add DNS A records pointing to your server:
      • api.domain.com → Your server IP
      • app.domain.com → Your server IP
  4. Initialize the environment:

    make init
    

    This script will:

    • Validate DNS configuration
    • Generate secure passwords for PostgreSQL and Redis
    • Generate encryption keys
    • Create necessary configuration files
  5. Start services:

    cd docker
    docker-compose up -d
    

Requires Docker, Docker Compose, a domain name with DNS access (Cloudflare recommended), Go 1.25+ for development

werbot releases & version history

FAQ

Why BSL license?

The BSL license was chosen to allow users to share access to their servers, databases, and applications while preventing cloud providers from reselling Werbot as a managed service.

What is the license?

Werbot uses the Business Source License 1.1, which is identical to Apache 2.0 except you cannot use the code to create a cloud service or resell the product. After three years, the code becomes available under Apache 2.0.

More in Infrastructure Monitoring

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…