mirror of
https://github.com/lorsanstand/Aether.git
synced 2026-06-19 12:05:16 +03:00
feat: add minio
This commit is contained in:
@@ -31,6 +31,39 @@ services:
|
|||||||
retries: 5
|
retries: 5
|
||||||
restart: always
|
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:
|
redis-insight:
|
||||||
image: redis/redisinsight:latest
|
image: redis/redisinsight:latest
|
||||||
ports:
|
ports:
|
||||||
@@ -66,6 +99,7 @@ volumes:
|
|||||||
redis_data:
|
redis_data:
|
||||||
rabbitmq-data:
|
rabbitmq-data:
|
||||||
esdata:
|
esdata:
|
||||||
|
minio-data:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
aether-dev:
|
aether-dev:
|
||||||
@@ -46,6 +46,39 @@ services:
|
|||||||
- redis-data:/data
|
- redis-data:/data
|
||||||
restart: unless-stopped
|
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:
|
prestart:
|
||||||
build:
|
build:
|
||||||
context: ./backend
|
context: ./backend
|
||||||
@@ -71,6 +104,8 @@ services:
|
|||||||
- aether
|
- aether
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
|
environment:
|
||||||
|
S3_URL: "http://minio:9000"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
backend:
|
backend:
|
||||||
@@ -91,6 +126,8 @@ services:
|
|||||||
- aether
|
- aether
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
|
environment:
|
||||||
|
S3_URL: "http://minio:9000"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
frontend:
|
frontend:
|
||||||
@@ -111,6 +148,7 @@ volumes:
|
|||||||
db-data:
|
db-data:
|
||||||
rabbitmq-data:
|
rabbitmq-data:
|
||||||
redis-data:
|
redis-data:
|
||||||
|
minio-data:
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
aether:
|
aether:
|
||||||
+2
-2
@@ -9,10 +9,10 @@
|
|||||||
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
|
||||||
<meta name="apple-mobile-web-app-title" content="Aether" />
|
<meta name="apple-mobile-web-app-title" content="Aether" />
|
||||||
<link rel="apple-touch-icon" href="/favicon.png" />
|
<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="mobile-web-app-capable" content="yes" />
|
||||||
<meta name="format-detection" content="telephone=no" />
|
<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.googleapis.com">
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
<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">
|
<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">
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ export default function AuthPage() {
|
|||||||
exit={{ opacity: 0, y: 10 }}
|
exit={{ opacity: 0, y: 10 }}
|
||||||
transition={{ duration: 0.2 }}
|
transition={{ duration: 0.2 }}
|
||||||
>
|
>
|
||||||
{isLogin ? 'Добро пожаловать!' : 'Присоединяйтесь'}
|
{isLogin ? 'Вход в аккаунт' : 'Создание аккаунта'}
|
||||||
</motion.h1>
|
</motion.h1>
|
||||||
</AnimatePresence>
|
</AnimatePresence>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -747,12 +747,6 @@ export default function ChatPage() {
|
|||||||
</div>
|
</div>
|
||||||
</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>
|
</div>
|
||||||
|
|
||||||
{/* Main Chat Area */}
|
{/* Main Chat Area */}
|
||||||
@@ -1157,7 +1151,7 @@ export default function ChatPage() {
|
|||||||
<img src={miniLogo} alt="Aether Logo" className="w-full h-full object-contain" />
|
<img src={miniLogo} alt="Aether Logo" className="w-full h-full object-contain" />
|
||||||
</div>
|
</div>
|
||||||
<h2 className="text-2xl font-lora font-semibold mb-3" style={{ color: 'var(--text-primary)' }}>
|
<h2 className="text-2xl font-lora font-semibold mb-3" style={{ color: 'var(--text-primary)' }}>
|
||||||
Добро пожаловать в Aether
|
Aether
|
||||||
</h2>
|
</h2>
|
||||||
<p className="font-inter" style={{ color: 'var(--text-secondary)' }}>
|
<p className="font-inter" style={{ color: 'var(--text-secondary)' }}>
|
||||||
Выберите существующий чат из списка слева или создайте новый, чтобы начать общение
|
Выберите существующий чат из списка слева или создайте новый, чтобы начать общение
|
||||||
|
|||||||
@@ -51,7 +51,7 @@ export default function ForgotPasswordPage() {
|
|||||||
AETHER
|
AETHER
|
||||||
</div>
|
</div>
|
||||||
<h2 className="text-xl font-lora font-semibold" style={{ color: 'var(--text-primary)' }}>
|
<h2 className="text-xl font-lora font-semibold" style={{ color: 'var(--text-primary)' }}>
|
||||||
Восстановление пароля
|
Запрос сброса пароля
|
||||||
</h2>
|
</h2>
|
||||||
<p className="mt-2 text-sm font-inter" style={{ color: 'var(--text-secondary)' }}>
|
<p className="mt-2 text-sm font-inter" style={{ color: 'var(--text-secondary)' }}>
|
||||||
Введите почту или никнейм для получения ссылки на сброс пароля
|
Введите почту или никнейм для получения ссылки на сброс пароля
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ export default function ResetPasswordPage() {
|
|||||||
AETHER
|
AETHER
|
||||||
</div>
|
</div>
|
||||||
<h2 className="text-xl font-lora font-semibold" style={{ color: '#2C2C2C' }}>
|
<h2 className="text-xl font-lora font-semibold" style={{ color: '#2C2C2C' }}>
|
||||||
Сброс пароля
|
Установка нового пароля
|
||||||
</h2>
|
</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user