Compare commits
4 Commits
50d3390e02
...
db6579b98e
| Author | SHA1 | Date | |
|---|---|---|---|
| db6579b98e | |||
| 71af9274ac | |||
| 907876a01f | |||
| 08313ceb11 |
9
Dev/n8n_gemini_db/.env
Normal file
9
Dev/n8n_gemini_db/.env
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# PostgreSQL Database Settings
|
||||||
|
POSTGRES_DB=n8n
|
||||||
|
POSTGRES_USER=n8nuser
|
||||||
|
POSTGRES_PASSWORD=virgI6774
|
||||||
|
|
||||||
|
# n8n Subdomain and Domain Settings
|
||||||
|
# Example: n8n.example.com
|
||||||
|
DOMAIN_NAME=home.meszely.eu
|
||||||
|
SUBDOMAIN=n8n
|
||||||
15
Dev/n8n_gemini_db/Dockerfile
Normal file
15
Dev/n8n_gemini_db/Dockerfile
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
# Start from the official n8n image
|
||||||
|
FROM n8nio/n8n
|
||||||
|
|
||||||
|
# Switch to root user to install system packages
|
||||||
|
USER root
|
||||||
|
|
||||||
|
# Install Python and pip for Alpine Linux
|
||||||
|
# hadolint ignore=DL3018
|
||||||
|
RUN apk add --no-cache python3 py3-pip
|
||||||
|
|
||||||
|
# Install the gemini python package
|
||||||
|
RUN pip install --break-system-packages google-generativeai
|
||||||
|
|
||||||
|
# Switch back to the non-root user that n8n uses
|
||||||
|
USER node
|
||||||
67
Dev/n8n_gemini_db/README.md
Normal file
67
Dev/n8n_gemini_db/README.md
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
# n8n, Gemini-CLI és PostgreSQL Docker Compose Projekt
|
||||||
|
|
||||||
|
## Áttekintés
|
||||||
|
|
||||||
|
Ez a projekt egy Docker Compose alapú környezet, amely az alábbi szolgáltatásokat integrálja:
|
||||||
|
* **n8n:** Egy erőteljes workflow automatizálási eszköz.
|
||||||
|
* **Gemini-CLI:** Egy egyedi Docker image, amely a Google Gemini mesterséges intelligencia modelljével való interakciót teszi lehetővé. Ez a konténer szolgálhat "intelligens agyként" az n8n workflow-k számára.
|
||||||
|
* **PostgreSQL:** Egy robusztus relációs adatbázis, amelyet az n8n használ a saját adatainak tárolására, de természetesen a workflow-k is elérhetik.
|
||||||
|
|
||||||
|
A szolgáltatások egy közös Docker hálózaton keresztül kommunikálnak egymással, biztosítva a zökkenőmentes adatcserét és funkcionális bővíthetőséget.
|
||||||
|
|
||||||
|
## Architektúra
|
||||||
|
|
||||||
|
* **`db` service (PostgreSQL):** Tárolja az n8n működéséhez szükséges adatokat, valamint tetszőleges adatok kezelésére is alkalmas a workflow-kból.
|
||||||
|
* **`n8n` service:** A workflow-k futtatásáért felelős. Hozzáfér a PostgreSQL adatbázishoz, és képes parancsokat futtatni a `gemini-cli` konténerben.
|
||||||
|
* **`gemini-cli` service:** Tartalmazza a Gemini AI modellel való interakcióhoz szükséges logikát (pl. Python szkripteket). Az n8n workflow-k ezen keresztül tudnak mesterséges intelligencia alapú feladatokat végezni (pl. szövegelemzés, generálás, adatok strukturálása).
|
||||||
|
|
||||||
|
A szolgáltatások közötti kommunikáció a `n8n_network` nevű bridge hálózaton keresztül történik, a konténernevek (pl. `db`, `gemini-cli`) használatával. Az adatperzisztenciát a `postgres_data` és `n8n_data` volume-ok, míg a fájlcserét az `n8n` és `gemini-cli` között a `shared_data` volume biztosítja.
|
||||||
|
|
||||||
|
## Előfeltételek
|
||||||
|
|
||||||
|
A projekt futtatásához szükséged lesz:
|
||||||
|
* [Docker](https://www.docker.com/get-started)
|
||||||
|
* [Docker Compose](https://docs.docker.com/compose/install/)
|
||||||
|
|
||||||
|
## Telepítés és Indítás
|
||||||
|
|
||||||
|
1. **Navigálj a projekt könyvtárába:**
|
||||||
|
```bash
|
||||||
|
cd Dev/n8n_gemini_db
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Konfiguráld az `.env` fájlt:**
|
||||||
|
Nyisd meg a `.env` fájlt, és módosítsd benne a placeholder értékeket (pl. `POSTGRES_PASSWORD`, `DOMAIN_NAME`, `SUBDOMAIN`) a saját igényeid szerint. **Fontos:** Ezt a fájlt soha ne tedd Git repository-ba éles adatokkal!
|
||||||
|
|
||||||
|
3. **Add hozzá a `gemini-cli` logikádat:**
|
||||||
|
* Helyezd el a `gemini-cli` eszközöd Python szkriptjeit (vagy egyéb futtatható fájljait) a `gemini-cli/` alkönyvtárba.
|
||||||
|
* A szkriptek által igényelt Python könyvtárakat sorold fel a `gemini-cli/requirements.txt` fájlban.
|
||||||
|
|
||||||
|
4. **Építsd fel és indítsd el a konténereket:**
|
||||||
|
Futtasd az alábbi parancsot a projekt gyökérkönyvtárában:
|
||||||
|
```bash
|
||||||
|
docker-compose up --build -d
|
||||||
|
```
|
||||||
|
* A `--build` kapcsoló biztosítja, hogy a `gemini-cli` image felépüljön a `Dockerfile` alapján.
|
||||||
|
* A `-d` kapcsolóval a konténerek a háttérben fognak futni.
|
||||||
|
|
||||||
|
## Használat
|
||||||
|
|
||||||
|
1. **n8n Felület elérése:**
|
||||||
|
Az n8n felhasználói felülete általában a `http://localhost:5678` címen (vagy az `.env` fájlban beállított `WEBHOOK_URL` alapján) érhető el.
|
||||||
|
|
||||||
|
2. **`gemini-cli` integráció n8n workflow-kba:**
|
||||||
|
Az n8n workflow-kon belül az "Execute Command" node segítségével tudsz parancsokat futtatni a `gemini-cli` konténerben. A `gemini_cli_service` a konténer neve, amit a `docker-compose.yml` definiál:
|
||||||
|
|
||||||
|
```
|
||||||
|
docker exec gemini_cli_service python /data/your_script.py --arg1 value1
|
||||||
|
```
|
||||||
|
* A `/data` mappa a `shared_data` volume, ami az `n8n` és a `gemini-cli` között van megosztva. Itt tudsz adatokat (pl. input fájlokat az n8n-ből) átadni a `gemini-cli` szkriptjeidnek, és az eredményeket (pl. output fájlokat) is ide mentheted vissza, hogy az n8n tovább feldolgozza.
|
||||||
|
|
||||||
|
## Leállítás
|
||||||
|
|
||||||
|
A konténerek leállításához és törléséhez a projekt gyökérkönyvtárából futtasd:
|
||||||
|
```bash
|
||||||
|
docker-compose down
|
||||||
|
```
|
||||||
|
Ez leállítja és törli a szolgáltatás konténereit, valamint a `n8n_network` hálózatot. Az adatok (`postgres_data`, `n8n_data`, `shared_data`) azonban megmaradnak, hacsak nem törlöd őket expliciten.
|
||||||
47
Dev/n8n_gemini_db/docker-compose.yml
Normal file
47
Dev/n8n_gemini_db/docker-compose.yml
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
services:
|
||||||
|
db:
|
||||||
|
image: postgres:13
|
||||||
|
container_name: n8n_postgres_db
|
||||||
|
restart: always
|
||||||
|
environment:
|
||||||
|
- POSTGRES_USER=${POSTGRES_USER}
|
||||||
|
- POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
|
||||||
|
- POSTGRES_DB=${POSTGRES_DB}
|
||||||
|
volumes:
|
||||||
|
- postgres_data:/var/lib/postgresql/data
|
||||||
|
networks:
|
||||||
|
- n8n_network
|
||||||
|
|
||||||
|
n8n:
|
||||||
|
build: .
|
||||||
|
container_name: n8n_service
|
||||||
|
restart: always
|
||||||
|
ports:
|
||||||
|
- "5678:5678"
|
||||||
|
environment:
|
||||||
|
- DB_TYPE=postgres
|
||||||
|
- DB_POSTGRESDB_HOST=db
|
||||||
|
- DB_POSTGRESDB_PORT=5432
|
||||||
|
- DB_POSTGRESDB_DATABASE=${POSTGRES_DB}
|
||||||
|
- DB_POSTGRESDB_USER=${POSTGRES_USER}
|
||||||
|
- DB_POSTGRESDB_PASSWORD=${POSTGRES_PASSWORD}
|
||||||
|
- N8N_HOST=${SUBDOMAIN}.${DOMAIN_NAME}
|
||||||
|
- N8N_PROTOCOL=https
|
||||||
|
- NODE_ENV=production
|
||||||
|
- WEBHOOK_URL=https://${SUBDOMAIN}.${DOMAIN_NAME}/
|
||||||
|
volumes:
|
||||||
|
- n8n_data:/home/node/.n8n
|
||||||
|
- shared_data:/data
|
||||||
|
networks:
|
||||||
|
- n8n_network
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
|
||||||
|
networks:
|
||||||
|
n8n_network:
|
||||||
|
driver: bridge
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
postgres_data:
|
||||||
|
n8n_data:
|
||||||
|
shared_data:
|
||||||
18
Dev/n8n_gemini_db/gemini-cli/Dockerfile
Normal file
18
Dev/n8n_gemini_db/gemini-cli/Dockerfile
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# Use an official Python runtime as a parent image
|
||||||
|
FROM python:3.10-slim
|
||||||
|
|
||||||
|
# Set the working directory in the container
|
||||||
|
WORKDIR /usr/src/app
|
||||||
|
|
||||||
|
# Copy the requirements file into the container at /usr/src/app
|
||||||
|
COPY requirements.txt ./
|
||||||
|
|
||||||
|
# Install any needed packages specified in requirements.txt
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
# Copy the rest of the application's code into the container
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# This will be overridden by the docker-compose command,
|
||||||
|
# but it's good practice to have a default command.
|
||||||
|
CMD ["tail", "-f", "/dev/null"]
|
||||||
3
Dev/n8n_gemini_db/gemini-cli/requirements.txt
Normal file
3
Dev/n8n_gemini_db/gemini-cli/requirements.txt
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# Add any Python libraries needed for your gemini-cli tool here
|
||||||
|
# For example, to use the Google Generative AI SDK:
|
||||||
|
google-generativeai
|
||||||
18
Dev/panda_n8n/Dockerfile
Normal file
18
Dev/panda_n8n/Dockerfile
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# 1. lépés: Melyik alap image-ből induljunk?
|
||||||
|
FROM fedora:latest
|
||||||
|
|
||||||
|
# 2. lépés: Parancsok futtatása a rendszeren belül
|
||||||
|
# Frissítjük a csomagokat, telepítjük a nodejs-t és az npm-et, majd takarítunk
|
||||||
|
RUN dnf update -y && \
|
||||||
|
dnf install -y nodejs npm && \
|
||||||
|
dnf clean all
|
||||||
|
|
||||||
|
# 3. lépés: Telepítjük a @google/gemini-cli-t globálisan
|
||||||
|
RUN npm install -g @google/gemini-cli
|
||||||
|
|
||||||
|
# 4. lépés (Opcionális): Beállítunk egy alapértelmezett munkakönyvtárat
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# 5. lépés: Mi fusson le, ha elindul a konténer?
|
||||||
|
# Most már a gemini cli verzióját is kiírathatjuk
|
||||||
|
CMD ["gemini", "--version"]
|
||||||
Reference in New Issue
Block a user