Skip to main content

Standalone installation

This guide explains how to setup SnailyCADv4 without Docker.

You can also find a video version of this guide.


All the items listed below are required to get SnailyCADv4 up and running smoothly.

Getting Started

Once you've got all the items installed, we can get started with installing SnailyCADv4. Open the Command Prompt on Windows or the Terminal on Linux.

1. Cloning the GitHub repository

Warning: Do not install SnailyCADv4 in the root folder. Install it in your Documents folder on Windows or home folder on Linux.

To fix this, run the following command:


cd Documents


cd /home/$(whoami)

Firstly, we need to clone the GitHub repository to our local machine:

git clone
Git clone short clip

Once the files have been cloned from GitHub, we can enter that folder:

cd snaily-cadv4
Change directory short clip

2. Installing dependencies

Now we will install the dependencies that are required for SnailyCADv4 to function properly.

yarn install short clip

3. Configuration

Configuration can be a bit complicated, so pay close attention. The following steps will help you configure SnailyCADv4's environment variables. These variables are used by SnailyCADv4 to connect to the database and store special tokens used for SnailyCAD's features. Tip: In support channels, this will be referenced as the .env file.

We must first copy the .env.example file to .env:


copy .env.example .env


cp .env.example .env
Move env short clip

Now we can start configuring the variables in the .env file. See next step 3.1 .env file.

3.1 .env info

  • POSTGRES_PASSWORD: The password to the PostgreSQL database.
  • POSTGRES_USER: The username to the PostgreSQL database.
  • DB_HOST: The database host. Most likely localhost
  • DB_PORT: The port to the database.
  • POSTGRES_DB: The database name.
  • JWT_SECRET: This is a random value to keep the CAD secured.
  • CORS_ORIGIN_URL: The URL/IP to where the CAD is hosted at, e.g., or
  • NEXT_PUBLIC_PROD_ORIGIN: The URL/IP to where the API is hosted at, e.g., or
  • PORT_API: The port where the API should run on. (Default 8080)
  • PORT_CLIENT: The port where the client should run on. (Default: 3000)
  • ENCRYPTION_TOKEN: Used to generate encrypted values. Must be 32 characters long
  • DATABASE_URL: Do not change unless you know what you're doing!

3.2 Moving env file

Once you've correctly configured all the variables, we must copy the .env file to the client and API:


node scripts/copy-env.mjs --client --api
copy env short clip

WARNING: Please, do not edit packages/client/.env or packages/api/.env directly. Always edit the root .env file.

When changing something in the .env file after the installation process, make sure to run the following steps:

  1. node scripts/copy-env.mjs --client --api
  2. yarn workspace @snailycad/client build

Read more here

4. Building everything

Now we must build all the packages. (client, schemas, config, types)

Note: this process might take 2 to 5minutes

yarn turbo run build
turbo build short clip

5. Starting SnailyCADv4

After completing all the steps above, we are ready to startup the CAD. To do this run the following command:

yarn run concurrently "yarn workspace @snailycad/client start" "yarn workspace @snailycad/api generate && yarn workspace @snailycad/api start"

6. Accessing SnailyCADv4

You can open SnailyCADv4 via a web browser, on your LAN IP and the PORT_CLIENT, example:

SnailyCADv4 also supports domains, WAN IP, etc.


The ports 3000 and 8080 must be forwarded in your firewall if you're not using some proxy.


Do not use localhost for Accessing SnailyCAD. It will not work!