Installing Speedy

Little Bit Technologies
3 min readNov 12, 2022

This article will help on getting started with Speedy from ground up.

Photo by Kelli McClintock on Unsplash

Requirements

The bare minimum compute requirement for Speedy is 1 vCPU, 1GB of RAM, 25GB of storage and 100mbps or more network speed. Though both storage and network are quite relative to user’s objective, Speedy can work with any size storage and network speed. A bare-minimal ‘Droplet’ on DigitalOcean is more than enough to get started with Speedy; in fact, it is more than enough to run a 10–20 concurrent user workload for a small App.

Getting Speedy

Speedy can be downloaded from github directly based on the choice of target platform. Speedy is supported on Mac OSX (ARM & Intel), Linux (Intel only), and Windows x64 (developer build). Here is the link for Github to get the Speedy right for your platform, https://github.com/onelittlebit/speedy.

Backend Database

Speedy supports the legendary PostgreSQL only, at the moment. Based on the platform right Postgres version of choice should be installed to start with. Once up and running follow the below steps to create a ‘database’ for your Speedy.

su - postgres
psql postgres
create database <database-name>;
create user <username> with password 'aNiceLongPasswordWithout//';
grant all privileges on database <database> to <username>;

Creating password file

Most secure way to pass the database password to Speedy is via .dbpass file. Create a file with the name .dbpass under the same directory where speedy binary is kept and write the databse password in plain-text in that file. It is expected that this file will only have one line and nothing else. Once Speedy is started for the first time it will automatically secure this file with encryption.

If the database password is same on multiple instance or deployments of Speedy then it is advisable to copy the .dbpass file from one machine to another. In large deployments distribution of this file is highly recommended.

cd /home/scott/speedy
> .dbpass << EOF
aNiceLongPasswordWithout//
EOF

Run Speedy!

At this point everything that is needed for running Speedy is all set, just give it a go. The output will be something similar to below.

./speedy -s=<database-name> -u=<db-username> -e=true
12-Nov-2022 14:29:45.448374 main.go:74: speedy # Running in evaluation mode
12-Nov-2022 14:29:45.449365 main.go:75: speedy # Speedy will accept 5 requests/minute


┌───────────────────────────────────────────────────────────────┐
│ │
│ Speedy v00.6.7 │
│ │
│ is reachable over http://127.0.0.1:3023 │
│ (bound to localhost and port 3023) │
│ │
└───────────────────────────────────────────────────────────────┘
│ │
│ Process ID (aka PID)................................. 16801 │
│ User ID (aka UID).................................... 501 │
│ Group ID (aka GID)................................... 20 │
│ License ID........................................... trial │
│ Max nodes supported.................................. 1 │
│ Max requests per minute.............................. 5 │
│ Max requests per second.............................. 0.1 │
│ Max connections to database.......................... 35 │
│ Speedy listening on ................................. 3023 │
│ Cache tenure time in seconds......................... 30 │
│ License start date...................... 2022-11-12 05.30.00 │
│ License end date........................ 2032-11-12 05.30.00 │
│ │
└───────────────────────────────────────────────────────────────┘

If you need any help, don’t hesitate to write to us at support@getspeedy.app, we will be glad to help.

--

--