We use cookies to personalize your experience.Learn More

Blog / Features

Self-hosted Canonic is generally available

You can now host Canonic on your own infrastructure. Deploy locally or inside your own VPN as a simple Docker image.

Pratham Agrawal

Mon Jun 26 20233 min read

We are big believers in data security. It's essential to keep your databases and internal services inaccessible from the public web. Most of our customers run their databases inside a VPN, with heavily restricted network access. When building on platforms like Canonic, it becomes tricky to securely connect to these databases and services.

No more! You can now self-host Canonic on your own infrastructure. It's available as a simple docker image that you can get up and running in just a few minutes. It runs completely independently from our hosted offering.


When to self-host?

You can either use Canonic as a cloud offering by building and deploying your projects on Canonic's infrastructure, or self-host. But why go through all the effort of deploying a service on your own infrastructure?

Data privacy and security

Self-hosting enables customers to fully control their data, ensuring that sensitive data stays inside their own private, safe environment. For companies handling sensitive consumer data or organizations with stringent data protection regulations, this is especially crucial.

Flexibility and customization

Users that self-host Canonic applications have the freedom to design their hosting environment to suit their needs. To optimize the performance of their application, they can link with existing systems, set up security controls, and fine-tune performance parameters.

Controlled updates

Canonic's self-hosted version doesn't communicate with Canonic apart from a simple license check call. All updates must be manually accepted, keeping all the control with you. Your applications will run as-is independent of Canonic Cloud's uptime.


How to self-host

Let's dive into self-hosting Canonic. You can follow the steps in this tutorial in your local environment. But to host it, you would need a t3.medium (aws) equivalent instance.

Prerequisites

  • 1vCPU / 2GB Memory Instance
  • Docker

Configuring Environment Variables

To make things incredibly simple to host, we've packed all of Canonic into a single docker image. Don't have already have databases? No worries, the docker image comes packed with everything you need. Although all of it is optional, allowing you to scale when needed.

Let's create a folder to manage our environment.

mkdir canonic
cd canonic

Now, let's create a .env file to store our license key and other parameters. The license key can be obtained from your profile settings on the cloud version of Canonic. We use these credentials to validate your subscription plan.

Self-hosted Canonic's features and limits are based on the plan you've selected.
CANONIC_LICENSE_KEY="<YOUR_LICENSE_KEY>"
APP_URL="<URL_WHERE_THIS_APP_WILL_BE_HOSTED>"

Running the Docker Image

Now let's run the docker image. We pass in the env file we just created along with some volumes to persist data. Canonic runs on port 80 inside the docker container. We're mapping it to 3000 but you can map it to whatever port you would like the app to be accessible on.

docker run                 \
  -it                      \
  --platform=linux/amd64   \
  -v mongodbdata:/data/db  \
  -v candata:/projects     \
  -v dynamodb:/dynamodb    \
  -p 3000:80               \
  --env-file .env          \
  trycanonic/canonic
  

Once you run the command, it takes a few seconds for the application to boot up. Once it's ready you can visit localhost:3000. You'll be presented with the signup screen.

At this point, in behavior, your self-hosted copy should behave exactly like the cloud version of the platform. Feel free to signup and get started! The number of collaborators and users would be limited by the pricing plan you pick.

For a more detailed overview, check out the documentation.


Harnessing the power of self-hosting

Canonic's self-hosting features provide a special fusion of infrastructure control with no-code creation. Canonic provides its users with data protection, control, and flexibility by enabling them to deploy and host their applications on their own infrastructure.

Canonic's self-hosting opens up a world of possibilities, whether you're an entrepreneur creating a startup, a developer prototyping a project, or an organization needing data control.

Try it out today


Did you find what you were looking for?
👍
👎
What went wrong?
Want to discuss?We have a thriving Discordcommunity that can help you. →

Enough said, let's start building

Start using canonic's fullstack solution to build internal tools for free