1
0
Fork 0
Fork of a fork of a fork of a fork. Upstream: https://codeberg.org/superseriousbusiness/masto-fe-standalone
This repository has been archived on 2026-03-31. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
  • JavaScript 82.8%
  • SCSS 12.4%
  • TypeScript 4.7%
  • HTML 0.1%
Find a file
Alexey Skobkin 6bc4d4d776
All checks were successful
ci/woodpecker/push/ci Pipeline was successful
Woodpecker CI build configuration.
2026-01-13 01:59:05 +03:00
.woodpecker Woodpecker CI build configuration. 2026-01-13 01:59:05 +03:00
app/javascript [bugfix] show header logo + align header buttons 2025-10-24 10:44:30 +02:00
config [build] upgrade eslint to 9.37.0 (#88) 2025-10-12 13:42:02 +02:00
public [feature] Ability to force a specific instance address without prompting the user for an address 2026-01-13 01:21:26 +03:00
.browserslistrc Add ES6 compatibility to browserslist (#18519) 2022-05-26 20:29:28 +02:00
.dockerignore [chore] Readme, docker build 2024-12-19 19:00:29 +01:00
.editorconfig [feature] replace icons with Phosphor (#77) 2025-10-14 14:00:10 +02:00
.gitignore [chore] Update to yarn 4 (#90) 2025-10-09 16:13:26 +02:00
.prettierignore Merge commit '640421f661' into glitch-soc/merge-upstream 2023-10-08 17:30:48 +02:00
.prettierrc.js [chore] remove singleQuote options from prettierrc 2025-10-15 09:45:31 +02:00
.yarnclean Setup Husky and lint-stage for commit fixing (#23308) 2023-03-27 05:17:19 +02:00
.yarnrc.yml [chore] Update to yarn 4 (#90) 2025-10-09 16:13:26 +02:00
app.json Make enable_starttls configurable by envvars (#20321) 2022-11-10 21:06:21 +01:00
AUTHORS.md [docs] update AUTHORS.md (#89) 2025-10-09 15:02:45 +02:00
babel.config.js [build] upgrade eslint to 9.37.0 (#88) 2025-10-12 13:42:02 +02:00
CHANGELOG.md [docs] fix typo 2025-10-21 15:16:52 +02:00
CONTRIBUTING.md [chore] Update to yarn 4 (#90) 2025-10-09 16:13:26 +02:00
Dockerfile [chore/docker] Remove reference to vanilla in Dockerfile (#114) 2025-10-21 15:49:01 +02:00
eslint.config.js [build] upgrade eslint to 9.37.0 (#88) 2025-10-12 13:42:02 +02:00
jest.config.js [build] upgrade eslint to 9.37.0 (#88) 2025-10-12 13:42:02 +02:00
jsconfig.json Correct prettier calls for YML/JSON (#21832) 2022-12-03 12:05:35 +09:00
LICENSE Fix #49 - License changed from GPL-2.0 to AGPL-3.0 2016-09-21 23:04:34 +02:00
nginx.conf weeeeeeeee 2024-12-15 17:19:57 +01:00
package.json [chore] remove old font formats and unused css (#99) 2025-10-14 17:22:01 +02:00
postcss.config.js [build] upgrade eslint to 9.37.0 (#88) 2025-10-12 13:42:02 +02:00
README.md [feature] Ability to force a specific instance address without prompting the user for an address 2026-01-13 01:21:26 +03:00
stylelint.config.js [chore] lint sass files (#103) 2025-10-15 21:08:31 +02:00
tsconfig.json Fix interaction modal being broken because of glitch-soc's theming system 2023-07-30 16:45:50 +02:00
yarn.lock [chore] remove old font formats and unused css (#99) 2025-10-14 17:22:01 +02:00

Masto-FE (🦥 flavour)

This is a fork of Iceshrimp's Masto-FE Standalone repository, which is itself a fork of Mastodon Glitch Edition, which in turn forks Mastodon. Phew!

The goal of this repository is to make it possible to smoothly and intuitively use the Mastodon frontend with a GoToSocial instance as the backend.

This mostly means making changes to the frontend to allow it to work with GoToSocial-specific features, making it slightly less Mastodon-y by changing some of the branding, wording, iconography, etc, and fixing other small issues.

There's a version running here that you can try:

https://masto-fe.superseriousbusiness.org

The application doesn't gather or store any information that you give it, including access tokens or passwords, everything just happens in your browser's local storage.

Building

Not Docker

You need Node and Yarn installed for this. To avoid fuckery, Node Version Manager is highly recommended: https://github.com/nvm-sh/nvm.

Once you've installed Node + Yarn, you can build the whole thingy by running:

yarn && yarn build:production

Docker (don't need to have Node or Yarn installed)

You can build a docker container for the whole thingy by running (for example):

docker build -t superseriousbusiness/masto-fe-standalone:0.1.0 .

Deploying

Not Docker

Serve all the stuff in public behind an nginx or whatever you want! See the included nginx.conf for one example of how to do this, it's not too bad.

Docker (definitely the easiest way)

The Docker container is based on Nginx, and serves over port 80. Just deploy it and listen on that port, preferably with a reverse proxy at some point (Traefik? Caddy? Another Nginx perhaps?) handling https.

Testing locally, linting, etc

See CONTRIBUTING.md!

Forced Instance Configuration

You can configure Masto-FE to automatically use a specific Mastodon instance without requiring users to enter it manually. This is useful for deployments where you want to restrict users to a specific instance.

Configuration Options

  1. Using config.js file:

    • Edit the public/config.js file and set forceInstanceDomain to your desired instance domain.
    • Example: const forceInstanceDomain = "mastodon.social";
  2. Using Docker:

    • Create a custom config.js file based on the provided public/config.js.
    • Mount this file when running the Docker container:
      docker run -v "/path/to/custom/config.js:/usr/share/nginx/html/config.js:ro" ... [other options] [image]
      

How It Works

When forceInstanceDomain is set to a non-null value:

  1. The instance field will be automatically filled with the specified domain
  2. The authentication process will start immediately
  3. Users will be redirected to the authorization page of the specified instance

When forceInstanceDomain is null (default):

  1. The application behaves normally, requiring users to enter their instance manually
  2. After authentication, the instance is stored in localStorage for future use