https://github.com/paulofpaiva/linkvault
linkvault - Manage and organize your saved links.
https://github.com/paulofpaiva/linkvault
drizzle-orm express nodejs postgresql react
Last synced: 3 months ago
JSON representation
linkvault - Manage and organize your saved links.
- Host: GitHub
- URL: https://github.com/paulofpaiva/linkvault
- Owner: paulofpaiva
- Created: 2025-10-29T18:36:27.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-10-29T18:54:47.000Z (9 months ago)
- Last Synced: 2025-10-29T20:48:22.148Z (9 months ago)
- Topics: drizzle-orm, express, nodejs, postgresql, react
- Language: TypeScript
- Homepage: https://linkvault.up.railway.app/
- Size: 130 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

# LinkVault
linkvault is a collaborative link manager that lets you save and organize links, add notes, share public collections, and explore what other users are curating.
## Tech Stack
- **Backend**: Node.js, Express, TypeScript, Drizzle ORM, PostgreSQL
- **Frontend**: React, Vite, TailwindCSS, TanStack Query
- **Auth**: JWT with httpOnly refresh cookies
- **DevOps**: Docker, Docker Compose, pnpm workspaces
## Setup
### 1. Install Dependencies
```bash
pnpm install
```
### 2. Configure Environment Variables
Copy the example file:
```bash
cp .env.example .env
```
Edit `.env` with your values. This is the **only .env file** for the entire monorepo.
**For production**, generate secure secrets:
```bash
openssl rand -hex 32
```
### 3. Run the Application
#### Option A: Docker (Recommended)
```bash
pnpm docker:up
```
Access:
- Frontend: http://localhost:5173
- API: http://localhost:3000
#### Option B: Local Development
Requirements: PostgreSQL running locally
1. Update `.env` to use `localhost` instead of `db`:
```bash
DATABASE_URL=postgresql://postgres:password@localhost:5432/linkvaultdb
```
2. Run in separate terminals:
```bash
# Terminal 1
pnpm dev:api
# Terminal 2
pnpm dev:web
```