.github | ||
api | ||
assets | ||
lib | ||
public | ||
script | ||
src | ||
.editorconfig | ||
.eslintignore | ||
.eslintrc.json | ||
.gitignore | ||
.pre-commit-config.yaml | ||
.prettierignore | ||
.vercelignore | ||
astro.config.ts | ||
CHANGELOG.md | ||
index.html | ||
LICENSE | ||
package.json | ||
pnpm-lock.yaml | ||
README.md | ||
tsconfig.json | ||
vercel.json |
Instance-agnostic share page for the Fediverse.
Share₂Fedi allows you to share stuff on Mastodon, GoToSocial, Pleroma, and other federated social networks, instance-agnostic. Just type in the post text and the instance URL, and click ‘Post!’
Or, open this page with the prefilled text
URL parameter—it will be
automatically inserted into the text field. The same goes for the instance
URL
parameter. This can be used to build custom share buttons for the federated
social networks:
<a
href="https://s2f.kytta.dev/?text=Hello%20world!&instance=https%3A%2F%2Fmastodon.xyz"
>
Share on mastodon.xyz
</a>
The instance URL can be saved in your localStorage
to be automatically
appended if used later—handy!
Hosting
One-click Vercel deploy
Share₂Fedi is designed to run on Vercel. To deploy it yourself (it's free!), you can use the following button:
Host it yourself
Self-hosting Share₂Fedi outside of Vercel requires some extra setup:
Prerequisites: modern Node.js (v16 or later), pnpm
.
-
Install the dependencies:
pnpm install
-
Build the static files:
pnpm build
-
Run the backend server for the form:
node api/share.js
alternatively, if you want to run the process in the background:
pm2 start api/share.js --watch --ignore-watch="node_modules"
You can find a summary for pm2 at: https://pm2.keymetrics.io/docs/usage/quick-start/
-
Set up a web server
Basically, you need to run a server that would proxy the requests to
/api/share
. to the Node.js server you started. Here's how to achieve this in various HTTP servers:- Apache
DocumentRoot "<PATH_TO_SHARE2FEDI>/dist" ProxyPass "/api/share" "http://localhost:8080/"
- Nginx
root <PATH_TO_SHARE2FEDI>/dist; index.html; location /api/share { proxy_pass http://localhost:8080/; }
- Caddy
root * <PATH_TO_SHARE2FEDI>/dist; try_files index.html handle_path /api/share { reverse_proxy localhost:8080 }
See also
📯 Shareon (lightweight, stylish, and ethical share buttons) uses Share₂Fedi under the hood!
Licence
© 2020–2022 Nikita Karamov
Licensed under the GNU Affero General Public License, version 3.
This project is hosted on GitHub: https://github.com/kytta/share2fedi.git