mirror of
https://github.com/LemmyNet/lemmy-docs.git
synced 2024-11-21 20:01:10 +00:00
Fix dead links, add CI check (#170)
* Fix dead links, add CI check * toolchain
This commit is contained in:
parent
2e8280bb82
commit
97f6a8552e
16 changed files with 30 additions and 61 deletions
|
@ -5,11 +5,17 @@ clone:
|
||||||
recursive: true
|
recursive: true
|
||||||
submodule_update_remote: true
|
submodule_update_remote: true
|
||||||
pipeline:
|
pipeline:
|
||||||
|
dead_links:
|
||||||
|
image: becheran/mlc:latest
|
||||||
|
commands:
|
||||||
|
- mlc src/en --ignore-links "*localhost*" --ignore-links "*127.0.0.1*" --ignore-links /api
|
||||||
|
|
||||||
check_formatting:
|
check_formatting:
|
||||||
image: alpine:3
|
image: alpine:3
|
||||||
commands:
|
commands:
|
||||||
- apk add prettier --repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing
|
- apk add prettier --repository=https://dl-cdn.alpinelinux.org/alpine/edge/testing
|
||||||
- prettier -c src
|
- prettier -c src
|
||||||
|
|
||||||
check_documentation_build:
|
check_documentation_build:
|
||||||
image: rust:1.61-slim-buster
|
image: rust:1.61-slim-buster
|
||||||
commands:
|
commands:
|
||||||
|
|
3
rust-toolchain.toml
Normal file
3
rust-toolchain.toml
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
[toolchain]
|
||||||
|
channel = "1.61"
|
||||||
|
targets = []
|
|
@ -2,9 +2,9 @@
|
||||||
|
|
||||||
## About The Project
|
## About The Project
|
||||||
|
|
||||||
| Front Page | Post |
|
| Front Page | Post |
|
||||||
| ---------------------------------------------- | ---------------------------------------------- |
|
| ------------------------------- | ------------------------------- |
|
||||||
| ![main screen](/docs/en/about/main_screen.png) | ![chat screen](/docs/en/about/chat_screen.png) |
|
| ![main screen](main_screen.png) | ![chat screen](chat_screen.png) |
|
||||||
|
|
||||||
[Lemmy](https://github.com/LemmyNet/lemmy) is similar to sites like [Reddit](https://reddit.com), [Lobste.rs](https://lobste.rs), [Raddle](https://raddle.me), or [Hacker News](https://news.ycombinator.com/): you subscribe to forums you're interested in, post links and discussions, then vote, and comment on them. Behind the scenes, it is very different; anyone can easily run a server, and all these servers are federated (think email), and connected to the same universe, called the [Fediverse](https://en.wikipedia.org/wiki/Fediverse).
|
[Lemmy](https://github.com/LemmyNet/lemmy) is similar to sites like [Reddit](https://reddit.com), [Lobste.rs](https://lobste.rs), [Raddle](https://raddle.me), or [Hacker News](https://news.ycombinator.com/): you subscribe to forums you're interested in, post links and discussions, then vote, and comment on them. Behind the scenes, it is very different; anyone can easily run a server, and all these servers are federated (think email), and connected to the same universe, called the [Fediverse](https://en.wikipedia.org/wiki/Fediverse).
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Features
|
# Features
|
||||||
|
|
||||||
- Open source, [AGPL License](/LICENSE).
|
- Open source, [AGPL License](https://github.com/LemmyNet/lemmy/blob/main/LICENSE).
|
||||||
- Self hostable, easy to deploy.
|
- Self hostable, easy to deploy.
|
||||||
- Comes with [Docker](#docker) and [Ansible](#ansible).
|
- Comes with [Docker](#docker) and [Ansible](#ansible).
|
||||||
- Clean, mobile-friendly interface.
|
- Clean, mobile-friendly interface.
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
# Administration First Steps
|
# Administration First Steps
|
||||||
|
|
||||||
After you successfully installed Lemmy either [manually with Docker](administration/install_docker.html) or [automatically with Ansible](administration/install_ansible.html) here are some recommendations for a new administrator of a Lemmy server.
|
After you successfully installed Lemmy either [manually with Docker](install_docker.md) or [automatically with Ansible](install_ansible.md) here are some recommendations for a new administrator of a Lemmy server.
|
||||||
|
|
||||||
## Admin Settings
|
## Admin Settings
|
||||||
|
|
||||||
The first thing to do is to go to your admin panel, which can be found by clicking on the cog at the top right next to the search icon. Here you can define a description for your site, so that people know if it is about one specific topic or if all subjects are welcome. You can also add an icon and a banner that define your server, it can for example be the logo of your organization.
|
The first thing to do is to go to your admin panel, which can be found by clicking on the cog at the top right next to the search icon. Here you can define a description for your site, so that people know if it is about one specific topic or if all subjects are welcome. You can also add an icon and a banner that define your server, it can for example be the logo of your organization.
|
||||||
|
|
||||||
Take the time to browse through the entire page to discover the different options you have to customize your Lemmy instance, on the same page you can edit your [configuration file](configuration.html), where you can find information about your database, the email used by the server, the federation options or who is the main administrator.
|
Take the time to browse through the entire page to discover the different options you have to customize your Lemmy instance, on the same page you can edit your [configuration file](configuration.md), where you can find information about your database, the email used by the server, the federation options or who is the main administrator.
|
||||||
|
|
||||||
It is always good to define another administrator than yourself, in case it is necessary to take actions while you take your best nap. Take a look at the [moderation guide](../moderation/moderation.html) for more information on how to do this.
|
It is always good to define another administrator than yourself, in case it is necessary to take actions while you take your best nap. Take a look at the [moderation guide](../moderation/moderation.md) for more information on how to do this.
|
||||||
|
|
||||||
## Check that everything is working properly
|
## Check that everything is working properly
|
||||||
|
|
||||||
|
|
|
@ -9,7 +9,7 @@ cd /lemmy
|
||||||
|
|
||||||
# download default config files
|
# download default config files
|
||||||
wget https://raw.githubusercontent.com/LemmyNet/lemmy/release/v0.17/docker/prod/docker-compose.yml
|
wget https://raw.githubusercontent.com/LemmyNet/lemmy/release/v0.17/docker/prod/docker-compose.yml
|
||||||
wget https://raw.githubusercontent.com/LemmyNet/lemmy/release/v0.17/docker/lemmy.hjson
|
wget https://raw.githubusercontent.com/LemmyNet/lemmy/release/v0.17/docker/prod/lemmy.hjson
|
||||||
|
|
||||||
# Set correct permissions for pictrs folder
|
# Set correct permissions for pictrs folder
|
||||||
mkdir -p volumes/pictrs
|
mkdir -p volumes/pictrs
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
Different problems that can occur on a new instance, and how to solve them.
|
Different problems that can occur on a new instance, and how to solve them.
|
||||||
|
|
||||||
Many Lemmy features depend on a correct reverse proxy configuration. Make sure yours is equivalent to our [nginx config](https://github.com/LemmyNet/lemmy/blob/main/ansible/templates/nginx.conf).
|
Many Lemmy features depend on a correct reverse proxy configuration. Make sure yours is equivalent to our [nginx config](https://github.com/LemmyNet/lemmy-ansible/blob/main/templates/nginx.conf).
|
||||||
|
|
||||||
## General
|
## General
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ curl -H "Accept: application/activity+json" https://your-instance.com/comment/12
|
||||||
|
|
||||||
### Fetching remote objects works, but posting/commenting in remote communities fails
|
### Fetching remote objects works, but posting/commenting in remote communities fails
|
||||||
|
|
||||||
Check that [federation is allowed on both instances](../federation/administration.md#instance-allowlist-and-blocklist).
|
Check that [federation is allowed on both instances](federation_getting_started.md).
|
||||||
|
|
||||||
Also ensure that the time is accurately set on your server. Activities are signed with a timestamp, and will be discarded if it is off by more than 10 seconds.
|
Also ensure that the time is accurately set on your server. Activities are signed with a timestamp, and will be discarded if it is off by more than 10 seconds.
|
||||||
|
|
||||||
|
|
|
@ -2,4 +2,3 @@
|
||||||
|
|
||||||
- [API docs](/api)
|
- [API docs](/api)
|
||||||
- [HTTP API extras](http_api_extras.md)
|
- [HTTP API extras](http_api_extras.md)
|
||||||
- [Theming Guide](theming.md)
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Creating a Custom Frontend
|
# Creating a Custom Frontend
|
||||||
|
|
||||||
The backend and frontend are completely decoupled, and run in independent Docker containers. They only communicate over the [Lemmy API](api_reference.md), which makes it quite easy to write alternative frontends.
|
The backend and frontend are completely decoupled, and run in independent Docker containers. They only communicate over the [Lemmy API](client_development.md), which makes it quite easy to write alternative frontends.
|
||||||
|
|
||||||
This creates a lot of potential for custom frontends, which could change much of the design and user experience of Lemmy. For example, it would be possible to create a frontend in the style of a traditional forum like [phpBB](https://www.phpbb.com/), or a question-and-answer site like [stackoverflow](https://stackoverflow.com/). All without having to think about database queries, authentification or ActivityPub, which you essentially get for free.
|
This creates a lot of potential for custom frontends, which could change much of the design and user experience of Lemmy. For example, it would be possible to create a frontend in the style of a traditional forum like [phpBB](https://www.phpbb.com/), or a question-and-answer site like [stackoverflow](https://stackoverflow.com/). All without having to think about database queries, authentification or ActivityPub, which you essentially get for free.
|
||||||
|
|
||||||
|
|
|
@ -33,5 +33,5 @@ pub fn list_posts() -> GetPostsResponse {
|
||||||
|
|
||||||
You can also look at the following real-world projects as examples:
|
You can also look at the following real-world projects as examples:
|
||||||
|
|
||||||
- [lemmyBB](https://github.com/Nutomic/lemmyBB)
|
- [lemmyBB](https://github.com/LemmyNet/lemmyBB)
|
||||||
- [lemmy-stats-crawler](https://yerbamate.ml/LemmyNet/lemmy-stats-crawler)
|
- [lemmy-stats-crawler](https://github.com/LemmyNet/lemmy-stats-crawler)
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
|
|
||||||
[**Message the Moderation Team on Mastodon**](https://mastodon.social/@LemmyDev)
|
[**Message the Moderation Team on Mastodon**](https://mastodon.social/@LemmyDev)
|
||||||
|
|
||||||
[**Email The Moderation Team**](mailto:contact@lemmy.ml)
|
[**Email The Moderation Team**](mailto:contact@join-lemmy.org)
|
||||||
|
|
||||||
## Moderation
|
## Moderation
|
||||||
|
|
||||||
|
@ -30,6 +30,6 @@ In the Lemmy community we strive to go the extra step to look out for each other
|
||||||
|
|
||||||
And if someone takes issue with something you said or did, resist the urge to be defensive. Just stop doing what it was they complained about and apologize. Even if you feel you were misinterpreted or unfairly accused, chances are good there was something you could’ve communicated better — remember that it’s your responsibility to make others comfortable. Everyone wants to get along and we are all here first and foremost because we want to talk about cool technology. You will find that people will be eager to assume good intent and forgive as long as you earn their trust.
|
And if someone takes issue with something you said or did, resist the urge to be defensive. Just stop doing what it was they complained about and apologize. Even if you feel you were misinterpreted or unfairly accused, chances are good there was something you could’ve communicated better — remember that it’s your responsibility to make others comfortable. Everyone wants to get along and we are all here first and foremost because we want to talk about cool technology. You will find that people will be eager to assume good intent and forgive as long as you earn their trust.
|
||||||
|
|
||||||
The enforcement policies listed above apply to all official Lemmy venues; including git repositories under [github.com/LemmyNet](https://github.com/LemmyNet) and [yerbamate.ml/LemmyNet](https://yerbamate.ml/LemmyNet), the [Matrix channel](https://matrix.to/#/!BZVTUuEiNmRcbFeLeI:matrix.org); [lemmy.ml](https://lemmy.ml) and other instances under that domain. For other projects adopting the Lemmy Code of Conduct, please contact the maintainers of those projects for enforcement. If you wish to use this code of conduct for your own project, consider explicitly mentioning your moderation policy or making a copy with your own moderation policy so as to avoid confusion.
|
The enforcement policies listed above apply to all official Lemmy venues; including git repositories under [github.com/LemmyNet](https://github.com/LemmyNet) and [git.join-lemmy.org/LemmyNet](https://git.join-lemmy.org/LemmyNet/), the [Matrix chat](https://matrix.to/#/#lemmy-space:matrix.org); [lemmy.ml](https://lemmy.ml) and other instances under that domain. For other projects adopting the Lemmy Code of Conduct, please contact the maintainers of those projects for enforcement. If you wish to use this code of conduct for your own project, consider explicitly mentioning your moderation policy or making a copy with your own moderation policy so as to avoid confusion.
|
||||||
|
|
||||||
Adapted from the [Rust Code of Conduct](https://www.rust-lang.org/policies/code-of-conduct), which is based on the [Node.js Policy on Trolling](http://blog.izs.me/post/30036893703/policy-on-trolling) as well as the [Contributor Covenant v1.3.0](https://www.contributor-covenant.org/version/1/3/0/).
|
Adapted from the [Rust Code of Conduct](https://www.rust-lang.org/policies/code-of-conduct), which is based on the [Node.js Policy on Trolling](http://blog.izs.me/post/30036893703/policy-on-trolling) as well as the [Contributor Covenant v1.3.0](https://www.contributor-covenant.org/version/1/3/0/).
|
||||||
|
|
|
@ -5,12 +5,12 @@ Information about contributing to Lemmy, whether it is translating, testing, des
|
||||||
## Issue tracking / Repositories
|
## Issue tracking / Repositories
|
||||||
|
|
||||||
- [GitHub (for issues and pull requests)](https://github.com/LemmyNet/lemmy)
|
- [GitHub (for issues and pull requests)](https://github.com/LemmyNet/lemmy)
|
||||||
- [Gitea (only for pull requests)](https://yerbamate.ml/LemmyNet/lemmy)
|
- [Gitea (only for pull requests)](https://git.join-lemmy.org/LemmyNet/lemmy/)
|
||||||
- [Codeberg](https://codeberg.org/LemmyNet/lemmy)
|
- [Codeberg](https://codeberg.org/LemmyNet/lemmy)
|
||||||
|
|
||||||
## Translating
|
## Translating
|
||||||
|
|
||||||
Check out [Lemmy's Weblate](https://weblate.yerbamate.ml/projects/lemmy/) for translations. You can also help by [translating this documentation](https://github.com/LemmyNet/lemmy-docs#adding-a-new-language).
|
Check out [Lemmy's Weblate](https://weblate.join-lemmy.org/projects/lemmy/) for translations. You can also help by [translating this documentation](https://github.com/LemmyNet/lemmy-docs#adding-a-new-language).
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
|
|
|
@ -37,6 +37,7 @@
|
||||||
|
|
||||||
## Examples and Libraries
|
## Examples and Libraries
|
||||||
|
|
||||||
|
- [activitypub-federation-rust library](https://crates.io/crates/activitypub-federation)
|
||||||
- [ActivityPub example server](https://github.com/tOkeshu/activitypub-example)
|
- [ActivityPub example server](https://github.com/tOkeshu/activitypub-example)
|
||||||
- [ActivityStreams crate](https://docs.rs/activitystreams/)
|
- [ActivityStreams crate](https://docs.rs/activitystreams/)
|
||||||
- [HTTP Signatures crate](https://git.asonix.dog/Aardwolf/http-signature-normalization)
|
- [HTTP Signatures crate](https://git.asonix.dog/asonix/http-signature-normalization)
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
# Federation Administration
|
|
||||||
|
|
||||||
Note: ActivityPub federation is still under development. We recommend that you only enable it on test instances for now.
|
|
||||||
|
|
||||||
To enable federation, change the setting `federation.enabled` to `true` in `lemmy.hjson`, and restart Lemmy.
|
|
||||||
|
|
||||||
Federation does not start automatically, but needs to be triggered manually through the search. To do this you have to enter a reference to a remote object, such as:
|
|
||||||
|
|
||||||
- `!main@lemmy.ml` (Community)
|
|
||||||
- `@nutomic@lemmy.ml` (User)
|
|
||||||
- `https://lemmy.ml/c/programming` (Community)
|
|
||||||
- `https://lemmy.ml/u/nutomic` (User)
|
|
||||||
- `https://lemmy.ml/post/123` (Post)
|
|
||||||
- `https://lemmy.ml/comment/321` (Comment)
|
|
||||||
|
|
||||||
For an overview of how federation in Lemmy works on a technical level, check out our [Federation Overview](contributing_federation_overview.md).
|
|
||||||
|
|
||||||
## Federation Modes
|
|
||||||
|
|
||||||
Through the combination of federation config options, there are a couple different federation modes, differing in their restrictiveness. For now we don't recommend to use open federation, because moderation tools are lacking and there might be security problems in the federation code. Open federation should be fine for test instances and smaller instances, but bigger instances should prefer to use a more closed federation.
|
|
||||||
|
|
||||||
It is important to note that these settings only affect sending and receiving of data between instances. If allow federation with a certain instance, and then remove it from the allowlist, this will not affect previously federated data. These communities, users, posts and comments will still be shown. They will just not be updated anymore. And even if an instance is blocked, it can still fetch and display public data from your instance.
|
|
||||||
|
|
||||||
### Using allowlist, strict_allowlist = true
|
|
||||||
|
|
||||||
The most strict mode. Lemmy will only federate with instances from the allowlist, and block everything else. This includes all posts, comments, votes and private messages, you will only see them if the author is on an allowed instance. This means that remote communities or threads can be incomplete, as your instance will block any posts or comments whose author is not on an allowed instance.
|
|
||||||
|
|
||||||
The blocklist is ignored in this mode.
|
|
||||||
|
|
||||||
### Using allowlist, strict_allowlist = false
|
|
||||||
|
|
||||||
This mode is a bit more open than the one above. For local communities, the behaviour is identical, only users from allowed instances can post, comment or vote. The difference is with remote communities. The allowlist doesn't apply to them, so you will see all posts, comments and votes in remote communities (unless the author's instance is blocked). Private messages can be sent by any remote user that isn't blocked.
|
|
||||||
|
|
||||||
If a blocklist is set, all communication with the blocked instances will be prevented, no matter in which context.
|
|
||||||
|
|
||||||
### Using only blocklist
|
|
||||||
|
|
||||||
If no allowlist is specified, Lemmy will federate with any instance. This is the most open mode, and potentially the most risky, as someone could create a malicious instance, and immediately send spam or other problematic content to your instance. You can use the blocklist to prevent federation with such instances one by one.
|
|
||||||
|
|
||||||
`strict_allowlist` is ignored in this case.
|
|
|
@ -4,7 +4,7 @@ The Lemmy Protocol (or Lemmy Federation Protocol) is a subset of the [ActivityPu
|
||||||
|
|
||||||
This document is targeted at developers who are familiar with the ActivityPub and ActivityStreams protocols. It gives a detailed outline of the actors, objects and activities used by Lemmy.
|
This document is targeted at developers who are familiar with the ActivityPub and ActivityStreams protocols. It gives a detailed outline of the actors, objects and activities used by Lemmy.
|
||||||
|
|
||||||
Before reading this, have a look at our [Federation Overview](contributing_federation_overview.md) to get an idea how Lemmy federation works on a high level.
|
Before reading this, have a look at our [Federation Overview](overview.md) to get an idea how Lemmy federation works on a high level.
|
||||||
|
|
||||||
<!-- toc -->
|
<!-- toc -->
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Federation Overview
|
# Federation Overview
|
||||||
|
|
||||||
This document is for anyone who wants to know how Lemmy federation works, without being overly technical. It is meant provide a high-level overview of ActivityPub federation in Lemmy. If you are implementing ActivityPub yourself and want to be compatible with Lemmy, read our [ActivityPub API outline](contributing_apub_api_outline.md).
|
This document is for anyone who wants to know how Lemmy federation works, without being overly technical. It is meant provide a high-level overview of ActivityPub federation in Lemmy. If you are implementing ActivityPub yourself and want to be compatible with Lemmy, read our [ActivityPub Protocol](lemmy_protocol.md).
|
||||||
|
|
||||||
## Documentation conventions
|
## Documentation conventions
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue