Installing & Running Methaq
اختر الطريقة المناسبة لبنيتك — Docker للسرعة، Kubernetes للإنتاج، أو OpenJDK للخوادم المباشرة.
الطريقة الأسرع لتشغيل ميثاق محلياً أو في بيئة تطوير. نوصي باستخدام docker-compose لربط ميثاق بقاعدة بيانات PostgreSQL.
version: '3.8'
services:
methaq:
image: ghcr.io/methaq/methaq:latest
container_name: methaq
environment:
KC_DB: postgres
KC_DB_URL: jdbc:postgresql://db:5432/methaq
KC_DB_USERNAME: methaq
KC_DB_PASSWORD: your_secure_password
KEYCLOAK_ADMIN: admin
KEYCLOAK_ADMIN_PASSWORD: your_admin_password
ports:
- "8080:8080"
depends_on:
db:
condition: service_healthy
restart: unless-stopped
db:
image: postgres:15-alpine
container_name: methaq-db
environment:
POSTGRES_DB: methaq
POSTGRES_USER: methaq
POSTGRES_PASSWORD: your_secure_password
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U methaq"]
interval: 10s
timeout: 5s
retries: 5
volumes:
pgdata:# Clone and start
git clone https://github.com/methaq/methaq-deploy.git
cd methaq-deploy/docker
# Start both Methaq and PostgreSQL
docker-compose up -d
# Watch logs
docker-compose logs -f methaqhttp://localhost:8080http://localhost:8080/adminadmin — كلمة المرور من KEYCLOAK_ADMIN_PASSWORDبديل خالٍ من daemon لـ Docker. يعمل بنفس صيغة docker-compose مع podman-compose.
# Using podman directly
podman run -d --name methaq -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=your_password ghcr.io/methaq/methaq:latest
# Or with PostgreSQL via podman-compose
podman-compose -f docker-compose.yml up -dللبيئات الإنتاجية. نوصي بـ Helm chart للتثبيت الكامل مع PostgreSQL و Infinispan.
# Add Methaq Helm repository
helm repo add methaq https://charts.methaq.org
helm repo update
# Install with PostgreSQL sidecar
helm install methaq methaq/methaq \
--namespace methaq \
--create-namespace \
--set auth.adminPassword=your_admin_password \
--set db.host=postgresql.methaq.svc \
--set db.name=methaq \
--set db.user=methaq \
--set db.password=your_db_password \
--set replicas=2replicas: 2
image:
repository: ghcr.io/methaq/methaq
tag: latest
resources:
requests:
cpu: "500m"
memory: "512Mi"
limits:
cpu: "2000m"
memory: "2Gi"
auth:
adminUser: admin
adminPassword: "CHANGE_ME"
db:
host: postgresql.methaq.svc
port: 5432
name: methaq
user: methaq
password: "CHANGE_ME"
ingress:
enabled: true
className: nginx
host: your-methaq-domain
tls:
- hosts:
- your-methaq-domain
secretName: methaq-tlshelm install postgresql bitnami/postgresql \
--namespace methaq \
--set auth.database=methaq \
--set auth.username=methaq \
--set auth.password=your_db_passwordللخوادم المادية أو الافتراضية. يتطلب JDK 17+ أو 21.
| المكوّن | الحد الأدنى | الموصى به |
|---|---|---|
| JDK | 17 | 21 LTS |
| RAM | 2 GB | 4 GB+ |
| CPU | 2 cores | 4+ cores |
| Disk | 10 GB | 20 GB SSD |
| OS | Ubuntu 20.04+ | Ubuntu 22.04 LTS / Debian 12 |
# Install OpenJDK 21 (Ubuntu/Debian)
sudo apt-get update
sudo apt-get install -y openjdk-21-jdk
# Download Methaq server
wget https://github.com/methaq/methaq/releases/latest/download/methaq.tar.gz
tar -xzf methaq.tar.gz
cd methaq
# Set environment variable for Java
export JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
# Start in development mode
bin/kc.sh start-dev
# Or in production mode (requires database)
bin/kc.sh start \
--db=postgres \
--db-url=jdbc:postgresql://localhost:5432/methaq \
--db-username=methaq \
--db-password=your_password \
--hostname=your-methaq-domain
sudo nano /etc/systemd/system/methaq.service[Unit]
Description=Methaq Identity Platform
After=network.target postgresql.service
[Service]
Type=simple
User=methaq
Group=methaq
ExecStart=/opt/methaq/bin/kc.sh start
Restart=always
RestartSec=5
LimitNOFILE=1048576
Environment=JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
Environment=KEYCLOAK_ADMIN=admin
Environment=KEYCLOAK_ADMIN_PASSWORD=your_password
[Install]
WantedBy=multi-user.targetsudo systemctl daemon-reload
sudo systemctl enable methaq
sudo systemctl start methaq
sudo systemctl status methaqعند تشغيل ميثاق لأول مرة بدون قاعدة بيانات مُعدّة، يتم استخدام قاعدة H2 المدمجة تلقائياً للتطوير فقط.
admin يُنشأ مع كلمة المرور من KEYCLOAK_ADMIN_PASSWORD/URL: http://your-server:8080/admin
Username: admin
Password: (from KEYCLOAK_ADMIN_PASSWORD env var)بعد بدء الخادم، تحقق من جاهزية النظام:
# Check health endpoint
curl http://localhost:8080/health/ready
# Expected response:
# {"status":"UP"}# Check server info / version
curl http://localhost:8080/realms/master
# Check OIDC discovery
curl http://localhost:8080/realms/master/.well-known/openid-configuration# Create test user via REST API
curl -X POST http://localhost:8080/admin/realms/master/users \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"username": "testuser",
"enabled": true,
"emailVerified": true,
"email": "testuser@methaq.local",
"firstName": "Test",
"lastName": "User",
"credentials": [{
"type": "password",
"value": "TestPassword123!",
"temporary": false
}]
}'