ინსტალაცია
OpenPR ინსტალაციის სამ მეთოდს მხარს უჭერს. Docker Compose სრულ-ფუნქციური ინსტანციის მიღების უსწრაფესი გზაა.
რეკომენდებული
Docker Compose ყველა სერვისს (API, frontend, worker, MCP სერვერი, PostgreSQL) ერთი ბრძანებით ამოქმედებს. Rust-ინსტრუმენტ-ჯაჭვი ან Node.js საჭირო არ არის.
წინაპირობები
| მოთხოვნა | მინიმუმი | შენიშვნა |
|---|---|---|
| Docker | 20.10+ | ან Podman 3.0+ podman-compose-ით |
| Docker Compose | 2.0+ | Docker Desktop-ში შეტანილი |
| Rust (source build) | 1.75.0 | Docker-ინსტალაციისთვის საჭირო არ არის |
| Node.js (source build) | 20+ | SvelteKit-ის frontend-ის build-ისთვის |
| PostgreSQL (source build) | 15+ | Docker-მეთოდი PostgreSQL-ს მოიცავს |
| დისკ-სივრცე | 500 MB | images + მონაცემ-ბაზა |
| RAM | 1 GB | 2 GB+ წარმოებისთვის რეკომენდებული |
მეთოდი 1: Docker Compose (რეკომენდებული)
საცავის clone და ყველა სერვისის გაშვება:
git clone https://github.com/openprx/openpr.git
cd openpr
cp .env.example .env
docker-compose up -dეს ხუთ სერვისს იწყებს:
| სერვისი | კონტეინერი | პორტი | აღწერა |
|---|---|---|---|
| PostgreSQL | openpr-postgres | 5432 | მონაცემ-ბაზა ავტო-მიგრაციით |
| API | openpr-api | 8081 (8080-ზე გადავყავს) | REST API სერვერი |
| Worker | openpr-worker | -- | ფონ-ამოცან-პროცესორი |
| MCP სერვერი | openpr-mcp-server | 8090 | MCP ინსტრუმენტ-სერვერი |
| Frontend | openpr-frontend | 3000 | SvelteKit ვებ UI |
ყველა სერვისის გაშვების გადამოწმება:
docker-compose psპირველი მომხმარებელი
პირველი დარეგისტრირებული მომხმარებელი ავტომატურად admin-ი ხდება. URL-ის სხვებთან გაზიარებამდე admin-ანგარიში რეგისტრაციაში გაიარე.
გარემო-ცვლადები
განასახების კასტომიზაციისთვის .env-ის რედაქტირება:
# Database
DATABASE_URL=postgres://openpr:openpr@localhost:5432/openpr
POSTGRES_DB=openpr
POSTGRES_USER=openpr
POSTGRES_PASSWORD=openpr
# JWT (change in production!)
JWT_SECRET=change-me-in-production
JWT_ACCESS_TTL_SECONDS=2592000
JWT_REFRESH_TTL_SECONDS=604800
# Frontend
VITE_API_URL=http://localhost:8080
# MCP Server
MCP_SERVER_PORT=8090უსაფრთხოება
წარმოებაში განასახებამდე JWT_SECRET-სა და მონაცემ-ბაზ-პაროლები ყოველთვის შეცვალე. ძლიერი, შემთხვევითი მნიშვნელობების გამოყენება.
მეთოდი 2: Podman
OpenPR Podman-თან მუშაობს, როგორც Docker-ის ალტერნატივა. ძირითადი განსხვავება ისაა, რომ Podman DNS-ის გამო build-ებისთვის --network=host-ს საჭიროებს:
git clone https://github.com/openprx/openpr.git
cd openpr
cp .env.example .env
# Build images with network access
sudo podman build --network=host --build-arg APP_BIN=api -f Dockerfile.prebuilt -t openpr_api .
sudo podman build --network=host --build-arg APP_BIN=worker -f Dockerfile.prebuilt -t openpr_worker .
sudo podman build --network=host --build-arg APP_BIN=mcp-server -f Dockerfile.prebuilt -t openpr_mcp-server .
sudo podman build --network=host -f frontend/Dockerfile -t openpr_frontend frontend/
# Start services
sudo podman-compose up -dPodman DNS
Frontend-ის Nginx-კონტეინერი DNS-სამარნად 10.89.0.1-ს იყენებს (Podman-ის ნაგულისხმევი ქსელ-DNS), არა 127.0.0.11-ს (Docker-ის ნაგულისხმევი). ეს ჩართულ Nginx-კონფ-ში უკვე კონფიგურირებულია.
მეთოდი 3: Source-დან Build
Backend
# Prerequisites: Rust 1.75+, PostgreSQL 15+
git clone https://github.com/openprx/openpr.git
cd openpr
# Configure
cp .env.example .env
# Edit .env with your PostgreSQL connection string
# Build all binaries
cargo build --release -p api -p worker -p mcp-serverბინარები მდებარეობს:
target/release/api-- REST API სერვერიtarget/release/worker-- ფონ-workertarget/release/mcp-server-- MCP ინსტრუმენტ-სერვერი
Frontend
cd frontend
npm install # or: bun install
npm run build # or: bun run buildBuild-გამოსავალი frontend/build/-შია. Nginx-ით ან ნებისმიერი სტატიკ-ფაილ-სერვერით გამოიყენე.
მონაცემ-ბაზ-გამართვა
მონაცემ-ბაზის შექმნა და მიგრაციების გაშვება:
# Create database
createdb -U postgres openpr
# Migrations run automatically on first API start
# Or apply manually:
psql -U openpr -d openpr -f migrations/0001_initial.sql
# ... apply remaining migrations in orderსერვისების გაშვება
# Terminal 1: API server
./target/release/api
# Terminal 2: Worker
./target/release/worker
# Terminal 3: MCP server
./target/release/mcp-server --transport http --bind-addr 0.0.0.0:8090ინსტალაციის გადამოწმება
ყველა სერვისის გაშვებისას ყოველი endpoint-ის გადამოწმება:
# API health check
curl http://localhost:8080/health
# MCP server health
curl http://localhost:8090/health
# Frontend
curl -s http://localhost:3000 | head -5ვებ UI-ზე წვდომისთვის ბრაუზერში http://localhost:3000 გახსენი.
დეინსტალაცია
Docker Compose
cd openpr
docker-compose down -v # -v removes volumes (database data)
docker rmi $(docker images 'openpr*' -q)Source Build
# Stop running services (Ctrl+C in each terminal)
# Remove binaries
rm -f target/release/api target/release/worker target/release/mcp-server
# Drop database (optional)
dropdb -U postgres openprშემდეგი ნაბიჯები
- სწრაფი დაწყება -- 5 წუთში პირველი სამუშაო სივრცისა და პროექტის შექმნა
- Docker განასახება -- წარმოებ-Docker-კონფიგურაცია
- წარმოებ-განასახება -- Caddy, PostgreSQL და უსაფრთხოების გამაგრება