Compare commits

..

6 Commits

Author SHA1 Message Date
negodiy
487e490dbc compose: add coolify-native stack without nginx/certbot
Made-with: Cursor
2026-03-16 11:01:35 +00:00
negodiy
8b7d789b27 compose: expose inventaire internal port for Traefik routing
Made-with: Cursor
2026-03-16 10:48:28 +00:00
negodiy
8b3a78be3e nginx: speed up dhparam generation to avoid Coolify build timeout
Made-with: Cursor
2026-03-16 10:13:45 +00:00
negodiy
35908d602c compose: provide defaults for required inventaire env vars
Made-with: Cursor
2026-03-16 09:59:27 +00:00
negodiy
47c43f07f7 compose: add defaults for required CouchDB and Inventaire env vars
Made-with: Cursor
2026-03-16 09:46:37 +00:00
negodiy
e548f5e349 nginx: отключить порты 80/443 для деплоя через Coolify
Made-with: Cursor
2026-03-16 09:06:31 +00:00
3 changed files with 113 additions and 4 deletions

View File

@@ -0,0 +1,79 @@
services:
inventaire:
image: inventaire/inventaire:latest
env_file: .env
expose:
- "3016"
environment:
- 'INVENTAIRE_PORT=${INVENTAIRE_PORT:-3016}'
- 'PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME:-libra.i4h.ru}'
- 'INSTANCE_NAME=${INSTANCE_NAME:-My Inventaire Instance}'
- 'ORG_NAME=${ORG_NAME:-Example Organization}'
- 'ORG_URL=${ORG_URL:-https://libra.i4h.ru}'
- 'CONTACT_ADDRESS=${CONTACT_ADDRESS:-contact@libra.i4h.ru}'
- 'MAILER_SMTP_HOST=${MAILER_SMTP_HOST:-smtp.example.org}'
- 'MAILER_SMTP_PORT=${MAILER_SMTP_PORT:-587}'
- 'MAILER_SMTP_USERNAME=${MAILER_SMTP_USERNAME:-user}'
- 'MAILER_SMTP_PASSWORD=${MAILER_SMTP_PASSWORD:-password}'
- 'MAP_TILES_ACCESS_TOKEN=${MAP_TILES_ACCESS_TOKEN:-youraccesstoken}'
- 'MOTOMO_ENABLED=${MOTOMO_ENABLED:-false}'
- 'MOTOMO_ENDPOINT=${MOTOMO_ENDPOINT:-https://yourmatomoendpoint/matomo.php}'
- 'MOTOMO_IDSITE=${MOTOMO_IDSITE:-1}'
- 'MOTOMO_REC=${MOTOMO_REC:-1}'
- 'MEDIA_STORAGE_MODE=${MEDIA_STORAGE_MODE:-local}'
- 'SWIFT_USERNAME=${SWIFT_USERNAME:-customizedInLocalConfig}'
- 'SWIFT_PASSWORD=${SWIFT_PASSWORD:-customizedInLocalConfig}'
- 'SWIFT_AUTH_URL=${SWIFT_AUTH_URL:-https://openstackEndpointToCustomize}'
- 'SWIFT_PUBLIC_URL=${SWIFT_PUBLIC_URL:-https://swiftPublicURL}'
- 'SWIFT_TENANT_NAME=${SWIFT_TENANT_NAME:-12345678}'
- 'SWIFT_REGION=${SWIFT_REGION:-SBG-1}'
- 'COUCHDB_USER=${COUCHDB_USER:-couchdb}'
- 'COUCHDB_PASSWORD=${COUCHDB_PASSWORD:-change_this_password_now}'
depends_on:
- couchdb
- elasticsearch
volumes:
- inventaire-leveldb:/opt/inventaire_leveldb
- inventaire-local-media-storage:/opt/inventaire_local_media_storage
- inventaire-backups:/opt/inventaire_backups
logging:
options:
max-size: "10m"
max-file: "3"
restart: unless-stopped
couchdb:
build:
context: ./couchdb
dockerfile: Dockerfile.couchdb
env_file: .env
environment:
- 'COUCHDB_USER=${COUCHDB_USER:-couchdb}'
- 'COUCHDB_PASSWORD=${COUCHDB_PASSWORD:-change_this_password_now}'
- 'ERL_FLAGS=+A 4'
volumes:
- couchdb:/opt/couchdb/data
restart: unless-stopped
elasticsearch:
image: elasticsearch:7.17.28
environment:
- 'http.host=elasticsearch'
- 'transport.host=elasticsearch'
- 'discovery.type=single-node'
- 'ES_JAVA_OPTS=-Xms512m -Xmx512m'
- 'xpack.security.enabled=false'
- 'ingest.geoip.downloader.enabled=false'
- 'logger.org.elasticsearch=ERROR'
- 'logger.com.azure.core=ERROR'
- 'logger.org.apache=ERROR'
volumes:
- elasticsearch:/usr/share/elasticsearch/data
restart: unless-stopped
volumes:
couchdb:
elasticsearch:
inventaire-leveldb:
inventaire-local-media-storage:
inventaire-backups:

View File

@@ -2,6 +2,33 @@ services:
inventaire:
image: inventaire/inventaire:latest
env_file: .env
expose:
- "3016"
environment:
- 'INVENTAIRE_PORT=${INVENTAIRE_PORT:-3016}'
- 'PUBLIC_HOSTNAME=${PUBLIC_HOSTNAME:-libra.i4h.ru}'
- 'INSTANCE_NAME=${INSTANCE_NAME:-My Inventaire Instance}'
- 'ORG_NAME=${ORG_NAME:-Example Organization}'
- 'ORG_URL=${ORG_URL:-https://libra.i4h.ru}'
- 'CONTACT_ADDRESS=${CONTACT_ADDRESS:-contact@libra.i4h.ru}'
- 'MAILER_SMTP_HOST=${MAILER_SMTP_HOST:-smtp.example.org}'
- 'MAILER_SMTP_PORT=${MAILER_SMTP_PORT:-587}'
- 'MAILER_SMTP_USERNAME=${MAILER_SMTP_USERNAME:-user}'
- 'MAILER_SMTP_PASSWORD=${MAILER_SMTP_PASSWORD:-password}'
- 'MAP_TILES_ACCESS_TOKEN=${MAP_TILES_ACCESS_TOKEN:-youraccesstoken}'
- 'MOTOMO_ENABLED=${MOTOMO_ENABLED:-false}'
- 'MOTOMO_ENDPOINT=${MOTOMO_ENDPOINT:-https://yourmatomoendpoint/matomo.php}'
- 'MOTOMO_IDSITE=${MOTOMO_IDSITE:-1}'
- 'MOTOMO_REC=${MOTOMO_REC:-1}'
- 'MEDIA_STORAGE_MODE=${MEDIA_STORAGE_MODE:-local}'
- 'SWIFT_USERNAME=${SWIFT_USERNAME:-customizedInLocalConfig}'
- 'SWIFT_PASSWORD=${SWIFT_PASSWORD:-customizedInLocalConfig}'
- 'SWIFT_AUTH_URL=${SWIFT_AUTH_URL:-https://openstackEndpointToCustomize}'
- 'SWIFT_PUBLIC_URL=${SWIFT_PUBLIC_URL:-https://swiftPublicURL}'
- 'SWIFT_TENANT_NAME=${SWIFT_TENANT_NAME:-12345678}'
- 'SWIFT_REGION=${SWIFT_REGION:-SBG-1}'
- 'COUCHDB_USER=${COUCHDB_USER:-couchdb}'
- 'COUCHDB_PASSWORD=${COUCHDB_PASSWORD:-change_this_password_now}'
# You may also build image from sources with:
# build:
# context: ./inventaire
@@ -26,6 +53,8 @@ services:
dockerfile: Dockerfile.couchdb
env_file: .env
environment:
- 'COUCHDB_USER=${COUCHDB_USER:-couchdb}'
- 'COUCHDB_PASSWORD=${COUCHDB_PASSWORD:-change_this_password_now}'
# See https://docs.couchdb.org/en/stable/maintenance/performance.html#disk-and-file-system-performance
- 'ERL_FLAGS=+A 4'
# Uncomment ports to get access to the db
@@ -61,9 +90,10 @@ services:
build:
context: ./nginx
dockerfile: Dockerfile.nginx
ports:
- "80:80"
- "443:443"
# Порты отключены для деплоя через Coolify (трафик идёт через прокси Coolify)
# ports:
# - "80:80"
# - "443:443"
volumes:
- ./nginx/templates:/etc/nginx/templates/
- ./nginx/snippets:/etc/nginx/snippets

View File

@@ -1,6 +1,6 @@
FROM nginx:1.28
RUN [ ! -f /etc/nginx/dhparam.pem ] && openssl dhparam -out /etc/nginx/dhparam.pem 2048
RUN [ ! -f /etc/nginx/dhparam.pem ] && openssl dhparam -dsaparam -out /etc/nginx/dhparam.pem 2048
RUN mkdir -p /tmp/nginx/tmp /tmp/nginx/resize/img/users /tmp/nginx/resize/img/groups /tmp/nginx/resize/img/entities /tmp/nginx/resize/img/remote /tmp/nginx/resize/img/assets /var/cache/nginx/client_temp /opt/inventaire/client && chown -R nginx:nginx /tmp/nginx /opt