• 0.1.3 f728d74f34

    Wrapped 0.1.3 Stable

    inecs released this 2026-07-29 10:41:17 +00:00 | 7 commits to main since this release

    Wrapped 0.1.3

    Первый публичный релиз анонимного zero-knowledge drop: шифрование в браузере, одноразовая выдача ciphertext, опциональный пароль.

    Core

    • AES-GCM на клиенте; ключ только в #fragment / wrapped_v1-токене
    • Одноразовый unwrap — после открытия ciphertext удаляется с сервера
    • Текст, файлы и скриншоты; TTL; MIME allowlist
    • Опциональный пароль (Argon2 до выдачи ciphertext, лимит попыток)
    • CAPTCHA: Turnstile / hCaptcha
    • UI: RU / EN, светлая и тёмная тема

    UX

    • После create: QR, скачать QR (PNG), Web Share (где доступно), чеклист и trust-строка про #key
    • Счётчик размера ≈ used / max и предупреждение near-limit
    • Unwrap: Enter на пароле, focus+select при ошибках пароля, «скачать всё» (zip), lightbox для картинок
    • Системная тема при первом визите; haptic после Copy
    • Минимальный PWA (manifest, без Service Worker)

    Admin & ops

    • Статистика, настройки, audit, danger purge
    • Мобильное меню админки; расширенная статистика unwrap
    • Docker Compose / Helm; образы inecs/wrapped и Harbor
    • Cache-bust статики (?v=версия.mtime)

    Install (Docker Hub, без кластера)

    Быстрый запуск на одной машине: образ с Docker Hub, Postgres и MinIO.

    mkdir -p wrapped && cd wrapped
    

    .env

    APP_SECRET_KEY=замените-на-длинную-случайную-строку
    APP_BASE_URL=http://localhost:8000
    ADMIN_USERNAME=admin
    ADMIN_PASSWORD=замените-пароль
    

    docker-compose.yml

    services:
      app:
        image: inecs/wrapped:0.1.3
        container_name: wrapped-app
        restart: unless-stopped
        ports:
          - "8000:8000"
        env_file: .env
        environment:
          APP_ENV: production
          DOCS_ENABLED: "false"
          DATABASE_URL: postgresql+asyncpg://wrapped:wrapped@postgres:5432/wrapped
          S3_ENDPOINT_URL: http://minio:9000
          S3_ACCESS_KEY: wrappedminio
          S3_SECRET_KEY: wrappedminio123
          S3_BUCKET: wrapped
          S3_USE_SSL: "false"
          S3_CREATE_BUCKET: "true"
          TRUSTED_PROXIES: 127.0.0.1,::1,10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
        depends_on:
          postgres:
            condition: service_healthy
          minio:
            condition: service_started
          minio-init:
            condition: service_completed_successfully
    
      postgres:
        image: postgres:16-alpine
        container_name: wrapped-postgres
        restart: unless-stopped
        environment:
          POSTGRES_USER: wrapped
          POSTGRES_PASSWORD: wrapped
          POSTGRES_DB: wrapped
        volumes:
          - wrapped_pg_data:/var/lib/postgresql/data
        healthcheck:
          test: ["CMD-SHELL", "pg_isready -U wrapped -d wrapped"]
          interval: 5s
          timeout: 5s
          retries: 10
    
      minio:
        image: minio/minio:latest
        container_name: wrapped-minio
        restart: unless-stopped
        command: server /data --console-address ":9001"
        environment:
          MINIO_ROOT_USER: wrappedminio
          MINIO_ROOT_PASSWORD: wrappedminio123
        volumes:
          - wrapped_minio_data:/data
    
      minio-init:
        image: minio/mc:latest
        container_name: wrapped-minio-init
        depends_on:
          - minio
        entrypoint: >
          /bin/sh -c "
          sleep 3 &&
          mc alias set local http://minio:9000 wrappedminio wrappedminio123 &&
          mc mb --ignore-existing local/wrapped &&
          exit 0
          "
    
    volumes:
      wrapped_pg_data:
      wrapped_minio_data:
    

    Быстрый запуск

    docker compose pull
    docker compose up -d
    curl -fsS http://127.0.0.1:8000/health
    

    Откройте http://localhost:8000/ · админка /admin/login.

    Для продакшена с reverse-proxy - полный пример в README (Запуск на сервере).

    Downloads