initail setup

This commit is contained in:
2025-10-23 14:58:13 +02:00
parent 0c7b4e8e23
commit 8222e53a0a
5 changed files with 68 additions and 5 deletions

2
.env.example Normal file
View File

@@ -0,0 +1,2 @@
HOSTNAME=localhost
KAFKA_PORT=9092

23
backend/worker/main.py Normal file
View File

@@ -0,0 +1,23 @@
import os
import time
from celery import Celery
from dotenv import load_dotenv
load_dotenv()
# Redis connection
redis_url = os.getenv("REDIS_URL", "redis://localhost:6379")
app = Celery('worker', broker=redis_url, backend=redis_url)
@app.task
def simple_task(message):
"""A simple task that processes a message and returns a result"""
time.sleep(2) # Simulate some work
return f"Processed: {message}"
@app.task
def add_numbers(x, y):
"""Simple math task"""
return x + y
if __name__ == '__main__':
app.start()

View File

@@ -0,0 +1,27 @@
services:
zookeeper:
container_name: "PHANTOM-zookeeper"
image: confluentinc/cp-zookeeper:latest
environment:
ZOOKEEPER_CLIENT_PORT: 2181
ports:
- "2181:2181"
kafka:
container_name: "PHANTOM-kafka"
image: confluentinc/cp-kafka:latest
depends_on:
- zookeeper
environment:
KAFKA_BROKER_ID: 1
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
ALLOW_PLAINTEXT_LISTENER: yes
ports:
- "${KAFKA_PORT}:9092"
volumes:
- phantom_kafka_data:/var/lib/kafka/data
volumes:
phantom_kafka_data:

10
web/package-lock.json generated
View File

@@ -8,6 +8,7 @@
"name": "web", "name": "web",
"version": "0.1.0", "version": "0.1.0",
"dependencies": { "dependencies": {
"kafkajs": "^2.2.4",
"next": "16.0.0", "next": "16.0.0",
"react": "19.2.0", "react": "19.2.0",
"react-dom": "19.2.0" "react-dom": "19.2.0"
@@ -1040,6 +1041,15 @@
"jiti": "lib/jiti-cli.mjs" "jiti": "lib/jiti-cli.mjs"
} }
}, },
"node_modules/kafkajs": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/kafkajs/-/kafkajs-2.2.4.tgz",
"integrity": "sha512-j/YeapB1vfPT2iOIUn/vxdyKEuhuY2PxMBvf5JWux6iSaukAccrMtXEY/Lb7OvavDhOWME589bpLrEdnVHjfjA==",
"license": "MIT",
"engines": {
"node": ">=14.0.0"
}
},
"node_modules/lightningcss": { "node_modules/lightningcss": {
"version": "1.30.2", "version": "1.30.2",
"resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz",

View File

@@ -8,16 +8,17 @@
"start": "next start" "start": "next start"
}, },
"dependencies": { "dependencies": {
"kafkajs": "^2.2.4",
"next": "16.0.0",
"react": "19.2.0", "react": "19.2.0",
"react-dom": "19.2.0", "react-dom": "19.2.0"
"next": "16.0.0"
}, },
"devDependencies": { "devDependencies": {
"typescript": "^5", "@tailwindcss/postcss": "^4",
"@types/node": "^20", "@types/node": "^20",
"@types/react": "^19", "@types/react": "^19",
"@types/react-dom": "^19", "@types/react-dom": "^19",
"@tailwindcss/postcss": "^4", "tailwindcss": "^4",
"tailwindcss": "^4" "typescript": "^5"
} }
} }