Self-hosted installation
This guide walks you through downloading and installing Operately on your own infrastructure.
If you are still comparing Operately Cloud and self-hosted Operately, start with the self-hosted overview.
Pre-requisites#
Section titled “Pre-requisites#”Select a server#
Section titled “Select a server#”Choose a machine to host Operately. For cloud hosting, we recommend DigitalOcean, Linode, or Hetzner.
Minimum requirements:
- 2GB RAM and 1 CPU (suitable for teams up to 30 people)
- 8GB RAM and 4 CPUs (recommended for larger teams)
Configure a domain for your server#
Section titled “Configure a domain for your server#”Point a domain to your server. You can use a subdomain (e.g. operately.example.com) or a
root domain (e.g. example.com). Configure the DNS records to point to your server’s IP
address. Make sure it’s a direct DNS pointer, not a proxy (e.g. avoid Cloudflare proxy).
Install Docker and Docker Compose#
Section titled “Install Docker and Docker Compose#”Operately runs as a set of Docker containers orchestrated by Docker Compose. Install Docker and Docker Compose for your operating system:
Set up a mail server#
Section titled “Set up a mail server#”Operately supports email delivery via SendGrid or SMTP.
- SendGrid: Create a SendGrid account and generate an API key by following the SendGrid documentation.
- SMTP: To use SMTP with providers like AWS SES, Gmail, Mailgun, or others, refer to the SMTP configuration documentation.
Installation steps#
Section titled “Installation steps#”Download the latest release of Operately#
Section titled “Download the latest release of Operately#”Download and extract the latest Operately release:
wget -q https://github.com/operately/operately/releases/latest/download/operately-single-host.tar.gztar -xf operately-single-host.tar.gzcd operatelyRun the installation script#
Section titled “Run the installation script#”Run the installation script to configure Operately:
./install.shThe script will:
- Build the Docker images
- Configure the environment
- Set up a Let’s encrypt certificate
- Prompt you for the following information:
- Domain: The domain for your server (e.g.
operately.example.com) - Admin email: The email address for receiving Let’s Encrypt notifications
- Email configuration: Either SendGrid API key or SMPT server details.
- Domain: The domain for your server (e.g.
Launch Operately#
Section titled “Launch Operately#”Start Operately using Docker Compose:
docker compose up --wait --detachOperately should now be running on your server. You can access it by navigating to your
configured domain (e.g. https://operately.example.com).
Next steps#
Section titled “Next steps#”After installation, you may want to: