wip
This commit is contained in:
parent
f44f6cdd4e
commit
a7311c9f12
0
4nk-local/modules/bitcoin/conf/.env.exemple
Normal file
0
4nk-local/modules/bitcoin/conf/.env.exemple
Normal file
14
4nk-local/modules/blindbit-oracle/conf/.env.exemple
Normal file
14
4nk-local/modules/blindbit-oracle/conf/.env.exemple
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
|
||||||
|
host=blindbit-oracle.modules.4nk-local:8000
|
||||||
|
chain=signet
|
||||||
|
rpc_endpoint=http://bitcoin.modules.4nk-local:38332
|
||||||
|
cookie_path=/home/bitcoin/.bitcoin/signet/.cookie
|
||||||
|
rpc_user=
|
||||||
|
rpc_pass=
|
||||||
|
sync_start_height=1
|
||||||
|
max_parallel_tweak_computations=4
|
||||||
|
max_parallel_requests=4
|
||||||
|
tweaks_only=0
|
||||||
|
tweaks_full_basic=1
|
||||||
|
tweaks_full_with_dust_filter=1
|
||||||
|
tweaks_cut_through_with_dust_filter=1
|
@ -1,3 +1,9 @@
|
|||||||
# Configuration IHM Client pour 4NK_node
|
# Configuration IHM Client pour 4NK_node
|
||||||
# Copier ce fichier vers .env et modifier les valeurs
|
|
||||||
# Configuration pour l'interface utilisateur
|
# Configuration pour l'interface utilisateur
|
||||||
|
|
||||||
|
U32_MAX=4294967295
|
||||||
|
BASEURL=http://ihm.client.modules.4nk-local
|
||||||
|
BOOTSTRAPURL=["http://i1.sdk-relay.4nk-local:8090"]
|
||||||
|
STORAGEURL=http://sdk-storage.modules.4nk-local/storage
|
||||||
|
BLINDBITURL=http://blindbit.modules.4nk-local:8000
|
||||||
|
DEFAULTAMOUNT=1000
|
5
4nk-local/modules/grafana/grafana/conf/.env.exemple
Normal file
5
4nk-local/modules/grafana/grafana/conf/.env.exemple
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
GF_SECURITY_ADMIN_PASSWORD=admin
|
||||||
|
GF_USERS_ALLOW_SIGN_UP=false
|
||||||
|
GF_SERVER_ROOT_URL=http://grafana.grafanalocal:3000
|
||||||
|
GF_SERVER_SERVE_FROM_SUB_PATH=false
|
@ -1,11 +1,25 @@
|
|||||||
# Configuration Host API pour 4NK_node
|
|
||||||
# Copier ce fichier vers .env et modifier les valeurs
|
|
||||||
POSTGRES_USER=postgres
|
POSTGRES_USER=postgres
|
||||||
POSTGRES_PASSWORD=postgres
|
POSTGRES_PASSWORD=postgres
|
||||||
POSTGRES_DB=4nk_ia
|
POSTGRES_DB=4nk_db
|
||||||
DATABASE_URL=postgresql+psycopg://postgres:postgres@postgres.data.modules.4nk-local:5432/4nk_ia
|
MINIO_BUCKET=4nk-bucket
|
||||||
|
ANYLLM_API_KEY=dummy_key
|
||||||
|
NEO4J_AUTH=neo4j/neo4j
|
||||||
|
DATABASE_URL=postgresql+psycopg://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres.data.modules.4nk-local:5432/$POSTGRES_DB
|
||||||
REDIS_URL=redis://redis.data.modules.4nk-local:6379/0
|
REDIS_URL=redis://redis.data.modules.4nk-local:6379/0
|
||||||
|
MINIO_ENDPOINT=4nk-ia-minio.4nk-local:9000
|
||||||
|
MINIO_BUCKET=4nk-bucket
|
||||||
|
ANYLLM_BASE_URL=http://4nk-ia-anythingllm.4nk-local:3001
|
||||||
|
ANYLLM_API_KEY=dummy_key
|
||||||
|
OLLAMA_BASE_URL=http://4nk-ia-ollama.4nk-local:11434
|
||||||
|
OPENSEARCH_URL=http://4nk-ia-opensearch.4nk-local:9200
|
||||||
|
NEO4J_URL=bolt://4nk-ia-neo4j.4nk-local:7687
|
||||||
|
NEO4J_AUTH=neo4j/neo4j
|
||||||
|
# Configuration de l'API
|
||||||
|
API_HOST=0.0.0.0
|
||||||
|
API_PORT=8000
|
||||||
|
API_WORKERS=4
|
||||||
LOG_LEVEL=INFO
|
LOG_LEVEL=INFO
|
||||||
LOG_FORMAT=json
|
LOG_FORMAT=json
|
||||||
|
# Sécurité
|
||||||
SECRET_KEY=your_secret_key_here
|
SECRET_KEY=your_secret_key_here
|
||||||
ACCESS_TOKEN_EXPIRE_MINUTES=30
|
ACCESS_TOKEN_EXPIRE_MINUTES=30
|
@ -1,12 +1,16 @@
|
|||||||
# Configuration Worker pour 4NK_node
|
|
||||||
# Copier ce fichier vers .env et modifier les valeurs
|
|
||||||
POSTGRES_USER=postgres
|
POSTGRES_USER=postgres
|
||||||
POSTGRES_PASSWORD=postgres
|
POSTGRES_PASSWORD=postgres
|
||||||
POSTGRES_DB=4nk_ia
|
POSTGRES_DB=4nk_db
|
||||||
DATABASE_URL=postgresql+psycopg://postgres:postgres@postgres.data.modules.4nk-local:5432/4nk_ia
|
MINIO_BUCKET=4nk-bucket
|
||||||
|
ANYLLM_API_KEY=dummy_key
|
||||||
|
NEO4J_AUTH=neo4j/neo4j
|
||||||
|
DATABASE_URL=postgresql+psycopg://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres.data.modules.4nk-local:5432/$POSTGRES_DB
|
||||||
REDIS_URL=redis://redis.data.modules.4nk-local:6379/0
|
REDIS_URL=redis://redis.data.modules.4nk-local:6379/0
|
||||||
ANYLLM_API_KEY=4nk-anyllm-key
|
MINIO_ENDPOINT=4nk-ia-minio.4nk-local:9000
|
||||||
OLLAMA_BASE_URL=http://ollama.ia.modules.4nk-local:11434
|
MINIO_BUCKET=4nk-bucket
|
||||||
OPENSEARCH_URL=http://opensearch.data.modules.4nk-local:9200
|
ANYLLM_BASE_URL=http://4nk-ia-anythingllm.4nk-local:3001
|
||||||
NEO4J_URL=bolt://neo4j.data.modules.4nk-local:7687
|
ANYLLM_API_KEY=dummy_key
|
||||||
NEO4J_AUTH=neo4j/4nkneo4j
|
OLLAMA_BASE_URL=http://4nk-ia-ollama.4nk-local:11434
|
||||||
|
OPENSEARCH_URL=http://4nk-ia-opensearch.4nk-local:9200
|
||||||
|
NEO4J_URL=bolt://4nk-ia-neo4j.4nk-local:7687
|
||||||
|
NEO4J_AUTH=neo4j/neo4j
|
7
4nk-local/modules/sdk-relay/i1/conf/.env.exemple
Normal file
7
4nk-local/modules/sdk-relay/i1/conf/.env.exemple
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
RELAY_RPC_USER=
|
||||||
|
RELAY_RPC_PASSWORD=
|
||||||
|
COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie
|
||||||
|
relay_rpc_user=
|
||||||
|
relay_rpc_password=
|
||||||
|
cookie_path=/home/bitcoin/.bitcoin/signet/.cookie
|
7
4nk-local/modules/sdk-relay/i2/conf/.env.exemple
Normal file
7
4nk-local/modules/sdk-relay/i2/conf/.env.exemple
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
RELAY_RPC_USER=
|
||||||
|
RELAY_RPC_PASSWORD=
|
||||||
|
COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie
|
||||||
|
relay_rpc_user=
|
||||||
|
relay_rpc_password=
|
||||||
|
cookie_path=/home/bitcoin/.bitcoin/signet/.cookie
|
7
4nk-local/modules/sdk-relay/i3/conf/.env.exemple
Normal file
7
4nk-local/modules/sdk-relay/i3/conf/.env.exemple
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
|
||||||
|
RELAY_RPC_USER=
|
||||||
|
RELAY_RPC_PASSWORD=
|
||||||
|
COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie
|
||||||
|
relay_rpc_user=
|
||||||
|
relay_rpc_password=
|
||||||
|
cookie_path=/home/bitcoin/.bitcoin/signet/.cookie
|
0
4nk-local/modules/sdk-storage/conf/.env.exemple
Normal file
0
4nk-local/modules/sdk-storage/conf/.env.exemple
Normal file
0
4nk-local/modules/tor/conf/.env.exemple
Normal file
0
4nk-local/modules/tor/conf/.env.exemple
Normal file
@ -1,4 +1,28 @@
|
|||||||
# Configuration LeCoffre Back Mini pour 4NK_node
|
# Configuration LeCoffre Back Mini pour 4NK_node
|
||||||
# Copier ce fichier vers .env et modifier les valeurs
|
OVH_SMS_SERVICE_NAME=
|
||||||
|
SMS_FACTOR_TOKEN=
|
||||||
|
MAILCHIMP_LIST_ID=
|
||||||
|
STRIPE_WEBHOOK_SECRET=
|
||||||
|
STRIPE_STANDARD_SUBSCRIPTION_PRICE_ID=
|
||||||
|
STRIPE_STANDARD_ANNUAL_SUBSCRIPTION_PRICE_ID=
|
||||||
|
STRIPE_UNLIMITED_SUBSCRIPTION_PRICE_ID=
|
||||||
|
STRIPE_UNLIMITED_ANNUAL_SUBSCRIPTION_PRICE_ID=
|
||||||
|
APP_HOST=http://0.0.0.0
|
||||||
|
PORT=8080
|
||||||
|
NEXT_PUBLIC_4NK_URL=http://ihm.client.modules.4nk-local
|
||||||
|
NEXT_PUBLIC_FRONT_APP_HOST=http://coffre-front.4nk-local:3000
|
||||||
|
NEXT_PUBLIC_IDNOT_BASE_URL=https://qual-connexion.idnot.fr
|
||||||
|
NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT=/IdPOAuth2/authorize/idnot_idp_v1
|
||||||
|
NEXT_PUBLIC_IDNOT_CLIENT_ID=
|
||||||
|
NEXT_PUBLIC_BACK_API_PROTOCOL=http
|
||||||
|
NEXT_PUBLIC_BACK_API_HOST=localhost
|
||||||
|
BACK_API_PORT=8080
|
||||||
|
BACK_API_ROOT_URL=/api
|
||||||
|
BACK_API_VERSION=/v1
|
||||||
|
IDNOT_ANNUARY_BASE_URL=https://qual-api.notaires.fr/annuaire
|
||||||
|
DB_HOST=0.0.0.0
|
||||||
|
DB_PORT=5432
|
||||||
|
DB_NAME=miniback
|
||||||
|
DB_USER=miniback
|
||||||
DB_PASSWORD=minibackpassword
|
DB_PASSWORD=minibackpassword
|
||||||
LOG_LEVEL=debug
|
LOG_LEVEL=debug
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
# Configuration LeCoffre Front pour 4NK_node
|
# Configuration LeCoffre Front pour 4NK_node
|
||||||
# Copier ce fichier vers .env et modifier les valeurs
|
|
||||||
NEXT_PUBLIC_4NK_URL=http://ihm.client.modules.4nk-local:3003
|
NEXT_PUBLIC_4NK_URL=http://ihm.client.modules.4nk-local:3003
|
||||||
NEXT_PUBLIC_FRONT_APP_HOST=http://0.0.0.0:3000
|
NEXT_PUBLIC_FRONT_APP_HOST=http://0.0.0.0:3000
|
||||||
NEXT_PUBLIC_IDNOT_BASE_URL=https://qual-connexion.idnot.fr
|
NEXT_PUBLIC_IDNOT_BASE_URL=https://qual-connexion.idnot.fr
|
||||||
NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT=/IdPOAuth2/authorize/idnot_idp_v1
|
NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT=/IdPOAuth2/authorize/idnot_idp_v1
|
||||||
|
NEXT_PUBLIC_BACK_API_PROTOCOL=http://
|
||||||
|
NEXT_PUBLIC_BACK_API_HOST=0.0.0.0
|
||||||
|
NEXT_PUBLIC_BACK_API_PORT=8080
|
||||||
|
NEXT_PUBLIC_BACK_API_ROOT_URL=/api
|
||||||
|
NEXT_PUBLIC_BACK_API_VERSION=/v1
|
56
create_individual_compose.sh
Executable file
56
create_individual_compose.sh
Executable file
@ -0,0 +1,56 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
ROOT=$(pwd)
|
||||||
|
GLOBAL_COMPOSE=$ROOT/docker-compose.yml
|
||||||
|
|
||||||
|
# Mapping des chemins vers les noms de services
|
||||||
|
declare -A SERVICE_MAP=(
|
||||||
|
["4nk-local/dnsmasq"]="dnsmasq.4nk-local"
|
||||||
|
["4nk-local/modules/tor"]="tor.modules.4nk-local"
|
||||||
|
["4nk-local/modules/bitcoin"]="bitcoin.modules.4nk-local"
|
||||||
|
["4nk-local/modules/blindbit-oracle"]="blindbit-oracle.modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-storage"]="sdk-storage.modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i1"]="i1.sdk-relay.modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i2"]="i2.sdk-relay.modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i3"]="i3.sdk-relay.modules.4nk-local"
|
||||||
|
["4nk-local/modules/client/sdk-signer"]="sdk-signer.client.modules.4nk-local"
|
||||||
|
["4nk-local/modules/client/ihm"]="ihm.client.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/ollama"]="ollama.ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/anythingsqlite"]="anythingsqlite.ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/host-api"]="host-api.ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/worker"]="worker.ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/loki"]="loki.grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/prometheus"]="prometheus.grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/promtail"]="promtail.grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/grafana"]="grafana.grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/nginx-proxy"]="nginx-proxy.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/postgres"]="postgres.data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/redis"]="redis.data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/minio"]="minio.data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/neo4j"]="neo4j.data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/opensearch"]="opensearch.data.modules.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/front"]="front.lecoffre.projects.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/ia"]="ia.lecoffre.projects.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/back-mini"]="back-mini.lecoffre.projects.4nk-local"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Créer les docker-compose.yml individuels
|
||||||
|
for path in "${!SERVICE_MAP[@]}"; do
|
||||||
|
service_name="${SERVICE_MAP[$path]}"
|
||||||
|
compose_file="$ROOT/$path/docker-compose.yml"
|
||||||
|
|
||||||
|
echo "Création de $compose_file pour $service_name"
|
||||||
|
|
||||||
|
cat > "$compose_file" << COMPOSE_EOF
|
||||||
|
services:
|
||||||
|
$service_name:
|
||||||
|
extends:
|
||||||
|
file: $GLOBAL_COMPOSE
|
||||||
|
service: $service_name
|
||||||
|
COMPOSE_EOF
|
||||||
|
|
||||||
|
echo "✓ $compose_file créé"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Tous les docker-compose.yml individuels ont été créés"
|
94
create_simple_compose.sh
Executable file
94
create_simple_compose.sh
Executable file
@ -0,0 +1,94 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
ROOT=$(pwd)
|
||||||
|
GLOBAL_COMPOSE=$ROOT/docker-compose.yml
|
||||||
|
|
||||||
|
# Mapping des chemins vers les noms de services et leurs réseaux
|
||||||
|
declare -A SERVICE_MAP=(
|
||||||
|
["4nk-local/dnsmasq"]="dnsmasq.4nk-local|dnsmasq.4nk-local"
|
||||||
|
["4nk-local/modules/tor"]="tor.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/bitcoin"]="bitcoin.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/blindbit-oracle"]="blindbit-oracle.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-storage"]="sdk-storage.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i1"]="i1.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i2"]="i2.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i3"]="i3.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/client/sdk-signer"]="sdk-signer.client.modules.4nk-local|client.modules.4nk-local"
|
||||||
|
["4nk-local/modules/client/ihm"]="ihm.client.modules.4nk-local|client.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/ollama"]="ollama.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/anythingsqlite"]="anythingsqlite.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/host-api"]="host-api.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/worker"]="worker.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/loki"]="loki.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/prometheus"]="prometheus.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/promtail"]="promtail.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/grafana"]="grafana.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/nginx-proxy"]="nginx-proxy.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/postgres"]="postgres.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/redis"]="redis.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/minio"]="minio.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/neo4j"]="neo4j.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/opensearch"]="opensearch.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/front"]="front.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/ia"]="ia.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/back-mini"]="back-mini.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Créer les docker-compose.yml individuels simples
|
||||||
|
for path in "${!SERVICE_MAP[@]}"; do
|
||||||
|
IFS='|' read -r service_name network_name <<< "${SERVICE_MAP[$path]}"
|
||||||
|
compose_file="$ROOT/$path/docker-compose.yml"
|
||||||
|
|
||||||
|
echo "Création de $compose_file pour $service_name"
|
||||||
|
|
||||||
|
# Créer le fichier simple avec extends
|
||||||
|
cat > "$compose_file" << EOF
|
||||||
|
services:
|
||||||
|
$service_name:
|
||||||
|
extends:
|
||||||
|
file: $GLOBAL_COMPOSE
|
||||||
|
service: $service_name
|
||||||
|
|
||||||
|
networks:
|
||||||
|
$network_name:
|
||||||
|
name: 4nk_node_$network_name
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: $(get_subnet_for_network $network_name)
|
||||||
|
gateway: $(get_gateway_for_network $network_name)
|
||||||
|
EOF
|
||||||
|
|
||||||
|
echo "✓ $compose_file créé"
|
||||||
|
done
|
||||||
|
|
||||||
|
# Fonction pour obtenir le subnet selon le réseau
|
||||||
|
get_subnet_for_network() {
|
||||||
|
case $1 in
|
||||||
|
"dnsmasq.4nk-local") echo "172.30.0.0/16" ;;
|
||||||
|
"modules.4nk-local") echo "172.31.0.0/16" ;;
|
||||||
|
"ia.modules.4nk-local") echo "172.31.2.0/16" ;;
|
||||||
|
"grafana.modules.4nk-local") echo "172.31.3.0/16" ;;
|
||||||
|
"data.modules.4nk-local") echo "172.31.4.0/16" ;;
|
||||||
|
"client.modules.4nk-local") echo "172.31.5.0/16" ;;
|
||||||
|
"lecoffre.projects.4nk-local") echo "172.31.6.0/16" ;;
|
||||||
|
*) echo "172.31.0.0/16" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fonction pour obtenir la gateway selon le réseau
|
||||||
|
get_gateway_for_network() {
|
||||||
|
case $1 in
|
||||||
|
"dnsmasq.4nk-local") echo "172.30.0.1" ;;
|
||||||
|
"modules.4nk-local") echo "172.31.0.1" ;;
|
||||||
|
"ia.modules.4nk-local") echo "172.31.2.1" ;;
|
||||||
|
"grafana.modules.4nk-local") echo "172.31.3.1" ;;
|
||||||
|
"data.modules.4nk-local") echo "172.31.4.1" ;;
|
||||||
|
"client.modules.4nk-local") echo "172.31.5.1" ;;
|
||||||
|
"lecoffre.projects.4nk-local") echo "172.31.6.1" ;;
|
||||||
|
*) echo "172.31.0.1" ;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
echo "Tous les docker-compose.yml individuels ont été créés"
|
@ -1,4 +1,4 @@
|
|||||||
version: '3.8'
|
# docker-compose configuration (version key removed)
|
||||||
|
|
||||||
x-4nk-extra-hosts: &x-4nk-extra-hosts
|
x-4nk-extra-hosts: &x-4nk-extra-hosts
|
||||||
extra_hosts:
|
extra_hosts:
|
||||||
@ -48,724 +48,115 @@ x-4nk-extra-hosts: &x-4nk-extra-hosts
|
|||||||
- "back-mini.lecoffre.projects.4nk-local:172.31.6.34"
|
- "back-mini.lecoffre.projects.4nk-local:172.31.6.34"
|
||||||
- "ia.lecoffre.projects.4nk-local:172.31.6.33"
|
- "ia.lecoffre.projects.4nk-local:172.31.6.33"
|
||||||
services:
|
services:
|
||||||
# ==================== DNS ====================
|
|
||||||
|
|
||||||
dnsmasq.4nk-local:
|
dnsmasq.4nk-local:
|
||||||
image: andyshinn/dnsmasq:2.78
|
extends:
|
||||||
container_name: dnsmasq.4nk-local
|
file: ./compose/infra.yml
|
||||||
hostname: dnsmasq.4nk-local
|
service: dnsmasq.4nk-local
|
||||||
ports:
|
|
||||||
- "5354:53/udp"
|
|
||||||
- "5354:53/tcp"
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/dnsmasq/conf/dnsmasq.conf:/etc/dnsmasq.conf:ro
|
|
||||||
networks:
|
|
||||||
dnsmasq.4nk-local:
|
|
||||||
ipv4_address: 172.30.0.1
|
|
||||||
modules.4nk-local:
|
|
||||||
sdk-relay.modules.4nk-local:
|
|
||||||
ia.modules.4nk-local:
|
|
||||||
grafana.modules.4nk-local:
|
|
||||||
data.modules.4nk-local:
|
|
||||||
client.modules.4nk-local:
|
|
||||||
lecoffre.projects.4nk-local:
|
|
||||||
restart: unless-stopped
|
|
||||||
privileged: true
|
|
||||||
|
|
||||||
# ==================== MODULES > DATA ====================
|
|
||||||
|
|
||||||
postgres.data.modules.4nk-local:
|
postgres.data.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: postgres:16
|
file: ./compose/data.yml
|
||||||
container_name: 4nk-ia-postgres.4nk-local
|
service: postgres.data.modules.4nk-local
|
||||||
hostname: 4nk-ia-postgres.4nk-local
|
|
||||||
env_file:
|
|
||||||
- ./4nk-local/modules/data/postgres/conf/.env
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/data/postgres/data:/var/lib/postgresql/data
|
|
||||||
- ./4nk-local/modules/data/postgres/logs:/var/log/postgresql
|
|
||||||
ports:
|
|
||||||
- "5432:5432"
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD-SHELL", "pg_isready -U postgres -d 4nk_db"]
|
|
||||||
interval: 10s
|
|
||||||
timeout: 5s
|
|
||||||
retries: 5
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
data.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.4.11
|
|
||||||
|
|
||||||
redis.data.modules.4nk-local:
|
redis.data.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: redis:7
|
file: ./compose/data.yml
|
||||||
container_name: 4nk-ia-redis.4nk-local
|
service: redis.data.modules.4nk-local
|
||||||
hostname: 4nk-ia-redis.4nk-local
|
|
||||||
command: ["redis-server", "--appendonly", "yes"]
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/data/redis/data:/data
|
|
||||||
- ./4nk-local/modules/data/redis/logs:/var/log/redis
|
|
||||||
ports:
|
|
||||||
- "6379:6379"
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
data.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.4.12
|
|
||||||
|
|
||||||
minio.data.modules.4nk-local:
|
minio.data.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: minio/minio:latest
|
file: ./compose/data.yml
|
||||||
container_name: minio.data.modules.4nk-local
|
service: minio.data.modules.4nk-local
|
||||||
hostname: minio.data.modules.4nk-local
|
|
||||||
command: server /data --console-address ":9001"
|
|
||||||
env_file:
|
|
||||||
- ./4nk-local/modules/data/minio/conf/.env
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/data/minio/data:/data
|
|
||||||
- ./4nk-local/modules/data/minio/logs:/var/log/minio
|
|
||||||
ports:
|
|
||||||
- "9000:9000"
|
|
||||||
- "9001:9001"
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
data.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.4.13
|
|
||||||
|
|
||||||
neo4j.data.modules.4nk-local:
|
neo4j.data.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: neo4j:5
|
file: ./compose/data.yml
|
||||||
container_name: neo4j.data.modules.4nk-local
|
service: neo4j.data.modules.4nk-local
|
||||||
hostname: neo4j.data.modules.4nk-local
|
|
||||||
env_file:
|
|
||||||
- ./4nk-local/modules/data/neo4j/conf/.env
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/data/neo4j/data:/data
|
|
||||||
- ./4nk-local/modules/data/neo4j/logs:/var/log/neo4j
|
|
||||||
ports:
|
|
||||||
- "7474:7474"
|
|
||||||
- "7687:7687"
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
data.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.4.14
|
|
||||||
|
|
||||||
opensearch.data.modules.4nk-local:
|
opensearch.data.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: opensearchproject/opensearch:2.14.0
|
file: ./compose/data.yml
|
||||||
container_name: opensearch.data.modules.4nk-local
|
service: opensearch.data.modules.4nk-local
|
||||||
hostname: 4nk-ia-opensearch.4nk-local
|
|
||||||
environment:
|
|
||||||
- discovery.type=single-node
|
|
||||||
- OPENSEARCH_INITIAL_ADMIN_PASSWORD=OpenSearch2025!
|
|
||||||
ulimits:
|
|
||||||
memlock:
|
|
||||||
soft: -1
|
|
||||||
hard: -1
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/data/opensearch/data:/usr/share/opensearch/data
|
|
||||||
- ./4nk-local/modules/data/opensearch/logs:/var/log/opensearch
|
|
||||||
ports:
|
|
||||||
- "9200:9200"
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
data.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.4.15
|
|
||||||
|
|
||||||
# ==================== MODULES ====================
|
|
||||||
|
|
||||||
tor.modules.4nk-local:
|
tor.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: dperson/torproxy:latest
|
file: ./compose/modules.yml
|
||||||
container_name: tor.modules.4nk-local
|
service: tor.modules.4nk-local
|
||||||
hostname: tor.modules.4nk-local
|
|
||||||
ports:
|
|
||||||
- "9050:9050"
|
|
||||||
- "9051:9051"
|
|
||||||
networks:
|
|
||||||
modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.0.10
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
bitcoin.modules.4nk-local:
|
bitcoin.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: ruimarinho/bitcoin-core:latest
|
file: ./compose/modules.yml
|
||||||
container_name: bitcoin.modules.4nk-local
|
service: bitcoin.modules.4nk-local
|
||||||
hostname: bitcoin.modules.4nk-local
|
|
||||||
entrypoint: ["/bin/sh","-c","for i in $(seq 1 30); do if grep -q '172.20.0.11' /proc/net/fib_trie 2>/dev/null; then break; fi; sleep 1; done; exec /entrypoint.sh bitcoind"]
|
|
||||||
ports:
|
|
||||||
- "38332:38332"
|
|
||||||
- "29000:29000"
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/bitcoin/data:/home/bitcoin/.bitcoin
|
|
||||||
- ./4nk-local/modules/bitcoin/conf/bitcoin.conf:/home/bitcoin/.bitcoin/bitcoin.conf
|
|
||||||
- ./4nk-local/modules/bitcoin/logs:/home/bitcoin/.bitcoin/logs
|
|
||||||
networks:
|
|
||||||
modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.0.11
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- tor.modules.4nk-local
|
|
||||||
|
|
||||||
blindbit-oracle.modules.4nk-local:
|
blindbit-oracle.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: git.4nkweb.com/4nk/blindbit-oracle:dev
|
file: ./compose/modules.yml
|
||||||
container_name: blindbit-oracle.modules.4nk-local
|
service: blindbit-oracle.modules.4nk-local
|
||||||
hostname: blindbit-oracle.modules.4nk-local
|
|
||||||
entrypoint: ["/bin/sh","-c","for i in $(seq 1 300); do if getent hosts bitcoin.modules.4nk-local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\"","--"]
|
|
||||||
ports:
|
|
||||||
- "8000:8000"
|
|
||||||
command: [ "/main", "--datadir", "/blindbit-oracle" ]
|
|
||||||
working_dir: /
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/blindbit-oracle/data:/blindbit-oracle
|
|
||||||
- ./4nk-local/modules/blindbit-oracle/conf/blindbit.toml:/blindbit-oracle/blindbit.toml:ro
|
|
||||||
- ./4nk-local/modules/blindbit-oracle/logs:/blindbit-oracle/logs
|
|
||||||
# Accès au répertoire Bitcoin pour le cookie RPC
|
|
||||||
- ./modules/bitcoin/data:/home/bitcoin/.bitcoin:ro
|
|
||||||
networks:
|
|
||||||
modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.0.12
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- bitcoin.modules.4nk-local
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost:8000" ]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 40s
|
|
||||||
environment:
|
|
||||||
- host=blindbit-oracle.modules.4nk-local:8000
|
|
||||||
- chain=signet
|
|
||||||
- rpc_endpoint=http://bitcoin.modules.4nk-local:38332
|
|
||||||
- cookie_path=/home/bitcoin/.bitcoin/signet/.cookie
|
|
||||||
- rpc_user=
|
|
||||||
- rpc_pass=
|
|
||||||
- sync_start_height=1
|
|
||||||
- max_parallel_tweak_computations=4
|
|
||||||
- max_parallel_requests=4
|
|
||||||
- tweaks_only=0
|
|
||||||
- tweaks_full_basic=1
|
|
||||||
- tweaks_full_with_dust_filter=1
|
|
||||||
- tweaks_cut_through_with_dust_filter=1
|
|
||||||
|
|
||||||
sdk-storage.modules.4nk-local:
|
sdk-storage.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: git.4nkweb.com/4nk/sdk_storage:dev
|
file: ./compose/modules.yml
|
||||||
container_name: sdk-storage.modules.4nk-local
|
service: sdk-storage.modules.4nk-local
|
||||||
hostname: sdk-storage.modules.4nk-local
|
|
||||||
ports:
|
|
||||||
- "8081:8080"
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/sdk-storage/conf/sdk_storage.conf:/usr/local/bin/sdk_storage.conf:ro
|
|
||||||
- ./4nk-local/modules/sdk-storage/logs:/app/logs
|
|
||||||
networks:
|
|
||||||
modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.0.13
|
|
||||||
restart: unless-stopped
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost:8080" ]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 40s
|
|
||||||
|
|
||||||
# ==================== MODULES > RELAY ====================
|
|
||||||
|
|
||||||
i1.sdk-relay.modules.4nk-local:
|
i1.sdk-relay.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: git.4nkweb.com/4nk/sdk_relay:dev
|
file: ./compose/modules.yml
|
||||||
container_name: i1.sdk-relay.modules.4nk-local
|
service: i1.sdk-relay.modules.4nk-local
|
||||||
hostname: i1.sdk-relay.modules.4nk-local
|
|
||||||
entrypoint: ["/bin/sh","-c","for i in $(seq 1 300); do if getent hosts bitcoin.modules.4nk-local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\""]
|
|
||||||
ports:
|
|
||||||
- "8090:8090"
|
|
||||||
- "8091:8091"
|
|
||||||
environment:
|
|
||||||
- RELAY_RPC_USER=
|
|
||||||
- RELAY_RPC_PASSWORD=
|
|
||||||
- COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie
|
|
||||||
- relay_rpc_user=
|
|
||||||
- relay_rpc_password=
|
|
||||||
- cookie_path=/home/bitcoin/.bitcoin/signet/.cookie
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/sdk-relay/i1/conf/1.sdk-relay.modulesconf:/home/bitcoin/.conf:ro
|
|
||||||
- ./4nk-local/modules/sdk-relay/i1/logs:/home/bitcoin/logs
|
|
||||||
working_dir: /home/bitcoin
|
|
||||||
networks:
|
|
||||||
sdk-relay.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.1.11
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- blindbit-oracle.modules.4nk-local
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "curl", "-f", "http://localhost:8090/health" ]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 40s
|
|
||||||
|
|
||||||
i2.sdk-relay.modules.4nk-local:
|
i2.sdk-relay.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: git.4nkweb.com/4nk/sdk_relay:dev
|
file: ./compose/modules.yml
|
||||||
container_name: i2.sdk-relay.modules.4nk-local
|
service: i2.sdk-relay.modules.4nk-local
|
||||||
hostname: i2.sdk-relay.modules.4nk-local
|
|
||||||
entrypoint: ["/bin/sh","-c","for i in $(seq 1 300); do if getent hosts bitcoin.modules.4nk-local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\""]
|
|
||||||
ports:
|
|
||||||
- "8092:8090"
|
|
||||||
- "8093:8091"
|
|
||||||
environment:
|
|
||||||
- RELAY_RPC_USER=
|
|
||||||
- RELAY_RPC_PASSWORD=
|
|
||||||
- COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie
|
|
||||||
- relay_rpc_user=
|
|
||||||
- relay_rpc_password=
|
|
||||||
- cookie_path=/home/bitcoin/.bitcoin/signet/.cookie
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/sdk-relay/i2/conf/sdk_relay2.conf:/home/bitcoin/.conf:ro
|
|
||||||
- ./4nk-local/modules/sdk-relay/i2/logs:/home/bitcoin/logs
|
|
||||||
working_dir: /home/bitcoin
|
|
||||||
networks:
|
|
||||||
sdk-relay.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.1.12
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- blindbit-oracle.modules.4nk-local
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "curl", "-f", "http://localhost:8090/health" ]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 40s
|
|
||||||
|
|
||||||
i3.sdk-relay.modules.4nk-local:
|
i3.sdk-relay.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: git.4nkweb.com/4nk/sdk_relay:dev
|
file: ./compose/modules.yml
|
||||||
container_name: i3.sdk-relay.modules.4nk-local
|
service: i3.sdk-relay.modules.4nk-local
|
||||||
hostname: i3.sdk-relay.modules.4nk-local
|
|
||||||
entrypoint: ["/bin/sh","-c","for i in $(seq 1 300); do if getent hosts bitcoin.modules.4nk-local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\""]
|
|
||||||
ports:
|
|
||||||
- "8094:8090"
|
|
||||||
- "8095:8091"
|
|
||||||
environment:
|
|
||||||
- RELAY_RPC_USER=
|
|
||||||
- RELAY_RPC_PASSWORD=
|
|
||||||
- COOKIE_PATH=/home/bitcoin/.bitcoin/signet/.cookie
|
|
||||||
- relay_rpc_user=
|
|
||||||
- relay_rpc_password=
|
|
||||||
- cookie_path=/home/bitcoin/.bitcoin/signet/.cookie
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/sdk-relay/i3/conf/sdk_relay3.conf:/home/bitcoin/.conf:ro
|
|
||||||
- ./4nk-local/modules/sdk-relay/i3/logs:/home/bitcoin/logs
|
|
||||||
working_dir: /home/bitcoin
|
|
||||||
networks:
|
|
||||||
sdk-relay.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.1.13
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- blindbit-oracle.modules.4nk-local
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "curl", "-f", "http://localhost:8090/health" ]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 40s
|
|
||||||
|
|
||||||
# ==================== MODULES > CLIENT MODES ====================
|
|
||||||
|
|
||||||
sdk-signer.client.modules.4nk-local:
|
sdk-signer.client.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: git.4nkweb.com/4nk/sdk_signer:dev
|
file: ./compose/modules.yml
|
||||||
container_name: sdk-signer.client.modules.4nk-local
|
service: sdk-signer.client.modules.4nk-local
|
||||||
hostname: sdk-signer.client.modules.4nk-local
|
|
||||||
ports:
|
|
||||||
- "9093:9090"
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/client/sdk-signer/conf/sdk_signer.conf:/usr/local/bin/sdk_signer.conf:ro
|
|
||||||
- ./4nk-local/modules/client/sdk-signer/data:/app/data
|
|
||||||
- ./4nk-local/modules/client/sdk-signer/logs:/usr/src/app/logs
|
|
||||||
networks:
|
|
||||||
client.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.5.11
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- sdk-storage.modules.4nk-local
|
|
||||||
- i1.sdk-relay.modules.4nk-local
|
|
||||||
- i2.sdk-relay.modules.4nk-local
|
|
||||||
- i3.sdk-relay.modules.4nk-local
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost:9090" ]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 40s
|
|
||||||
|
|
||||||
ihm.client.modules.4nk-local:
|
ihm.client.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: git.4nkweb.com/4nk/ihm_client:dev
|
file: ./compose/modules.yml
|
||||||
container_name: ihm.client.modules.4nk-local
|
service: ihm.client.modules.4nk-local
|
||||||
hostname: ihm.client.modules.4nk-local
|
|
||||||
ports:
|
|
||||||
- "8080:80"
|
|
||||||
- "3003:3003"
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/client/ihm/logs:/var/log/ihm_client
|
|
||||||
- ./4nk-local/modules/client/ihm/conf/.env:/app/.env:ro
|
|
||||||
networks:
|
|
||||||
client.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.5.12
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- sdk-storage.modules.4nk-local
|
|
||||||
- i1.sdk-relay.modules.4nk-local
|
|
||||||
- i2.sdk-relay.modules.4nk-local
|
|
||||||
- i3.sdk-relay.modules.4nk-local
|
|
||||||
healthcheck:
|
|
||||||
test: [ "CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost" ]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 40s
|
|
||||||
environment:
|
|
||||||
- U32_MAX=4294967295
|
|
||||||
- BASEURL=http://ihm.client.modules.4nk-local
|
|
||||||
- BOOTSTRAPURL=["http://i1.sdk-relay.4nk-local:8090"]
|
|
||||||
- STORAGEURL=http://sdk-storage.modules.4nk-local/storage
|
|
||||||
- BLINDBITURL=http://blindbit.modules.4nk-local:8000
|
|
||||||
- DEFAULTAMOUNT=1000
|
|
||||||
|
|
||||||
# ==================== MODULES > IA ====================
|
|
||||||
|
|
||||||
ollama.ia.modules.4nk-local:
|
ollama.ia.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: ollama/ollama:latest
|
file: ./compose/ia.yml
|
||||||
container_name: ollama.ia.modules.4nk-local
|
service: ollama.ia.modules.4nk-local
|
||||||
hostname: ollama.ia.modules.4nk-local
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/ia/ollama/data:/root/.ollama
|
|
||||||
- ./4nk-local/modules/ia/ollama/logs:/var/log/ollama
|
|
||||||
ports:
|
|
||||||
- "11435:11434" # Port modifié pour éviter les conflits
|
|
||||||
environment:
|
|
||||||
- OLLAMA_HOST=0.0.0.0
|
|
||||||
restart: unless-stopped
|
|
||||||
profiles: ["production", "development"]
|
|
||||||
networks:
|
|
||||||
ia.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.2.11
|
|
||||||
|
|
||||||
anythingsqlite.ia.modules.4nk-local:
|
anythingsqlite.ia.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: mintplexlabs/anythingllm:latest
|
file: ./compose/ia.yml
|
||||||
container_name: anythingsqlite.ia.modules.4nk-local
|
service: anythingsqlite.ia.modules.4nk-local
|
||||||
hostname: anythingsqlite.ia.modules.4nk-local
|
|
||||||
environment:
|
|
||||||
- DISABLE_AUTH=true
|
|
||||||
- STORAGE_DIR=/app/server/storage
|
|
||||||
depends_on:
|
|
||||||
- ollama.ia.modules.4nk-local
|
|
||||||
ports:
|
|
||||||
- "3001:3001"
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/ia/anythingsqlite/data:/app/server/storage
|
|
||||||
- ./4nk-local/modules/ia/anythingsqlite/logs:/var/log/anythingllm
|
|
||||||
restart: unless-stopped
|
|
||||||
profiles: ["production", "development"]
|
|
||||||
networks:
|
|
||||||
ia.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.2.12
|
|
||||||
|
|
||||||
host-api.ia.modules.4nk-local:
|
host-api.ia.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
build:
|
file: ./compose/ia.yml
|
||||||
context: ./docker/host-api
|
service: host-api.ia.modules.4nk-local
|
||||||
dockerfile: Dockerfile
|
|
||||||
container_name: host-api.ia.modules.4nk-local
|
|
||||||
hostname: host-api.ia.modules.4nk-local
|
|
||||||
labels:
|
|
||||||
- logging=promtail
|
|
||||||
- project=4nk_ia_back
|
|
||||||
env_file:
|
|
||||||
- ./4nk-local/modules/ia/host-api/conf/.env
|
|
||||||
environment:
|
|
||||||
DATABASE_URL: postgresql+psycopg://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres.data.modules.4nk-local:5432/$POSTGRES_DB
|
|
||||||
REDIS_URL: redis://redis.data.modules.4nk-local:6379/0
|
|
||||||
MINIO_ENDPOINT: 4nk-ia-minio.4nk-local:9000
|
|
||||||
MINIO_BUCKET: 4nk-bucket
|
|
||||||
ANYLLM_BASE_URL: http://4nk-ia-anythingllm.4nk-local:3001
|
|
||||||
ANYLLM_API_KEY: dummy_key
|
|
||||||
OLLAMA_BASE_URL: http://4nk-ia-ollama.4nk-local:11434
|
|
||||||
OPENSEARCH_URL: http://4nk-ia-opensearch.4nk-local:9200
|
|
||||||
NEO4J_URL: bolt://4nk-ia-neo4j.4nk-local:7687
|
|
||||||
NEO4J_AUTH: neo4j/neo4j
|
|
||||||
# Configuration de l'API
|
|
||||||
API_HOST: 0.0.0.0
|
|
||||||
API_PORT: 8000
|
|
||||||
API_WORKERS: 4
|
|
||||||
LOG_LEVEL: INFO
|
|
||||||
LOG_FORMAT: json
|
|
||||||
# Sécurité
|
|
||||||
SECRET_KEY: your_secret_key_here
|
|
||||||
ACCESS_TOKEN_EXPIRE_MINUTES: 30
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/ia/host-api/data:/app
|
|
||||||
- ./4nk-local/modules/ia/host-api/logs:/app/logs
|
|
||||||
ports:
|
|
||||||
- "8001:8000" # Port externe 8001 pour éviter les conflits
|
|
||||||
depends_on:
|
|
||||||
postgres.data.modules.4nk-local:
|
|
||||||
condition: service_healthy
|
|
||||||
redis.data.modules.4nk-local:
|
|
||||||
condition: service_started
|
|
||||||
minio.data.modules.4nk-local:
|
|
||||||
condition: service_started
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "curl", "-f", "http://localhost:8000/api/health"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 40s
|
|
||||||
restart: unless-stopped
|
|
||||||
networks:
|
|
||||||
ia.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.2.13
|
|
||||||
|
|
||||||
worker.ia.modules.4nk-local:
|
worker.ia.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
build:
|
file: ./compose/ia.yml
|
||||||
context: ./
|
service: worker.ia.modules.4nk-local
|
||||||
dockerfile: docker/worker/Dockerfile
|
|
||||||
container_name: worker.ia.modules.4nk-local
|
|
||||||
hostname: worker.ia.modules.4nk-local
|
|
||||||
labels:
|
|
||||||
- logging=promtail
|
|
||||||
- project=4nk_ia_back
|
|
||||||
env_file:
|
|
||||||
- ./4nk-local/modules/ia/worker/conf/.env
|
|
||||||
environment:
|
|
||||||
DATABASE_URL: postgresql+psycopg://$POSTGRES_USER:$POSTGRES_PASSWORD@postgres.data.modules.4nk-local:5432/$POSTGRES_DB
|
|
||||||
REDIS_URL: redis://redis.data.modules.4nk-local:6379/0
|
|
||||||
MINIO_ENDPOINT: 4nk-ia-minio.4nk-local:9000
|
|
||||||
MINIO_BUCKET: 4nk-bucket
|
|
||||||
ANYLLM_BASE_URL: http://4nk-ia-anythingllm.4nk-local:3001
|
|
||||||
ANYLLM_API_KEY: dummy_key
|
|
||||||
OLLAMA_BASE_URL: http://4nk-ia-ollama.4nk-local:11434
|
|
||||||
OPENSEARCH_URL: http://4nk-ia-opensearch.4nk-local:9200
|
|
||||||
NEO4J_URL: bolt://4nk-ia-neo4j.4nk-local:7687
|
|
||||||
NEO4J_AUTH: neo4j/neo4j
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/ia/worker/data:/app
|
|
||||||
- ./4nk-local/modules/ia/worker/logs:/app/logs
|
|
||||||
depends_on:
|
|
||||||
- host-api.ia.modules.4nk-local
|
|
||||||
restart: unless-stopped
|
|
||||||
profiles: ["production"]
|
|
||||||
networks:
|
|
||||||
ia.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.2.14
|
|
||||||
|
|
||||||
# ==================== MODULES >GRAFANA ====================
|
|
||||||
|
|
||||||
loki.grafana.modules.4nk-local:
|
loki.grafana.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: grafana/loki:2.9.0
|
file: ./compose/grafana.yml
|
||||||
container_name: loki.grafana.modules.4nk-local
|
service: loki.grafana.modules.4nk-local
|
||||||
hostname: loki.grafana.modules.4nk-local
|
|
||||||
ports:
|
|
||||||
- "3100:3100"
|
|
||||||
command: -config.file=/etc/loki/local-config.yaml
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/grafana/loki/conf/loki-config.yaml:/etc/loki/local-config.yaml:ro
|
|
||||||
- ./4nk-local/modules/grafana/loki/data:/loki
|
|
||||||
- ./4nk-local/modules/grafana/loki/logs:/var/log/loki
|
|
||||||
networks:
|
|
||||||
grafana.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.3.51
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
prometheus.grafana.modules.4nk-local:
|
prometheus.grafana.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: prom/prometheus:v2.54.1
|
file: ./compose/grafana.yml
|
||||||
container_name: prometheus.grafana.modules.4nk-local
|
service: prometheus.grafana.modules.4nk-local
|
||||||
hostname: prometheus.grafana.modules.4nk-local
|
|
||||||
ports:
|
|
||||||
- "9092:9091"
|
|
||||||
command:
|
|
||||||
- '--config.file=/etc/prometheus/prometheus.yml'
|
|
||||||
- '--storage.tsdb.path=/prometheus'
|
|
||||||
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
|
||||||
- '--web.console.templates=/etc/prometheus/consoles'
|
|
||||||
- '--storage.tsdb.retention.time=200h'
|
|
||||||
- '--web.enable-lifecycle'
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/grafana/prometheus/conf/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
|
||||||
- ./4nk-local/modules/grafana/prometheus/data:/prometheus
|
|
||||||
- ./4nk-local/modules/grafana/prometheus/logs:/var/log/prometheus
|
|
||||||
networks:
|
|
||||||
grafana.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.3.52
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
promtail.grafana.modules.4nk-local:
|
promtail.grafana.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: grafana/promtail:2.9.0
|
file: ./compose/grafana.yml
|
||||||
container_name: promtail.grafana.modules.4nk-local
|
service: promtail.grafana.modules.4nk-local
|
||||||
hostname: promtail.grafana.modules.4nk-local
|
|
||||||
command: -config.file=/etc/promtail/config.yml
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/grafana/promtail/conf/promtail-config.yml:/etc/promtail/config.yml:ro
|
|
||||||
- ./4nk-local/modules/grafana/promtail/logs:/var/log/promtail
|
|
||||||
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
|
||||||
- /var/log/docker:/var/log/docker:ro
|
|
||||||
- ./4nk-local/modules:/workspace/modules:ro
|
|
||||||
- ./4nk-local/projects:/workspace/projects:ro
|
|
||||||
- ./4nk-local/modules/grafana/grafana/logs:/workspace/logs:ro
|
|
||||||
networks:
|
|
||||||
grafana.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.3.53
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- loki.grafana.modules.4nk-local
|
|
||||||
|
|
||||||
grafana.grafana.modules.4nk-local:
|
grafana.grafana.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: grafana/grafana:10.0.0
|
file: ./compose/grafana.yml
|
||||||
container_name: grafana.grafana.modules.4nk-local
|
service: grafana.grafana.modules.4nk-local
|
||||||
hostname: grafana.grafana.modules.4nk-local
|
|
||||||
ports:
|
|
||||||
- "3000:3000"
|
|
||||||
environment:
|
|
||||||
- GF_SECURITY_ADMIN_PASSWORD=admin
|
|
||||||
- GF_USERS_ALLOW_SIGN_UP=false
|
|
||||||
- GF_SERVER_ROOT_URL=http://grafana.grafanalocal:3000
|
|
||||||
- GF_SERVER_SERVE_FROM_SUB_PATH=false
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/grafana/grafana/data:/var/lib/grafana
|
|
||||||
- ./4nk-local/modules/grafana/grafana/conf/grafana.ini:/etc/grafana/grafana.ini:ro
|
|
||||||
- ./4nk-local/modules/grafana/grafana/conf/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml:ro
|
|
||||||
- ./4nk-local/modules/grafana/grafana/conf/dashboards:/etc/grafana/provisioning/dashboards:ro
|
|
||||||
- ./4nk-local/modules/grafana/grafana/logs:/var/log/grafana
|
|
||||||
networks:
|
|
||||||
grafana.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.3.50
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- loki.grafana.modules.4nk-local
|
|
||||||
- prometheus.grafana.modules.4nk-local
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost:3000/api/health"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 40s
|
|
||||||
|
|
||||||
# ==================== MODULES OTHER ====================
|
|
||||||
|
|
||||||
nginx-proxy.modules.4nk-local:
|
nginx-proxy.modules.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: nginx:alpine
|
file: ./compose/modules.yml
|
||||||
container_name: nginx-proxy.modules.4nk-local
|
service: nginx-proxy.modules.4nk-local
|
||||||
hostname: nginx-proxy.modules.4nk-local
|
|
||||||
ports:
|
|
||||||
- "443:443"
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/modules/nginx-proxy/conf/nginx.conf:/etc/nginx/nginx.conf:ro
|
|
||||||
- ./4nk-local/modules/nginx-proxy/certs/local.crt:/etc/nginx/certs/local.crt:ro
|
|
||||||
- ./4nk-local/modules/nginx-proxy/certs/local.key:/etc/nginx/certs/local.key:ro
|
|
||||||
- ./4nk-local/modules/nginx-proxy/logs:/var/log/nginx
|
|
||||||
networks:
|
|
||||||
modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.0.60
|
|
||||||
restart: unless-stopped
|
|
||||||
|
|
||||||
# ==================== PROJECTS > LECOFFRE ====================
|
|
||||||
|
|
||||||
front.lecoffre.projects.4nk-local:
|
front.lecoffre.projects.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: git.4nkweb.com/4nk/lecoffre-front:ajanin
|
file: ./compose/projects.yml
|
||||||
container_name: front.lecoffre.projects.4nk-local
|
service: front.lecoffre.projects.4nk-local
|
||||||
hostname: front.lecoffre.projects.4nk-local
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/projects/lecoffre/front/logs:/logs
|
|
||||||
- ./4nk-local/projects/lecoffre/front/conf/.env.4nk-local:/leCoffre-front/.env.4nk-local:ro
|
|
||||||
networks:
|
|
||||||
lecoffre.projects.4nk-local:
|
|
||||||
ipv4_address: 172.31.6.32
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- back-mini.lecoffre.projects.4nk-local
|
|
||||||
- ihm.client.modules.4nk-local
|
|
||||||
- sdk-signer.client.modules.4nk-local
|
|
||||||
environment:
|
|
||||||
- NEXT_PUBLIC_4NK_URL=http://ihm.client.modules.4nk-local:3003
|
|
||||||
- NEXT_PUBLIC_FRONT_APP_HOST=http://0.0.0.0:3000
|
|
||||||
- NEXT_PUBLIC_IDNOT_BASE_URL=https://qual-connexion.idnot.fr
|
|
||||||
- NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT=/IdPOAuth2/authorize/idnot_idp_v1
|
|
||||||
- NEXT_PUBLIC_BACK_API_PROTOCOL=http://
|
|
||||||
- NEXT_PUBLIC_BACK_API_HOST=0.0.0.0
|
|
||||||
- NEXT_PUBLIC_BACK_API_PORT=8080
|
|
||||||
- NEXT_PUBLIC_BACK_API_ROOT_URL=/api
|
|
||||||
- NEXT_PUBLIC_BACK_API_VERSION=/v1
|
|
||||||
|
|
||||||
|
|
||||||
ia.lecoffre.projects.4nk-local:
|
ia.lecoffre.projects.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: git.4nkweb.com/4nk/4nk-ia-front:dev
|
file: ./compose/projects.yml
|
||||||
container_name: ia.lecoffre.projects.4nk-local
|
service: ia.lecoffre.projects.4nk-local
|
||||||
hostname: ia.lecoffre.projects.4nk-local
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/projects/lecoffre/ia/logs:/logs
|
|
||||||
networks:
|
|
||||||
lecoffre.projects.4nk-local:
|
|
||||||
ipv4_address: 172.31.6.33
|
|
||||||
ia.modules.4nk-local:
|
|
||||||
ipv4_address: 172.31.2.15
|
|
||||||
restart: unless-stopped
|
|
||||||
depends_on:
|
|
||||||
- host-api.ia.modules.4nk-local
|
|
||||||
|
|
||||||
back-mini.lecoffre.projects.4nk-local:
|
back-mini.lecoffre.projects.4nk-local:
|
||||||
<<: *x-4nk-extra-hosts
|
extends:
|
||||||
image: git.4nkweb.com/4nk/lecoffre-back-mini:dev
|
file: ./compose/projects.yml
|
||||||
container_name: back-mini.lecoffre.projects.4nk-local
|
service: back-mini.lecoffre.projects.4nk-local
|
||||||
hostname: back-mini.lecoffre.projects.4nk-local
|
|
||||||
volumes:
|
|
||||||
- ./4nk-local/projects/lecoffre/back-mini/conf/.env:/app/.env:ro
|
|
||||||
networks:
|
|
||||||
lecoffre.projects.4nk-local:
|
|
||||||
ipv4_address: 172.31.6.34
|
|
||||||
restart: unless-stopped
|
|
||||||
environment:
|
|
||||||
- OVH_SMS_SERVICE_NAME=sms-tt802880-1
|
|
||||||
- SMS_FACTOR_TOKEN=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI4NzgzNiIsImlhdCI6MTcwMTMzOTY1Mi45NDUzOH0.GNoqLb5MDBWuniNlQjbr1PKolwxGqBZe_tf4IMObvHw
|
|
||||||
- MAILCHIMP_LIST_ID=a48d9ad852
|
|
||||||
- STRIPE_WEBHOOK_SECRET=
|
|
||||||
- STRIPE_STANDARD_SUBSCRIPTION_PRICE_ID=price_1P66fuP5xh1u9BqSHj0O6Uy3
|
|
||||||
- STRIPE_STANDARD_ANNUAL_SUBSCRIPTION_PRICE_ID=price_1P9NsRP5xh1u9BqSFgkUDbQY
|
|
||||||
- STRIPE_UNLIMITED_SUBSCRIPTION_PRICE_ID=price_1P66RqP5xh1u9BqSuUzkQNac
|
|
||||||
- STRIPE_UNLIMITED_ANNUAL_SUBSCRIPTION_PRICE_ID=price_1P9NpKP5xh1u9BqSApFogvUB
|
|
||||||
- APP_HOST=http://0.0.0.0
|
|
||||||
- PORT=8080
|
|
||||||
- NEXT_PUBLIC_4NK_URL=http://ihm.client.modules.4nk-local
|
|
||||||
- NEXT_PUBLIC_FRONT_APP_HOST=http://coffre-front.4nk-local:3000
|
|
||||||
- NEXT_PUBLIC_IDNOT_BASE_URL=https://qual-connexion.idnot.fr
|
|
||||||
- NEXT_PUBLIC_IDNOT_AUTHORIZE_ENDPOINT=/IdPOAuth2/authorize/idnot_idp_v1
|
|
||||||
- NEXT_PUBLIC_IDNOT_CLIENT_ID=4501646203F3EF67
|
|
||||||
- NEXT_PUBLIC_BACK_API_PROTOCOL=http
|
|
||||||
- NEXT_PUBLIC_BACK_API_HOST=localhost
|
|
||||||
- BACK_API_PORT=8080
|
|
||||||
- BACK_API_ROOT_URL=/api
|
|
||||||
- BACK_API_VERSION=/v1
|
|
||||||
- IDNOT_ANNUARY_BASE_URL=https://qual-api.notaires.fr/annuaire
|
|
||||||
- DB_HOST=0.0.0.0
|
|
||||||
- DB_PORT=5432
|
|
||||||
- DB_NAME=miniback
|
|
||||||
- DB_USER=miniback
|
|
||||||
- DB_PASSWORD=minibackpassword
|
|
||||||
- LOG_LEVEL=debug
|
|
||||||
|
|
||||||
# Networks
|
|
||||||
|
|
||||||
networks:
|
networks:
|
||||||
dnsmasq.4nk-local:
|
dnsmasq.4nk-local:
|
||||||
driver: bridge
|
driver: bridge
|
||||||
|
732
docker-compose.yml.bak_optB
Normal file
732
docker-compose.yml.bak_optB
Normal file
@ -0,0 +1,732 @@
|
|||||||
|
# docker-compose configuration (version key removed)
|
||||||
|
|
||||||
|
x-4nk-extra-hosts: &x-4nk-extra-hosts
|
||||||
|
extra_hosts:
|
||||||
|
# 4nk-local (172.30.0.0/16)
|
||||||
|
- "dnsmasq.4nk-local:172.30.0.1"
|
||||||
|
|
||||||
|
# modules.4nk-local (172.31.0.0/16)
|
||||||
|
- "tor.modules.4nk-local:172.31.0.10"
|
||||||
|
- "bitcoin.modules.4nk-local:172.31.0.11"
|
||||||
|
- "blindbit-oracle.modules.4nk-local:172.31.0.12"
|
||||||
|
- "sdk-storage.modules.4nk-local:172.31.0.13"
|
||||||
|
- "sdk-relay1.modules.4nk-local:172.31.0.14"
|
||||||
|
- "sdk-relay2.modules.4nk-local:172.31.0.15"
|
||||||
|
- "sdk-relay3.modules.4nk-local:172.31.0.16"
|
||||||
|
- "nginx-proxy.modules.4nk-local:172.31.0.60"
|
||||||
|
|
||||||
|
# sdk-relay.modules.4nk-local (172.31.1.0/16)
|
||||||
|
- "i1.sdk-relay.modules.4nk-local:172.31.1.11"
|
||||||
|
- "i2.sdk-relay.modules.4nk-local:172.31.1.12"
|
||||||
|
- "i3.sdk-relay.modules.4nk-local:172.31.1.13"
|
||||||
|
|
||||||
|
# ia.modules.4nk-local (172.31.2.0/16)
|
||||||
|
- "ollama.ia.modules.4nk-local:172.31.2.11"
|
||||||
|
- "anythingsqlite.ia.modules.4nk-local:172.31.2.12"
|
||||||
|
- "host-api.ia.modules.4nk-local:172.31.2.13"
|
||||||
|
- "worker.ia.modules.4nk-local:172.31.2.14"
|
||||||
|
|
||||||
|
# grafana.modules.4nk-local (172.31.3.0/16)
|
||||||
|
- "loki.grafana.modules.4nk-local:172.31.3.51"
|
||||||
|
- "prometheus.grafana.modules.4nk-local:172.31.3.52"
|
||||||
|
- "promtail.grafana.modules.4nk-local:172.31.3.53"
|
||||||
|
- "grafana.grafana.modules.4nk-local:172.31.3.50"
|
||||||
|
|
||||||
|
# data.modules.4nk-local (172.31.4.0/16)
|
||||||
|
- "postgres.data.modules.4nk-local:172.31.4.11"
|
||||||
|
- "redis.data.modules.4nk-local:172.31.4.12"
|
||||||
|
- "minio.data.modules.4nk-local:172.31.4.13"
|
||||||
|
- "neo4j.data.modules.4nk-local:172.31.4.14"
|
||||||
|
- "opensearch.data.modules.4nk-local:172.31.4.15"
|
||||||
|
|
||||||
|
# client.modules.4nk-local (172.31.5.0/16)
|
||||||
|
- "sdk-signer.client.modules.4nk-local:172.31.5.11"
|
||||||
|
- "ihm.client.modules.4nk-local:172.31.5.12"
|
||||||
|
|
||||||
|
# projects.4nk-local (172.31.6.0/16)
|
||||||
|
- "front.lecoffre.projects.4nk-local:172.31.6.32"
|
||||||
|
- "back-mini.lecoffre.projects.4nk-local:172.31.6.34"
|
||||||
|
- "ia.lecoffre.projects.4nk-local:172.31.6.33"
|
||||||
|
services:
|
||||||
|
# ==================== DNS ====================
|
||||||
|
|
||||||
|
dnsmasq.4nk-local:
|
||||||
|
image: andyshinn/dnsmasq:2.78
|
||||||
|
container_name: dnsmasq.4nk-local
|
||||||
|
hostname: dnsmasq.4nk-local
|
||||||
|
ports:
|
||||||
|
- "5354:53/udp"
|
||||||
|
- "5354:53/tcp"
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/dnsmasq/conf/dnsmasq.conf:/etc/dnsmasq.conf:ro
|
||||||
|
networks:
|
||||||
|
dnsmasq.4nk-local:
|
||||||
|
ipv4_address: 172.30.0.1
|
||||||
|
modules.4nk-local:
|
||||||
|
sdk-relay.modules.4nk-local:
|
||||||
|
ia.modules.4nk-local:
|
||||||
|
grafana.modules.4nk-local:
|
||||||
|
data.modules.4nk-local:
|
||||||
|
client.modules.4nk-local:
|
||||||
|
lecoffre.projects.4nk-local:
|
||||||
|
restart: unless-stopped
|
||||||
|
privileged: true
|
||||||
|
|
||||||
|
# ==================== MODULES > DATA ====================
|
||||||
|
|
||||||
|
postgres.data.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: postgres:16
|
||||||
|
container_name: 4nk-ia-postgres.4nk-local
|
||||||
|
hostname: 4nk-ia-postgres.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/data/postgres/conf/.env
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/data/postgres/data:/var/lib/postgresql/data
|
||||||
|
- ./4nk-local/modules/data/postgres/logs:/var/log/postgresql
|
||||||
|
ports:
|
||||||
|
- "5432:5432"
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD-SHELL", "pg_isready -U postgres -d 4nk_db"]
|
||||||
|
interval: 10s
|
||||||
|
timeout: 5s
|
||||||
|
retries: 5
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
data.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.4.11
|
||||||
|
|
||||||
|
redis.data.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: redis:7
|
||||||
|
container_name: 4nk-ia-redis.4nk-local
|
||||||
|
hostname: 4nk-ia-redis.4nk-local
|
||||||
|
command: ["redis-server", "--appendonly", "yes"]
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/data/redis/data:/data
|
||||||
|
- ./4nk-local/modules/data/redis/logs:/var/log/redis
|
||||||
|
ports:
|
||||||
|
- "6379:6379"
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
data.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.4.12
|
||||||
|
|
||||||
|
minio.data.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: minio/minio:latest
|
||||||
|
container_name: minio.data.modules.4nk-local
|
||||||
|
hostname: minio.data.modules.4nk-local
|
||||||
|
command: server /data --console-address ":9001"
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/data/minio/conf/.env
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/data/minio/data:/data
|
||||||
|
- ./4nk-local/modules/data/minio/logs:/var/log/minio
|
||||||
|
ports:
|
||||||
|
- "9000:9000"
|
||||||
|
- "9001:9001"
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
data.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.4.13
|
||||||
|
|
||||||
|
neo4j.data.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: neo4j:5
|
||||||
|
container_name: neo4j.data.modules.4nk-local
|
||||||
|
hostname: neo4j.data.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/data/neo4j/conf/.env
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/data/neo4j/data:/data
|
||||||
|
- ./4nk-local/modules/data/neo4j/logs:/var/log/neo4j
|
||||||
|
ports:
|
||||||
|
- "7474:7474"
|
||||||
|
- "7687:7687"
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
data.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.4.14
|
||||||
|
|
||||||
|
opensearch.data.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: opensearchproject/opensearch:2.14.0
|
||||||
|
container_name: opensearch.data.modules.4nk-local
|
||||||
|
hostname: 4nk-ia-opensearch.4nk-local
|
||||||
|
environment:
|
||||||
|
- discovery.type=single-node
|
||||||
|
- OPENSEARCH_INITIAL_ADMIN_PASSWORD=OpenSearch2025!
|
||||||
|
ulimits:
|
||||||
|
memlock:
|
||||||
|
soft: -1
|
||||||
|
hard: -1
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/data/opensearch/data:/usr/share/opensearch/data
|
||||||
|
- ./4nk-local/modules/data/opensearch/logs:/var/log/opensearch
|
||||||
|
ports:
|
||||||
|
- "9200:9200"
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
data.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.4.15
|
||||||
|
|
||||||
|
# ==================== MODULES ====================
|
||||||
|
|
||||||
|
tor.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: dperson/torproxy:latest
|
||||||
|
container_name: tor.modules.4nk-local
|
||||||
|
hostname: tor.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/tor/conf/.env
|
||||||
|
ports:
|
||||||
|
- "9050:9050"
|
||||||
|
- "9051:9051"
|
||||||
|
networks:
|
||||||
|
modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.0.10
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
bitcoin.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: ruimarinho/bitcoin-core:latest
|
||||||
|
container_name: bitcoin.modules.4nk-local
|
||||||
|
hostname: bitcoin.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/bitcoin/conf/.env
|
||||||
|
entrypoint: ["/bin/sh","-c","for i in $(seq 1 30); do if grep -q '172.20.0.11' /proc/net/fib_trie 2>/dev/null; then break; fi; sleep 1; done; exec /entrypoint.sh bitcoind"]
|
||||||
|
ports:
|
||||||
|
- "38332:38332"
|
||||||
|
- "29000:29000"
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/bitcoin/data:/home/bitcoin/.bitcoin
|
||||||
|
- ./4nk-local/modules/bitcoin/conf/bitcoin.conf:/home/bitcoin/.bitcoin/bitcoin.conf
|
||||||
|
- ./4nk-local/modules/bitcoin/logs:/home/bitcoin/.bitcoin/logs
|
||||||
|
networks:
|
||||||
|
modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.0.11
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- tor.modules.4nk-local
|
||||||
|
|
||||||
|
blindbit-oracle.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: git.4nkweb.com/4nk/blindbit-oracle:dev
|
||||||
|
container_name: blindbit-oracle.modules.4nk-local
|
||||||
|
hostname: blindbit-oracle.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/blindbit-oracle/conf/.env
|
||||||
|
entrypoint: ["/bin/sh","-c","for i in $(seq 1 300); do if getent hosts bitcoin.modules.4nk-local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\"","--"]
|
||||||
|
ports:
|
||||||
|
- "8000:8000"
|
||||||
|
command: [ "/main", "--datadir", "/blindbit-oracle" ]
|
||||||
|
working_dir: /
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/blindbit-oracle/data:/blindbit-oracle
|
||||||
|
- ./4nk-local/modules/blindbit-oracle/conf/blindbit.toml:/blindbit-oracle/blindbit.toml:ro
|
||||||
|
- ./4nk-local/modules/blindbit-oracle/logs:/blindbit-oracle/logs
|
||||||
|
- ./modules/bitcoin/data:/home/bitcoin/.bitcoin:ro
|
||||||
|
networks:
|
||||||
|
modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.0.12
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- bitcoin.modules.4nk-local
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost:8000" ]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
|
||||||
|
sdk-storage.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: git.4nkweb.com/4nk/sdk_storage:dev
|
||||||
|
container_name: sdk-storage.modules.4nk-local
|
||||||
|
hostname: sdk-storage.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/sdk-storage/conf/.env
|
||||||
|
ports:
|
||||||
|
- "8081:8080"
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/sdk-storage/conf/sdk_storage.conf:/usr/local/bin/sdk_storage.conf:ro
|
||||||
|
- ./4nk-local/modules/sdk-storage/logs:/app/logs
|
||||||
|
networks:
|
||||||
|
modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.0.13
|
||||||
|
restart: unless-stopped
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost:8080" ]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
|
||||||
|
# ==================== MODULES > RELAY ====================
|
||||||
|
|
||||||
|
i1.sdk-relay.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: git.4nkweb.com/4nk/sdk_relay:dev
|
||||||
|
container_name: i1.sdk-relay.modules.4nk-local
|
||||||
|
hostname: i1.sdk-relay.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/sdk-relay/i1/conf/.env
|
||||||
|
entrypoint: ["/bin/sh","-c","for i in $(seq 1 300); do if getent hosts bitcoin.modules.4nk-local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\""]
|
||||||
|
ports:
|
||||||
|
- "8090:8090"
|
||||||
|
- "8091:8091"
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/sdk-relay/i1/conf/1.sdk-relay.modulesconf:/home/bitcoin/.conf:ro
|
||||||
|
- ./4nk-local/modules/sdk-relay/i1/logs:/home/bitcoin/logs
|
||||||
|
working_dir: /home/bitcoin
|
||||||
|
networks:
|
||||||
|
sdk-relay.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.1.11
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- blindbit-oracle.modules.4nk-local
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "curl", "-f", "http://localhost:8090/health" ]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
|
||||||
|
i2.sdk-relay.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: git.4nkweb.com/4nk/sdk_relay:dev
|
||||||
|
container_name: i2.sdk-relay.modules.4nk-local
|
||||||
|
hostname: i2.sdk-relay.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/sdk-relay/i2/conf/.env
|
||||||
|
entrypoint: ["/bin/sh","-c","for i in $(seq 1 300); do if getent hosts bitcoin.modules.4nk-local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\""]
|
||||||
|
ports:
|
||||||
|
- "8092:8090"
|
||||||
|
- "8093:8091"
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/sdk-relay/i2/conf/sdk_relay2.conf:/home/bitcoin/.conf:ro
|
||||||
|
- ./4nk-local/modules/sdk-relay/i2/logs:/home/bitcoin/logs
|
||||||
|
working_dir: /home/bitcoin
|
||||||
|
networks:
|
||||||
|
sdk-relay.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.1.12
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- blindbit-oracle.modules.4nk-local
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "curl", "-f", "http://localhost:8090/health" ]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
|
||||||
|
i3.sdk-relay.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: git.4nkweb.com/4nk/sdk_relay:dev
|
||||||
|
container_name: i3.sdk-relay.modules.4nk-local
|
||||||
|
hostname: i3.sdk-relay.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/sdk-relay/i3/conf/.env
|
||||||
|
entrypoint: ["/bin/sh","-c","for i in $(seq 1 300); do if getent hosts bitcoin.modules.4nk-local >/dev/null 2>&1 && [ -f /home/bitcoin/.bitcoin/signet/.cookie ]; then break; fi; sleep 1; done; exec \"$@\""]
|
||||||
|
ports:
|
||||||
|
- "8094:8090"
|
||||||
|
- "8095:8091"
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/sdk-relay/i3/conf/sdk_relay3.conf:/home/bitcoin/.conf:ro
|
||||||
|
- ./4nk-local/modules/sdk-relay/i3/logs:/home/bitcoin/logs
|
||||||
|
working_dir: /home/bitcoin
|
||||||
|
networks:
|
||||||
|
sdk-relay.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.1.13
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- blindbit-oracle.modules.4nk-local
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "curl", "-f", "http://localhost:8090/health" ]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
|
||||||
|
# ==================== MODULES > CLIENT MODES ====================
|
||||||
|
|
||||||
|
sdk-signer.client.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: git.4nkweb.com/4nk/sdk_signer:dev
|
||||||
|
container_name: sdk-signer.client.modules.4nk-local
|
||||||
|
hostname: sdk-signer.client.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/client/sdk-signer/conf/.env
|
||||||
|
ports:
|
||||||
|
- "9093:9090"
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/client/sdk-signer/conf/sdk_signer.conf:/usr/local/bin/sdk_signer.conf:ro
|
||||||
|
- ./4nk-local/modules/client/sdk-signer/data:/app/data
|
||||||
|
- ./4nk-local/modules/client/sdk-signer/logs:/usr/src/app/logs
|
||||||
|
networks:
|
||||||
|
client.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.5.11
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- sdk-storage.modules.4nk-local
|
||||||
|
- i1.sdk-relay.modules.4nk-local
|
||||||
|
- i2.sdk-relay.modules.4nk-local
|
||||||
|
- i3.sdk-relay.modules.4nk-local
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost:9090" ]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
|
||||||
|
ihm.client.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: git.4nkweb.com/4nk/ihm_client:dev
|
||||||
|
container_name: ihm.client.modules.4nk-local
|
||||||
|
hostname: ihm.client.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/client/ihm/conf/.env
|
||||||
|
ports:
|
||||||
|
- "8080:80"
|
||||||
|
- "3003:3003"
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/client/ihm/logs:/var/log/ihm_client
|
||||||
|
- ./4nk-local/modules/client/ihm/conf/.env:/app/.env:ro
|
||||||
|
networks:
|
||||||
|
client.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.5.12
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- sdk-storage.modules.4nk-local
|
||||||
|
- i1.sdk-relay.modules.4nk-local
|
||||||
|
- i2.sdk-relay.modules.4nk-local
|
||||||
|
- i3.sdk-relay.modules.4nk-local
|
||||||
|
healthcheck:
|
||||||
|
test: [ "CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost" ]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
|
||||||
|
# ==================== MODULES > IA ====================
|
||||||
|
|
||||||
|
ollama.ia.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: ollama/ollama:latest
|
||||||
|
container_name: ollama.ia.modules.4nk-local
|
||||||
|
hostname: ollama.ia.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/ia/ollama/conf/.env
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/ia/ollama/data:/root/.ollama
|
||||||
|
- ./4nk-local/modules/ia/ollama/logs:/var/log/ollama
|
||||||
|
ports:
|
||||||
|
- "11435:11434" # Port modifié pour éviter les conflits
|
||||||
|
restart: unless-stopped
|
||||||
|
profiles: ["production", "development"]
|
||||||
|
networks:
|
||||||
|
ia.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.2.11
|
||||||
|
|
||||||
|
anythingsqlite.ia.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: mintplexlabs/anythingllm:latest
|
||||||
|
container_name: anythingsqlite.ia.modules.4nk-local
|
||||||
|
hostname: anythingsqlite.ia.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/ia/anythingsqlite/conf/.env
|
||||||
|
depends_on:
|
||||||
|
- ollama.ia.modules.4nk-local
|
||||||
|
ports:
|
||||||
|
- "3001:3001"
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/ia/anythingsqlite/data:/app/server/storage
|
||||||
|
- ./4nk-local/modules/ia/anythingsqlite/logs:/var/log/anythingllm
|
||||||
|
restart: unless-stopped
|
||||||
|
profiles: ["production", "development"]
|
||||||
|
networks:
|
||||||
|
ia.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.2.12
|
||||||
|
|
||||||
|
host-api.ia.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
build:
|
||||||
|
context: ./docker/host-api
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: host-api.ia.modules.4nk-local
|
||||||
|
hostname: host-api.ia.modules.4nk-local
|
||||||
|
labels:
|
||||||
|
- logging=promtail
|
||||||
|
- project=ia.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/ia/host-api/conf/.env
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/ia/host-api/data:/app
|
||||||
|
- ./4nk-local/modules/ia/host-api/logs:/app/logs
|
||||||
|
ports:
|
||||||
|
- "8001:8000" # Port externe 8001 pour éviter les conflits
|
||||||
|
depends_on:
|
||||||
|
postgres.data.modules.4nk-local:
|
||||||
|
condition: service_healthy
|
||||||
|
redis.data.modules.4nk-local:
|
||||||
|
condition: service_started
|
||||||
|
minio.data.modules.4nk-local:
|
||||||
|
condition: service_started
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "curl", "-f", "http://localhost:8000/api/health"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
restart: unless-stopped
|
||||||
|
networks:
|
||||||
|
ia.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.2.13
|
||||||
|
|
||||||
|
worker.ia.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
build:
|
||||||
|
context: ./
|
||||||
|
dockerfile: docker/worker/Dockerfile
|
||||||
|
container_name: worker.ia.modules.4nk-local
|
||||||
|
hostname: worker.ia.modules.4nk-local
|
||||||
|
labels:
|
||||||
|
- logging=promtail
|
||||||
|
- project=4nk_ia_back
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/ia/worker/conf/.env
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/ia/worker/data:/app
|
||||||
|
- ./4nk-local/modules/ia/worker/logs:/app/logs
|
||||||
|
depends_on:
|
||||||
|
- host-api.ia.modules.4nk-local
|
||||||
|
restart: unless-stopped
|
||||||
|
profiles: ["production"]
|
||||||
|
networks:
|
||||||
|
ia.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.2.14
|
||||||
|
|
||||||
|
# ==================== MODULES >GRAFANA ====================
|
||||||
|
|
||||||
|
loki.grafana.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: grafana/loki:2.9.0
|
||||||
|
container_name: loki.grafana.modules.4nk-local
|
||||||
|
hostname: loki.grafana.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/grafana/loki/conf/.env
|
||||||
|
ports:
|
||||||
|
- "3100:3100"
|
||||||
|
command: -config.file=/etc/loki/local-config.yaml
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/grafana/loki/conf/loki-config.yaml:/etc/loki/local-config.yaml:ro
|
||||||
|
- ./4nk-local/modules/grafana/loki/data:/loki
|
||||||
|
- ./4nk-local/modules/grafana/loki/logs:/var/log/loki
|
||||||
|
networks:
|
||||||
|
grafana.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.3.51
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
prometheus.grafana.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: prom/prometheus:v2.54.1
|
||||||
|
container_name: prometheus.grafana.modules.4nk-local
|
||||||
|
hostname: prometheus.grafana.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/grafana/prometheus/conf/.env
|
||||||
|
ports:
|
||||||
|
- "9092:9091"
|
||||||
|
command:
|
||||||
|
- '--config.file=/etc/prometheus/prometheus.yml'
|
||||||
|
- '--storage.tsdb.path=/prometheus'
|
||||||
|
- '--web.console.libraries=/etc/prometheus/console_libraries'
|
||||||
|
- '--web.console.templates=/etc/prometheus/consoles'
|
||||||
|
- '--storage.tsdb.retention.time=200h'
|
||||||
|
- '--web.enable-lifecycle'
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/grafana/prometheus/conf/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
||||||
|
- ./4nk-local/modules/grafana/prometheus/data:/prometheus
|
||||||
|
- ./4nk-local/modules/grafana/prometheus/logs:/var/log/prometheus
|
||||||
|
networks:
|
||||||
|
grafana.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.3.52
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
promtail.grafana.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: grafana/promtail:2.9.0
|
||||||
|
container_name: promtail.grafana.modules.4nk-local
|
||||||
|
hostname: promtail.grafana.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/grafana/promtail/conf/.env
|
||||||
|
command: -config.file=/etc/promtail/config.yml
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/grafana/promtail/conf/promtail-config.yml:/etc/promtail/config.yml:ro
|
||||||
|
- ./4nk-local/modules/grafana/promtail/logs:/var/log/promtail
|
||||||
|
- /var/lib/docker/containers:/var/lib/docker/containers:ro
|
||||||
|
- /var/log/docker:/var/log/docker:ro
|
||||||
|
- ./4nk-local/modules:/workspace/modules:ro
|
||||||
|
- ./4nk-local/projects:/workspace/projects:ro
|
||||||
|
- ./4nk-local/modules/grafana/grafana/logs:/workspace/logs:ro
|
||||||
|
networks:
|
||||||
|
grafana.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.3.53
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- loki.grafana.modules.4nk-local
|
||||||
|
|
||||||
|
grafana.grafana.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: grafana/grafana:10.0.0
|
||||||
|
container_name: grafana.grafana.modules.4nk-local
|
||||||
|
hostname: grafana.grafana.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/grafana/grafana/conf/.env
|
||||||
|
ports:
|
||||||
|
- "3000:3000"
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/grafana/grafana/data:/var/lib/grafana
|
||||||
|
- ./4nk-local/modules/grafana/grafana/conf/grafana.ini:/etc/grafana/grafana.ini:ro
|
||||||
|
- ./4nk-local/modules/grafana/grafana/conf/datasources.yml:/etc/grafana/provisioning/datasources/datasources.yml:ro
|
||||||
|
- ./4nk-local/modules/grafana/grafana/conf/dashboards:/etc/grafana/provisioning/dashboards:ro
|
||||||
|
- ./4nk-local/modules/grafana/grafana/logs:/var/log/grafana
|
||||||
|
networks:
|
||||||
|
grafana.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.3.50
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- loki.grafana.modules.4nk-local
|
||||||
|
- prometheus.grafana.modules.4nk-local
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "wget", "--quiet", "--tries=1", "--timeout=5", "--spider", "http://localhost:3000/api/health"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 3
|
||||||
|
start_period: 40s
|
||||||
|
|
||||||
|
# ==================== MODULES OTHER ====================
|
||||||
|
|
||||||
|
nginx-proxy.modules.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: nginx:alpine
|
||||||
|
container_name: nginx-proxy.modules.4nk-local
|
||||||
|
hostname: nginx-proxy.modules.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/modules/nginx-proxy/conf/.env
|
||||||
|
ports:
|
||||||
|
- "443:443"
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/modules/nginx-proxy/conf/nginx.conf:/etc/nginx/nginx.conf:ro
|
||||||
|
- ./4nk-local/modules/nginx-proxy/certs/local.crt:/etc/nginx/certs/local.crt:ro
|
||||||
|
- ./4nk-local/modules/nginx-proxy/certs/local.key:/etc/nginx/certs/local.key:ro
|
||||||
|
- ./4nk-local/modules/nginx-proxy/logs:/var/log/nginx
|
||||||
|
networks:
|
||||||
|
modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.0.60
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
# ==================== PROJECTS > LECOFFRE ====================
|
||||||
|
|
||||||
|
front.lecoffre.projects.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: git.4nkweb.com/4nk/lecoffre-front:ajanin
|
||||||
|
container_name: front.lecoffre.projects.4nk-local
|
||||||
|
hostname: front.lecoffre.projects.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/projects/lecoffre/front/conf/.env
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/projects/lecoffre/front/logs:/logs
|
||||||
|
- ./4nk-local/projects/lecoffre/front/conf/.env.4nk-local:/leCoffre-front/.env.4nk-local:ro
|
||||||
|
networks:
|
||||||
|
lecoffre.projects.4nk-local:
|
||||||
|
ipv4_address: 172.31.6.32
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- back-mini.lecoffre.projects.4nk-local
|
||||||
|
- ihm.client.modules.4nk-local
|
||||||
|
- sdk-signer.client.modules.4nk-local
|
||||||
|
|
||||||
|
ia.lecoffre.projects.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: git.4nkweb.com/4nk/4nk-ia-front:dev
|
||||||
|
container_name: ia.lecoffre.projects.4nk-local
|
||||||
|
hostname: ia.lecoffre.projects.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/projects/lecoffre/ia/conf/.env
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/projects/lecoffre/ia/logs:/logs
|
||||||
|
networks:
|
||||||
|
lecoffre.projects.4nk-local:
|
||||||
|
ipv4_address: 172.31.6.33
|
||||||
|
ia.modules.4nk-local:
|
||||||
|
ipv4_address: 172.31.2.15
|
||||||
|
restart: unless-stopped
|
||||||
|
depends_on:
|
||||||
|
- host-api.ia.modules.4nk-local
|
||||||
|
|
||||||
|
back-mini.lecoffre.projects.4nk-local:
|
||||||
|
<<: *x-4nk-extra-hosts
|
||||||
|
image: git.4nkweb.com/4nk/lecoffre-back-mini:dev
|
||||||
|
container_name: back-mini.lecoffre.projects.4nk-local
|
||||||
|
hostname: back-mini.lecoffre.projects.4nk-local
|
||||||
|
env_file:
|
||||||
|
- ./4nk-local/projects/lecoffre/back-mini/conf/.env
|
||||||
|
volumes:
|
||||||
|
- ./4nk-local/projects/lecoffre/back-mini/conf/.env:/app/.env:ro
|
||||||
|
networks:
|
||||||
|
lecoffre.projects.4nk-local:
|
||||||
|
ipv4_address: 172.31.6.34
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
# Networks
|
||||||
|
|
||||||
|
networks:
|
||||||
|
dnsmasq.4nk-local:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.30.0.0/16
|
||||||
|
gateway: 172.30.0.1
|
||||||
|
modules.4nk-local:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.31.0.0/16
|
||||||
|
gateway: 172.31.0.1
|
||||||
|
sdk-relay.modules.4nk-local:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.31.1.0/16
|
||||||
|
gateway: 172.31.1.1
|
||||||
|
ia.modules.4nk-local:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.31.2.0/16
|
||||||
|
gateway: 172.31.2.1
|
||||||
|
grafana.modules.4nk-local:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.31.3.0/16
|
||||||
|
gateway: 172.31.3.1
|
||||||
|
data.modules.4nk-local:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.31.4.0/16
|
||||||
|
gateway: 172.31.4.1
|
||||||
|
client.modules.4nk-local:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.31.5.0/16
|
||||||
|
gateway: 172.31.5.1
|
||||||
|
lecoffre.projects.4nk-local:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.31.6.0/16
|
||||||
|
gateway: 172.31.6.1
|
91
fix_dependencies_compose.sh
Executable file
91
fix_dependencies_compose.sh
Executable file
@ -0,0 +1,91 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
ROOT=$(pwd)
|
||||||
|
GLOBAL_COMPOSE=$ROOT/docker-compose.yml
|
||||||
|
|
||||||
|
# Fonction pour extraire les dépendances d'un service
|
||||||
|
get_service_dependencies() {
|
||||||
|
local service_name=$1
|
||||||
|
docker-compose -f $GLOBAL_COMPOSE config | sed -n "/^ $service_name:/,/^ [a-zA-Z]/p" | grep -A 20 "depends_on:" | grep "^ -" | sed 's/^ - //' | tr '\n' ' '
|
||||||
|
}
|
||||||
|
|
||||||
|
# Fonction pour extraire la définition d'un réseau
|
||||||
|
get_network_definition() {
|
||||||
|
local network_name=$1
|
||||||
|
docker-compose -f $GLOBAL_COMPOSE config | sed -n "/^networks:/,/^[a-zA-Z]/p" | sed -n "/^ $network_name:/,/^ [a-zA-Z]/p" | sed '/^ [a-zA-Z]/d' | sed 's/^ / /'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mapping des chemins vers les noms de services et leurs réseaux
|
||||||
|
declare -A SERVICE_MAP=(
|
||||||
|
["4nk-local/dnsmasq"]="dnsmasq.4nk-local|dnsmasq.4nk-local"
|
||||||
|
["4nk-local/modules/tor"]="tor.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/bitcoin"]="bitcoin.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/blindbit-oracle"]="blindbit-oracle.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-storage"]="sdk-storage.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i1"]="i1.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i2"]="i2.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i3"]="i3.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/client/sdk-signer"]="sdk-signer.client.modules.4nk-local|client.modules.4nk-local"
|
||||||
|
["4nk-local/modules/client/ihm"]="ihm.client.modules.4nk-local|client.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/ollama"]="ollama.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/anythingsqlite"]="anythingsqlite.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/host-api"]="host-api.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/worker"]="worker.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/loki"]="loki.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/prometheus"]="prometheus.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/promtail"]="promtail.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/grafana"]="grafana.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/nginx-proxy"]="nginx-proxy.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/postgres"]="postgres.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/redis"]="redis.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/minio"]="minio.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/neo4j"]="neo4j.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/opensearch"]="opensearch.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/front"]="front.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/ia"]="ia.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/back-mini"]="back-mini.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Mettre à jour les docker-compose.yml individuels avec toutes les dépendances
|
||||||
|
for path in "${!SERVICE_MAP[@]}"; do
|
||||||
|
IFS='|' read -r service_name network_name <<< "${SERVICE_MAP[$path]}"
|
||||||
|
compose_file="$ROOT/$path/docker-compose.yml"
|
||||||
|
|
||||||
|
echo "Correction des dépendances pour $compose_file ($service_name)"
|
||||||
|
|
||||||
|
# Extraire les dépendances
|
||||||
|
dependencies=$(get_service_dependencies "$service_name")
|
||||||
|
|
||||||
|
# Extraire la définition du réseau
|
||||||
|
network_def=$(get_network_definition "$network_name")
|
||||||
|
|
||||||
|
# Créer le fichier avec toutes les dépendances
|
||||||
|
cat > "$compose_file" << COMPOSE_EOF
|
||||||
|
services:
|
||||||
|
$service_name:
|
||||||
|
extends:
|
||||||
|
file: $GLOBAL_COMPOSE
|
||||||
|
service: $service_name
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# Ajouter les dépendances si elles existent
|
||||||
|
if [ -n "$dependencies" ]; then
|
||||||
|
echo " depends_on:" >> "$compose_file"
|
||||||
|
for dep in $dependencies; do
|
||||||
|
echo " - $dep" >> "$compose_file"
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ajouter les réseaux
|
||||||
|
cat >> "$compose_file" << COMPOSE_EOF
|
||||||
|
|
||||||
|
networks:
|
||||||
|
$network_name:
|
||||||
|
$network_def
|
||||||
|
COMPOSE_EOF
|
||||||
|
|
||||||
|
echo "✓ $compose_file mis à jour avec dépendances"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Tous les docker-compose.yml individuels ont été mis à jour avec leurs dépendances"
|
69
fix_individual_compose.sh
Executable file
69
fix_individual_compose.sh
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
ROOT=$(pwd)
|
||||||
|
GLOBAL_COMPOSE=$ROOT/docker-compose.yml
|
||||||
|
|
||||||
|
# Mapping des chemins vers les noms de services et leurs réseaux
|
||||||
|
declare -A SERVICE_MAP=(
|
||||||
|
["4nk-local/dnsmasq"]="dnsmasq.4nk-local|dnsmasq.4nk-local"
|
||||||
|
["4nk-local/modules/tor"]="tor.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/bitcoin"]="bitcoin.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/blindbit-oracle"]="blindbit-oracle.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-storage"]="sdk-storage.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i1"]="i1.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i2"]="i2.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i3"]="i3.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/client/sdk-signer"]="sdk-signer.client.modules.4nk-local|client.modules.4nk-local"
|
||||||
|
["4nk-local/modules/client/ihm"]="ihm.client.modules.4nk-local|client.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/ollama"]="ollama.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/anythingsqlite"]="anythingsqlite.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/host-api"]="host-api.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/worker"]="worker.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/loki"]="loki.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/prometheus"]="prometheus.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/promtail"]="promtail.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/grafana"]="grafana.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/nginx-proxy"]="nginx-proxy.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/postgres"]="postgres.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/redis"]="redis.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/minio"]="minio.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/neo4j"]="neo4j.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/opensearch"]="opensearch.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/front"]="front.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/ia"]="ia.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/back-mini"]="back-mini.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Fonction pour extraire la définition d'un réseau
|
||||||
|
get_network_definition() {
|
||||||
|
local network_name=$1
|
||||||
|
docker-compose -f $GLOBAL_COMPOSE config | sed -n "/^networks:/,/^[a-zA-Z]/p" | sed -n "/^ $network_name:/,/^ [a-zA-Z]/p" | sed '/^ [a-zA-Z]/d' | sed 's/^ / /'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mettre à jour les docker-compose.yml individuels
|
||||||
|
for path in "${!SERVICE_MAP[@]}"; do
|
||||||
|
IFS='|' read -r service_name network_name <<< "${SERVICE_MAP[$path]}"
|
||||||
|
compose_file="$ROOT/$path/docker-compose.yml"
|
||||||
|
|
||||||
|
echo "Correction de $compose_file pour $service_name (réseau: $network_name)"
|
||||||
|
|
||||||
|
# Extraire la définition du réseau
|
||||||
|
network_def=$(get_network_definition "$network_name")
|
||||||
|
|
||||||
|
cat > "$compose_file" << COMPOSE_EOF
|
||||||
|
services:
|
||||||
|
$service_name:
|
||||||
|
extends:
|
||||||
|
file: $GLOBAL_COMPOSE
|
||||||
|
service: $service_name
|
||||||
|
|
||||||
|
networks:
|
||||||
|
$network_name:
|
||||||
|
$network_def
|
||||||
|
COMPOSE_EOF
|
||||||
|
|
||||||
|
echo "✓ $compose_file corrigé"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Tous les docker-compose.yml individuels ont été corrigés"
|
68
update_individual_compose.sh
Executable file
68
update_individual_compose.sh
Executable file
@ -0,0 +1,68 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
|
|
||||||
|
ROOT=$(pwd)
|
||||||
|
GLOBAL_COMPOSE=$ROOT/docker-compose.yml
|
||||||
|
|
||||||
|
# Mapping des chemins vers les noms de services et leurs réseaux
|
||||||
|
declare -A SERVICE_MAP=(
|
||||||
|
["4nk-local/dnsmasq"]="dnsmasq.4nk-local|dnsmasq.4nk-local"
|
||||||
|
["4nk-local/modules/tor"]="tor.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/bitcoin"]="bitcoin.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/blindbit-oracle"]="blindbit-oracle.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-storage"]="sdk-storage.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i1"]="i1.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i2"]="i2.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/sdk-relay/i3"]="i3.sdk-relay.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/client/sdk-signer"]="sdk-signer.client.modules.4nk-local|client.modules.4nk-local"
|
||||||
|
["4nk-local/modules/client/ihm"]="ihm.client.modules.4nk-local|client.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/ollama"]="ollama.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/anythingsqlite"]="anythingsqlite.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/host-api"]="host-api.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/ia/worker"]="worker.ia.modules.4nk-local|ia.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/loki"]="loki.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/prometheus"]="prometheus.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/promtail"]="promtail.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/grafana/grafana"]="grafana.grafana.modules.4nk-local|grafana.modules.4nk-local"
|
||||||
|
["4nk-local/modules/nginx-proxy"]="nginx-proxy.modules.4nk-local|modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/postgres"]="postgres.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/redis"]="redis.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/minio"]="minio.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/neo4j"]="neo4j.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/modules/data/opensearch"]="opensearch.data.modules.4nk-local|data.modules.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/front"]="front.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/ia"]="ia.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
["4nk-local/projects/lecoffre/back-mini"]="back-mini.lecoffre.projects.4nk-local|lecoffre.projects.4nk-local"
|
||||||
|
)
|
||||||
|
|
||||||
|
# Fonction pour extraire la définition d'un réseau
|
||||||
|
get_network_definition() {
|
||||||
|
local network_name=$1
|
||||||
|
docker-compose -f $GLOBAL_COMPOSE config | sed -n "/^networks:/,/^[a-zA-Z]/p" | sed -n "/^ $network_name:/,/^ [a-zA-Z]/p" | sed '/^ [a-zA-Z]/d'
|
||||||
|
}
|
||||||
|
|
||||||
|
# Mettre à jour les docker-compose.yml individuels
|
||||||
|
for path in "${!SERVICE_MAP[@]}"; do
|
||||||
|
IFS='|' read -r service_name network_name <<< "${SERVICE_MAP[$path]}"
|
||||||
|
compose_file="$ROOT/$path/docker-compose.yml"
|
||||||
|
|
||||||
|
echo "Mise à jour de $compose_file pour $service_name (réseau: $network_name)"
|
||||||
|
|
||||||
|
# Extraire la définition du réseau
|
||||||
|
network_def=$(get_network_definition "$network_name")
|
||||||
|
|
||||||
|
cat > "$compose_file" << COMPOSE_EOF
|
||||||
|
services:
|
||||||
|
$service_name:
|
||||||
|
extends:
|
||||||
|
file: $GLOBAL_COMPOSE
|
||||||
|
service: $service_name
|
||||||
|
|
||||||
|
networks:
|
||||||
|
$network_def
|
||||||
|
COMPOSE_EOF
|
||||||
|
|
||||||
|
echo "✓ $compose_file mis à jour"
|
||||||
|
done
|
||||||
|
|
||||||
|
echo "Tous les docker-compose.yml individuels ont été mis à jour avec leurs réseaux"
|
Loading…
x
Reference in New Issue
Block a user