Getting Started
Add a configuration file
Create a file named monolayer.config.ts in the root folder of your project with the following contents:
ts
import type { Configuration } from "@monolayer/sdk";
const config: Configuration = {
// `workloadsPath` points to the folder where the workloads will be defined.
// Change it to a relative path of your choice within your project.
workloadsPath: "src/workloads",
};
export default config;Define workloads
We'll define a PostgresDatabase workload that represents a PostgreSQL database.
ts
import { PostgreSQL } from "@monolayer/sdk";
import pg from "pg";
export const productsDb = new PostgresDatabase("products");Launching workloads
bash
npx monolayer start dev
In this example, running npx monolayer start dev will:
- Launch a Docker container with a PostgreSQL database
- Create the
productsdatabase if it does not already exist. - Write the connection string for the server to the
.env.localfile.
You can check the status of the workloads with:
bash
npx monolayer status devUsing workloads
You can configure your database client with the created connection string.
ts
import { productsDb } from "src/workloads/postgres";
import pg from "pg";
// Skip if your web framework already loads the `.env` file.
import dotenv from "dotenv";
dotenv.config();
const client = new pg.Pool({
// The environment variable is set when you launch `npx monolayer start dev`
connectionString: process.env[productsDb.connectionStringEnvVar],
});
// Querying the products database.
await client.query("SELECT 1");