-
Wrapped 0.1.3 Stable
released this
2026-07-29 10:41:17 +00:00 | 7 commits to main since this releaseWrapped 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
- AES-GCM на клиенте; ключ только в