|
2 | 2 | icon: lucide/home |
3 | 3 | --- |
4 | 4 |
|
5 | | -# About ReplicaT4 |
| 5 | +# ReplicaT4 |
6 | 6 |
|
7 | 7 | An **S3-compatible proxy server that intercepts and replicates object storage operations across multiple |
8 | 8 | backends** simultaneously. Supports any S3-compatible storage (AWS S3, MinIO, Backblaze B2, etc.) as |
9 | 9 | replication targets. |
| 10 | + |
| 11 | +ReplicaT4 sits transparently between your applications and storage providers, enabling multi-cloud replication without modifying application code. |
| 12 | + |
| 13 | +```mermaid |
| 14 | +graph LR |
| 15 | + App[Your Application<br/>Standard S3 Client] |
| 16 | + style App fill:#51cf66,stroke:#2f9e44,stroke-width:2px,color:#000 |
| 17 | +
|
| 18 | + Proxy[ReplicaT4<br/>Proxy Server] |
| 19 | + style Proxy fill:#339af0,stroke:#1864ab,stroke-width:2px,color:#fff |
| 20 | +
|
| 21 | + B1[AWS S3] |
| 22 | + B2[Backblaze B2] |
| 23 | + B3[MinIO] |
| 24 | +
|
| 25 | + App -->|S3 API| Proxy |
| 26 | + Proxy -->|Replicate| B1 |
| 27 | + Proxy -->|Replicate| B2 |
| 28 | + Proxy -->|Replicate| B3 |
| 29 | +``` |
| 30 | + |
| 31 | +## Key Benefits |
| 32 | + |
| 33 | +- **Zero Code Changes** - Your applications continue using standard S3 APIs |
| 34 | +- **Provider Agnostic** - Mix and match any S3-compatible storage providers |
| 35 | +- **Flexible Consistency** - Choose between fast async or strong sync replication |
| 36 | +- **Cost Optimization** - Combine budget providers while maintaining multi-location durability |
| 37 | +- **Vendor Independence** - Protect against provider-specific failures or lock-in |
| 38 | + |
| 39 | +## Getting Started |
| 40 | + |
| 41 | +<div class="grid cards" markdown> |
| 42 | + |
| 43 | +- :material-rocket-launch: **[Getting Started](getting-started.md)** |
| 44 | + |
| 45 | + --- |
| 46 | + |
| 47 | + Install ReplicaT4, create your configuration, and run your first replication in minutes. |
| 48 | + |
| 49 | +- :lucide-brain: **[Motivation](motivation.md)** |
| 50 | + |
| 51 | + --- |
| 52 | + |
| 53 | + Learn why ReplicaT4 exists and how it solves the durability vs. cost trade-off. |
| 54 | + |
| 55 | +- :material-cog: **[Configuration](configuration.md)** |
| 56 | + |
| 57 | + --- |
| 58 | + |
| 59 | + Complete reference for all configuration options and backend setup. |
| 60 | + |
| 61 | +- :material-swap-horizontal: **[Read/Write Modes](read-write-modes.md)** |
| 62 | + |
| 63 | + --- |
| 64 | + |
| 65 | + Understand replication strategies and choose the right mode for your use case. |
| 66 | + |
| 67 | +- :material-application-brackets: **[Usage Examples](usage-examples.md)** |
| 68 | + |
| 69 | + --- |
| 70 | + |
| 71 | + Common scenarios and real-world configurations for different requirements. |
| 72 | + |
| 73 | +</div> |
| 74 | + |
| 75 | +## Quick Example |
| 76 | + |
| 77 | +```json title="config.json" |
| 78 | +{ |
| 79 | + "virtualBucket": "mybucket", |
| 80 | + "readMode": "PRIMARY_FALLBACK", |
| 81 | + "writeMode": "ASYNC_REPLICATION", |
| 82 | + "backends": [ |
| 83 | + { |
| 84 | + "type": "s3", |
| 85 | + "name": "aws-primary", |
| 86 | + "region": "us-east-1", |
| 87 | + "bucket": "my-aws-bucket" |
| 88 | + }, |
| 89 | + { |
| 90 | + "type": "s3", |
| 91 | + "name": "backblaze-backup", |
| 92 | + "region": "us-west-004", |
| 93 | + "bucket": "my-b2-bucket", |
| 94 | + "endpoint": "https://s3.us-west-004.backblazeb2.com" |
| 95 | + } |
| 96 | + ] |
| 97 | +} |
| 98 | +``` |
| 99 | + |
| 100 | +```bash |
| 101 | +# Run with Docker |
| 102 | +docker run -d -p 3000:3000 \ |
| 103 | + -v $(pwd)/config.json:/app/config.json:ro \ |
| 104 | + -e AWS_ACCESS_KEY_ID=MYKEY \ |
| 105 | + -e AWS_SECRET_ACCESS_KEY=MYSECRET \ |
| 106 | + ghcr.io/barreeeiroo/replicat4:latest |
| 107 | + |
| 108 | +# Use with any S3-compatible tool |
| 109 | +aws s3 cp myfile.txt s3://mybucket/ --endpoint-url http://localhost:3000 |
| 110 | +``` |
| 111 | + |
| 112 | +Data is now automatically replicated to both AWS S3 and Backblaze B2! |
0 commit comments