126 lines
3.2 KiB
Markdown
126 lines
3.2 KiB
Markdown
# ArkLinks
|
|
|
|
A modern, customizable link-in-bio solution built with React and Appwrite.
|
|
|
|
## Features
|
|
|
|
- **Setup Wizard** - Easy first-time configuration
|
|
- **Link Management** - Add, edit, reorder your links
|
|
- **Social Media** - Connect all your social profiles
|
|
- **Theme Customization** - Colors, fonts, button styles
|
|
- **Gallery** - Showcase your past works
|
|
- **App Downloads** - iOS/Android app links with Coming Soon badge
|
|
- **QR Code Generator** - Custom QR codes with your logo
|
|
- **Coming Soon** - Mark links/apps as coming soon
|
|
- **Mobile Responsive** - Looks great on all devices
|
|
|
|
## Quick Start
|
|
|
|
### 1. Setup Appwrite
|
|
|
|
Create a project on [Appwrite Cloud](https://cloud.appwrite.io) or self-hosted instance.
|
|
|
|
The database, collections, and bucket are already created. Note your:
|
|
- Endpoint URL (e.g., `https://cloud.appwrite.io/v1`)
|
|
- Project ID
|
|
|
|
### 2. Configure Environment
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
```
|
|
|
|
Edit `.env`:
|
|
```
|
|
VITE_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
|
|
VITE_APPWRITE_PROJECT_ID=your-project-id
|
|
```
|
|
|
|
### 3. Run Locally
|
|
|
|
```bash
|
|
npm install
|
|
npm run dev
|
|
```
|
|
|
|
Open http://localhost:3000
|
|
|
|
### 4. Deploy with Docker
|
|
|
|
```bash
|
|
# Set environment variables
|
|
export VITE_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
|
|
export VITE_APPWRITE_PROJECT_ID=your-project-id
|
|
|
|
# Build and run
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
src/
|
|
├── components/
|
|
│ └── AdminLayout.jsx # Admin sidebar layout
|
|
├── lib/
|
|
│ └── appwrite.js # Appwrite SDK configuration
|
|
├── pages/
|
|
│ ├── Home.jsx # Public profile page
|
|
│ ├── ComingSoon.jsx # Coming soon page
|
|
│ └── admin/
|
|
│ ├── Setup.jsx # First-time setup wizard
|
|
│ ├── Dashboard.jsx # Admin dashboard
|
|
│ ├── Links.jsx # Manage links
|
|
│ ├── Social.jsx # Social media links
|
|
│ ├── Theme.jsx # Theme customization
|
|
│ ├── Gallery.jsx # Gallery management
|
|
│ ├── Apps.jsx # App download links
|
|
│ └── QRCode.jsx # QR code generator
|
|
├── App.jsx # Main router
|
|
├── main.jsx # Entry point
|
|
└── index.css # Tailwind CSS
|
|
```
|
|
|
|
## Appwrite Database Structure
|
|
|
|
**Database:** `arklinks`
|
|
|
|
| Collection | Purpose |
|
|
|------------|---------|
|
|
| `clients` | Business profile info |
|
|
| `links` | Custom links |
|
|
| `socialLinks` | Social media profiles |
|
|
| `themes` | Color and style settings |
|
|
| `gallery` | Portfolio images |
|
|
| `apps` | App download links |
|
|
|
|
**Bucket:** `arklinks-media` - Stores logos and gallery images
|
|
|
|
## Deployment for Each Client
|
|
|
|
1. Clone the repo
|
|
2. Set environment variables for Appwrite
|
|
3. Deploy with Docker:
|
|
|
|
```bash
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
4. Visit the URL - the setup wizard will guide through configuration
|
|
5. Each deployment creates its own records in the central Appwrite database
|
|
|
|
## Tech Stack
|
|
|
|
- **React 18** - UI framework
|
|
- **Vite** - Build tool
|
|
- **Tailwind CSS** - Styling
|
|
- **React Router** - Navigation
|
|
- **Appwrite** - Database & Storage
|
|
- **qrcode.react** - QR code generation
|
|
- **Lucide React** - Icons
|
|
- **Docker + Nginx** - Production deployment
|
|
|
|
## License
|
|
|
|
MIT
|