
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
ackee-report
Advanced tools
CLI tool to generate performance reports of websites using the self-hosted analytics tool Ackee.
CLI tool to generate performance reports of websites using the self-hosted analytics tool Ackee.
ackee-report lets you create monthly website performance reports using your Ackee analytics data and either send them via email, generate a RSS feed or output it to a JSON file. It uses Ackee's Graphql API and can be configured to generate multiple reports for different websites, data ranges and recipients.
Install ackee-report globally via npm:
npm install ackee-report -g
ackee-report@latest requires Ackee >=v3.1.1. Use ackee-report@v1.1.3 for older versions of Ackee
After that ackee-report
is ready to be used 🎉
On the first run ackee-report will ask you to input a few values:
ACKEE_SERVER
- the endpoint of your Ackee instanceACKEE_TOKEN
- a permanent Ackee token (can be used instead of username and password, more info)ACKEE_USERNAME
- your Ackee username (more info)ACKEE_PASSWORD
- your Ackee password (more info)EMAIL_HOST
- the domain of the email server (more info)EMAIL_PORT
- the port of the email server (more info)EMAIL_USERNAME
- the username to use with the email server (more info)EMAIL_PASSWORD
- the password to use with the email server (more info)EMAIL_FROM
- the from address to use (more info)The configuration will be stored in your home directory under ~/.config/configstore/ackee-report.json
and can be changed at any point.
If you don't want to interact with ackee-report via the CLI interface, you can also specify each configuration option as an environment variable e.g. ACKEE_TOKEN=<token>
ackee-report needs access to your Ackee instance via the API in order to get all the data it needs to generate the report. You can choose any of the two authentication methods below:
Username and password:
Enter your username and password you use to login to the Ackee UI on the first run of ackee-report or change it in the config file later.
ackee-report will then use them to create a temporary access token each time it runs and use it to query the Ackee API.
Permanent access token (recommended):
The recommended way of authenticating ackee-report is with a permanent access token (only available with Ackee v2.2.0 or later).
You will have to create one via the Ackee UI under Settings
/Permanent Tokens
, then click on New permanent token
and give it a name (doesn't matter what).
Copy the permanent token id
and enter it on the first run of ackee-report or add it to the config file under ackee.token
later.
The same token will then be used each time ackee-report runs to query the Ackee API.
If you want to send your report via email, you have to specify your email providers SMTP server and credentials, as well as the from option:
smtp.example.com
465
username@example.com
password
username@example.com
or Ackee <username@example.com>
Note: For port 465 ackee-report will use TLS when connecting to your email server, on all other ports it will use STARTTLS (#44)
Common providers:
If you use gmail to send emails, use these values:
smtp.gmail.com
465
If you use SendGrid to send emails, use these values:
smtp.sendgrid.net
465
apikey
(everyone's username is apiKey)If you use SendGrid to send emails, use these values:
smtp.mailgun.org
465
postmaster@yourdomain.name
Usage: ackee-report <command> [options]
CLI tool to generate performance reports of websites using the self-hosted analytics tool Ackee.
Commands:
email [options] Generate report and send it via email
json [options] Query API for data and output it to JSON file
html [options] Generate report and output it to a HTML file
rss|xml [options] Generate report as a RSS feed
domains|domain [titles...] get domain id by title
config output current config
help [command] display help for command
Options:
General:
-d, --domain <titles...> specify domains by title
-i, --id <ids...> specify domains by id
-r, --range <range> specify data range (default: "month")
-l, --limit <number> limit number of list items (default: 3)
-e, --events [type] get event data (default: false)
-v, --version output the version number
-h, --help display help for command
Email:
-t, --to <recipient...> to whom the report should be sent
RSS/JSON/HTML:
-o, --output <file> path to output file (default: "report.[xml/json/html]")
Example call:
$ ackee-report email --domain example.com --to hello@example.com
If you want to send the report periodically, you have to setup a cron job which runs the command at a set interval (example below).
ackee-report email -d example.com -t hello@example.com
This will generate a report for the domain example.com
and send it via email to hello@example.com
.
ackee-report email -d example.com example2.com -t hello@example.com hey@example2.com
ackee-report email -d all -t hello@example.com -e
ackee-report email -d all -t hello@example.com -e avg
You can specify the data range of the report with the -r
/--range
option:
ackee-report email -d example.com -t hello@example.com -r day
Available values: day
/week
/month
/six_months
.
Note: The total views/range
value is calculated by counting the views of the last x days since the program ran. For the month
range for example, it is not the number of views in the current month, but the number of views in the last 30 days.
To send a report periodically, for example every month at the 28th at 23:55 setup a cron job like this:
55 23 28 * * ackee-report email -d example.com -t hello@example.com >> /tmp/ackee-report.log 2>&1
Note: We use the 28th as running on the last day of the month is very complicated with cron and Ackee resets its data on the first day of each month.
Note: You may have to specify the actual path to ackee-report. In that case, replace ackee-report
in the command above with the output of which ackee-report
.
If you are not familiar with cron, here's a tutorial on how to get started.
To send multiple reports to different people, add them all as seperate cron jobs.
You can generate a RSS feed/xml file instead of sending the report via email:
ackee-report rss -d example.com -o output.xml
You can also save the report in a JSON file:
ackee-report json -d example.com -o output.json
You can also save the report, which is normally sent via email, directly to an HTML file:
ackee-report html -d example.com -o index.html
Issues and PRs are very welcome!
Run yarn lint
or npm run lint
to use eslint.
Please check out the contributing guide before you start.
To see differences with previous versions refer to the CHANGELOG.
This library is an extension to the awesome privacy focused analytics tool Ackee.
Ackee was developed by @electerious, if you want to support him and the development of Ackee visit the Donate section on the Ackee repository.
Copyright 2020 Maximilian Schiller
This project is licensed under the MIT License - see the LICENSE file for details.
FAQs
CLI tool to generate performance reports of websites using the self-hosted analytics tool Ackee.
We found that ackee-report demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.