mirror of
https://github.com/rodneyosodo/homelab.git
synced 2026-06-23 04:10:19 +00:00
feat(docker): replace minio with rustfs for s3
Signed-off-by: Rodney Osodo <socials@rodneyosodo.com>
This commit is contained in:
@@ -88,10 +88,6 @@ KENER_POSTGRES_PASSWORD=""
|
||||
KENER_POSTGRES_DB=""
|
||||
KENER_POSTGRES_URL=""
|
||||
|
||||
## MINIO
|
||||
MINIO_ROOT_USER=""
|
||||
MINIO_ROOT_PASSWORD=""
|
||||
|
||||
## ATUIN
|
||||
ATUIN_HOST=""
|
||||
ATUIN_PORT=""
|
||||
@@ -123,3 +119,8 @@ DAWARICH_POSTGRES_URL="postgresql://${DAWARICH_POSTGRES_USER}:${DAWARICH_POSTGRE
|
||||
### DAWARICH REDIS
|
||||
DAWARICH_REDIS_PASSWORD=""
|
||||
DAWARICH_REDIS_URL=redis://dawarich-redis:6379
|
||||
|
||||
### RUSTFS
|
||||
RUSTFS_ACCESS_KEY=""
|
||||
RUSTFS_SECRET_KEY=""
|
||||
RUSTFS_REDIS_PASSWORD=""
|
||||
|
||||
@@ -70,9 +70,6 @@ include:
|
||||
- path: ./watcharr/docker-compose.yaml
|
||||
project_directory: ..
|
||||
env_file: .env
|
||||
- path: ./minio/docker-compose.yaml
|
||||
project_directory: ..
|
||||
env_file: .env
|
||||
- path: ./atuin/docker-compose.yaml
|
||||
project_directory: ..
|
||||
env_file: .env
|
||||
@@ -85,3 +82,6 @@ include:
|
||||
- path: ./dawarich/docker-compose.yaml
|
||||
project_directory: ..
|
||||
env_file: .env
|
||||
- path: ./rustfs/docker-compose.yaml
|
||||
project_directory: ..
|
||||
env_file: .env
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
services:
|
||||
minio:
|
||||
image: quay.io/minio/minio:RELEASE.2025-09-07T16-13-09Z
|
||||
container_name: minio
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
command: server /data --console-address ":9001"
|
||||
ports:
|
||||
- 4050:9000
|
||||
- 4051:9001
|
||||
environment:
|
||||
- MINIO_ROOT_USER=${MINIO_ROOT_USER}
|
||||
- MINIO_ROOT_PASSWORD=${MINIO_ROOT_PASSWORD}
|
||||
healthcheck:
|
||||
test: ["CMD", "mc", "ready", "local"]
|
||||
interval: 5s
|
||||
timeout: 5s
|
||||
retries: 5
|
||||
volumes:
|
||||
- ~/docker-volumes/minio:/data
|
||||
@@ -0,0 +1,60 @@
|
||||
services:
|
||||
rustfs:
|
||||
container_name: rustfs
|
||||
image: rustfs/rustfs:latest
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
ports:
|
||||
- "5010:5010" # S3 API port
|
||||
- "5011:5011" # Console port
|
||||
environment:
|
||||
- RUSTFS_ADDRESS=0.0.0.0:5010
|
||||
- RUSTFS_CONSOLE_ADDRESS=0.0.0.0:5011
|
||||
- RUSTFS_CONSOLE_ENABLE=true
|
||||
- RUSTFS_EXTERNAL_ADDRESS=:5010 # Same as internal since no port mapping
|
||||
- RUSTFS_CORS_ALLOWED_ORIGINS=*
|
||||
- RUSTFS_CONSOLE_CORS_ALLOWED_ORIGINS=*
|
||||
- RUSTFS_ACCESS_KEY=${RUSTFS_ACCESS_KEY}
|
||||
- RUSTFS_SECRET_KEY=${RUSTFS_SECRET_KEY}
|
||||
- RUSTFS_OBS_LOGGER_LEVEL=info
|
||||
# Object Cache
|
||||
- RUSTFS_OBJECT_CACHE_ENABLE=true
|
||||
- RUSTFS_OBJECT_CACHE_TTL_SECS=300
|
||||
volumes:
|
||||
- ~/docker-volumes/rustfs/data:/data
|
||||
- ~/docker-volumes/rustfs/logs:/app/logs
|
||||
healthcheck:
|
||||
test:
|
||||
[
|
||||
"CMD",
|
||||
"sh",
|
||||
"-c",
|
||||
"curl -f http://localhost:5010/health && curl -f http://localhost:5011/rustfs/console/health",
|
||||
]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
start_period: 40s
|
||||
|
||||
rustfs-redis:
|
||||
container_name: rustfs-redis
|
||||
image: redis:7.4-alpine
|
||||
restart: unless-stopped
|
||||
networks:
|
||||
- homelab-network
|
||||
security_opt:
|
||||
- no-new-privileges:true
|
||||
command: /bin/sh -c "redis-server --requirepass ${RUSTFS_REDIS_PASSWORD}"
|
||||
volumes:
|
||||
- ~/docker-volumes/rustfs/redis:/data
|
||||
environment:
|
||||
- REDIS_PASSWORD=${RUSTFS_REDIS_PASSWORD}
|
||||
healthcheck:
|
||||
test: ["CMD", "redis-cli", "--raw", "incr", "ping"]
|
||||
interval: 10s
|
||||
retries: 5
|
||||
start_period: 30s
|
||||
timeout: 10s
|
||||
Reference in New Issue
Block a user