Скачать

Corexar Server

Для общей установки: команды или энтузиаста со своим сервером. Образы многоархитектурные, поэтому те же команды работают и на Intel/AMD, и на ARM.

  1. Создайте docker-compose.yml
    docker-compose.yml
    services:
      # ── Corexar Platform API (Scala 3 / ZIO 2 / FFmpeg) ─────────
      backend:
        image: registry.corexar.tech/corexar-backend:latest
        restart: unless-stopped
        ports:
          - "8080:8080"
        environment:
          SERVER_PORT: "8080"
          DB_URL: "jdbc:postgresql://postgres:5432/collection_tracker"
          DB_USER: "tracker"
          DB_PASSWORD: "secure_password"
          JWT_SECRET: "replace-with-a-random-secret-key"
          ADMIN_EMAIL: "admin@example.com"
          ENCRYPTION_MODE: "server_envelope"
          ENCRYPTION_PEPPER: "replace-with-a-random-pepper-32-chars"
          ELASTICSEARCH_URL: "http://elasticsearch:9200"
          KAFKA_BOOTSTRAP_SERVERS: "kafka:9092"
          MEDIA_S3_ENDPOINT: "http://minio:9000"
          # Address of MinIO as seen from the BROWSER (upload/download links are signed for it)
          MEDIA_S3_PUBLIC_ENDPOINT: "http://localhost:9010"
          MEDIA_S3_ACCESS_KEY: "tracker"
          MEDIA_S3_SECRET_KEY: "tracker123"
          MEDIA_S3_BUCKET: "collection-tracker-media"
          # Optional: enter Alpha evaluation key or leave empty for free Community edition
          PLATFORM_LICENSE_KEY: ""
          LICENSE_SERVER_URL: "https://verify.corexar.tech"
        depends_on:
          postgres: { condition: service_healthy }
          kafka: { condition: service_healthy }
          elasticsearch: { condition: service_healthy }
          minio: { condition: service_healthy }
    
      # ── Corexar Web Interface (React 18 / Vite / Nginx) ──────────
      frontend:
        image: registry.corexar.tech/corexar-frontend:latest
        restart: unless-stopped
        depends_on:
          - backend
        ports:
          - "80:80"
    
      # ── Supporting Infrastructure (Postgres, Kafka, MinIO, ES) ──
      postgres:
        image: postgres:16-alpine
        environment:
          POSTGRES_DB: collection_tracker
          POSTGRES_USER: tracker
          POSTGRES_PASSWORD: secure_password
        healthcheck:
          test: ["CMD-SHELL", "pg_isready -U tracker -d collection_tracker"]
          interval: 5s
          timeout: 3s
          retries: 20
        volumes:
          - pgdata:/var/lib/postgresql/data
    
      minio:
        image: minio/minio:latest
        command: server /data --console-address ":9001"
        environment:
          MINIO_ROOT_USER: tracker
          MINIO_ROOT_PASSWORD: tracker123
        healthcheck:
          test: ["CMD-SHELL", "mc ready local || exit 1"]
          interval: 5s
          timeout: 3s
          retries: 20
        ports:
          - "9010:9000"
        volumes:
          - miniodata:/data
    
      elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch:8.15.0
        environment:
          - discovery.type=single-node
          - xpack.security.enabled=false
          - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
        healthcheck:
          test: ["CMD-SHELL", "curl -sf http://localhost:9200/_cluster/health || exit 1"]
          interval: 10s
          timeout: 5s
          retries: 30
        volumes:
          - esdata:/usr/share/elasticsearch/data
    
      kafka:
        image: apache/kafka:3.8.0
        environment:
          KAFKA_NODE_ID: 1
          KAFKA_PROCESS_ROLES: broker,controller
          KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
          KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092
          KAFKA_CONTROLLER_LISTENER_NAMES: CONTROLLER
          KAFKA_CONTROLLER_QUORUM_VOTERS: 1@kafka:9093
          KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
          KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
          KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
          KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
          CLUSTER_ID: "ZmZmZmZmZmZmZmZmZmZmZm"
        healthcheck:
          test: ["CMD-SHELL", "/opt/kafka/bin/kafka-broker-api-versions.sh --bootstrap-server localhost:9092 > /dev/null 2>&1 || exit 1"]
          interval: 10s
          timeout: 10s
          retries: 30
    
    volumes:
      pgdata:
      miniodata:
      esdata:

    Смените пароли и секреты, прежде чем идти дальше. Полный список настроек — в Настройках.

  2. Запустите
    terminal
    docker compose up -d
    docker compose logs -f backend
  3. Откройте и зарегистрируйтесь

    Откройте http://localhost (порт 8080 — API). Первый запуск занимает минуту: API ждёт базу, поиск, брокер и хранилище.

    Аккаунт, зарегистрированный с почтой из ADMIN_EMAIL, становится администратором. Если открываете Corexar с другого устройства, замените localhost в MEDIA_S3_PUBLIC_ENDPOINT на адрес сервера.

Бесплатно и по лицензии

Без ключа Server работает как Community: 1 рабочее пространство, 3 коллекции, по 100 записей и 1 ГБ файлов. Большие лимиты, зашифрованные коллекции и изолированный поиск требуют ключ Pro или Enterprise. На время альфы их выдают бесплатно по запросу. Запросить ключ