Changed: Branding, should lead to less drama.

This commit is contained in:
Ryle 2022-12-01 14:26:36 +00:00
parent 27495b9da5
commit 288898f92f
No known key found for this signature in database
GPG key ID: FAE00B2FEBA78538
4 changed files with 16 additions and 213 deletions

View file

@ -1,7 +1 @@
### Environment
* Soapbox version:
* Backend (Mastodon, Pleroma, etc):
* Browser/OS:
### Bug description

204
README.md
View file

@ -1,212 +1,20 @@
# Soapbox
# Howler
![Soapbox Screenshot](soapbox-screenshot.png)
**Howler** is the frontend used by Awoo.fyi.
**Soapbox** is a frontend for Mastodon and Pleroma with a focus on custom branding and ease of use.
## Try it out
Visit https://fe.soapbox.pub/ and point it to your favorite instance.
## :rocket: Deploy on Pleroma
Installing Soapbox on an existing Pleroma server is extremely easy.
Just ssh into the server and download a .zip of the latest build:
```sh
curl -L https://gitlab.com/soapbox-pub/soapbox/-/jobs/artifacts/develop/download?job=build-production -o soapbox.zip
```
Then unpack it into Pleroma's `instance` directory:
```sh
busybox unzip soapbox.zip -o -d /opt/pleroma/instance
```
**That's it!** :tada:
**Soapbox is installed.**
The change will take effect immediately, just refresh your browser tab.
It's not necessary to restart the Pleroma service.
***For OTP releases,*** *unpack to /var/lib/pleroma instead.*
To remove Soapbox and revert to the default pleroma-fe, simply `rm /opt/pleroma/instance/static/index.html` (you can delete other stuff in there too, but be careful not to delete your own HTML files).
## :elephant: Deploy on Mastodon
See [Installing Soapbox over Mastodon](https://docs.soapbox.pub/frontend/administration/mastodon/).
## How does it work?
Soapbox is a [single-page application (SPA)](https://en.wikipedia.org/wiki/Single-page_application) that runs entirely in the browser with JavaScript.
It has a single HTML file, `index.html`, responsible only for loading the required JavaScript and CSS.
It interacts with the backend through [XMLHttpRequest (XHR)](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest).
Here is a simplified example with Nginx:
```nginx
location /api {
proxy_pass http://backend;
}
location / {
root /opt/soapbox;
try_files $uri index.html;
}
```
(See [`mastodon.conf`](https://gitlab.com/soapbox-pub/soapbox/-/blob/develop/installation/mastodon.conf) for a full example.)
Soapbox incorporates much of the [Mastodon API](https://docs.joinmastodon.org/methods/), [Pleroma API](https://api.pleroma.social/), and more.
It detects features supported by the backend to provide the right experience for the backend.
# Running locally
To get it running, just clone the repo:
```sh
git clone https://gitlab.com/soapbox-pub/soapbox.git
cd soapbox
```
Ensure that Node.js and Yarn are installed, then install dependencies:
```sh
yarn
```
Finally, run the dev server:
```sh
yarn dev
```
**That's it!** :tada:
It will serve at `http://localhost:3036` by default.
You should see an input box - just enter the domain name of your instance to log in.
Tip: you can even enter a local instance like `http://localhost:3000`!
### Troubleshooting: `ERROR: NODE_ENV must be set`
Create a `.env` file if you haven't already.
```sh
cp .env.example .env
```
And ensure that it contains `NODE_ENV=development`.
Try again.
### Troubleshooting: it's not working!
Run `node -V` and compare your Node.js version with the version in [`.tool-versions`](https://gitlab.com/soapbox-pub/soapbox/-/blob/develop/.tool-versions).
If they don't match, try installing [asdf](https://asdf-vm.com/).
## Local Dev Configuration
The following configuration variables are supported supported in local development.
Edit `.env` to set them.
All configuration is optional, except `NODE_ENV`.
#### `NODE_ENV`
The Node environment.
Soapbox checks for the following options:
- `development` - What you should use while developing Soapbox.
- `production` - Use when compiling to deploy to a live server.
- `test` - Use when running automated tests.
#### `BACKEND_URL`
URL to the backend server.
Can be http or https, and can include a port.
For https, be sure to also set `PROXY_HTTPS_INSECURE=true`.
**Default:** `http://localhost:4000`
#### `PROXY_HTTPS_INSECURE`
Allows using an HTTPS backend if set to `true`.
This is needed if `BACKEND_URL` is set to an `https://` value.
[More info](https://stackoverflow.com/a/48624590/8811886).
**Default:** `false`
# Yarn Commands
The following commands are supported.
You must set `NODE_ENV` to use these commands.
To do so, you can add the following line to your `.env` file:
```sh
NODE_ENV=development
```
#### Local dev server
- `yarn dev` - Run the local dev server.
#### Building
- `yarn build` - Compile without a dev server, into `/static` directory.
#### Translations
- `yarn manage:translations` - Normalizes translation files. Should always be run after editing i18n strings.
#### Tests
- `yarn test:all` - Runs all tests and linters.
- `yarn test` - Runs Jest for frontend unit tests.
- `yarn lint` - Runs all linters.
- `yarn lint:js` - Runs only JavaScript linter.
- `yarn lint:sass` - Runs only SASS linter.
# Contributing
We welcome contributions to this project.
To contribute, see [Contributing to Soapbox](docs/contributing.md).
# Customization
Soapbox supports customization of the user interface, to allow per-instance branding and other features.
Some examples include:
- Instance name
- Site logo
- Favicon
- About page
- Terms of Service page
- Privacy Policy page
- Copyright Policy (DMCA) page
- Promo panel list items, e.g. blog site link
- Soapbox extensions, e.g. Patron module
- Default settings, e.g. default theme
More details can be found in [Customizing Soapbox](docs/customization.md).
# License & Credits
Soapbox is based on [Gab Social](https://code.gab.com/gab/social/gab-social)'s frontend which is in turn based on [Mastodon](https://github.com/tootsuite/mastodon/)'s frontend.
# License
- `static/sounds/chat.mp3` and `static/sounds/chat.oga` are from [notificationsounds.com](https://notificationsounds.com/notification-sounds/intuition-561) licensed under CC BY 4.0.
Soapbox is free software: you can redistribute it and/or modify
Howl is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
Soapbox is distributed in the hope that it will be useful,
Howl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with Soapbox. If not, see <https://www.gnu.org/licenses/>.
along with Howl. If not, see <https://www.gnu.org/licenses/>.

View file

@ -1,7 +1,7 @@
{
"name": "Soapbox",
"description": "Software for the next generation of social media.",
"name": "Howler",
"description": "Freedom to awoo! No fines.",
"keywords": ["fediverse"],
"website": "https://soapbox.pub",
"website": "https://awoo.fyi",
"stack": "container"
}

View file

@ -1,19 +1,20 @@
{
"name": "soapbox",
"displayName": "Awoo-Soapbox",
"name": "Howler",
"displayName": "Howler",
"version": "3.0.0",
"description": "Awoo! frontend for the Fediverse.",
"description": "Awoo.fyi's frontend.",
"homepage": "https://awoo.fyi/",
"repository": {
"type": "git",
"url": "https://gitlab.com/awoo.fyi/soapbox"
"url": "https://gitlab.com/awoo.fyi/howler"
},
"keywords": [
"fediverse",
"pleroma"
"awoo",
"furry"
],
"bugs": {
"url": "https://gitlab.com/awoo.fyi/soapbox/-/issues"
"url": "https://gitlab.com/awoo.fyi/howler/-/issues"
},
"scripts": {
"start": "npx webpack-dev-server",