Standalone installation
This guide explains how to setup SnailyCADv4 without Docker.
You can also find a video version of this guide.
Requirements
All the items listed below are required to get SnailyCADv4 up and running smoothly.
- Git
- Node.js (16.6+ is required.) (Video Guide)
- yarn (
npm install --global yarn
) (Video Guide) - PostgreSQL (version 14 or higher) (Video Guide)
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
To fix this, run the following command:
Windows
cd Documents
Linux
cd /home/$(whoami)
Firstly, we need to clone the GitHub repository to our local machine:
git clone https://github.com/SnailyCAD/snaily-cadv4.git

Once the files have been cloned from GitHub, we can enter that folder:
cd snaily-cadv4

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

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
:
Windows:
copy .env.example .env
Linux:
cp .env.example .env

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 likelylocalhost
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.,https://cad.mysite.com
orhttp://99.99.00.190:3000
.NEXT_PUBLIC_PROD_ORIGIN
: The URL/IP to where the API is hosted at, e.g.,https://cad-api.mysite.com/v1
orhttp://99.99.00.190:8000/v1
.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 longDATABASE_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:
Windows/Linux:
node scripts/copy-env.mjs --client --api

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:
node scripts/copy-env.mjs --client --api
yarn workspace @snailycad/client build
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

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: http://192.168.92.20:3000
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!