- [Install with Ansible](administration_install_ansible.md)
- [Configuration](administration_configuration.md)
- [Backup and Restore](administration_backup_and_restore.md)
+ - [Federation](administration_federation.md)
- [Contributing](contributing.md)
- [Docker Development](contributing_docker_development.md)
- [Local Development](contributing_local_development.md)
--- /dev/null
+# Federation
+
+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@dev.lemmy.ml` (Community)
+- `@nutomic@dev.lemmy.ml` (User)
+- `https://dev.lemmy.ml/c/programming` (Community)
+- `https://dev.lemmy.ml/u/nutomic` (User)
+- `https://dev.lemmy.ml/post/123` (Post)
+
+For an overview of how federation in Lemmy works on a technical level, check out our [Federation Overview](contributing_federation_overview.md).
+
+## Instance allowlist and blocklist
+
+The federation section of Lemmy's config has two variables `allowed_instances` and `blocked_instances`. These control which other instances Lemmy will federate with. Both settings take a comma separated list of domains, eg `dev.lemmy.ml, example.com`. You can either change those settings via `/admin`, or directly on the server filesystem.
+
+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.
+
+By default, both `allowed_instances` and `blocked_instances` values are empty, which means that Lemmy will federate with every compatible instance. We do not recommend this, because the moderation tools are not yet ready to deal with malicious instances.
+
+What we do recommend is putting a list of trusted instances into `allowed_instances`, and only federating with those. Note that both sides need to add each other to their `allowed_instances` to allow two-way federation.
+
+Alternatively you can also use blocklist based federation. In this case, add the domains of instances you do *not* want to federate with. You can only set one of `allowed_instances` and `blocked_instances`, as setting both doesn't make sense.
### Get the front end source code
```
git clone https://github.com/LemmyNet/lemmy-ui.git
+# get the translations
+git submodule init
+git submodule update
```
### Setup postgresql
yarn dev
```
-and goto [localhost:1234](http://localhost:1234). Front end saves should rebuild the project.
+and go to [localhost:1234](http://localhost:1234). Front end saves should rebuild the project.
Note that this setup doesn't include image uploads or link previews (provided by pict-rs and
iframely respectively). If you want to test those, you should use the