Backend: - Add 2FA authentication with TOTP support - Add API keys management system - Add audit logging for security events - Add file upload/management system - Add notifications system with preferences - Add session management - Add webhooks integration - Add analytics endpoints - Add export functionality - Add password policy enforcement - Add new database migrations for core tables Frontend: - Add module position system (top/bottom sidebar sections) - Add search and notifications module configuration tabs - Add mobile logo replacing hamburger menu - Center page title absolutely when no tabs present - Align sidebar footer toggles with navigation items - Add lighter icon color in dark theme for mobile - Add API keys management page - Add notifications page with context - Add admin analytics and audit logs pages 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
110 lines
2.5 KiB
Markdown
110 lines
2.5 KiB
Markdown
# Service App
|
|
|
|
Modern web application for service management. Built with React, FastAPI, and SQLite.
|
|
|
|
## Features
|
|
|
|
- User management (admin)
|
|
- Authentication (JWT) + 2FA (TOTP) + API keys
|
|
- Active sessions (view/revoke)
|
|
- Audit log + analytics (admin)
|
|
- In-app notifications
|
|
- Modern, responsive UI with theming
|
|
- Fully containerized with Docker
|
|
|
|
## Technology Stack
|
|
|
|
### Frontend
|
|
- React 19 + TypeScript
|
|
- Vite (build tool)
|
|
- React Router
|
|
- Axios
|
|
|
|
### Backend
|
|
- FastAPI (Python 3.11+)
|
|
- SQLAlchemy 2.0 (ORM)
|
|
- SQLite (Database)
|
|
- Alembic (migrations)
|
|
- JWT authentication
|
|
|
|
### Infrastructure
|
|
- Docker + Docker Compose
|
|
|
|
## Quick Start
|
|
|
|
### Prerequisites
|
|
|
|
- Docker and Docker Compose
|
|
- Git
|
|
|
|
### Installation
|
|
|
|
1. Clone the repository:
|
|
```bash
|
|
git clone <repository-url>
|
|
cd <repository-folder>
|
|
```
|
|
|
|
2. Copy environment variables:
|
|
```bash
|
|
cp .env.example .env
|
|
# Edit .env with your configuration
|
|
```
|
|
|
|
3. Generate secret key:
|
|
```bash
|
|
openssl rand -base64 32
|
|
# Add to .env as SECRET_KEY
|
|
```
|
|
|
|
4. Start all services:
|
|
```bash
|
|
docker-compose up -d
|
|
```
|
|
|
|
5. Access the application:
|
|
- Frontend: http://localhost:5174
|
|
- Backend API: http://localhost:5174/api/v1
|
|
- API Documentation: http://localhost:5174/docs
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
.
|
|
├── docker-compose.yml
|
|
├── backend/ # FastAPI application
|
|
│ ├── app/
|
|
│ │ ├── api/ # API routes
|
|
│ │ ├── models/ # SQLAlchemy models
|
|
│ │ ├── schemas/ # Pydantic schemas
|
|
│ │ ├── services/ # Business logic
|
|
│ │ └── main.py # Entry point
|
|
│ └── alembic/ # Database migrations
|
|
├── frontend/ # React application
|
|
│ └── src/
|
|
│ ├── components/ # React components
|
|
│ ├── pages/ # Page components
|
|
│ ├── api/ # API client
|
|
│ └── hooks/ # Custom hooks
|
|
└── scripts/ # Utility scripts
|
|
```
|
|
|
|
## Configuration
|
|
|
|
### Environment Variables
|
|
|
|
See `.env.example` for all available configuration options.
|
|
|
|
Key variables:
|
|
- `SECRET_KEY`: JWT secret key
|
|
- `ALLOWED_HOSTS`: CORS configuration
|
|
|
|
### Persistent Data
|
|
|
|
- SQLite database: `sqlite:////config/config.db` (bind-mounted via `./config:/config`)
|
|
- Uploads: `/config/uploads` by default (can be overridden with `FILE_STORAGE_PATH`)
|
|
|
|
## Contributing
|
|
|
|
Feel free to fork and customize for your needs.
|