Added Readme with install instructions
This commit is contained in:
parent
af4c944de7
commit
66543b75d4
107
README.md
Normal file
107
README.md
Normal file
@ -0,0 +1,107 @@
|
||||
# Alox printer backend
|
||||
|
||||
HTTP backend and admin UI for managing print plates, item SVG templates, layout configurations, and PDF previews.
|
||||
|
||||
## Requirements
|
||||
|
||||
| Requirement | Required for | Notes |
|
||||
|-------------|--------------|-------|
|
||||
| **Go 1.26+** | Build and run | See `go.mod` for the exact toolchain version. |
|
||||
| **`rsvg-convert`** | PDF export only | Part of [librsvg](https://wiki.gnome.org/Projects/LibRsvg). The server starts without it; PDF endpoints return an error until it is installed and on `PATH`. |
|
||||
|
||||
### Installing `rsvg-convert`
|
||||
|
||||
Examples:
|
||||
|
||||
```bash
|
||||
# Debian / Ubuntu
|
||||
sudo apt install librsvg2-bin
|
||||
|
||||
# Fedora
|
||||
sudo dnf install librsvg2-tools
|
||||
|
||||
# Arch / Manjaro
|
||||
sudo pacman -S librsvg
|
||||
|
||||
# macOS (Homebrew)
|
||||
brew install librsvg
|
||||
```
|
||||
|
||||
Verify:
|
||||
|
||||
```bash
|
||||
rsvg-convert --version
|
||||
```
|
||||
|
||||
## Build
|
||||
|
||||
From the repository root:
|
||||
|
||||
```bash
|
||||
go build -o printer-backend .
|
||||
```
|
||||
|
||||
## Run
|
||||
|
||||
Start the API and admin servers from the **repository root** (or any directory where you want the `data/` folder to live):
|
||||
|
||||
```bash
|
||||
./printer-backend serve
|
||||
```
|
||||
|
||||
Defaults (no config file):
|
||||
|
||||
- **API:** `http://127.0.0.1:8080`
|
||||
- **Admin dashboard:** `http://127.0.0.1:8081`
|
||||
|
||||
Stop with `Ctrl+C`.
|
||||
|
||||
### Optional configuration
|
||||
|
||||
Copy `config.example.json` and pass it with `--config`:
|
||||
|
||||
```bash
|
||||
cp config.example.json config.json
|
||||
./printer-backend serve --config config.json
|
||||
```
|
||||
|
||||
| Field | Default | Description |
|
||||
|-------|---------|-------------|
|
||||
| `host` | `127.0.0.1` | Bind address for both servers |
|
||||
| `api_port` | `8080` | REST API port |
|
||||
| `admin_port` | `8081` | Admin UI port |
|
||||
|
||||
Legacy field `port` is still accepted and maps to `api_port` when `api_port` is unset.
|
||||
|
||||
## Data directory
|
||||
|
||||
All runtime data is stored under `data/` relative to the **current working directory**:
|
||||
|
||||
```
|
||||
data/
|
||||
plates/ # plate definitions (JSON)
|
||||
svg_template/ # item SVG files and metadata
|
||||
configurations/ # plate + item + spacing presets (JSON)
|
||||
```
|
||||
|
||||
Directories are created automatically when you save plates, items, or configurations. Run `serve` from the project root if you want to use the bundled sample data.
|
||||
|
||||
## Other commands
|
||||
|
||||
```bash
|
||||
# Print version
|
||||
./printer-backend version
|
||||
|
||||
# Generate a square SVG item template (writes to data/svg_template/)
|
||||
./printer-backend template -o my_item.svg -s 80 -b 2 -m 5 -p 3
|
||||
```
|
||||
|
||||
## Quick check
|
||||
|
||||
After starting the server:
|
||||
|
||||
```bash
|
||||
curl -s http://127.0.0.1:8080/health
|
||||
```
|
||||
|
||||
Open the admin UI in a browser at `http://127.0.0.1:8081`.
|
||||
Loading…
x
Reference in New Issue
Block a user