Senate

Getting Started

Step-by-step guide to install and run Senate

Getting Started

This guide will walk you through installing Senate and deploying your first service.

Prerequisites

Before you begin, make sure you have:

  • A Linux server (Ubuntu 20.04+, Debian 11+, or similar)
  • Docker installed and running
  • At least 512 MB of RAM
  • Root or sudo access

Installation

Quick Install

The fastest way to get started is with our install script:

sh -c "$(curl -sSL https://get.senate.sh)"

This script will:

  1. Install Docker if not already installed
  2. Download and start the Senate Docker container
  3. Start Senate on port 2999

First Login

  1. Open your browser and navigate to http://your-server-ip:2999

  2. You'll be prompted to create an admin account on first run

  3. Enter your email and password to create the account

  4. Log in with your new credentials

Login screen

Adding Your First Machine

Senate can manage Docker on the local machine or remote servers.

Local Machine

The local machine is automatically added when Senate starts. You'll see it in the dashboard immediately—no manual configuration needed.

Senate connects to the local Docker daemon and starts monitoring automatically.

Remote Machine

To add a remote server:

  1. Go to MachinesAdd Machine
  2. Enter the server details:
    • Name: A friendly name
    • Host: Server IP or hostname
    • Port: SSH port (default: 22)
    • Username: SSH username
    • Authentication: Password or SSH key
  3. Click Create

Add server dialog

Senate will establish an SSH connection and manage Docker remotely.

Deploying Your First Service

Once you have a machine connected:

  1. Click on a machine in the dashboard
  2. Click Add Service in the sidebar
  3. In the popup, enter a service name
  4. Choose the service type:
    • Docker: Single container deployment
    • Docker Compose: Multi-container apps
  5. Click Create
  6. Configure the deploy source (Docker image, Dockerfile, or Git repository)
  7. Click Deploy

Add service dialog

Adding a Domain

To expose your service with a custom domain:

  1. Go to your service's Domains tab
  2. Click Add Domain
  3. Enter your domain name
  4. Configure:
    • Port: The container port to expose
    • SSL: Enable for automatic HTTPS
  5. Click Save

Add domain dialog

Senate's Caddy gateway will automatically:

  • Configure the reverse proxy
  • Obtain an SSL certificate from Let's Encrypt
  • Start routing traffic to your service

Monitoring

Senate provides real-time monitoring for all your resources:

  • Machine Stats: CPU, Memory, Disk I/O, Network I/O
  • Container Stats: Per-container resource usage
  • Logs: Real-time container and deployment logs
  • Terminal: Web-based shell access to containers

Monitoring dashboard

Next Steps

  • Explore the Dashboard to see all your machines and services
  • Set up Environment Variables for your services

Getting Help

On this page