No description
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.
Find a file
Nikita Karamov 2ad24a91da
Improve instance detection
Instance detection is now based on NodeInfo, which is standardized and
lighterweight.
2023-09-02 21:56:48 +02:00
.github Update usernames 2022-02-02 15:32:36 +01:00
assets Add copyright notices 2023-09-02 21:56:45 +02:00
public Optimize images 2023-09-02 21:56:45 +02:00
script Add copyright notices 2023-09-02 21:56:45 +02:00
src Improve instance detection 2023-09-02 21:56:48 +02:00
.editorconfig Update code style 2023-09-02 21:56:43 +02:00
.eslintignore Replace Gulp with Vite 2023-09-02 21:56:38 +02:00
.eslintrc.json Install Astro instead of Vite 2023-09-02 21:56:43 +02:00
.gitignore Simplify .gitignore 2023-09-02 21:56:39 +02:00
.pre-commit-config.yaml Try to fix pre-commit ci 2023-09-02 21:56:46 +02:00
.prettierignore Format Markdown with Prettier too 2023-09-02 21:56:39 +02:00
.vercelignore Add new logos 2023-09-02 21:56:37 +02:00
astro.config.ts Use a stricter TypeScript config 2023-09-02 21:56:47 +02:00
CHANGELOG.md Update CHANGELOG 2023-09-02 21:56:47 +02:00
LICENSE Migrate license from MIT to AGPL-3.0 2021-01-30 00:48:40 +01:00
package.json Use a stricter TypeScript config 2023-09-02 21:56:47 +02:00
pnpm-lock.yaml Use a stricter TypeScript config 2023-09-02 21:56:47 +02:00
README.md Update build instructions 2023-09-02 21:56:46 +02:00
tsconfig.json Use a stricter TypeScript config 2023-09-02 21:56:47 +02:00
vercel.json Add vercel.json 2023-09-02 21:51:20 +02:00

Share2Fedi

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

Vercel, Netlify, Cloudflare Pages

Share₂Fedi was designed to run on Vercel, but you can also run it on Netlify or Cloudflare Pages. To deploy it yourself (it's free!), you can use the following buttons:

Deploy to Vercel Deploy to Netlify

To deploy to Cloudflare Pages, fork the repo and follow the instructions.

Host it yourself

Self-hosting Share₂Fedi outside of Vercel requires some extra setup:

Prerequisites: modern Node.js (v16 or later), pnpm.

  1. Install dependencies.

    pnpm install
    
  2. Build.

    pnpm build
    
  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.

    node dist/server/entry.mjs
    

    alternatively, if you want to run the process in the background:

    pm2 start dist/server/entry.mjs --watch --ignore-watch="node_modules"
    

    You can find a summary for pm2 at: https://pm2.keymetrics.io/docs/usage/quick-start/

    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.

    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:

    1. Apache
    ProxyPass "/" "http://localhost:3000/"
    
    1. Nginx
    location / {
        proxy_pass http://localhost:3000/;
    }
    
    1. Caddy
    reverse_proxy :3000
    

See also

📯 Shareon (lightweight, stylish, and ethical share buttons) uses Share₂Fedi under the hood!

Licence

© 20202022 Nikita Karamov
Licensed under the GNU Affero General Public License, version 3.


This project is hosted on GitHub: https://github.com/kytta/share2fedi.git