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 # dockerfile: Dockerfile.inventaire depends_on: - couchdb - elasticsearch volumes: # The following paths are outside /opt/inventaire so that the inventaire-server volume can be removed # (as required when updating the server and client) without loosing their data - 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}' # 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 # ie. for database transformation, querying, UI access (http://localhost:5984/_utils/) # /!\ Beware that exposing container ports like this might bypass your firewall rules # See https://docs.docker.com/engine/install/ubuntu/#firewall-limitations # Keeping it bound to localhost (which is the default) should be safe though # (that is, contrary to binding to 0.0.0.0) # ports: # - "5984:5984" volumes: - 'couchdb:/opt/couchdb/data' restart: unless-stopped elasticsearch: image: elasticsearch:7.17.28 environment: - 'http.host=elasticsearch' - 'transport.host=elasticsearch' # See https://www.elastic.co/guide/en/elasticsearch/reference/7.16/docker.html - 'discovery.type=single-node' # Limit memory usage to 512MB, that should be enough at first # See https://www.elastic.co/guide/en/elasticsearch/reference/current/advanced-configuration.html - '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 nginx: build: context: ./nginx dockerfile: Dockerfile.nginx # Порты отключены для деплоя через Coolify (трафик идёт через прокси Coolify) # ports: # - "80:80" # - "443:443" volumes: - ./nginx/templates:/etc/nginx/templates/ - ./nginx/snippets:/etc/nginx/snippets - certbot-www:/var/www/html - ./certbot/conf:/etc/letsencrypt - nginx-cache:/tmp/nginx env_file: .env depends_on: # Required to be able to define the `inventaire` host as an upstream - inventaire restart: unless-stopped certbot: image: certbot/certbot:latest volumes: - ./certbot/conf:/etc/letsencrypt - certbot-www:/var/www/html restart: unless-stopped entrypoint: /bin/sh -c "trap exit TERM; while :; do certbot renew --webroot -w /var/www/html; sleep 12h & wait $${!}; done;" depends_on: - nginx volumes: couchdb: elasticsearch: certbot-www: inventaire-server: inventaire-leveldb: inventaire-local-media-storage: inventaire-backups: nginx-cache: