Files
ledgerdock/README.md

142 lines
4.0 KiB
Markdown

# LedgerDock
LedgerDock is a private document workspace you can run on your own computer or server.
It helps teams collect files, process text from documents, and find information quickly with search.
## What LedgerDock Is For
- Upload files and folders from one place
- Keep documents organized and searchable
- Extract text from scans and images (OCR)
- Download originals or extracted text
## Before You Start
You need:
- Docker Desktop (Windows or macOS) or Docker Engine + Docker Compose (Linux)
- A terminal app
- The project folder on your machine
- Internet access the first time you build containers
## Install With Docker Compose
Follow these steps from the project folder (where `docker-compose.yml` is located).
1. Create your local settings file from the template.
```bash
cp .env.example .env
```
2. Open `.env` in a text editor and set your own passwords and keys.
3. Start LedgerDock.
```bash
docker compose up --build -d
```
4. Wait until startup is complete, then open the app:
- LedgerDock web app: `http://localhost:5173`
- Health check: `http://localhost:8000/api/v1/health`
5. Sign in with the admin username and password you set in `.env`.
## `.env` Settings Explained In Plain Language
LedgerDock reads settings from `.env`. Some values are required and some are optional.
### Required: Change These Before First Use
- `POSTGRES_PASSWORD`: Password for the internal database.
- `REDIS_PASSWORD`: Password for the internal queue service.
- `AUTH_BOOTSTRAP_ADMIN_PASSWORD`: First admin login password.
- `APP_SETTINGS_ENCRYPTION_KEY`: Secret used to protect saved app settings.
- `TYPESENSE_API_KEY`: Secret key for the search engine.
Use long, unique values for each one. Do not reuse personal passwords.
### Required: Usually Keep Defaults Unless You Know You Need Changes
- `POSTGRES_USER`: Database username.
- `POSTGRES_DB`: Database name.
- `DATABASE_URL`: Connection string to the database service.
- `REDIS_URL`: Connection string to the Redis service.
- `AUTH_BOOTSTRAP_ADMIN_USERNAME`: First admin username (default `admin`).
If you change passwords, make sure matching URLs use the same new password.
### Optional User Account (Can Be Left Empty)
- `AUTH_BOOTSTRAP_USER_USERNAME`
- `AUTH_BOOTSTRAP_USER_PASSWORD`
These create an extra non-admin account on first startup.
### Network and Access Settings
- `HOST_BIND_IP`: Where services listen. Keep `127.0.0.1` for local-only access.
- `PUBLIC_BASE_URL`: Backend base URL. Local default is `http://localhost:8000`.
- `CORS_ORIGINS`: Allowed frontend origins. Keep local defaults for single-machine use.
- `VITE_API_BASE`: Frontend API URL override. Leave empty unless you know you need it.
### Environment Mode
- `APP_ENV=development`: Local mode (default).
- `APP_ENV=production`: Use when running as a real shared deployment with HTTPS and tighter security settings.
- Frontend runtime switches to a static build served by Nginx in this mode.
## Daily Use Commands
Start or rebuild:
```bash
docker compose up --build -d
```
Stop:
```bash
docker compose down
```
View logs:
```bash
docker compose logs -f
```
View backend logs only:
```bash
docker compose logs -f api worker
```
## Where Your Data Is Stored
LedgerDock stores data in Docker volumes so it survives container restarts:
- `db-data` for PostgreSQL data
- `redis-data` for Redis data
- `dcm-storage` for uploaded files and app storage
- `typesense-data` for the search index
If you switch to host bind mounts (for example under `./data/`), create those directories and grant write access to container runtime user `uid=10001` for backend storage paths.
To remove everything, including data:
```bash
docker compose down -v
```
Warning: this permanently deletes your LedgerDock data on this machine.
## First Checks After Install
- Open `http://localhost:5173` and confirm the login page appears.
- Open `http://localhost:8000/api/v1/health` and confirm you get `{"status":"ok"}`.
- Upload one sample file and confirm it appears in search.
## Need Technical Documentation?
Developer and operator docs are in `doc/`, starting at `doc/README.md`.