feat: add minio

This commit is contained in:
2026-05-13 21:43:52 +03:00
parent 0e7709c95e
commit cf9052ab7a
7 changed files with 78 additions and 12 deletions
+34
View File
@@ -31,6 +31,39 @@ services:
retries: 5
restart: always
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: "${S3_ACCESS_KEY_ID}"
MINIO_ROOT_PASSWORD: "${S3_SECRET_ACCESS_KEY}"
ports:
- "9000:9000"
- "9001:9001"
networks:
- aether-dev
volumes:
- minio-data:/data
restart: unless-stopped
minio-init:
image: minio/mc:latest
depends_on:
- minio
networks:
- aether-dev
environment:
S3_ACCESS_KEY_ID: "${S3_ACCESS_KEY_ID}"
S3_SECRET_ACCESS_KEY: "${S3_SECRET_ACCESS_KEY}"
S3_BUCKET_NAME: "${S3_BUCKET_NAME}"
entrypoint: >
/bin/sh -c "
mc alias set minio http://minio:9000 $${S3_ACCESS_KEY_ID} $${S3_SECRET_ACCESS_KEY} &&
mc mb -p minio/$${S3_BUCKET_NAME} || true &&
mc anonymous set download minio/$${S3_BUCKET_NAME} || true
"
restart: "no"
redis-insight:
image: redis/redisinsight:latest
ports:
@@ -66,6 +99,7 @@ volumes:
redis_data:
rabbitmq-data:
esdata:
minio-data:
networks:
aether-dev:
+38
View File
@@ -46,6 +46,39 @@ services:
- redis-data:/data
restart: unless-stopped
minio:
image: minio/minio:latest
command: server /data --console-address ":9001"
environment:
MINIO_ROOT_USER: "${S3_ACCESS_KEY_ID}"
MINIO_ROOT_PASSWORD: "${S3_SECRET_ACCESS_KEY}"
ports:
- "9000:9000"
- "9001:9001"
networks:
- aether
volumes:
- minio-data:/data
restart: unless-stopped
minio-init:
image: minio/mc:latest
depends_on:
- minio
networks:
- aether
environment:
S3_ACCESS_KEY_ID: "${S3_ACCESS_KEY_ID}"
S3_SECRET_ACCESS_KEY: "${S3_SECRET_ACCESS_KEY}"
S3_BUCKET_NAME: "${S3_BUCKET_NAME}"
entrypoint: >
/bin/sh -c "
mc alias set minio http://minio:9000 $${S3_ACCESS_KEY_ID} $${S3_SECRET_ACCESS_KEY} &&
mc mb -p minio/$${S3_BUCKET_NAME} || true &&
mc anonymous set download minio/$${S3_BUCKET_NAME} || true
"
restart: "no"
prestart:
build:
context: ./backend
@@ -71,6 +104,8 @@ services:
- aether
env_file:
- .env
environment:
S3_URL: "http://minio:9000"
restart: unless-stopped
backend:
@@ -91,6 +126,8 @@ services:
- aether
env_file:
- .env
environment:
S3_URL: "http://minio:9000"
restart: unless-stopped
frontend:
@@ -111,6 +148,7 @@ volumes:
db-data:
rabbitmq-data:
redis-data:
minio-data:
networks:
aether:
+2 -2
View File
@@ -9,10 +9,10 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
<meta name="apple-mobile-web-app-title" content="Aether" />
<link rel="apple-touch-icon" href="/favicon.png" />
<meta name="description" content="Aether — изящный мессенджер с простотой и красотой" />
<meta name="description" content="Aether — личный проект" />
<meta name="mobile-web-app-capable" content="yes" />
<meta name="format-detection" content="telephone=no" />
<title>Aether — Messenger</title>
<title>Aether</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,600;1,400&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
+1 -1
View File
@@ -41,7 +41,7 @@ export default function AuthPage() {
exit={{ opacity: 0, y: 10 }}
transition={{ duration: 0.2 }}
>
{isLogin ? 'Добро пожаловать!' : 'Присоединяйтесь'}
{isLogin ? 'Вход в аккаунт' : 'Создание аккаунта'}
</motion.h1>
</AnimatePresence>
</div>
+1 -7
View File
@@ -747,12 +747,6 @@ export default function ChatPage() {
</div>
</div>
{/* Footer Info */}
<div className="p-4 border-t text-center" style={{ borderColor: 'var(--border-color)' }}>
<p className="text-xs font-inter" style={{ color: 'var(--text-secondary)' }}>
Aether Chat v1.0
</p>
</div>
</div>
{/* Main Chat Area */}
@@ -1157,7 +1151,7 @@ export default function ChatPage() {
<img src={miniLogo} alt="Aether Logo" className="w-full h-full object-contain" />
</div>
<h2 className="text-2xl font-lora font-semibold mb-3" style={{ color: 'var(--text-primary)' }}>
Добро пожаловать в Aether
Aether
</h2>
<p className="font-inter" style={{ color: 'var(--text-secondary)' }}>
Выберите существующий чат из списка слева или создайте новый, чтобы начать общение
+1 -1
View File
@@ -51,7 +51,7 @@ export default function ForgotPasswordPage() {
AETHER
</div>
<h2 className="text-xl font-lora font-semibold" style={{ color: 'var(--text-primary)' }}>
Восстановление пароля
Запрос сброса пароля
</h2>
<p className="mt-2 text-sm font-inter" style={{ color: 'var(--text-secondary)' }}>
Введите почту или никнейм для получения ссылки на сброс пароля
+1 -1
View File
@@ -78,7 +78,7 @@ export default function ResetPasswordPage() {
AETHER
</div>
<h2 className="text-xl font-lora font-semibold" style={{ color: '#2C2C2C' }}>
Сброс пароля
Установка нового пароля
</h2>
</div>