mirror of
https://github.com/KohakuBlueleaf/KohakuHub.git
synced 2026-07-15 18:25:09 -05:00
141 lines
3.2 KiB
Markdown
141 lines
3.2 KiB
Markdown
---
|
|
title: Docker Deployment
|
|
description: Complete Docker Compose setup guide for KohakuHub.
|
|
icon: i-carbon-container-services
|
|
---
|
|
|
|
# Docker Deployment
|
|
|
|
This guide provides a complete walkthrough for deploying KohakuHub using Docker Compose.
|
|
|
|
## Quick Deploy (Recommended)
|
|
|
|
This is the easiest and fastest way to get KohakuHub running.
|
|
|
|
### 1. Clone the Repository
|
|
|
|
```bash
|
|
git clone https://github.com/KohakuBlueleaf/KohakuHub.git
|
|
cd KohakuHub
|
|
```
|
|
|
|
### 2. Configure and Deploy
|
|
|
|
First, run the interactive script to generate your `docker-compose.yml` file. This will guide you through setting up the database, storage, and other services.
|
|
|
|
```bash
|
|
python scripts/generate_docker_compose.py
|
|
```
|
|
|
|
Then, run the deployment script. This will automatically build the frontend applications and start all the Docker services.
|
|
|
|
```bash
|
|
python scripts/deploy.py
|
|
```
|
|
|
|
That's it! The application is now running.
|
|
|
|
## Step-by-Step Setup
|
|
|
|
If you need more control over the setup process, you can follow these manual steps.
|
|
|
|
### 1. Clone the Repository
|
|
|
|
```bash
|
|
git clone https://github.com/KohakuBlueleaf/KohakuHub.git
|
|
cd KohakuHub
|
|
```
|
|
|
|
### 2. Generate `docker-compose.yml`
|
|
|
|
Copy the example file and manually edit it to fit your environment.
|
|
|
|
```bash
|
|
cp docker-compose.example.yml docker-compose.yml
|
|
```
|
|
|
|
### 3. Build the Frontend
|
|
|
|
Before starting the services, you need to build the frontend applications:
|
|
|
|
```bash
|
|
pnpm install
|
|
pnpm run build
|
|
```
|
|
|
|
### 4. Start the Services
|
|
|
|
To start all services in detached mode, run:
|
|
|
|
```bash
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
## Security Configuration
|
|
|
|
It is **critical** to change the default secrets before deploying to production.
|
|
|
|
### Generate Secret Keys
|
|
|
|
You can generate secure random strings for your secrets using the following commands:
|
|
|
|
```bash
|
|
# Generate a 64-character random string for session and admin tokens
|
|
python scripts/generate_secret.py 64
|
|
|
|
# Or use openssl
|
|
openssl rand -base64 48
|
|
```
|
|
|
|
Update the following variables in your `docker-compose.yml` with the generated secrets:
|
|
|
|
- `KOHAKU_HUB_SESSION_SECRET`
|
|
- `KOHAKU_HUB_ADMIN_SECRET_TOKEN`
|
|
- `LAKEFS_AUTH_ENCRYPT_SECRET_KEY`
|
|
|
|
## Services
|
|
|
|
The Docker Compose setup includes the following services:
|
|
|
|
- **hub-ui**: Nginx server for the frontend application (port `28080`).
|
|
- **hub-api**: The main FastAPI backend (port `48888`).
|
|
- **postgres**: PostgreSQL database for metadata (port `5432`).
|
|
- **lakefs**: LakeFS for data versioning (port `28000`). Pinned to
|
|
`treeverse/lakefs:latest`; **minimum supported LakeFS is v0.54.0**
|
|
(2021-11-08) because the file-list `expand=true` path uses
|
|
`logCommits`'s `objects=` / `prefixes=` / `limit=` filters introduced
|
|
in that release.
|
|
- **minio**: MinIO for S3-compatible object storage (ports `29000` and `29001`).
|
|
|
|
## Managing the Application
|
|
|
|
### View Logs
|
|
|
|
To view the logs for all services, use:
|
|
|
|
```bash
|
|
docker-compose logs -f
|
|
```
|
|
|
|
To view the logs for a specific service, use:
|
|
|
|
```bash
|
|
docker-compose logs -f hub-api
|
|
```
|
|
|
|
### Stop the Services
|
|
|
|
To stop all running services, use:
|
|
|
|
```bash
|
|
docker-compose down
|
|
```
|
|
|
|
## Accessing the Application
|
|
|
|
- **Web UI**: `http://localhost:28080`
|
|
- **Admin Portal**: `http://localhost:28080/admin`
|
|
- **API Docs**: `http://localhost:48888/docs`
|
|
- **LakeFS UI**: `http://localhost:28000`
|
|
- **MinIO Console**: `http://localhost:29000`
|