2022-11-14 07:34:13 -05:00
< h1 align = "center" > < img src = "assets/share2fedi.svg" width = "520" height = "160" alt = "Share2Fedi" > < / h1 >
2020-09-23 09:08:21 -05:00
2022-11-14 07:34:13 -05:00
> Instance-agnostic share page for the Fediverse.
2020-09-23 11:39:38 -05:00
2022-11-14 07:39:51 -05:00
**[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!’
2021-01-30 09:12:32 -05:00
2022-11-14 07:39:51 -05:00
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:
2020-09-23 11:39:38 -05:00
```html
2023-03-16 06:21:26 -05:00
< a
href="https://s2f.kytta.dev/?text=Hello%20world!& instance=https%3A%2F%2Fmastodon.xyz"
>
2022-11-14 07:39:51 -05:00
Share on mastodon.xyz
2020-09-23 11:39:38 -05:00
< / a >
```
2022-11-14 07:39:51 -05:00
The instance URL can be saved in your `localStorage` to be automatically appended if used later—handy!
2021-01-30 09:12:32 -05:00
2021-08-28 09:03:58 -05:00
## Hosting
### One-click Vercel deploy
2023-03-16 09:20:56 -05:00
**Share₂Fedi** is designed to run on [Vercel ](https://vercel.com/ ).
To deploy it yourself (it's free!), you can use the following button:
2021-08-28 09:03:58 -05:00
2023-03-16 09:20:56 -05:00
[![Deploy with Vercel ](https://vercel.com/button )](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fkytta%2Fshare2fedi)
2021-08-28 09:03:58 -05:00
### Host it yourself
2022-11-14 07:39:51 -05:00
Self-hosting **Share₂Fedi** outside of Vercel requires some extra setup:
2021-08-28 09:03:58 -05:00
2023-03-16 09:21:16 -05:00
**Prerequisites:** modern Node.js (v16 or later), `pnpm` .
2021-08-28 09:03:58 -05:00
2023-03-16 09:21:16 -05:00
1. Install the dependencies:
2021-08-28 09:03:58 -05:00
```sh
2023-03-16 09:21:16 -05:00
pnpm install
```
2. Build the static files:
```sh
pnpm build
2021-08-28 09:03:58 -05:00
```
3. Run the backend server for the form:
2022-03-18 06:16:21 -05:00
```sh
2023-03-16 09:21:16 -05:00
node api/share.js
2022-03-18 06:16:21 -05:00
```
2022-03-18 06:39:31 -05:00
2023-03-16 09:21:16 -05:00
alternatively, if you want to run the process in the background:
2022-03-18 06:16:21 -05:00
2021-08-28 09:03:58 -05:00
```sh
2023-03-16 09:21:16 -05:00
pm2 start api/share.js --watch --ignore-watch="node_modules"
2021-08-28 09:03:58 -05:00
```
2022-03-17 08:04:44 -05:00
2022-03-17 07:58:41 -05:00
> You can find a summary for pm2 at: https://pm2.keymetrics.io/docs/usage/quick-start/
2023-03-16 09:21:16 -05:00
4. 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:
2022-03-17 08:04:44 -05:00
2022-03-17 07:58:41 -05:00
1. Apache
2022-03-17 08:04:44 -05:00
2022-03-18 06:17:16 -05:00
```apacheconf
2023-03-16 09:21:16 -05:00
DocumentRoot "< PATH_TO_SHARE2FEDI > /dist"
2022-03-17 08:09:30 -05:00
2023-03-16 09:21:16 -05:00
ProxyPass "/api/share" "http://localhost:8080/"
2022-03-17 08:04:44 -05:00
```
2022-03-17 07:58:41 -05:00
2. Nginx
2022-03-18 06:17:16 -05:00
```nginxconf
2023-03-16 09:21:16 -05:00
root < PATH_TO_SHARE2FEDI > /dist;
2022-03-17 08:04:44 -05:00
index.html;
2023-03-16 09:21:16 -05:00
location /api/share {
proxy_pass http://localhost:8080/;
2022-03-17 08:04:44 -05:00
}
```
2021-08-28 09:03:58 -05:00
2022-03-18 07:04:56 -05:00
3. Caddy
2022-05-17 08:30:54 -05:00
```caddy
2023-03-16 09:21:16 -05:00
root * < PATH_TO_SHARE2FEDI > /dist;
2022-03-18 07:04:56 -05:00
try_files index.html
2023-03-16 09:21:16 -05:00
handle_path /api/share {
reverse_proxy localhost:8080
2022-03-18 07:04:56 -05:00
}
```
2021-01-30 09:12:32 -05:00
## See also
2022-02-12 06:30:49 -05:00
**[📯 Shareon](https://shareon.js.org)**
2022-11-14 07:39:51 -05:00
(lightweight, stylish, and ethical share buttons) uses **Share₂Fedi** under the hood!
2020-09-23 12:59:55 -05:00
2021-05-13 07:24:32 -05:00
## Licence
2020-09-23 12:59:55 -05:00
2022-11-14 07:39:51 -05:00
© 2020– 2022 [Nikita Karamov]\
Licensed under the [GNU Affero General Public License, version 3][AGPL-3.0].
2020-09-23 12:59:55 -05:00
2022-03-17 08:04:44 -05:00
---
2021-08-29 07:10:23 -05:00
2023-03-16 04:41:55 -05:00
This project is hosted on GitHub: < https: / / github . com / kytta / share2fedi . git >
2021-08-29 07:10:23 -05:00
2022-11-14 07:39:51 -05:00
[AGPL-3.0]: https://spdx.org/licenses/AGPL-3.0-only.html
[Nikita Karamov]: https://www.kytta.dev
[Share₂Fedi]: https://s2f.kytta.dev/