add xpost

zenfyr.dev 76807375 e729470a

verified
Changed files
+56
xpost
xpost/.config/docker.env

This is a binary file and will not be displayed.

+17
xpost/README.md
···
···
+
# xpost
+
+
atm the image must be built locally. this can be done like this:
+
+
```
+
git clone https://tangled.sh/@melontini.me/xpost xpost
+
cd xpost
+
docker build -t melontini/xpost:latest -f Containerfile .
+
```
+
+
for podman:
+
+
`podman build --security-opt label=disable -t melontini/xpost:latest -f Containerfile .`
+
+
example `compose.yaml` assumes that data dir is `./data`, and env file is `./.config/docker.env`. add `:Z` to volume mounts for podman.
+
+
the settings are pre-configured for mastodon-wss -> bsky crossposting, posts with links to bsky.app, deer.social and anartia are skipped. add `MASTODON_INSTANCE`, `MASTODON_TOKEN`, `BLUESKY_HANDLE` and `BLUESKY_APP_PASSWORD` to `docker.env`
+7
xpost/compose.yml
···
···
+
services:
+
xpost:
+
image: melontini/xpost:latest
+
restart: unless-stopped
+
env_file: ./.config/docker.env
+
volumes:
+
- ./data:/app/data
+32
xpost/data/settings.json
···
···
+
{
+
"input": {
+
"type": "mastodon-wss",
+
"instance": "env:MASTODON_INSTANCE",
+
"token": "env:MASTODON_TOKEN",
+
"options": {
+
"allowed_visibility": [
+
"public",
+
"unlisted"
+
],
+
"regex_filters": [
+
"https?://bsky\\.app(?![\\.-]\\w)",
+
"https?://deer\\.social(?![\\.-]\\w)",
+
"https?://anartia\\.kelinci\\.net(?![\\.-]\\w)"
+
]
+
}
+
},
+
"outputs": [
+
{
+
"type": "bluesky",
+
"handle": "env:BLUESKY_HANDLE",
+
"app-password": "env:BLUESKY_APP_PASSWORD",
+
"options": {
+
"quote_gate": false,
+
"thread_gate": [
+
"everybody"
+
],
+
"encode_videos": true
+
}
+
}
+
]
+
}