matrix-appservice-kakaotalk/SETUP.md
Andrew Ferrazzutti 780dbed7c2 Set group ownership of systemd service config dir
Also mention that linking to config files is possible
2022-04-28 22:26:33 -04:00

4.5 KiB


Manual setup

These instructions describe how to install and run the bridge manually from a clone of this repository.

Minimum requirements

  • Python 3.8
  • Node 16.13 (not yet tested with earlier versions)
  • postgresql 11 or sqlite3
  • A KakaoTalk account on a smartphone (Android or iOS)

Optional requirements

Initial setup

node-kakao module

  1. cd to the node directory and run npm install
  2. Copy node/example-config.json to node/config.json
  3. Edit node/config.json with desired settings (see node/README.md for details)

Bridge module

  1. cd to the repository root and create a Python virtual environment with python3 -m venv .venv, and enter it with source .venv/bin/activate
  2. Install Python requirements:
  3. Copy matrix_appservice_kakaotalk/example-config.yaml to config.yaml, and update it with the proper settings to connect to your homeserver
    • In particular, be sure to set the rpc.connection settings to use the socket you chose in node/config.json
    • If using Postgres as your database, create a new database that can be accessed via the URI you set for it in appservice.database
  4. Run python -m matrix_appservice_kakaotalk -g to generate an appservice registration file, and update your homeserver configuration to accept it

Running manually

  1. In the node directory, launch the node-kakao module with node src/main.js
  2. In the project root directory, run the bridge module with python -m matrix_appservice_kakaotalk
  3. Start a chat with the bot and use the login <email> command to sync your KakaoTalk account
    • Note that on first use, you must enter a verification code on a smartphone version of KakaoTalk in order for the login to complete

systemd

The systemd directory provides sample service unit configuration files for running the bridge & node-kakao modules:

  • matrix-appservice-kakao.service for the bridge module
  • matrix-appservice-kakao-node.service for the node-kakao module

To use them as-is, follow these steps after initial setup:

  1. Place/link your clone of this repository in /opt/matrix-appservice-kakaotalk
    • If moving your repo directory after having already created a Python virtual environment for the bridge module, re-create the virtual environment after moving to ensure its paths are up-to-date
    • Alternatively, clone it to /opt/matrix-appservice-kakaotalk in the first place
  2. Install the services as either system or user units
    • To install as system units:
      1. Copy/link the service files to a directory in the system unit search path, such as /etc/systemd/system/
      2. Create the services' configuration directory with sudo mkdir /etc/matrix-appservice-kakaotalk
      3. RECOMMENDED: Create the matrix-appservice-kakaotalk user on your system with adduser or an equivalent command, then uncomment the User and Group lines in the service files
        • If creating this user, also give it write permissions on the services' configuration directory with chgrp matrix-appservice-kakaotalk /etc/matrix-appservice-kakaotalk && chmod g+w /etc/matrix-appservice-kakaotalk
    • To install as user units:
      1. Copy/link the service files to a directory in the user unit search path, such as ~/.config/systemd/user
      2. Create the services' configuration directory with mkdir $XDG_CONFIG_HOME/matrix-appservice-kakaotalk
  3. Copy/link the bridge & node-kakao module configuration files to the services' configuration directory as config.yaml and node-config.json, respectively
  4. Start the services now and on every boot boot with [sudo] systemd [--user] enable --now matrix-appservice-kakaotalk{,-node}

Upgrading

Simply git pull or git rebase the latest changes and rerun any installation commands (npm install, pip install -Ur ...).

Docker

Coming soon!