This repository has been archived on 2024-05-13. You can view files and clone it, but cannot push or open issues or pull requests.
share2fedi/README.md

117 lines
2.9 KiB
Markdown
Raw Normal View History

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 10:08:21 -04:00
2022-11-14 07:34:13 -05:00
> Instance-agnostic share page for the Fediverse.
2020-09-23 12:39:38 -04:00
2023-03-17 09:06:30 -04: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
2023-03-17 09:06:30 -04: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 12:39:38 -04:00
```html
2023-03-16 07:21:26 -04: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 12:39:38 -04:00
</a>
```
2023-03-17 09:06:30 -04: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
## Hosting
### One-click Vercel deploy
2023-03-17 09:06:30 -04: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:
2023-03-16 10:20:56 -04:00
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fkytta%2Fshare2fedi)
### Host it yourself
2022-11-14 07:39:51 -05:00
Self-hosting **Share₂Fedi** outside of Vercel requires some extra setup:
2023-03-16 10:21:16 -04:00
**Prerequisites:** modern Node.js (v16 or later), `pnpm`.
2023-03-17 21:25:06 -04:00
1. Install dependencies.
```sh
2023-03-16 10:21:16 -04:00
pnpm install
```
2023-03-17 21:25:06 -04:00
2. Build.
2023-03-16 10:21:16 -04:00
```sh
pnpm build
```
2023-03-17 21:25:06 -04:00
3. Run server.
> By default, this will only listen on localhost port 3000. To enable
> listening on a ceratin hostand/or port, set the `HOST` and `PORT`
> environment variables, respectively.
2022-03-18 07:16:21 -04:00
```sh
2023-03-17 21:25:06 -04:00
node dist/server/entry.mjs
2022-03-18 07:16:21 -04:00
```
2022-03-18 07:39:31 -04:00
2023-03-16 10:21:16 -04:00
alternatively, if you want to run the process in the background:
2022-03-18 07:16:21 -04:00
```sh
2023-03-17 21:25:06 -04:00
pm2 start dist/server/entry.mjs --watch --ignore-watch="node_modules"
```
2022-03-17 09:04:44 -04:00
2023-03-17 09:06:30 -04:00
> You can find a summary for pm2 at:
> https://pm2.keymetrics.io/docs/usage/quick-start/
2023-03-17 21:25:06 -04:00
> More information about self-hosting an Astro website with Node:
> https://docs.astro.build/en/guides/integrations-guide/node/#standalone
4. Set up a reverse proxy.
2023-03-16 10:21:16 -04:00
2023-03-17 21:25:06 -04:00
Basically, you need to run a reverse proxy that would redirect all incoming
requests to `localhost:3000`. Here's how to achieve this in various HTTP
servers:
2022-03-17 09:04:44 -04:00
1. Apache
2022-03-17 09:04:44 -04:00
2022-03-18 07:17:16 -04:00
```apacheconf
2023-03-17 21:25:06 -04:00
ProxyPass "/" "http://localhost:3000/"
2022-03-17 09:04:44 -04:00
```
2. Nginx
2022-03-18 07:17:16 -04:00
```nginxconf
2023-03-17 21:25:06 -04:00
location / {
proxy_pass http://localhost:3000/;
2022-03-17 09:04:44 -04:00
}
```
3. Caddy
2022-05-17 09:30:54 -04:00
```caddy
2023-03-17 21:25:06 -04:00
reverse_proxy :3000
```
2021-01-30 09:12:32 -05:00
## See also
2023-03-17 09:06:30 -04:00
**[📯 Shareon](https://shareon.js.org)** (lightweight, stylish, and ethical
share buttons) uses **Share₂Fedi** under the hood!
## Licence
2022-11-14 07:39:51 -05:00
© 20202022 [Nikita Karamov]\
Licensed under the [GNU Affero General Public License, version 3][AGPL-3.0].
2022-03-17 09:04:44 -04:00
---
2021-08-29 08:10:23 -04:00
2023-03-16 05:41:55 -04:00
This project is hosted on GitHub: <https://github.com/kytta/share2fedi.git>
2021-08-29 08:10:23 -04: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/