icewind1991 / mx-puppet-steam

Matrix <-> Steam puppeting bridge based on mx-puppet-bridge
Apache License 2.0
46 stars 10 forks source link

Docker compose quick start? #45

Open andzejsp opened 1 year ago

andzejsp commented 1 year ago

Hi, i cant figure out how to make this work with docker compose.

My matrix is runing on separate compose file

I created new folder: mx-puppet-steam/ ./docker-compose.yml

version: "3.4"
services:
  mx-puppet-steam:
    hostname: mx-puppet-steam
    image: icewind1991/mx-puppet-steam
    restart: always
    volumes:
      - ./config.yaml:/data/config.yaml

    networks:
      - internal
networks:
  internal:

./config.yaml

bridge:
  # Port to host the bridge on which your homeserver will connect to
  port: 6000
  # Address for the bridge to bind to; if running as a Docker container, you
  # probably want 0.0.0.0 here
  bindAddress: 0.0.0.0
  # Name of your homeserver
  domain: matrix.example2.com
  # URL where the bridge can connect to your homeserver
  homeserverUrl: https://matrix.example2.com

provisioning:
  # Which users are allowed to issue commands to @_steampuppet_bot
  # whitelist:
  #  - "@*:matrix.example.com"
  # A blacklist can be used instead:
  # blacklist:
  #   - "@username:matrix\\.myhomeserver\\.com"

  # Shared secret for the provisioning API for use by integration managers.
  # If this is not set, the provisioning API will not be enabled.
  #sharedSecret: random string
  # Path prefix for the provisioning API. /v1 will be appended to the prefix automatically.
  apiPrefix: /_matrix/provision

presence:
  # Bridge Steam online/offline status
  enabled: true

  # How often to send status to the homeserver in milliseconds
  interval: 5000

Then i run: docker compose up -d

It runs, but logs say it cant connect to my matrix. Ok, so now i have to register the bridge with my matrix homeserver.yaml.

But how? Where can i get the registration file? How to expose it from docker container? What lines do i need to add to my homeserver.yaml ???

EDIT:

I got it to run and kinda connect to my matrix.

Had to do the following:

Instead of creating ./config.yaml - > ./data/config.yaml and then bind the folder data. Also removed the network thing and added ports.

./docker-compose.yml

version: "3.4"
services:
  mx-puppet-steam:
    hostname: mx-puppet-steam
    image: icewind1991/mx-puppet-steam
    restart: always
    volumes:
      - ./data/config.yaml:/data/config.yaml
      - ./data:/data
    ports:
      - "6000:6000"

Then in the data folder the registration file was generated. ./data/steam-registration.yaml

Then i copied the registration file to the same folder as my matrix homeserver.yaml (dendrite.yaml) and added the path to the: homeserver.yaml (dendrite.yaml)

# Configuration for the Appservice API.
app_service_api:
  # Disable the validation of TLS certificates of appservices. This is
  # not recommended in production since it may allow appservice traffic
  # to be sent to an insecure endpoint.
  disable_tls_validation: false

  # Appservice configuration files to load into this homeserver.
  config_files:
    - ./steam-registration.yaml

After reloading both composes, the mx container shows me this:


Sep-13 19:07:59.619 [Store] info: Starting DB Init
Sep-13 19:07:59.621 [Store] info: Filename present in config, using sqlite
Sep-13 19:07:59.621 [SQLite3] info: Opening database.db
Sep-13 19:07:59.626 [Store] info: Database schema version is 16, latest version is 16
Sep-13 19:07:59.627 [PuppetBridge] info: Starting application service....
Sep-13 19:07:59.630 [bot-sdk-MatrixHttpClient] info: (REQ-1) POST https://matrix.example2.com/_matrix/client/r0/register
Sep-13 19:07:59.662 [PuppetBridge] info: Application service started!
Sep-13 19:07:59.662 [PuppetBridge] info: Setting bridge user data...
Sep-13 19:07:59.662 [bot-sdk-MatrixHttpClient] info: (REQ-2) GET https://matrix.example2.com/_matrix/client/r0/profile/%40_steampuppet_bot%3Aexample2.com
Sep-13 19:07:59.688 [PuppetBridge] info: Activating users...
Sep-13 19:07:59.689 [PresenceHandler] info: Starting presence handler with new interval 5000ms
matrix@matrix:~/mx-puppet-steam$ 

Now how do i control it from my element app?

I created private space, private room, and then i sent a message:

@_steampuppet_bot:matrix.matrix.example2.com

but nothing happened.

What am i missing?

EDIT

So i invited the bot to my private room but it shows offline (the bot is offline) and when i mention the bot nothing happens

Thanks in andvance!

yunkuangao commented 1 year ago

I think it's related to this. https://github.com/icewind1991/mx-puppet-steam/issues/44