chore: Remove admin-ui, improve .env.example, add comprehensive README

- Removed deprecated admin-ui Rust application
- Updated .env.example with better organization and comments
- Added comprehensive README.md with:
  - Architecture overview
  - Quick start guide
  - Development instructions
  - Feature documentation
  - Environment variable reference
  - API documentation link
This commit is contained in:
2026-03-06 15:06:04 +01:00
parent a7fe565a1f
commit ff34b2bbf4
5 changed files with 193 additions and 379 deletions

151
README.md Normal file
View File

@@ -0,0 +1,151 @@
# Stripstream Librarian
A comprehensive comic book and e-book management system with automatic indexing, full-text search, and a modern web interface.
## Architecture
The project consists of the following components:
- **API** (`apps/api/`) - Rust-based REST API service
- **Indexer** (`apps/indexer/`) - Rust-based background indexing service
- **Backoffice** (`apps/backoffice/`) - Next.js web administration interface
- **Infrastructure** (`infra/`) - Docker Compose setup with PostgreSQL and Meilisearch
## Quick Start
### Prerequisites
- Docker and Docker Compose
- (Optional) Rust toolchain for local development
- (Optional) Node.js 18+ for backoffice development
### Environment Setup
1. Copy the example environment file:
```bash
cp .env.example .env
```
2. Edit `.env` and set secure values for:
- `MEILI_MASTER_KEY` - Master key for Meilisearch
- `API_BOOTSTRAP_TOKEN` - Bootstrap token for initial API authentication
### Running with Docker
```bash
cd infra
docker compose up -d
```
This will start:
- PostgreSQL (port 5432)
- Meilisearch (port 7700)
- API service (port 8080)
- Indexer service (port 8081)
- Backoffice web UI (port 8082)
### Accessing the Application
- **Backoffice**: http://localhost:8082
- **API**: http://localhost:8080
- **Meilisearch**: http://localhost:7700
### Default Credentials
The default bootstrap token is configured in your `.env` file. Use this for initial API authentication.
## Development
### Local Development (without Docker)
#### API & Indexer (Rust)
```bash
# Start dependencies
cd infra
docker compose up -d postgres meilisearch
# Run API
cd apps/api
cargo run
# Run Indexer (in another terminal)
cd apps/indexer
cargo run
```
#### Backoffice (Next.js)
```bash
cd apps/backoffice
npm install
npm run dev
```
The backoffice will be available at http://localhost:3000
## Features
### Libraries Management
- Create and manage multiple libraries
- Configure automatic scanning schedules (hourly, daily, weekly)
- Real-time file watcher for instant indexing
- Full and incremental rebuild options
### Books Management
- Support for CBZ, CBR, and PDF formats
- Automatic metadata extraction
- Series and volume detection
- Full-text search with Meilisearch
### Jobs Monitoring
- Real-time job progress tracking
- Detailed statistics (scanned, indexed, removed, errors)
- Job history and logs
- Cancel pending jobs
### Search
- Full-text search across titles, authors, and series
- Library filtering
- Real-time suggestions
## Environment Variables
| Variable | Description | Default |
|----------|-------------|---------|
| `API_LISTEN_ADDR` | API service bind address | `0.0.0.0:8080` |
| `INDEXER_LISTEN_ADDR` | Indexer service bind address | `0.0.0.0:8081` |
| `BACKOFFICE_PORT` | Backoffice web UI port | `8082` |
| `DATABASE_URL` | PostgreSQL connection string | `postgres://stripstream:stripstream@postgres:5432/stripstream` |
| `MEILI_URL` | Meilisearch connection URL | `http://meilisearch:7700` |
| `MEILI_MASTER_KEY` | Meilisearch master key (required) | - |
| `API_BOOTSTRAP_TOKEN` | Initial API admin token (required) | - |
| `INDEXER_SCAN_INTERVAL_SECONDS` | Watcher scan interval | `5` |
| `LIBRARIES_ROOT_PATH` | Path to libraries directory | `/libraries` |
## API Documentation
The API is documented with OpenAPI/Swagger. When running locally, access the docs at:
```
http://localhost:8080/api-docs
```
## Project Structure
```
stripstream-librarian/
├── apps/
│ ├── api/ # Rust REST API
│ ├── indexer/ # Rust background indexer
│ └── backoffice/ # Next.js web UI
├── infra/
│ ├── docker-compose.yml
│ └── migrations/ # SQL database migrations
├── libraries/ # Book storage (mounted volume)
└── .env # Environment configuration
```
## License
[Your License Here]