Add unified docker-compose, README_INSTALL and .env.example for easy setup
This commit is contained in:
60
README_INSTALL.md
Normal file
60
README_INSTALL.md
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
# 🚀 AyrisMail - Hepsi Bir Arada Kurulum Rehberi
|
||||||
|
|
||||||
|
Bu proje, Mailcow sunucunuzdaki mailleri anlık olarak izleyen ve Telegram üzerinden bildirim gönderen akıllı bir bildirim sistemidir.
|
||||||
|
|
||||||
|
## 📦 Sistem Bileşenleri
|
||||||
|
1. **Next.js Web Paneli:** Mailbox eşleşmelerini ve bildirim loglarını yönettiğiniz arayüz.
|
||||||
|
2. **PostgreSQL:** Tüm kullanıcı ve log verilerinin saklandığı veritabanı.
|
||||||
|
3. **Ayris Worker:** Sunucu seviyesinde mailleri anlık çözen ve Next.js'e sinyal atan motor.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🛠️ Kurulum Adımları
|
||||||
|
|
||||||
|
### 1. Dosya Yapısını Hazırlayın
|
||||||
|
Projeyi şu klasör yapısında olacak şekilde sunucunuza yerleştirin:
|
||||||
|
```text
|
||||||
|
/ayris-project
|
||||||
|
├── mailserver/ # Bu repo (Next.js)
|
||||||
|
├── ayristech-worker/ # Worker repo
|
||||||
|
└── docker-compose.unified.yml
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Çevre Değişkenlerini Ayarlayın
|
||||||
|
`mailserver` klasörü içindeki `.env` dosyasını şu değişkenlerle doldurun:
|
||||||
|
|
||||||
|
```env
|
||||||
|
# Veritabanı (Docker içinde otomatik bağlanır)
|
||||||
|
DATABASE_URL="postgresql://postgres:ayris_pass_123@db:5432/ayrismail"
|
||||||
|
|
||||||
|
# Mailcow Bilgileri
|
||||||
|
MAILCOW_API_URL="https://mail.alanadiniz.com"
|
||||||
|
MAILCOW_API_KEY="your-api-key"
|
||||||
|
|
||||||
|
# Telegram
|
||||||
|
TELEGRAM_BOT_TOKEN="your-bot-token"
|
||||||
|
|
||||||
|
# Güvenlik
|
||||||
|
WEBHOOK_SIGNAL_SECRET="guclu-bir-sifre"
|
||||||
|
AUTH_SECRET="auth-secret-key"
|
||||||
|
NEXTAUTH_URL="http://localhost:3000"
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Sistemi Başlatın
|
||||||
|
Terminalden ana dizine girin ve şu komutu çalıştırın:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose -f docker-compose.unified.yml up -d --build
|
||||||
|
```
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 🔒 Güvenlik Notları
|
||||||
|
- `/var/run/docker.sock` dosyasının bağlanması, Worker'ın Dovecot konteynerine komut göndermesini sağlar.
|
||||||
|
- `WEBHOOK_SIGNAL_SECRET` bilgisinin hem `.env` hem de Worker konfigürasyonunda aynı olduğundan emin olun.
|
||||||
|
|
||||||
|
## 📝 Kullanım
|
||||||
|
1. `http://sunucu-ip:3000` adresinden panele giriş yapın.
|
||||||
|
2. Kullanıcı oluşturun ve Telegram ID'sini girin.
|
||||||
|
3. Mailbox Mapping kısmından hangi mailin kime gideceğini tanımlayın.
|
||||||
|
4. Worker mailleri yakaladıkça bildirimler anında Telegram'a düşecektir.
|
||||||
53
docker-compose.unified.yml
Normal file
53
docker-compose.unified.yml
Normal file
@@ -0,0 +1,53 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
# 1. Veritabanı
|
||||||
|
db:
|
||||||
|
image: postgres:15-alpine
|
||||||
|
container_name: ayrismail-db
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-ayris_pass_123}
|
||||||
|
POSTGRES_DB: ayrismail
|
||||||
|
volumes:
|
||||||
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
|
||||||
|
# 2. Next.js Uygulaması (Panel)
|
||||||
|
app:
|
||||||
|
build:
|
||||||
|
context: ./mailserver
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: ayrismail-app
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
environment:
|
||||||
|
DATABASE_URL: "postgresql://postgres:${POSTGRES_PASSWORD:-ayris_pass_123}@db:5432/ayrismail"
|
||||||
|
MAILCOW_API_URL: ${MAILCOW_API_URL}
|
||||||
|
MAILCOW_API_KEY: ${MAILCOW_API_KEY}
|
||||||
|
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN}
|
||||||
|
WEBHOOK_SIGNAL_SECRET: ${WEBHOOK_SIGNAL_SECRET}
|
||||||
|
AUTH_SECRET: ${AUTH_SECRET}
|
||||||
|
NEXTAUTH_URL: ${NEXTAUTH_URL:-http://localhost:3000}
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
|
||||||
|
# 3. Ayris Worker (Mail İzleyici)
|
||||||
|
worker:
|
||||||
|
build:
|
||||||
|
context: ../ayristech-worker
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: ayrismail-worker
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- /var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data:/var/lib/docker/volumes/mailcowdockerized_vmail-vol-1/_data:ro
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock
|
||||||
|
environment:
|
||||||
|
NEXTJS_WEBHOOK_URL: "http://app:3000/api/webhooks/mail-signal"
|
||||||
|
WEBHOOK_SECRET: ${WEBHOOK_SIGNAL_SECRET}
|
||||||
|
depends_on:
|
||||||
|
- app
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres_data:
|
||||||
Reference in New Issue
Block a user