1
0
Fork
You've already forked skywrite
0
Automatic submission of RSS feed posts to Bluesky.
  • Rust 97.2%
  • Dockerfile 2.8%
2025年10月19日 17:29:47 +02:00
.github/workflows docs: bump version and docs 2024年12月05日 17:14:32 +00:00
.sqlx feat: add export-posts command 2024年11月17日 23:31:52 +00:00
migrations refactor: Rust Rewrite ( #5 ) 2024年11月14日 00:06:42 +00:00
src refactor: do some small cleanup 2025年10月19日 17:29:47 +02:00
.gitignore refactor: Rust Rewrite ( #5 ) 2024年11月14日 00:06:42 +00:00
build.rs refactor: prefix env vars 2025年03月11日 19:33:07 +00:00
Cargo.lock refactor: do some small cleanup 2025年10月19日 17:29:47 +02:00
Cargo.toml chore: bump deps 2025年10月17日 15:07:01 +02:00
Dockerfile build: fix builds 2025年06月02日 10:19:44 +01:00
LICENSE docs: license and readme basics 2024年11月08日 04:43:21 +00:00
README.md docs: cleanup readme 2025年10月17日 15:06:35 +02:00

Skywrite

Important

This project will break release-to-release until stablised! There is no promise of stability or compatibility between versions until v1. You have been warned.

Automatic submission of RSS feed posts to Bluesky.

Features

  • Post multiple feeds to a single account.
  • Automatically backdated posts fetched X hours from before bot startup.
  • Duplicate post detection via URL stored in persistent database.
  • Link embedding with image support.

Setup

Docker

  1. Copy the following to a local file named docker-compose.yml or add the service to your existing stack and fill in the environment variables. Information about configuration options can be found in the configuration section.
services:skywrite:image:ghcr.io/blooym/skywriterestart:unless-stoppedenvironment:- SKYWRITE_APP_SERVICE=- SKYWRITE_APP_IDENTIFIER=- SKYWRITE_APP_PASSWORD=- SKYWRITE_RSS_FEED_URLS=- SKYWRITE_RERUN_INTERVAL_SECONDS=- SKYWRITE_RSS_FEED_BACKDATE_HOURS=- SKYWRITE_POST_LANGUAGES=- SKYWRITE_DISABLE_POST_COMMENTS=volumes:- skywrite-data:/opt/skywrite/datavolumes:skywrite-data:
  1. Start the stack
docker compose up -d

Manual

  1. Ensure you have Rust installed and in your $PATH.
  2. Install the project binary
cargo install --git https://github.com/Blooym/skywrite.git
  1. Create a .env file and fill in the values as necessary using the information found in the configuration section.

  2. Run the project from the same directory as .env

skywrite start

Configuration

Configuration is handled entirely through environment variables or command-line flags. The available configuration options for the 'start' command are:

Environment Variable Description
SKYWRITE_APP_SERVICE The full URL to the service to communicate with. Defaults to https://bsky.social
SKYWRITE_APP_IDENTIFIER The username or email of the application's account.
SKYWRITE_APP_PASSWORD The app password to use for authentication.
SKYWRITE_DATA_PATH The base directory to store things like configuration files and other persistent data.
DATABASE_URL The connection string to use when connecting to the sqlite database. Supports some connection parameters.
SKYWRITE_RERUN_INTERVAL_SECONDS The interval of time in seconds between checking for new posts.
SKYWRITE_RSS_FEED_BACKDATE_HOURS The number of hours in the past the bot should check for posts that haven't been posted at startup. Useful for backdating an account or when an outage occurs.
SKYWRITE_RSS_FEED_URLS A comma-separated list of URLs pointing directly to RSS feeds.
SKYWRITE_DISABLE_POST_COMMENTS Whether Bluesky posts should have comments disabled.
SKYWRITE_POST_LANGUAGES A comma-separated list of languages in ISO-639-1 to classify posts under. This should correlate to the language of the posts the feed is linking to.