An open API service indexing awesome lists of open source software.

https://github.com/tushargr0ver/skyvault

SkyVault is a fast, secure cloud file storage app with easy file upload, management, and organization, powered by Next.js, Clerk, ImageKit, and Neon PostgreSQL.
https://github.com/tushargr0ver/skyvault

authentication cdn clerk cloud-storage drizzle-orm file-management file-storage file-upload fullstack hero-ui imagekit nextjs postgresql react responsive-ui tailwindcss typescript vercel

Last synced: 2 months ago
JSON representation

SkyVault is a fast, secure cloud file storage app with easy file upload, management, and organization, powered by Next.js, Clerk, ImageKit, and Neon PostgreSQL.

Awesome Lists containing this project

README

          

# SkyVault

> A **user-friendly file storage application** built with Next.js, Clerk for authentication, Neon PostgreSQL for database management, Drizzle ORM for efficient queries, and HeroUI for a responsive, intuitive interface.

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
[![Vercel Deploy](https://img.shields.io/badge/Deployed%20on-Vercel-000?logo=vercel)](https://www.myskyvault.xyz)
[![Last Commit](https://img.shields.io/github/last-commit/tushargr0ver/skyvault?style=flat-square)](https://github.com/tushargr0ver/skyvault/commits/main)

---

## Features

- **User Authentication**: Secure sign-in and sign-up powered by Clerk.
- **File Uploads**: Effortless file uploads and transformations using ImageKit.
- **File Management**: Organize your files with options to star, trash, and more.
- **Responsive UI**: A clean, responsive design built with HeroUI for seamless device compatibility.

## Tech Stack

- **Frontend**: Next.js, HeroUI
- **Authentication**: Clerk
- **Database**: Neon (PostgreSQL)
- **ORM**: Drizzle
- **File Storage**: ImageKit

## Getting Started

### Prerequisites

- Node.js 18+ and npm
- Clerk account
- Neon PostgreSQL database
- ImageKit account

### Installation

1. Clone the repository:

```bash
git clone https://github.com/tushargr0ver/droply.git
cd droply
```

2. Install dependencies:

```bash
npm install
# or
yarn install
# or
pnpm install
```

3. Create a `.env.local` file in the root directory with the following environment variables:

```
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=your_clerk_publishable_key
CLERK_SECRET_KEY=your_clerk_secret_key

# ImageKit
NEXT_PUBLIC_IMAGEKIT_PUBLIC_KEY=your_imagekit_public_key
IMAGEKIT_PRIVATE_KEY=your_imagekit_private_key
NEXT_PUBLIC_IMAGEKIT_URL_ENDPOINT=your_imagekit_url_endpoint

# Clerk URLs
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/dashboard
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/dashboard

# Fallback URLs
NEXT_PUBLIC_CLERK_SIGN_IN_FALLBACK_REDIRECT_URL=/
NEXT_PUBLIC_CLERK_SIGN_UP_FALLBACK_REDIRECT_URL=/

# App URLs
NEXT_PUBLIC_APP_URL=http://localhost:3000

# Database - Neon PostgreSQL
DATABASE_URL=your_neon_database_url
```

4. Set up your accounts and get the required API keys:
- Create a [Clerk](https://clerk.dev/) account and get your API keys
- Create a [Neon](https://neon.tech/) PostgreSQL database and get your connection string
- Create an [ImageKit](https://imagekit.io/) account and get your API keys

### Running the Application

1. Run the development server:

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
```

2. Open [http://localhost:3000](http://localhost:3000) in your browser to see the application.

### Building for Production

1. Build the application:

```bash
npm run build
# or
yarn build
# or
pnpm build
```

2. Start the production server:
```bash
npm start
# or
yarn start
# or
pnpm start
```