A modern, responsive frontend for the Luma document management and chat system built with SvelteKit
Getting Started • Documentation • Features • Contributing • License
Modern Authentication System
Responsive Dashboard
Advanced UI Components
Performance Optimized
Clone the repository
git clone https://github.com/your-org/luma-frontend-svelte.git
cd luma-frontend-svelte
Set up environment variables
cp .env.example .env
# Edit .env with your configuration
Install and run ```bash
npm install
npm run dev
npm run build
### Docker Setup
```bash
# Build and run with Docker
docker build -t luma-frontend .
docker run -p 5173:5173 --env-file .env luma-frontend
# Or using Docker Compose
docker-compose up
Detailed documentation is available in the docs directory:
Create a .env
file with the following:
# Docker Network
DOCKER_NETWORK_NAME=
# Frontend Configuration
FRONTEND_PORT=
FRONTEND_URL=
VITE_API_URL=
FRONTEND_API_URL=
luma-frontend-svelte/
├── src/
│ ├── lib/ # Shared library code
│ │ ├── components/ # Reusable UI components
│ │ ├── services/ # API and service integrations
│ │ ├── stores/ # Svelte stores (state management)
│ │ ├── types/ # TypeScript type definitions
│ │ ├── utils/ # Utility functions
│ │ ├── config/ # App configuration
│ │ ├── assets/ # Static assets
│ │ └── index.ts # Library exports
│ └── routes/ # SvelteKit routes
│ ├── +layout.svelte # Root layout
│ ├── +page.svelte # Home page
│ ├── +error.svelte # Error page
│ ├── login/ # Authentication routes
│ ├── register/ # User registration
│ ├── dashboard/ # Main application
├── chats/ # Chat interface
├── namespaces/ # Space management
└── settings/ # Application settings
│ ├── admin-setup/ # Admin configuration
│ └── backend-down/ # Error handling
├── package.json # NPM dependencies
├── Dockerfile # Docker build configuration
└── docker-compose.yaml # Docker services configuration
# Development
npm run dev # Start development server
npm run build # Build for production
We welcome contributions! Please see our Contributing Guidelines for details.
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)<script lang="ts">
import { auth } from '$lib/stores/auth';
let username = '';
let password = '';
async function handleLogin() {
await auth.login({ username, password });
}
</script>
<form on:submit|preventDefault={handleLogin}>
<input bind:value={username} type="text" placeholder="Username" />
<input bind:value={password} type="password" placeholder="Password" />
<button type="submit">Login</button>
</form>
Variable | Description | Required | Default |
---|---|---|---|
FRONTEND_PORT | Server port | No | 5173 |
VITE_API_URL | Backend API URL | Yes | - |
DEFAULT_THEME | UI theme | No | skeleton |
ENABLE_DARK_MODE | Dark mode support | No | true |
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). This means:
For the full license text, see the LICENSE file or visit GNU AGPL-3.0.