upodate to node.js
This commit is contained in:
parent
0663a7c6bc
commit
65866de63b
|
|
@ -0,0 +1,21 @@
|
||||||
|
services:
|
||||||
|
email-api:
|
||||||
|
container_name: email-api
|
||||||
|
image: python:3.12-slim
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: host
|
||||||
|
volumes:
|
||||||
|
- ./email_api:/app
|
||||||
|
- /var/mail:/var/mail # Maildir-Zugriff für Health-Check
|
||||||
|
working_dir: /app
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
environment:
|
||||||
|
- API_TOKEN=${API_TOKEN}
|
||||||
|
- AWS_REGION=${AWS_REGION}
|
||||||
|
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
||||||
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
||||||
|
command: >
|
||||||
|
bash -c "pip install --upgrade pip &&
|
||||||
|
pip install flask python-dotenv boto3 requests &&
|
||||||
|
python app.py"
|
||||||
|
|
@ -1,12 +1,14 @@
|
||||||
|
version: '3.8'
|
||||||
|
|
||||||
services:
|
services:
|
||||||
email-api:
|
email-api:
|
||||||
container_name: email-api
|
container_name: email-api
|
||||||
image: python:3.12-slim
|
image: node:18-slim
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
network_mode: host
|
network_mode: host
|
||||||
volumes:
|
volumes:
|
||||||
- ./email_api:/app
|
- ./email_api:/app
|
||||||
- /var/mail:/var/mail # Maildir-Zugriff für Health-Check
|
- /var/mail:/var/mail # Maildir access for health check
|
||||||
working_dir: /app
|
working_dir: /app
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
|
|
@ -15,7 +17,33 @@ services:
|
||||||
- AWS_REGION=${AWS_REGION}
|
- AWS_REGION=${AWS_REGION}
|
||||||
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
||||||
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
||||||
|
- SMTP_HOST=${SMTP_HOST:-localhost}
|
||||||
|
- SMTP_PORT=${SMTP_PORT:-25}
|
||||||
|
- MAILCOW_API_KEY=${MAILCOW_API_KEY}
|
||||||
|
- MAILCOW_API=${MAILCOW_API}
|
||||||
|
- PGHOST=postgres
|
||||||
|
- PGUSER=${PGUSER:-email_user}
|
||||||
|
- PGPASSWORD=${PGPASSWORD:-email_password}
|
||||||
|
- PGDATABASE=${PGDATABASE:-email_db}
|
||||||
|
- PGPORT=${PGPORT:-5432}
|
||||||
command: >
|
command: >
|
||||||
bash -c "pip install --upgrade pip &&
|
bash -c "npm install express aws-sdk nodemailer emailjs-mime-parser emailjs-addressparser js-base64 winston dotenv axios pg &&
|
||||||
pip install flask python-dotenv boto3 requests &&
|
node app.js"
|
||||||
python app.py"
|
depends_on:
|
||||||
|
- postgres
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
container_name: postgres
|
||||||
|
image: postgres:16
|
||||||
|
restart: unless-stopped
|
||||||
|
network_mode: host
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${PGUSER:-email_user}
|
||||||
|
- POSTGRES_PASSWORD=${PGPASSWORD:-email_password}
|
||||||
|
- POSTGRES_DB=${PGDATABASE:-email_db}
|
||||||
|
volumes:
|
||||||
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
- ./init.sql:/docker-entrypoint-initdb.d/init.sql
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres_data:
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"name": "email-api",
|
||||||
|
"version": "1.0.0",
|
||||||
|
"dependencies": {
|
||||||
|
"express": "^4.18.2",
|
||||||
|
"aws-sdk": "^2.1490.0",
|
||||||
|
"nodemailer": "^6.9.7",
|
||||||
|
"emailjs-mime-parser": "^2.1.0",
|
||||||
|
"emailjs-addressparser": "^2.0.0",
|
||||||
|
"js-base64": "^3.7.5",
|
||||||
|
"winston": "^3.11.0",
|
||||||
|
"dotenv": "^16.3.1",
|
||||||
|
"axios": "^1.6.2",
|
||||||
|
"pg": "^8.11.3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
CREATE TABLE email_statuses (
|
||||||
|
id SERIAL PRIMARY KEY,
|
||||||
|
domain VARCHAR(255) NOT NULL,
|
||||||
|
s3_key VARCHAR(1024) NOT NULL,
|
||||||
|
status VARCHAR(50) NOT NULL,
|
||||||
|
timestamp BIGINT NOT NULL,
|
||||||
|
processor VARCHAR(50) NOT NULL,
|
||||||
|
from_addr TEXT,
|
||||||
|
to_addrs TEXT[],
|
||||||
|
UNIQUE (domain, s3_key)
|
||||||
|
);
|
||||||
Loading…
Reference in New Issue