init
This commit is contained in:
18
lab/.env.example
Normal file
18
lab/.env.example
Normal file
@@ -0,0 +1,18 @@
|
||||
POSTGRES_USER=postgres
|
||||
POSTGRES_PASSWORD=postgres
|
||||
POSTGRES_DB=postgres
|
||||
RABBITMQ_USER=rmqadmin
|
||||
RABBITMQ_PASSWORD=password
|
||||
KEYCLOAK_DB=keycloak
|
||||
KEYCLOAK_ADMIN=admin
|
||||
KEYCLOAK_ADMIN_PASSWORD=admin
|
||||
KEYCLOAK_HOSTNAME=keycloak.home.g33k.cc
|
||||
MINIO_ROOT_USER=minioadmin
|
||||
MINIO_ROOT_PASSWORD=minioadmin
|
||||
MINIO_OIDC_CONFIG_URL=
|
||||
MINIO_OIDC_CLIENT_ID=
|
||||
MINIO_OIDC_CLIENT_SECRET=
|
||||
BOTPRESS_DB=botpress
|
||||
BOTPRESS_URL=http://localhost:3000
|
||||
SEQ_PASSWORD=password
|
||||
LOG_DIR=./logs
|
||||
167
lab/compose.yaml
Normal file
167
lab/compose.yaml
Normal file
@@ -0,0 +1,167 @@
|
||||
# =============================================================================
|
||||
# Work / Dev stack
|
||||
# PostgreSQL + RabbitMQ + Keycloak + MinIO + OpenWebUI + Botpress + Seq + SearXNG
|
||||
# =============================================================================
|
||||
|
||||
networks:
|
||||
work:
|
||||
name: lab
|
||||
driver: bridge
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:17
|
||||
container_name: postgres
|
||||
environment:
|
||||
POSTGRES_USER: ${POSTGRES_USER:-postgres}
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
|
||||
POSTGRES_DB: ${POSTGRES_DB:-postgres}
|
||||
ports:
|
||||
- "5432:5432"
|
||||
volumes:
|
||||
- postgresql-data:/var/lib/postgresql/data
|
||||
networks:
|
||||
- lab
|
||||
restart: always
|
||||
|
||||
rabbitmq:
|
||||
image: rabbitmq:3-management
|
||||
container_name: rabbitmq
|
||||
environment:
|
||||
RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER:-rmqadmin}
|
||||
RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD:-password}
|
||||
ports:
|
||||
- "5672:5672"
|
||||
- "15672:15672"
|
||||
volumes:
|
||||
- rabbitmq-data:/var/lib/rabbitmq
|
||||
networks:
|
||||
- lab
|
||||
restart: always
|
||||
|
||||
keycloak:
|
||||
image: quay.io/keycloak/keycloak:latest
|
||||
container_name: keycloak
|
||||
depends_on:
|
||||
- postgres
|
||||
environment:
|
||||
KC_DB: postgres
|
||||
KC_DB_URL: jdbc:postgresql://postgres:5432/${KEYCLOAK_DB:-keycloak}
|
||||
KC_DB_USERNAME: ${POSTGRES_USER:-postgres}
|
||||
KC_DB_PASSWORD: ${POSTGRES_PASSWORD:-postgres}
|
||||
KC_HOSTNAME: ${KEYCLOAK_HOSTNAME:-keycloak.home.g33k.cc}
|
||||
KC_PROXY_HEADERS: xforwarded
|
||||
KC_LOG_LEVEL: info
|
||||
KC_METRICS_ENABLED: "true"
|
||||
KC_HEALTH_ENABLED: "true"
|
||||
KEYCLOAK_ADMIN: ${KEYCLOAK_ADMIN:-admin}
|
||||
KEYCLOAK_ADMIN_PASSWORD: ${KEYCLOAK_ADMIN_PASSWORD:-admin}
|
||||
command: start
|
||||
ports:
|
||||
- "8088:8080"
|
||||
volumes:
|
||||
- keycloak-data:/opt/keycloak/data
|
||||
networks:
|
||||
- lab
|
||||
restart: always
|
||||
|
||||
minio:
|
||||
image: quay.io/minio/minio:latest
|
||||
container_name: minio
|
||||
environment:
|
||||
MINIO_ROOT_USER: ${MINIO_ROOT_USER:-minioadmin}
|
||||
MINIO_ROOT_PASSWORD: ${MINIO_ROOT_PASSWORD:-minioadmin}
|
||||
MINIO_IDENTITY_OPENID_CONFIG_URL: ${MINIO_OIDC_CONFIG_URL}
|
||||
MINIO_IDENTITY_OPENID_CLIENT_ID: ${MINIO_OIDC_CLIENT_ID}
|
||||
MINIO_IDENTITY_OPENID_CLIENT_SECRET: ${MINIO_OIDC_CLIENT_SECRET}
|
||||
MINIO_IDENTITY_OPENID_ROLE_POLICY: consoleAdmin
|
||||
MINIO_IDENTITY_OPENID_CLAIM_NAME: policy
|
||||
command: server /data --console-address :9001
|
||||
ports:
|
||||
- "9000:9000"
|
||||
- "9001:9001"
|
||||
volumes:
|
||||
- minio-data:/data
|
||||
networks:
|
||||
- lab
|
||||
restart: always
|
||||
|
||||
openwebui:
|
||||
image: ghcr.io/open-webui/open-webui:main
|
||||
container_name: openwebui
|
||||
ports:
|
||||
- "3003:8080"
|
||||
volumes:
|
||||
- openwebui-data:/app/backend/data
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
networks:
|
||||
- lab
|
||||
restart: always
|
||||
|
||||
botpress-lang:
|
||||
image: botpress/server:latest
|
||||
container_name: botpress-lang
|
||||
command: bash -c "./duckling -p 8000 & ./bp lang --langDir /botpress/lang --port 3100"
|
||||
volumes:
|
||||
- botpress_lang:/botpress/lang
|
||||
networks:
|
||||
- lab
|
||||
restart: always
|
||||
|
||||
botpress-server:
|
||||
image: botpress/server:latest
|
||||
container_name: botpress-server
|
||||
depends_on:
|
||||
- postgres
|
||||
- botpress-lang
|
||||
environment:
|
||||
DATABASE_URL: postgres://${POSTGRES_USER:-postgres}:${POSTGRES_PASSWORD:-postgres}@postgres:5432/${BOTPRESS_DB:-botpress}
|
||||
BP_MODULE_NLU_DUCKLINGURL: http://botpress-lang:8000
|
||||
BP_MODULE_NLU_LANGUAGESOURCES: '[{"endpoint":"http://botpress-lang:3100"}]'
|
||||
EXTERNAL_URL: ${BOTPRESS_URL:-http://localhost:3000}
|
||||
ports:
|
||||
- "3333:3000"
|
||||
volumes:
|
||||
- botpress-data:/botpress/data
|
||||
networks:
|
||||
- lab
|
||||
restart: always
|
||||
|
||||
seq:
|
||||
image: datalust/seq:latest
|
||||
container_name: seq
|
||||
environment:
|
||||
ACCEPT_EULA: "Y"
|
||||
SEQ_FIRSTRUN_ADMINPASSWORD: ${SEQ_PASSWORD:-password}
|
||||
ports:
|
||||
- "5341:80"
|
||||
volumes:
|
||||
- seq-data:/data
|
||||
networks:
|
||||
- lab
|
||||
restart: always
|
||||
|
||||
searxng:
|
||||
image: docker.io/searxng/searxng:latest
|
||||
container_name: searxng
|
||||
ports:
|
||||
- "9999:8080"
|
||||
volumes:
|
||||
- searxng-data:/var/cache/searxng/
|
||||
- searxng-config:/etc/searxng/
|
||||
networks:
|
||||
- lab
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
postgresql-data:
|
||||
rabbitmq-data:
|
||||
keycloak-data:
|
||||
minio-data:
|
||||
openwebui-data:
|
||||
botpress_lang:
|
||||
botpress-data:
|
||||
seq-data:
|
||||
searxng-data:
|
||||
searxng-config:
|
||||
1
media/.env.example
Normal file
1
media/.env.example
Normal file
@@ -0,0 +1 @@
|
||||
# Torrents — no secrets needed
|
||||
91
media/compose.yaml
Normal file
91
media/compose.yaml
Normal file
@@ -0,0 +1,91 @@
|
||||
# =============================================================================
|
||||
# Torrents / Media stack (онлайн, без NAS)
|
||||
# Индексаторы + TorrServer + Lampa
|
||||
# =============================================================================
|
||||
|
||||
networks:
|
||||
torrents:
|
||||
name: media
|
||||
driver: bridge
|
||||
|
||||
services:
|
||||
jackett:
|
||||
image: lscr.io/linuxserver/jackett:latest
|
||||
container_name: jackett
|
||||
environment:
|
||||
TZ: Europe/Moscow
|
||||
AUTO_UPDATE: "true"
|
||||
ports:
|
||||
- "9117:9117"
|
||||
volumes:
|
||||
- jackett_config:/config
|
||||
networks:
|
||||
- media
|
||||
restart: always
|
||||
|
||||
prowlarr:
|
||||
image: lscr.io/linuxserver/prowlarr:latest
|
||||
container_name: prowlarr
|
||||
environment:
|
||||
TZ: Europe/Moscow
|
||||
ports:
|
||||
- "9696:9696"
|
||||
volumes:
|
||||
- prowlarr-config:/config
|
||||
networks:
|
||||
- media
|
||||
restart: always
|
||||
|
||||
flaresolverr:
|
||||
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||
container_name: flaresolverr
|
||||
ports:
|
||||
- "8191:8191"
|
||||
networks:
|
||||
- media
|
||||
restart: always
|
||||
|
||||
torrserver:
|
||||
image: ghcr.io/yourok/torrserver:latest
|
||||
container_name: torrserver
|
||||
environment:
|
||||
TS_PORT: "8090"
|
||||
TS_DONTKILL: "true"
|
||||
TS_HTTPAUTH: "false"
|
||||
TS_RDB: "false"
|
||||
TS_TORRENTSDIR: /opt/ts/torrents
|
||||
TS_TORRENTADDR: ":32000"
|
||||
ports:
|
||||
- "9119:8090"
|
||||
volumes:
|
||||
- torrserver_config:/opt/ts/config
|
||||
- torrserver_log:/opt/ts/log
|
||||
- torrserver_torrents:/opt/ts/torrents
|
||||
networks:
|
||||
- media
|
||||
restart: always
|
||||
|
||||
lampac:
|
||||
image: ghcr.io/lampac-nextgen/lampac:latest
|
||||
container_name: lampac
|
||||
ports:
|
||||
- "9118:9118"
|
||||
volumes:
|
||||
- lampac-init:/lampac
|
||||
- lampac-db:/lampac/database
|
||||
- lampac-cache:/lampac/cache
|
||||
- lampac-logs:/lampac/logs
|
||||
networks:
|
||||
- media
|
||||
restart: always
|
||||
|
||||
volumes:
|
||||
jackett_config:
|
||||
prowlarr-config:
|
||||
torrserver_config:
|
||||
torrserver_log:
|
||||
torrserver_torrents:
|
||||
lampac-init:
|
||||
lampac-db:
|
||||
lampac-cache:
|
||||
lampac-logs:
|
||||
Reference in New Issue
Block a user