Skip to content

quadratichq/quadratic-selfhost

Repository files navigation

Quadratic Self-Hosting

Implement the entire Quadratic stack outside of Quadratic. The use cases we currently support:

  • Localhost
  • EC2 (using your own load balancer)
  • EC2 (using Caddy's load balancer)
  • Multiple Docker instance setup (for any cloud provider)
  • Kubernetes

Dependencies

Requirements

Installation

NOTE: Before installing, please create a license and copy the key at https://selfhost.quadratic-preview.com.

Quadratic can be installed via a single command:

curl -sSf https://raw.githubusercontent.com/quadratichq/quadratic-selfhost/main/init.sh -o init.sh && bash -i init.sh

This will download the initialization script, which will prompt for a license key in order to register Quadratic.

Additionally, the docker compose network will start (see Starting). Please allow several minutes for the docker images to downloaded.

Refer to the Stopping section.

Starting

Once the Quadratic is initialized, a single command is needed to start all of the images:

./start.sh

Stopping

To stop running docker images, simply press ctrl + c if running in the foreground.

If running in the background, run the stop.sh script:

./stop.sh

Creating an EC2 Instance

  • Click on Launch and Instance from the main EC2 screen
  • Select the Ubuntu option
  • The minium size should be a t2.xlarge
  • Either create a new security group with Allow HTTPS traffic from the internet or Allow HTTP traffic from the internet (not using certs) OR select an existing security group with this setting enabled
    • Open ports 80, 443, 3001, 3002, 3003, 4433, 4455, and 8000 for TCP traffic with 0.0.0.0/0 source
  • Configure storage to 30GiB
  • Click on the "Launch Instance" button

Installing on Ubuntu

sudo apt-get update
sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get -y install docker-ce docker-ce-cli containerd.io
sudo docker --version
sudo curl -L "https://github.com/docker/compose/releases/download/v2.21.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo chown $USER /var/run/docker.sock
sudo systemctl enable docker
sudo systemctl start docker
curl -sSf https://raw.githubusercontent.com/quadratichq/quadratic-selfhost/main/init.sh -o init.sh && bash -i init.sh

Configuring SSL with AWS Cloudformation deployment

  • When using the cloud formation template configure a domain or subdomain that you own and can create A DNS records in. For example with a subdomain quadratic.example.com
  • Run the CloudFormation template and put in your license key and domain (or subdomain)
  • Once the Template runs, go to outputs and copy the InstancePublicIp
  • Create an A record *.quadratic.example.com where you prefix *. with the domain you configured Quadratic with.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages