| v2.0.0.beta-15

Dev Setup

Learn how to set up your local development environment.

Monorepo Structure

Shelve uses a monorepo structure to manage multiple packages and applications. The main packages are:

  • apps/shelve: The main Shelve application.
  • apps/lp: The landing page for Shelve.
  • apps/base: This is the base layer that contains the shared configuration lp and shelve (components, plugins, etc).
  • packages/cli: The CLI connected to the Shelve application (push, pull, etc).
  • packages/crypto: The encryption and decryption package.
  • packages/types: The shared types inside the monorepo.
  • packages/utils: The shared utilities inside the monorepo.

The monorepo is managed utilizing Turborepo. With Turborepo, it is possible to execute commands across all packages or target specific packages. Consequently, you will primarily operate from the root of the repository and execute commands such as pnpm run dev:app to initiate the Shelve application.

Necessary Environment Variables

  • DATABASE_URL (PostgreSQL)
  • NUXT_OAUTH_GITHUB_CLIENT_ID (or google)
  • NUXT_OAUTH_GITHUB_CLIENT_SECRET (or google)
  • NUXT_PRIVATE_ENCRYPTION_KEY

To set up the development environment for Shelve, follow these steps:

Clone the Repository:

terminal
git clone https://github.com/HugoRCD/shelve.git
cd shelve

Install Dependencies:

terminal
pnpm install

Copy the Example Environment File:

terminal
cp apps/shelve/.env.example apps/shelve/.env

Update Environment Variables:

Edit the apps/shelve/.env file and update the necessary environment variables.

Start the Development Server:

terminal
pnpm run dev:app
Edit this page