This PR adds a npm "dev" script. Upon executing `npm run dev`, the project will be served (default port 3035) in "watch" mode, every local change of the files will refresh the page. This change should enable faster development loop. Reviewed-on: https://codeberg.org/superseriousbusiness/masto-fe-standalone/pulls/16 Co-authored-by: Thiago 'Jedi' Cerqueira <thiagoa7@gmail.com> Co-committed-by: Thiago 'Jedi' Cerqueira <thiagoa7@gmail.com>
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 (must have Node + Yarn installed)
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 .
Testing Locally
You can fairly easily test builds of Masto-FE locally by using Docker and the GoToSocial testrig.
Build GoToSocial + launch the GtS testrig
First get the GoToSocial repository cloned somewhere:
mkdir -p ~/go/src/codeberg.org/superseriousbusiness && \
cd ~/go/src/codeberg.org/superseriousbusiness && \
git clone git@codeberg.org:superseriousbusiness/gotosocial && \
cd ~/go/src/codeberg.org/superseriousbusiness/gotosocial
In the GtS repo directory, build GoToSocial with DEBUG=1 to enable the testrig:
DEBUG=1 ./scripts/build.sh
In the GtS repo directory, launch the GoToSocial testrig using the newly built binary, which will bind to port 8080 on localhost:
DEBUG=1 GTS_LOG_LEVEL=info ./gotosocial testrig start
Leave the testrig running.
Build Masto-FE + run it locally
Now in a separate terminal window, get back to the Masto-FE directory, and do a Docker build (this might take a bit of time):
docker build -t superseriousbusiness/masto-fe-standalone:latest .
Deploy Masto-FE locally on port 3000:
docker run -it -p 3000:80 superseriousbusiness/masto-fe-standalone:latest
Open your browser and go to http://localhost:3000.
In the front page, enter http://localhost:8080 as your domain/instance. The http:// part is important, as without it Masto-FE will expect https!
Log in as email zork@example.org, password password, or admin@example.org, password password. You can now try posting stuff, viewing timelines, etc.
If you want to reset the testrig state, just stop it and launch it again. All database + storage state will be cleared when it stops, and repopulated when it launches. You will then need to log out of Masto-FE (🦥 flavour) and log back in again to reauthenticate.
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 3000. Just deploy it and listen on that port, preferably with a reverse proxy at some point (Traefik? Caddy? Another Nginx perhaps?) handling https.