Skip to content
Snippets Groups Projects
Verified Commit dc521d6d authored by Mar0xy's avatar Mar0xy
Browse files

update documentation

parent b747bd11
No related branches found
No related tags found
No related merge requests found
Showing
with 367 additions and 222 deletions
......@@ -11,7 +11,7 @@ disableKinds = ["sitemap"]
# Multilingual
defaultContentLanguage = "en"
disableLanguages = ["de", "nl"]
disableLanguages = ["de"]
# defaultContentLanguageInSubdir = true
# add redirects/headers
......@@ -63,7 +63,7 @@ notAlternative = true
tag = "tags"
[permalinks]
blog = "/blog/:title/"
# blog = "/blog/:title/"
# docs = "/docs/1.0/:sections[1:]/:title/"
[minify.tdewolff.html]
......
[[main]]
name = "Docs"
url = "/docs"
weight = 10
#[[main]]
# name = "Docs"
# url = "/docs/install/fresh"
# weight = 10
[[social]]
name = "GitHub"
......
......@@ -65,7 +65,7 @@ defaultImage = "default-image.png" # put in `./assets/images/`
fillImage = "1270x740 Center" # normalize image size
# Footer
footer = "Powered by <a class=\"text-muted\" href=\"https://www.netlify.com/\">Netlify</a>, <a class=\"text-muted\" href=\"https://gohugo.io/\">Hugo</a>, and <a class=\"text-muted\" href=\"https://getdoks.org/\">Doks</a>"
footer = "Powered by <a class=\"text-muted\" href=\"https://pages.github.com/\">Github Pages</a>, <a class=\"text-muted\" href=\"https://gohugo.io/\">Hugo</a>, and <a class=\"text-muted\" href=\"https://getdoks.org/\">Doks</a>"
# Feed
copyRight = "Copyright (c) 2022-2023 Transfem-org"
......
---
title : "Docs"
description: "Docs Doks."
description: "Docs."
lead: ""
date: 2020-10-06T08:48:23+00:00
lastmod: 2020-10-06T08:48:23+00:00
......
---
title: "Comparsion"
weight: 2000
toc: true
---
\ No newline at end of file
---
title: "Sharkey vs Misskey"
weight: 2100
toc: true
---
## A (probably comprehensive) list of differences
### Big ones
* fully federated note editing, you can also see previous versions of
edited notes
* Mastodon-compatible API, including OAuth2
* can import your exported posts from Mastodon and most of its forks,
Pleroma / Akkoma, Misskey / Firefish and forks, Twitter, Instagram,
Facebook, including attachments (threading may not work perfectly,
and other people's replies to your posts may not get imported)
* admins can require approval for new users' signups
* admins can silence users
* admins can mark all of a user's media as NSFW
* GDPR-style Data Subject Access Requests (users can export all data
related to themselves)
### Fun ones
* can play module / tracker music files
* (federated) listenbrainz integration
* (federated) background image on user profiles
* "speak as cat" separate from "is a cat" (both setting are federated
with compatible software)
### UI/UX
* option to open a note's detailed view by clicking on the note (most
useful on mobile)
* images lacking alt text are marked as such
* UI elements can be round (as in Misskey) or square-ish
* "sign out" button in user menu
* user profile page has "notes" / "all" / "including files" tabs
* attachments can be collapsed by default
* buttons to show/hide all notes with CWs in a conversation
* one-button "like" (plus custom reactions on a separate button)
* animated MFM can be enabled/disabled on each note
* supports longer alt text
* pop-up user profiles show if follow requests to the user require
approval, have a "open remote profile" option, and show custom
fields (e.g. the user's website address)
* MFM cheatsheet when composing notes
* emoji auto-complete is case-insensitive
* it's always clear if a note has a poll (misskey sometimes hides
that)
* boosts and quote-boost are accounted separately
* only 1 boost per note per user is allowed
* admins can remove bots from "trending"
* users can hide bots from their timelines
* translatable notes are shown translated regardless of where they're
shown (e.g. when quoted, or when looking at their replies)
* when searching, users can restrict results to notes with attachments
* CSS class names are human-readable, to simplify browser-side
customisation
* users can disable indexing of their notes (the setting is federated)
* "likes" and "reactions" federate correctly to Mastodon / Pleroma /
Akkoma (Misskey sends them all as reactions)
* different error icons
* users can disable the "disconnected" warning (connection is usually
re-established automatically, so the warning is rarely useful)
* users can set a default emoji for their likes/reactions
* when the instance is using meilisearch to index notes, Sharkey will
use it in more cases (e.g. when limiting results to notes containing
images)
* when showing a reply containing many mentions, they are shortened
### Ones of interest to admins
* quote-boosts federate correctly from/to Mastodon forks
* the not-very-functional "automatically mark attachments as NSFW" has
been removed (smaller installation, faster image/video uploads)
* argon2 instead of bcrypt for hashing users' secrets
* admins can delete remote emojis
* admins can disable achievements
* admins can refresh remote user details
* admins can set a default emoji for likes/reactions
* the PWA icon matches the instance icon
\ No newline at end of file
---
title: "Help"
description: "Help Doks."
lead: ""
date: 2020-10-06T08:49:15+00:00
lastmod: 2020-10-06T08:49:15+00:00
draft: false
images: []
weight: 600
---
---
title: "FAQ"
description: "Answers to frequently asked questions."
lead: "Answers to frequently asked questions."
date: 2020-10-06T08:49:31+00:00
lastmod: 2020-10-06T08:49:31+00:00
draft: false
images: []
menu:
docs:
parent: "help"
weight: 630
toc: true
---
## Hyas?
Doks is a [Hyas theme](https://gethyas.com/themes/) build by the creator of Hyas.
## Footer notice?
Please keep it in place.
## Keyboard shortcuts for search?
- focus: `Ctrl + /`
- select: `↓` and `↑`
- open: `Enter`
- close: `Esc`
## Other documentation?
- [Netlify](https://docs.netlify.com/)
- [Hugo](https://gohugo.io/documentation/)
## Can I get support?
Create a topic:
- [Netlify Community](https://community.netlify.com/)
- [Hugo Forums](https://discourse.gohugo.io/)
- [Doks Discussions](https://github.com/h-enk/doks/discussions)
## Contact the creator?
Send `h-enk` a message:
- [Netlify Community](https://community.netlify.com/)
- [Hugo Forums](https://discourse.gohugo.io/)
- [Doks Discussions](https://github.com/h-enk/doks/discussions)
---
title: "How to Update"
description: "Regularly update the installed npm packages to keep your Doks website stable, usable, and secure."
lead: "Regularly update the installed npm packages to keep your Doks website stable, usable, and secure."
date: 2020-11-12T13:26:54+01:00
lastmod: 2020-11-12T13:26:54+01:00
draft: false
images: []
menu:
docs:
parent: "help"
weight: 610
toc: true
---
{{< alert icon="💡" text="Learn more about <a href=\"https://docs.npmjs.com/about-semantic-versioning\">semantic versioning</a> and <a href=\"https://docs.npmjs.com/cli/v6/using-npm/semver#advanced-range-syntax\">advanced range syntax</a>." />}}
## Check for outdated packages
The [`npm outdated`](https://docs.npmjs.com/cli/v7/commands/npm-outdated) command will check the registry to see if any (or, specific) installed packages are currently outdated:
```bash
npm outdated [[<@scope>/]<pkg> ...]
```
## Update packages
The [`npm update`](https://docs.npmjs.com/cli/v7/commands/npm-update) command will update all the packages listed to the latest version (specified by the tag config), respecting semver:
```bash
npm update [<pkg>...]
```
---
title: "Troubleshooting"
description: "Solutions to common problems."
lead: "Solutions to common problems."
date: 2020-11-12T15:22:20+01:00
lastmod: 2020-11-12T15:22:20+01:00
draft: false
images: []
menu:
docs:
parent: "help"
weight: 620
toc: true
---
## Problems updating npm packages
Delete the `./node_modules` folder, and run again:
```bash
npm install
```
## Problems with cache
Delete the temporary directories:
```bash
npm run clean
```
---
title: "Install"
weight: 1000
toc: true
---
\ No newline at end of file
---
title: "Fresh Installation"
weight: 1100
toc: true
---
Before you start, you really need:
* an always-on machine that can receive connections from the Internet
* a domain name to dedicate to your Sharkey instance, resolving to the
address(es) of that machine
* a web server running on that machine, with valid TLS certificates
for the domain name
## With Docker
Prerequisites:
* Docker
* Compose Plugin
Create multiple directories:
mkdir Sharkey && mkdir Sharkey/.config
Fetch all required examples and enter directory:
wget -O Sharkey/docker-compose.yml https://raw.githubusercontent.com/transfem-org/Sharkey/stable/docker-compose.yml.example
wget -O Sharkey/.config/default.yml https://raw.githubusercontent.com/transfem-org/Sharkey/stable/.config/example.yml
wget -O Sharkey/.config/docker.env https://raw.githubusercontent.com/transfem-org/Sharkey/stable/.config/docker_example.env
cd Sharkey
Edit `.config/default.yml`, there are comments explaining what each
option means. In particular, we're going to assume you have:
url: https://{YOUR DOMAIN NAME}/
(replace `{YOUR DOMAIN NAME}` with the domain name we talked about
at the start).
Edit `docker-compose.yml`, there are multiple comments there as
well. If you want to set up note search with meilisearch, uncomment
all of meilisearch options, otherwise proceed to do the following
changes in the `services:` / `web:` section:
* uncomment the line that starts with `image:`
* remove the line `build: .`
Starting:
docker compose up -d
## Manually
[Same as
Misskey](https://misskey-hub.net/en/docs/install/manual.html).
Prerequisites:
* NodeJS version 20.4 or later, with *both* `npm` and `pnpm`
installed (`corepack enable` should suffice, make sure you run it
as `root` if you're using your system NodeJS)
* PostgreSQL version 15 or later
* Redis
* FFmpeg
* all the various packages to compile and build C code, and Python (on
Debian-style systems, that's `build-essential` & `python`)
Create a `sharkey` user:
adduser --disabled-password --disabled-login sharkey
start a shell as that user:
sudo -u sharkey -i
(or something like that), then:
git clone --recurse-submodules -b stable https://github.com/transfem-org/Sharkey.git
cd Sharkey
pnpm install --frozen-lockfile
cp .config/example.yml .config/default.yml
Edit `.config/default.yml`, there are comments explaining what each
option means. In particular, we're going to assume you have:
url: https://{YOUR DOMAIN NAME}/
db:
host: localhost
port: 5432
db: sharkey
user: sharkey
pass: {YOUR PASSWORD}
(replace `{YOUR PASSWORD}` with an actual password you make up for
this, and `{YOUR DOMAIN NAME}` with the domain name we talked about
at the start)
Building:
pnpm run build
Create the PostgreSQL user and database, either with `createuser`
and `createdb` or with `sudo -u postgres psql` and then:
create database sharkey with encoding = 'UTF8';
create user sharkey with encrypted password '{YOUR_PASSWORD}';
grant all privileges on database sharkey to sharkey;
alter database sharkey owner to sharkey;
\q
(replace `{YOUR PASSWORD}` with the same password as before)
Then create the schema:
pnpm run init
And start it:
pnpm start
you should see a series of colourful lines, ending with something
like:
Now listening on port 3000 on https://example.tld
but with a different URL at the end (you *did* change the `url`
setting in the config file, right?). Stop that process (control-C is
enough), and set up a system service for Sharkey.
### With systemd
Create a file `/etc/systemd/system/sharkey.service` containing:
[Unit]
Description=Sharkey daemon
[Service]
Type=simple
User=sharkey
ExecStart=/usr/bin/pnpm start
WorkingDirectory=/home/sharkey/Sharkey
Environment="NODE_OPTIONS=--max-old-space-size=8192"
Environment="NODE_ENV=production"
TimeoutSec=60
StandardOutput=journal
StandardError=journal
SyslogIdentifier=sharkey
Restart=always
[Install]
WantedBy=multi-user.target
(you may need to change that `/usr/bin/pnpm` if you're not using
your system NodeJS).
Then:
sudo systemctl daemon-reload
sudo systemctl enable sharkey
sudo systemctl start sharkey
After that, `systemctl status sharkey` should show that it's
running.
### With OpenRC
Create a file `/etc/init.d/sharkey` containing:
#!/sbin/openrc-run
name=sharkey
description="Sharkey daemon"
command="/usr/bin/pnpm"
command_args="start"
command_user="sharkey"
supervisor="supervise-daemon"
supervise_daemon_args=" -d /home/sharkey/Sharkey -e NODE_ENV=production -e \"NODE_OPTIONS=--max-old-space-size=8192\"
pidfile="/run/${RC_SVCNAME}.pid"
depend() {
need net
use logger nginx
}
(you may need to change that `/usr/bin/pnpm` if you're not using
your system NodeJS).
Then:
sudo rc-update add sharkey
sudo rc-service sharkey start
After that, `rc-service sharkey status` should show that it's
running.
## Configure the web server
### NGINX
See [Misskey's
instructions](https://misskey-hub.net/en/docs/admin/nginx.html)
# Update Sharkey
Very similar to the installation process:
sudo -u sharkey -i
cd Sharkey
git checkout stable
git pull --recurse-submodules
pnpm install --frozen-lockfile
pnpm run build
pnpm run migrate
Then restart the service (`sudo systemctl restart sharkey` or
`rc-service sharkey restart`).
If there's problems with updating, you can run `pnpm run clean`
and/or `pnpm run clean-all` which will remove all the effects of a
previous build, then you can install+build+migrate+restart again.
\ No newline at end of file
---
title: "Migrating from another software"
weight: 1200
toc: true
---
## From Misskey
Let's say you have a working Misskey, running as user `misskey` from
`/home/misskey/misskey`.
Migrating to Sharkey is the same as updating to a newer Misskey
version:
sudo -u misskey -i
cd misskey
git remote rename origin misskey
git remote add origin https://github.com/transfem-org/Sharkey.git
git remote update -p
git checkout -b stable --track origin/stable
git pull --recurse-submodules
pnpm install --frozen-lockfile
pnpm run build
pnpm run migrate
Then you can restart your service.
If you see weirdness like service not starting, or missing labels in
the web UI, you should first make sure the build worked (check all the
error messages!), then try building again from scratch:
pnpm run clean-all
pnpm install --frozen-lockfile
pnpm run build
pnpm run migrate
Also, clear your browser's cache and local storage (this will log your
browser out of Misskey/Sharkey).
## From Firefish
(someone please write this)
\ No newline at end of file
---
title: "Lorem"
description: ""
lead: ""
date: 2022-01-18T19:58:14+01:00
lastmod: 2022-01-18T19:58:14+01:00
draft: true
images: []
toc: true
---
---
title: "Ipsum"
description: ""
lead: ""
date: 2022-01-18T20:00:32+01:00
lastmod: 2022-01-18T20:00:32+01:00
draft: false
images: []
menu:
docs:
parent: "lorem"
identifier: "ipsum"
weight: 999
toc: true
---
---
title: "Amet"
description: ""
lead: ""
date: 2022-01-18T20:07:56+01:00
lastmod: 2022-01-18T20:07:56+01:00
draft: false
images: []
menu:
docs:
parent: "ipsum"
identifier: "amet"
weight: 999
toc: true
---
---
title: "Consectetur"
description: ""
lead: ""
date: 2022-01-18T20:17:32+01:00
lastmod: 2022-01-18T20:17:32+01:00
draft: false
images: []
menu:
docs:
parent: "amet"
weight: 730
toc: true
---
---
title: "Dolor"
description: ""
lead: ""
date: 2022-01-18T20:01:45+01:00
lastmod: 2022-01-18T20:01:45+01:00
draft: false
images: []
menu:
docs:
parent: "ipsum"
weight: 700
toc: true
---
---
title: "Sit"
description: ""
lead: ""
date: 2022-01-18T20:05:19+01:00
lastmod: 2022-01-18T20:05:19+01:00
draft: false
images: []
menu:
docs:
parent: "ipsum"
weight: 710
toc: true
---
---
title : "Prologue"
description: "Prologue Doks."
lead: ""
date: 2020-10-06T08:48:45+00:00
lastmod: 2020-10-06T08:48:45+00:00
draft: false
images: []
weight: 100
---
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment