✨ Get Started
Arona is a simple bridge for every messenger.
It exchanges messages between LINE, Telegram, Discord, and Matrix.
⚠️ Public Access From The Internet Required
To use the bridge, it's required to make the bridge can be got public access from the internet.
If you don't have a public IP address, you can use a service like ngrok or localtunnel to expose your local server to the internet.
Quick Start
Create a config.yaml file in the root directory.
deviceName: "Arona"
http:
bindHost: 127.0.0.1
bindPort: 3000
baseUrl: "http://example.com"
bridge:
public: true
bridgeProvider:
# OpenAI
openai:
enable: false
# https://github.com/ai-tech-tw/openai
baseUrl: "https://web-tech-tw.eu.org/openai/v1"
apiKey: "YourGeminiApiKey"
chatModel: "gpt-3.5-turbo"
# LINE
line:
enable: false
channelAccessToken: "YourChannelAccessToken"
channelSecret: "YourChannelSecret"
useNotify: false
notifyClientId: "YourClientID"
notifyClientSecret: "YourClientSecret"
# Matrix
matrix:
enable: false
homeserverUrl: "https://matrix.org"
accessToken: "YourSecretAccessToken"
# Discord
discord:
enable: false
appId: "YourAppId"
botToken: "YourBotToken"
# Telegram
telegram:
enable: false
botToken: "YourBotToken"To get detailed information about the configuration, please refer to the Configuration page.
⚠️ Public Access From The Internet Required
You must fill the
baseUrlfield in theconfig.yamlfile with the URL that can be accessed from the internet.Otherwise, the bridge will not work properly. (Throwing an error like
Error: Cannot check the heart code...)If you don't have a public IP address, see the Localtunnel section.
Installation
To run the project, you can use Docker or run it natively.
Docker
Create a docker-compose.yml file in the root directory.
Copy the following content to the docker-compose.yml file.
version: 3
services:
arona:
image: ghcr.io/web-tech-tw/arona:main
ports:
- 127.0.0.1:3000:3000
volumes:
- ./config.yaml:/workplace/config.yaml:ro
restart: alwaysRun the following command to start the project.
docker-compose up -dNative
Run the following commands to start the project.
Clone the repository.
git clone https://github.com/web-tech-tw/arona.git
cd aronaInstall the dependencies and start the project.
npm install
npm startLocaltunnel (Optional)
If you don't have a public IP address, you can use localtunnel to expose your local server to the internet.
But when you're using Arona with docker, it might be better to use ngrok instead of localtunnel (due to no node.js required).
See the Quickstart of ngronk for more information.
To use localtunnel, run the following command in another terminal.
npx localtunnel --port 3000You will get a URL like https://your-subdomain.loca.lt.
Fill the baseUrl field in the config.yaml file with the URL.
http:
baseUrl: "https://your-subdomain.loca.lt"Don't forget to restart the project after changing the configuration.
NGINX Reverse Proxy (Optional)
You can use NGINX as a reverse proxy to host Arona in a sub-path. This also allows you to change the port number, add SSL certificates, and more.
Here is an example configuration:
config.yaml
http:
bindHost: 127.0.0.1
bindPort: 3000
baseUrl: "https://example.com:443/arona/"nginx.conf
location /arona/ {
proxy_pass http://127.0.0.1:3000/;
proxy_set_header Host $host;
}With this configuration, the webhook URL for LINE would be:
https://example.com:443/arona/hooks/line💡 Note
The trailing slashes in the
location /arona/andproxy_pass http://127.0.0.1:3000/are important. They ensure the path is correctly rewritten when proxying requests.