-
Notifications
You must be signed in to change notification settings - Fork 0
Services Setup
This guide covers configuring the various external services that agaetr can integrate with. Each service requires specific setup steps and configuration in the agaetr.ini file.
agaetr supports three categories of services:
- Output Services - Where your content gets posted (social media, bookmarking, archives)
- URL Services - Link shortening and archival services
- Utility Services - Supporting services for content processing
All service configurations go in your $HOME/.config/agaetr/agaetr.ini file in the [DEFAULT] section.
Required Tool: toot
Installation:
pipx install tootSetup:
- Add your Mastodon account:
toot login
- List available accounts to get the account identifier:
toot auth
- Configure in
agaetr.ini:toot = /path/to/toot mastodon = username@mastodon.example.com
Enable Service:
ln -s $PWD/out_avail/toot.sh $PWD/out_enabled/toot.shRequired Tool: bsky
Installation:
- Download binary from releases page
- Install according to the project directions
Setup:
- Login with bsky:
Note: For self-hosted AT Protocol instances, specify the host before handle and password
bsky login
- Configure in
agaetr.ini:bluesky = /path/to/bsky
Enable Service:
ln -s $PWD/out_avail/bluesky.sh $PWD/out_enabled/bluesky.shRequired Tool: toot (same as Mastodon)
Setup:
- Add your Pixelfed account using toot:
(Connect to your Pixelfed instance instead of Mastodon)
toot login
- Note the account identifier from
toot auth - Configure in
agaetr.ini:toot = /path/to/toot pixelfed = username@pixelfed.example.com
Enable Service:
ln -s $PWD/out_avail/pixelfed.sh $PWD/out_enabled/pixelfed.shNote: This sender only posts if an image is retrieved from the source article.
Required Tool: python_tumblr_poster
Installation: Follow the installation instructions for python_tumblr_poster, which includes setting up a Python virtual environment.
Setup:
- Get Tumblr API credentials by registering an application
- Configure environment variables and paths in
agaetr.ini:gotumblr = /path/to/run_tumblr.sh textmd = /path/to/text.md picgo = /path/to/picgo TUMBLR_BLOG_NAME=your_blog_name TUMBLR_CONSUMER_KEY=your_consumer_key TUMBLR_CONSUMER_SECRET=your_consumer_secret TUMBLR_OAUTH_TOKEN=your_oauth_token TUMBLR_OAUTH_TOKEN_SECRET=your_oauth_token_secret
Note: For locally-hosted images, you'll need picgo installed.
Enable Service:
ln -s $PWD/out_avail/tumblr.sh $PWD/out_enabled/tumblr.shRequired Tool: Shaarli-Client
Installation:
pipx install shaarli-clientSetup:
- Configure shaarli-client according to its documentation
- Set up the configuration file (usually
$XDG_DATA_HOME/shaarli/client.ini) - Configure in
agaetr.ini:shaarli = /path/to/shaarli shaarli_configs = config_name
If no configuration is specified, the default config will be used.
Enable Service:
ln -s $PWD/out_avail/shaarli.sh $PWD/out_enabled/shaarli.shRequired Tool: Wallabag-cli
Installation:
pipx install wallabag-clientSetup:
- Configure wallabag-cli according to its documentation
- Configure in
agaetr.ini:wallabag = /path/to/wallabag
Note: Shorteners and wallabag may not work well together.
Enable Service:
ln -s $PWD/out_avail/wallabag.sh $PWD/out_enabled/wallabag.shIt is intended to work with the maubot-webhook plugin:
Required Tools
- Maubot core: https://github.com/maubot/maubot
- Webhook plugin: https://github.com/jkhsjdhjs/maubot-webhook
Setup
- Configure Maubot with your Matrix server.
- Configure in
agaetr.ini:MATRIXSERVER=https://matrix.example.com MAUBOT_STATUS_WEBHOOK_INSTANCE=NameOfInstance
- Configure the Maubot webhook plugin like so:
path: /THE_SAME_VALUE_AS_MAUBOT_STATUS_WEBHOOK_INSTANCE method: POST room: '!ROOMIDENTIFIER_FROM_DEVELOPER_OPTIONS_IN_ROOM_INFORMATION' message: |- {{ json.title }} {{ json.body }} message_format: markdown message_type: m.notice auth_type: auth_token: force_json: false ignore_empty_messages: false
Enable Service:
ln -s $PWD/out_avail/matrix.sh $PWD/out_enabled/matrix.shRequired Tool: go-sendxmpp
Installation:
sudo apt install go-sendxmppIf your distribution does not package it, install the binary according to the upstream project and make sure go-sendxmpp is available in your PATH.
Setup:
- Choose the XMPP account that will send the message and the conference room to receive it.
- Configure in
agaetr.ini:JID=username@xmpp.server.com JPW=your_xmpp_password JCONFERENCE=roomid@conference.xmpp.server.com
- Confirm
go-sendxmppis installed:command -v go-sendxmpp
Enable Service:
ln -s $PWD/out_avail/xmpp.sh $PWD/out_enabled/xmpp.shNote:
- The current sender posts to the conference configured in
JCONFERENCE. - Credentials are currently read directly from
agaetr.ini, so treat that file as sensitive.
Required: A functioning YOURLS instance
Setup:
- Get your API key (secret signature token) from the Tools page of your YOURLS admin interface
- Configure in
agaetr.ini:yourls_api = your_api_key_here yourls_site = https://your-yourls-site.com
Enable Service:
ln -s $PWD/short_avail/yourls.sh $PWD/short_enabled/yourls.shRequired: Internet Archive account with S3 API access
Setup:
- Get your access keys from Internet Archive S3 page
- Configure in
agaetr.ini:wayback_access = your_access_key wayback_secret = your_secret_key
- Configure how archived links appear in posts:
Options:
ArchiveLinks = separatereplace,append,separate(default),ignore
Enable Service:
ln -s $PWD/out_avail/wayback.sh $PWD/out_enabled/wayback.shNote:
- Adding an access key automatically enables archiving
- This service frequently times out and can take 1-3 minutes when working
- You can also symlink this as an output service, but archived URLs won't appear in posts
Setup:
Configure SMTP settings in agaetr.ini:
smtp_server = your.smtp.server.com
smtp_port = 587
smtp_username = your_username
smtp_password = your_password
email_from = sender@example.com
email_to = recipient1@example.com,recipient2@example.comEnable Service:
ln -s $PWD/out_avail/email.sh $PWD/out_enabled/email.shNote: For locally-hosted images, you'll need picgo installed.
Required Tool: XMLStarlet
Installation:
sudo apt install xmlstarletSetup:
Configure paths in agaetr.ini:
rss_output_path = /full/path/to/output.xml
self_link = https://your-site.com/output.xmlEnable Service:
ln -s $PWD/out_avail/rss_gen.sh $PWD/out_enabled/rss_gen.shNote: For locally-hosted images, you'll need picgo installed.
Required Tool: cutycapt
Installation: Install cutycapt according to your distribution's packages.
Setup:
Configure save directory in agaetr.ini:
save_directory = /path/to/save/capturesEnable Services:
# For JPG capture
ln -s $PWD/out_avail/jpg_capture.sh $PWD/out_enabled/jpg_capture.sh
# For PNG capture
ln -s $PWD/out_avail/png_capture.sh $PWD/out_enabled/png_capture.shRequired Tool: cutycapt
Setup: Same as screenshot capture above.
Enable Service:
ln -s $PWD/out_avail/pdf_capture.sh $PWD/out_enabled/pdf_capture.shSetup:
Configure directory in agaetr.ini:
daily_post = /path/to/daily/posts/directoryThis creates markdown files named YYYYMMDD.md with all the day's links.
Enable Service:
ln -s $PWD/out_avail/daily_posts.sh $PWD/out_enabled/daily_posts.shNote: For locally-hosted images, you'll need picgo installed.
Setup:
Configure save directory in agaetr.ini:
save_directory = /path/to/save/html/filesEnable Service:
ln -s $PWD/out_avail/save_html.sh $PWD/out_enabled/save_html.shFor services that require local image hosting (Tumblr, Daily Posts, RSS, Email), install picgo:
picgo = /path/to/picgoFor services that support multiple accounts (like Mastodon/Pixelfed via toot), you can specify which account to use with the service-specific configuration:
mastodon = account1@mastodon.social
pixelfed = account2@pixelfed.social- Pixelfed: Only sends posts that include images
- Wayback Machine: Often times out; be patient
- Wallabag: May conflict with URL shorteners
- Email: Supports multiple recipients separated by commas
- Capture Services: Require GUI environment for cutycapt
To add support for a new service:
- Create a new script in
out_avail/following the pattern of existing scripts - The script should check if it's being sourced and define a
servicename_sendfunction - The function receives standard variables:
$title,$description,$link,$imgurl, etc. - Add configuration options to
agaetr.inias needed - Create a symlink in
out_enabled/when ready to use
See existing scripts in out_avail/ for examples and templates.