https://github.com/appleboy/drone-line
  
  
    Sending line notifications using a binary, docker or Drone CI. 
    https://github.com/appleboy/drone-line
  
bot docker linebot notifications
        Last synced: 5 months ago 
        JSON representation
    
Sending line notifications using a binary, docker or Drone CI.
- Host: GitHub
 - URL: https://github.com/appleboy/drone-line
 - Owner: appleboy
 - License: mit
 - Created: 2016-09-13T05:21:44.000Z (about 9 years ago)
 - Default Branch: master
 - Last Pushed: 2023-02-25T01:10:05.000Z (over 2 years ago)
 - Last Synced: 2025-06-04T21:12:39.175Z (5 months ago)
 - Topics: bot, docker, linebot, notifications
 - Language: Go
 - Homepage:
 - Size: 2.51 MB
 - Stars: 80
 - Watchers: 6
 - Forks: 17
 - Open Issues: 2
 - 
            Metadata Files:
            
- Readme: README.md
 - License: LICENSE
 
 
Awesome Lists containing this project
- awesome-go - drone-line - Sending [Line](https://at.line.me/en) notifications using a binary, docker or Drone CI. (Messaging / Search and Analytic Databases)
 - zero-alloc-awesome-go - drone-line - Sending [Line](https://at.line.me/en) notifications using a binary, docker or Drone CI. (Messaging / Search and Analytic Databases)
 - awesome-go - drone-line - Sending line notifications using a binary, docker or Drone CI. - ★ 52 (Messaging)
 - awesome-go-extra - drone-line - 09-13T05:21:44Z|2021-06-18T00:53:29Z| (Messaging / Advanced Console UIs)
 - awesome-go-zh - drone-line
 
README
          # drone-line

[](https://godoc.org/github.com/appleboy/drone-line)
[](https://cloud.drone.io/appleboy/drone-line)
[](https://codecov.io/gh/appleboy/drone-line)
[](https://goreportcard.com/report/github.com/appleboy/drone-line)
[](https://hub.docker.com/r/appleboy/drone-line/)
[](https://microbadger.com/images/appleboy/drone-line "Get your own image badge on microbadger.com")
[](https://github.com/appleboy/drone-line/releases/latest)
[](https://ci.appveyor.com/project/appleboy/drone-line/branch/master)
Sending line notifications using a binary, docker or [Drone CI](https://docs.drone.io/).
## Register Line BOT API Trial
Please refer to [LINE Business Center](https://at.line.me/en/).
## Feature
* [x] Send multiple Message.
* [x] Send Text Message.
* [x] Send Video Message.
* [x] Send Audio Message.
* [x] Send Sticker Message.
* [x] Send Location Message.
* [x] Support [prometheus](https://prometheus.io) metrics API.
* [x] Automatically install TLS certificates from [Let's Encrypt](https://letsencrypt.org/).
* [x] Support [Localtunnel](https://localtunnel.github.io/www/) for webhook tunnel.
* [x] Support [Line Notify](https://notify-bot.line.me/en/).
> Localtunnel allows you to easily share a web service on your local development machine without messing with DNS and firewall settings.
Memory Usage:

Notification Count Usage:

## Build or Download a binary
The pre-compiled binaries can be downloaded from [release page](https://github.com/appleboy/drone-line/releases). Support the following OS type.
* Windows amd64/386
* Linux amd64/386
* Darwin amd64/386
With `Go` installed
```sh
go get -u -v github.com/appleboy/drone-line
```
or build the binary with the following command:
```sh
make build
```
## Docker
Build the docker image with the following commands:
```sh
make docker
```
## Usage
There are three ways to send notification.
* [usage from binary](#usage-from-binary)
* [usage from docker](#usage-from-docker)
* [usage from drone ci](#usage-from-drone-ci)
## Usage from binary
### Setup Webhook service
Setup Webhook service as default port `8088`.
```bash
drone-line \
  --secret xxxx \
  --token xxxx \
  webhook
```
Change default webhook port to `8089`.
```bash
drone-line \
  --port 8089 \
  --secret xxxx \
  --token xxxx \
  webhook
```
Use [localtunnel](https://localtunnel.github.io/www/) to tunnel your locally running bot so that Line can reach the webhook.
```bash
drone-line \
  -s secret \
  -t token \
  --tunnel \
  --port 2002 \
  webhook
```
Use [Let's Encrypt](https://letsencrypt.org/). Please make sure you have permission to listen on `443` port.
```bash
drone-line \
  -s secret \
  -t token \
  -autotls \
  -host example.com \
  -cache /var/www/.cache \
  --port 443 \
  webhook
```
**Tips:** Another way to use [ngrok](https://ngrok.com/) to tunnel your locally running bot so that Line can reach the webhook.
#### Send Notification
Setup the `--to` flag after fetch user id from webhook service.
```bash
drone-line \
  --secret xxxx \
  --token xxxx \
  --to xxxx \
  --message "Test Message"
```
#### Send LINE Notify
If you connect your service with LINE Notify, LINE users can easily receive notifications from it.
See the [documentation](https://notify-bot.line.me/en/).
```sh
drone-line \
  --token xxxx \
  --message "Test Message" \
  notify
```
## Usage from docker
Setup Webhook service as default port `8088`.
```bash
docker run --rm \
  -e LINE_CHANNEL_SECRET=xxxxxxx \
  -e LINE_CHANNEL_TOKEN=xxxxxxx \
  appleboy/drone-line webhook
```
Change default webhook port to `8089`.
```bash
docker run --rm \
  -e LINE_CHANNEL_SECRET=xxxxxxx \
  -e LINE_CHANNEL_TOKEN=xxxxxxx \
  -e LINE_PORT=8089 \
  appleboy/drone-line webhook
```
**Tips:** Use [ngrok](https://ngrok.com/) to tunnel your locally running bot so that Line can reach the webhook.
Send Notification
```bash
docker run --rm \
  -e LINE_CHANNEL_SECRET=xxxxxxx \
  -e LINE_CHANNEL_TOKEN=xxxxxxx \
  -e LINE_TO=xxxxxxx \
  -e LINE_MESSAGE=test \
  -e LINE_IMAGES=https://example.com/1.png \
  -e LINE_VIDEOS=https://example.com/1.mp4 \
  -e LINE_AUDIOS=https://example.com/1.mp3::1000 \
  -e LINE_STICKERS=1::1 \
  -e LINE_LOCATIONS=title::address::latitude::longitude \
  -e LINE_DELIMITER=:: \
  appleboy/drone-line
```
## Usage from drone ci
Execute from the working directory:
```bash
docker run --rm \
  -e PLUGIN_CHANNEL_SECRET=xxxxxxx \
  -e PLUGIN_CHANNEL_TOKEN=xxxxxxx \
  -e PLUGIN_TO=xxxxxxx \
  -e PLUGIN_MESSAGE=test \
  -e PLUGIN_IMAGES=https://example.com/1.png \
  -e PLUGIN_VIDEOS=https://example.com/1.mp4 \
  -e PLUGIN_AUDIOS=https://example.com/1.mp3::1000 \
  -e PLUGIN_STICKERS=1::1 \
  -e PLUGIN_LOCATIONS=title::address::latitude::longitude \
  -e PLUGIN_DELIMITER=:: \
  -e PLUGIN_ONLY_MATCH_EMAIL=false \
  -e DRONE_REPO_OWNER=appleboy \
  -e DRONE_REPO_NAME=go-hello \
  -e DRONE_COMMIT_SHA=e5e82b5eb3737205c25955dcc3dcacc839b7be52 \
  -e DRONE_COMMIT_BRANCH=master \
  -e DRONE_COMMIT_AUTHOR=appleboy \
  -e DRONE_COMMIT_AUTHOR_EMAIL=appleboy@gmail.com \
  -e DRONE_COMMIT_MESSAGE=Test_Your_Commit \
  -e DRONE_BUILD_NUMBER=1 \
  -e DRONE_BUILD_STATUS=success \
  -e DRONE_BUILD_LINK=http://github.com/appleboy/go-hello \
  -e DRONE_JOB_STARTED=1477550550 \
  -e DRONE_JOB_FINISHED=1477550750 \
  -v $(pwd):$(pwd) \
  -w $(pwd) \
  appleboy/drone-line
```
You can get more [information](DOCS.md) about how to use scp plugin in drone.
## Testing
Test the package with the following command:
```sh
make test
```