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:
- Install Docker if not already installed
- Download and start the Senate Docker container
- Start Senate on port 2999
First Login
-
Open your browser and navigate to
http://your-server-ip:2999 -
You'll be prompted to create an admin account on first run
-
Enter your email and password to create the account
-
Log in with your new credentials

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:
- Go to Machines → Add Machine
- 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
- Click Create

Senate will establish an SSH connection and manage Docker remotely.
Deploying Your First Service
Once you have a machine connected:
- Click on a machine in the dashboard
- Click Add Service in the sidebar
- In the popup, enter a service name
- Choose the service type:
- Docker: Single container deployment
- Docker Compose: Multi-container apps
- Click Create
- Configure the deploy source (Docker image, Dockerfile, or Git repository)
- Click Deploy

Adding a Domain
To expose your service with a custom domain:
- Go to your service's Domains tab
- Click Add Domain
- Enter your domain name
- Configure:
- Port: The container port to expose
- SSL: Enable for automatic HTTPS
- Click Save

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

Next Steps
- Explore the Dashboard to see all your machines and services
- Set up Environment Variables for your services
Getting Help
- GitHub Issues: Report bugs or request features
- Discussions: Ask questions and share ideas